I want to add product chooser field like this
[![enter image description here][1]][1]


 [1]: https://i.sstatic.net/BCOiO.png

I am using this code but its not working anyone please help me.
<pre>
<?php

namespace Kam\Auction\Block\Adminhtml\Product\Edit\Tab;

use Exception;
use Kam\Auction\Helper\Data;
use Kam\Auction\Model\ResourceModel\Product\Source\AllProductsForAuction;
use Magento\Backend\Block\Template\Context;
use Magento\Backend\Block\Widget\Form\Generic;
use Magento\Backend\Block\Widget\Tab\TabInterface;
use Magento\Catalog\Model\ProductFactory;
use Magento\Framework\Data\FormFactory;
use Magento\Framework\Registry;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
use Magento\Store\Model\System\Store;

/**
 * Class Main
 * @package Kam\Auction\Block\Adminhtml\Product\Edit\Tab
 */
class Main extends Generic implements TabInterface
{
 /**
 * @var Store
 */
 protected $_systemStore;

 /**
 * @var ProductFactory
 */
 protected $_productloader;
 /**
 * @var AllProductsForAuction
 */
 protected $_allProducts;
 /**
 * @var array configuration of Auction
 */

 protected $helper;
 /**
 * @var TimezoneInterface
 */
 private $timezone;

 /**
 * @param Context $context
 * @param Registry $registry
 * @param FormFactory $formFactory
 * @param Store $systemStore
 * @param ProductFactory $_productloader
 * @param AllProductsForAuction $allProducts
 * @param Data $helper
 * @param TimezoneInterface $timezone
 * @param array $data
 */
 public function __construct(
 Context $context,
 Registry $registry,
 FormFactory $formFactory,
 Store $systemStore,
 ProductFactory $_productloader,
 AllProductsForAuction $allProducts,
 Data $helper,
 TimezoneInterface $timezone,
 array $data = []
 ) {
 $this->helper = $helper;
 $this->_allProducts = $allProducts;
 $this->_systemStore = $systemStore;
 $this->_productloader = $_productloader;
 $this->timezone = $timezone;
 parent::__construct($context, $registry, $formFactory, $data);
 }


 /**
 * @return Main
 * @throws \Magento\Framework\Exception\LocalizedException
 * @throws Exception
 */
 protected function _prepareForm()
 {
 $model = $this->_coreRegistry->registry('lofauction_product');
 $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT);

 $form = $this->_formFactory->create();
 //$form->setUseContainer(true);

 $fieldset = $form->addFieldset(
 'options_fieldset',
 ['legend' => __('Product Information'), 'class' => 'fieldset-wide fieldset-widget-options']
 );
 if ($model->getId()) {
 $fieldset->addField('auction_entity_id', 'hidden', ['name' => 'auction_entity_id']);
 }
 if (!$model->getProductId()) {
 $chooserField = $fieldset->addField(
 'options_fieldset_entity_id',
 'label',
 [
 'name' => 'product_id',
 'label' => __('Product'),
 'required' => true,
 'class' => 'widget-option',
 'note' => __("Select a product"),
 ]
 );
 /*Add chooser helper for the field*/
 $helperData = [
 'data' => [
 'button' => ['open' => __("Select Product...")]
 ]
 ];
 // $chooserField->setValue('product/' . $model->getProductId());
 // Fixes Require product.
 $chooserField->setValue($model->getProductId());
 $helperBlock = $this->getLayout()->createBlock(
 'Magento\Catalog\Block\Adminhtml\Product\Widget\Chooser',
 '',
 $helperData
 );

 $helperBlock->setConfig($helperData)
 ->setFieldsetId($fieldset->getId())
 ->prepareElementHtml($chooserField)
 ->setValue($model->getId());
 } else {
 $fieldset->addField(
 'product_id',
 'note',
 [
 'name' => 'product_id',
 'label' => __('Product'),
 'title' => __('Product'),
 'text' => $this->helper->getProductbyId($model->getProductId())->getName()
 ]
 );
 }
 
</pre>

Please help me.how can we add one product choose field..?