13 #include "boost/shared_ptr.hpp"
31 typedef std::map<short, short, std::less<short> >
LUT;
39 int load_ext(std::vector<L1TMuonBarrelParams::LUTParams::extLUT>&,
unsigned short int,
unsigned short int );
42 typedef boost::shared_ptr<L1TMuonBarrelParams>
ReturnType;
73 int PT_Assignment_nbits_Phi = iConfig.
getParameter<
int>(
"PT_Assignment_nbits_Phi");
74 int PT_Assignment_nbits_PhiB = iConfig.
getParameter<
int>(
"PT_Assignment_nbits_PhiB");
75 int PHI_Assignment_nbits_Phi = iConfig.
getParameter<
int>(
"PHI_Assignment_nbits_Phi");
76 int PHI_Assignment_nbits_PhiB = iConfig.
getParameter<
int>(
"PHI_Assignment_nbits_PhiB");
77 int Extrapolation_nbits_Phi = iConfig.
getParameter<
int>(
"Extrapolation_nbits_Phi");
78 int Extrapolation_nbits_PhiB = iConfig.
getParameter<
int>(
"Extrapolation_nbits_PhiB");
81 int Extrapolation_Filter = iConfig.
getParameter<
int>(
"Extrapolation_Filter");
82 int OutOfTime_Filter_Window = iConfig.
getParameter<
int>(
"OutOfTime_Filter_Window");
83 bool OutOfTime_Filter = iConfig.
getParameter<
bool>(
"OutOfTime_Filter");
84 bool Open_LUTs = iConfig.
getParameter<
bool>(
"Open_LUTs");
85 bool EtaTrackFinder = iConfig.
getParameter<
bool>(
"EtaTrackFinder");
86 bool Extrapolation_21 = iConfig.
getParameter<
bool>(
"Extrapolation_21");
105 std::vector<LUT> pta_lut(0); pta_lut.reserve(12);
106 std::vector<int> pta_threshold(6); pta_threshold.reserve(6);
107 if (
load_pt(pta_lut,pta_threshold, PT_Assignment_nbits_Phi, AssLUTpath) != 0 ) {
108 cout <<
"Can not open files to load pt-assignment look-up tables for L1TMuonBarrelTrackProducer!" << endl;
114 std::vector<LUT> phi_lut(0); phi_lut.reserve(2);
115 if (
load_phi(phi_lut, PHI_Assignment_nbits_Phi, PHI_Assignment_nbits_PhiB, AssLUTpath) != 0 ) {
116 cout <<
"Can not open files to load phi-assignment look-up tables for L1TMuonBarrelTrackProducer!" << endl;
140 std::vector<int>& pta_threshold,
141 unsigned short int nbitphi,
159 int nbit_phi = nbitphi;
160 int sh_phi = 12 - nbit_phi;
165 case PT12L : { pta_str =
"pta12l";
break; }
166 case PT12H : { pta_str =
"pta12h";
break; }
167 case PT13L : { pta_str =
"pta13l";
break; }
168 case PT13H : { pta_str =
"pta13h";
break; }
169 case PT14L : { pta_str =
"pta14l";
break; }
170 case PT14H : { pta_str =
"pta14h";
break; }
171 case PT23L : { pta_str =
"pta23l";
break; }
172 case PT23H : { pta_str =
"pta23h";
break; }
173 case PT24L : { pta_str =
"pta24l";
break; }
174 case PT24H : { pta_str =
"pta24h";
break; }
175 case PT34L : { pta_str =
"pta34l";
break; }
176 case PT34H : { pta_str =
"pta34h";
break; }
180 string lutpath = AssLUTpath;
186 if ( file.
open() != 0 )
return -1;
190 int adr_old = -2048 >>
shift;
203 while ( file.
good() ) {
210 if ( adr != adr_old ) {
212 tmplut.insert(make_pair( adr_old, (sum_pt/number) ));
226 pta_lut.push_back(tmplut);
236 unsigned short int nbit_phi,
237 unsigned short int nbit_phib,
245 int sh_phi = 12 - nbit_phi;
246 int sh_phib = 10 - nbit_phib;
252 case 0 : { phi_str =
"phi12";
break; }
253 case 1 : { phi_str =
"phi42";
break; }
262 if ( file.
open() != 0 )
return -1;
267 int adr_old = -512 >> sh_phib;
271 while ( file.
good() ) {
278 if ( adr != adr_old ) {
280 tmplut.insert(make_pair( adr_old, ((sum_phi/number) >> sh_phi) ));
294 phi_lut.push_back(tmplut);
302 if ( pta_ind >= 0 && pta_ind < 13/2 ) {
303 return pta_threshold[pta_ind];
306 cerr <<
"PtaLut::getPtLutThreshold : can not find threshold " << pta_ind << endl;
321 unsigned short int nbit_phi,
322 unsigned short int nbit_phib) {
332 string defaultPath =
"L1TriggerConfig/DTTrackFinder/parameters/";
333 string ext_dir =
"L1TriggerData/DTTrackFinder/Ext/";
340 int sh_phi = 12 - nbit_phi;
341 int sh_phib = 10 - nbit_phib;
344 for (
int ext = 0; ext <
MAX_EXT; ext++ ) {
346 case EX12 : ext_str =
"ext12";
break;
347 case EX13 : ext_str =
"ext13";
break;
348 case EX14 : ext_str =
"ext14";
break;
349 case EX21 : ext_str =
"ext21";
break;
350 case EX23 : ext_str =
"ext23";
break;
351 case EX24 : ext_str =
"ext24";
break;
352 case EX34 : ext_str =
"ext34";
break;
353 case EX15 : ext_str =
"ext15";
break;
354 case EX16 : ext_str =
"ext16";
break;
355 case EX25 : ext_str =
"ext25";
break;
356 case EX26 : ext_str =
"ext26";
break;
357 case EX56 : ext_str =
"ext56";
break;
366 if ( file.
open() != 0 )
return -1;
373 int adr_old = -512 >> sh_phib;
378 while ( file.
good() ) {
386 if ( adr != adr_old ) {
388 tmplut.
low[adr_old] = sum_low >> sh_phi;
389 tmplut.
high[adr_old] = sum_high >> sh_phi;
398 if (number == 0) sum_low = low;
399 if (number == 0) sum_high = high;
405 ext_lut.push_back(tmplut);
420 using namespace edm::es;
421 boost::shared_ptr<L1TMuonBarrelParams> pBMTFParams;
~L1TMuonBarrelParamsESProducer()
T getParameter(std::string const &) const
void set_Extrapolation_Filter(int par1)
void set_BX_min(int par1)
int getPtLutThreshold(int, std::vector< int > &) const
void set_BX_max(int par1)
int load_phi(std::vector< LUT > &, unsigned short int, unsigned short int, std::string)
void setAssLUTPath(std::string path)
void setFwVersion(unsigned fwVersion)
bool good()
return status of file stream
void set_Extrapolation_nbits_Phi(int par1)
void set_EtaTrackFinder(bool par1)
void setpta_threshold(std::vector< int > ptathresh)
void set_Extrapolation_nbits_PhiB(int par1)
void setpta_lut(std::vector< LUT > ptalut)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
void set_Open_LUTs(bool par1)
L1TMuonBarrelParamsESProducer(const edm::ParameterSet &)
void set_Extrapolation_21(bool par1)
boost::shared_ptr< L1TMuonBarrelParams > ReturnType
int load_pt(std::vector< LUT > &, std::vector< int > &, unsigned short int, std::string)
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
void set_PT_Assignment_nbits_PhiB(int par1)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
void set_PT_Assignment_nbits_Phi(int par1)
L1TMuonBarrelParams m_params
void set_PHI_Assignment_nbits_Phi(int par1)
int readInteger()
read one integer from file
void setphi_lut(std::vector< LUT > philut)
ReturnType produce(const L1TMuonBarrelParamsRcd &)
static unsigned int const shift
void set_OutOfTime_Filter_Window(int par1)
void set_PHI_Assignment_nbits_PhiB(int par1)
std::string fullPath() const
std::vector< unsigned short int > LUT
void set_OutOfTime_Filter(bool par1)
int load_ext(std::vector< L1TMuonBarrelParams::LUTParams::extLUT > &, unsigned short int, unsigned short int)