CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Member Functions
L1TMuonBarrelParamsHelper Class Reference

#include <L1TMuonBarrelParamsHelper.h>

Inheritance diagram for L1TMuonBarrelParamsHelper:
L1TMuonBarrelParams

Public Member Functions

std::string AssLUTPath () const
 
void configFromDB (l1t::TriggerSystem &trgSys)
 
void configFromPy (std::map< std::string, int > &allInts, std::map< std::string, bool > &allBools, std::map< std::string, std::vector< std::string > > allMasks, unsigned int fwVersion, const std::string &AssLUTpath)
 
etaLUT eta_lut () const
 
std::vector< LUTParams::extLUT > ext_lut () const
 
unsigned fwVersion () const
 
int get_BX_max () const
 
int get_BX_min () const
 
bool get_DisableNewAlgo () const
 
bool get_EtaTrackFinder () const
 
bool get_Extrapolation_21 () const
 
int get_Extrapolation_Filter () const
 
int get_Extrapolation_nbits_Phi () const
 
int get_Extrapolation_nbits_PhiB () const
 
bool get_Open_LUTs () const
 
bool get_OutOfTime_Filter () const
 
int get_OutOfTime_Filter_Window () const
 
int get_PHI_Assignment_nbits_Phi () const
 
int get_PHI_Assignment_nbits_PhiB () const
 
int get_PT_Assignment_nbits_Phi () const
 
int get_PT_Assignment_nbits_PhiB () const
 
 L1TMuonBarrelParamsHelper ()
 
 L1TMuonBarrelParamsHelper (const L1TMuonBarrelParams &barrelParams)
 
std::vector< LUTphi_lut () const
 
void print (std::ostream &) const
 
std::vector< LUTpta_lut () const
 
std::vector< int > pta_threshold () const
 
qpLUT qp_lut () const
 
void set_BX_max (int par1)
 
void set_BX_min (int par1)
 
void set_DisableNewAlgo (bool par1)
 
void set_EtaTrackFinder (bool par1)
 
void set_Extrapolation_21 (bool par1)
 
void set_Extrapolation_Filter (int par1)
 
void set_Extrapolation_nbits_Phi (int par1)
 
void set_Extrapolation_nbits_PhiB (int par1)
 
void set_Open_LUTs (bool par1)
 
void set_OutOfTime_Filter (bool par1)
 
void set_OutOfTime_Filter_Window (int par1)
 
void set_PHI_Assignment_nbits_Phi (int par1)
 
void set_PHI_Assignment_nbits_PhiB (int par1)
 
void set_PT_Assignment_nbits_Phi (int par1)
 
void set_PT_Assignment_nbits_PhiB (int par1)
 
void setAssLUTPath (std::string path)
 
void seteta_lut (etaLUT eta_lut)
 
void setext_lut (std::vector< LUTParams::extLUT > extlut)
 
void setFwVersion (unsigned fwVersion)
 
void setphi_lut (std::vector< LUT > philut)
 
void setpta_lut (std::vector< LUT > ptalut)
 
void setpta_threshold (std::vector< int > ptathresh)
 
void setqp_lut (qpLUT qplut)
 
 ~L1TMuonBarrelParamsHelper ()
 
- Public Member Functions inherited from L1TMuonBarrelParams
 L1TMuonBarrelParams ()
 
 ~L1TMuonBarrelParams ()
 

Public Attributes

L1MuDTEtaPatternLut l1mudttfetaplut
 
L1MuDTQualPatternLut l1mudttfqualplut
 friend std::ostream& operator<<(std::ostream& o, const L1TMuonBarrelParams & p) { p.print(o); return o; } More...
 
- Public Attributes inherited from L1TMuonBarrelParams
unsigned fwVersion_
 
L1MuDTTFMasks l1mudttfmasks
 
std::vector< L1MuDTTFMasksl1mudttfmasks_
 
L1MuDTTFParameters l1mudttfparams
 
std::vector< L1MuDTTFParametersl1mudttfparams_
 
LUTParams lutparams_
 
std::vector< Nodepnodes_
 
unsigned version_
 

Private Member Functions

int load_ext (std::vector< L1TMuonBarrelParams::LUTParams::extLUT > &, unsigned short int, unsigned short int)
 
int load_phi (std::vector< LUT > &, unsigned short int, unsigned short int, std::string)
 
int load_pt (std::vector< LUT > &, std::vector< int > &, unsigned short int, std::string)
 if configDB More...
 

Additional Inherited Members

- Public Types inherited from L1TMuonBarrelParams
enum  { Version = 1 }
 
enum  { CONFIG = 0, NUM_BMTF_PARAM_NODES =2 }
 
enum  {
  PT_Assignment_nbits_Phi, PT_Assignment_nbits_PhiB, PHI_Assignment_nbits_Phi, PHI_Assignment_nbits_PhiB,
  Extrapolation_nbits_Phi, Extrapolation_nbits_PhiB, BX_min, BX_max,
  Extrapolation_Filter, OutOfTime_Filter_Window, OutOfTime_Filter, Open_LUTs,
  EtaTrackFinder, Extrapolation_21, DisableNewAlgo, NUM_CONFIG_PARAMS
}
 
typedef std::map< short, L1MuDTEtaPattern, std::less< short > > etaLUT
 Eta Pattern LUT. More...
 
typedef std::map< short, short, std::less< short > > LUT
 L1MuBMPtaLut. More...
 
typedef std::pair< short, std::vector< short > > LUTCONT
 
typedef std::pair< short, short > LUTID
 Qual Pattern LUT. More...
 
typedef std::map< LUTID, LUTCONTqpLUT
 

Detailed Description

Definition at line 32 of file L1TMuonBarrelParamsHelper.h.

Constructor & Destructor Documentation

L1TMuonBarrelParamsHelper::L1TMuonBarrelParamsHelper ( )
inline

Definition at line 35 of file L1TMuonBarrelParamsHelper.h.

L1TMuonBarrelParamsHelper::L1TMuonBarrelParamsHelper ( const L1TMuonBarrelParams barrelParams)

Definition at line 10 of file L1TMuonBarrelParamsHelper.cc.

10  : L1TMuonBarrelParams(barrelParams) //: L1TMuonBarrelParams_PUBLIC(cast_to_L1TMuonBarrelParams_PUBLIC(barrelParams)) //: m_params_helper(barrelParams)
11 {
12 // if (pnodes_.size() != 2)
13 // pnodes_.resize(2);
14 
15 }
L1TMuonBarrelParamsHelper::~L1TMuonBarrelParamsHelper ( )
inline

Member Function Documentation

std::string L1TMuonBarrelParamsHelper::AssLUTPath ( ) const
inline

Definition at line 45 of file L1TMuonBarrelParamsHelper.h.

References L1TMuonBarrelParams::CONFIG, and L1TMuonBarrelParams::pnodes_.

45 { return pnodes_[CONFIG].sparams_.size() > 0 ? pnodes_[CONFIG].sparams_[0] : ""; }
std::vector< Node > pnodes_
void L1TMuonBarrelParamsHelper::configFromDB ( l1t::TriggerSystem trgSys)

Converts the last bit to int

All bits must be the same

if register path

for masks

for it tRow

for it procRole

Definition at line 123 of file L1TMuonBarrelParamsHelper.cc.

References MessageLogger_cfi::cerr, spr::find(), l1t::TriggerSystem::getParameters(), l1t::TriggerSystem::getProcToRoleAssignment(), L1TMuonBarrelParams::l1mudttfmasks, funct::m, RecoTauDiscriminantConfiguration::mask, masks, set_DisableNewAlgo(), L1MuDTTFMasks::set_etsoc_chdis_st1(), L1MuDTTFMasks::set_etsoc_chdis_st2(), L1MuDTTFMasks::set_etsoc_chdis_st3(), set_Extrapolation_21(), L1MuDTTFMasks::set_inrec_chdis_st1(), L1MuDTTFMasks::set_inrec_chdis_st2(), L1MuDTTFMasks::set_inrec_chdis_st3(), L1MuDTTFMasks::set_inrec_chdis_st4(), set_Open_LUTs(), AlCaHLTBitMon_QueryRunRegistry::string, and create_public_pileup_plots::vals.

Referenced by L1TMuonBarrelParamsESProducer::L1TMuonBarrelParamsESProducer(), L1TMuonBarrelParamsOnlineProd::newObject(), and ~L1TMuonBarrelParamsHelper().

124 {
125  std::map<std::string, std::string> procRole = trgSys.getProcToRoleAssignment();
126 
127  for(auto it_proc=procRole.begin(); it_proc!=procRole.end(); it_proc++ )
128  {
129 
130  std::string procId = it_proc->first;
131 
132  std::map<std::string, l1t::Parameter> settings = trgSys.getParameters(procId.c_str());
133 
134 
135  std::vector<std::string> paths = settings["regTable"].getTableColumn<std::string>("register_path");
136  std::vector<unsigned int> vals = settings["regTable"].getTableColumn<unsigned int>("register_value");
137  for(unsigned int row=0; row<paths.size(); row++)
138  {
139  if (paths[row].find("open_lut") != std::string::npos){
140  //std::cout << "Value is: " << vals[row] << std::endl;
141  set_Open_LUTs(vals[row]);
142  }
143  if (paths[row].find("sel_21") != std::string::npos){
144  //std::cout << "Value is: " << vals[row] << std::endl;
145  set_Extrapolation_21(vals[row]);
146  }
147 
148  if (paths[row].find("dis_newalgo") != std::string::npos){
149  //std::cout << "Value is: " << vals[row] << std::endl;
150  //int fwv = (vals[row]==1) ? 1 : 2;
151  //setFwVersion(fwv);
152  bool disnewalgo = (vals[row]==1);
153  set_DisableNewAlgo(disnewalgo);
154  }
155 
156  string masks[5] = {"mask_ctrl_N2", "mask_ctrl_N1", "mask_ctrl_0", "mask_ctrl_P1", "mask_ctrl_P2"};
157 
158  for(int m=0; m<5; m++)
159  {
160 
161  if (paths[row].find(masks[m]) != std::string::npos){
163  int mask = 0x1&vals[row];
164  int mask_all = vals[row];
166  if(!( mask_all==0x111111 || mask_all==0x222222 || mask_all==0x333333 || mask_all==0x444444 ||
167  mask_all==0x555555 || mask_all==0x666666 || mask_all==0x777777) )
168  cerr<<"BMTF: Cannot re-emulate properly. Individual link masking cannot be handled."<<endl;
169 
170  if((mask&1)>0) {
171  for(int sec=0; sec<12; sec++){
172  if(masks[m]=="mask_ctrl_N2"){
173  l1mudttfmasks.set_inrec_chdis_st1(-3,sec,true);
174  l1mudttfmasks.set_etsoc_chdis_st1(-3,sec,true);
175  }
176  if(masks[m]=="mask_ctrl_N1"){
177  l1mudttfmasks.set_inrec_chdis_st1(-2,sec,true);
178  l1mudttfmasks.set_etsoc_chdis_st1(-2,sec,true);
179  }
180 
181  if(masks[m]=="mask_ctrl_0"){
182  l1mudttfmasks.set_inrec_chdis_st1(-1,sec,true);
184  l1mudttfmasks.set_etsoc_chdis_st1(-1,sec,true);
186  }
187  if(masks[m]=="mask_ctrl_P1"){
190  }
191  if(masks[m]=="mask_ctrl_P2"){
194  }
195  }
196 
197  }
198 
199  if((mask&2)>0) {
200  for(int sec=0; sec<12; sec++){
201  if(masks[m]=="mask_ctrl_N2"){
202  l1mudttfmasks.set_inrec_chdis_st2(-3,sec,true);
203  l1mudttfmasks.set_etsoc_chdis_st2(-3,sec,true);
204  }
205  if(masks[m]=="mask_ctrl_N1"){
206  l1mudttfmasks.set_inrec_chdis_st2(-2,sec,true);
207  l1mudttfmasks.set_etsoc_chdis_st2(-2,sec,true);
208  }
209 
210  if(masks[m]=="mask_ctrl_0"){
211  l1mudttfmasks.set_inrec_chdis_st2(-1,sec,true);
213  l1mudttfmasks.set_etsoc_chdis_st2(-1,sec,true);
215  }
216  if(masks[m]=="mask_ctrl_P1"){
219  }
220  if(masks[m]=="mask_ctrl_P2"){
223  }
224  }
225  }
226 
227  if((mask&4)>0) {
228  for(int sec=0; sec<12; sec++){
229  if(masks[m]=="mask_ctrl_N2"){
230  l1mudttfmasks.set_inrec_chdis_st3(-3,sec,true);
231  l1mudttfmasks.set_etsoc_chdis_st3(-3,sec,true);
232  }
233  if(masks[m]=="mask_ctrl_N1"){
234  l1mudttfmasks.set_inrec_chdis_st3(-2,sec,true);
235  l1mudttfmasks.set_etsoc_chdis_st3(-2,sec,true);
236  }
237 
238  if(masks[m]=="mask_ctrl_0"){
239  l1mudttfmasks.set_inrec_chdis_st3(-1,sec,true);
241  l1mudttfmasks.set_etsoc_chdis_st3(-1,sec,true);
243  }
244  if(masks[m]=="mask_ctrl_P1"){
247  }
248  if(masks[m]=="mask_ctrl_P2"){
251  }
252  }
253  }
254 
255  if((mask&8)>0) {
256  for(int sec=0; sec<12; sec++){
257  if(masks[m]=="mask_ctrl_N2"){
258  l1mudttfmasks.set_inrec_chdis_st4(-3,sec,true);
259  }
260  if(masks[m]=="mask_ctrl_N1"){
261  l1mudttfmasks.set_inrec_chdis_st4(-2,sec,true);
262  }
263 
264  if(masks[m]=="mask_ctrl_0"){
265  l1mudttfmasks.set_inrec_chdis_st4(-1,sec,true);
267  }
268  if(masks[m]=="mask_ctrl_P1"){
270  }
271  if(masks[m]=="mask_ctrl_P2"){
273  }
274  }
275  }
276  }
277  }
278  }
279  }
280 }
void set_etsoc_chdis_st1(int wh, int sc, const bool val)
void set_etsoc_chdis_st2(int wh, int sc, const bool val)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
const std::map< std::string, std::string > & getProcToRoleAssignment(void) const noexcept
Definition: TriggerSystem.h:61
L1MuDTTFMasks l1mudttfmasks
void set_inrec_chdis_st4(int wh, int sc, const bool val)
void set_inrec_chdis_st2(int wh, int sc, const bool val)
void set_inrec_chdis_st3(int wh, int sc, const bool val)
const std::map< std::string, Parameter > & getParameters(const char *processor) const
void set_etsoc_chdis_st3(int wh, int sc, const bool val)
constexpr uint32_t masks[]
Definition: CaloRecHit.cc:12
void set_inrec_chdis_st1(int wh, int sc, const bool val)
void L1TMuonBarrelParamsHelper::configFromPy ( std::map< std::string, int > &  allInts,
std::map< std::string, bool > &  allBools,
std::map< std::string, std::vector< std::string > >  allMasks,
unsigned int  fwVersion,
const std::string &  AssLUTpath 
)

Read Pt assignment Luts

Read Phi assignment Luts

Read Extrapolation Luts

Definition at line 17 of file L1TMuonBarrelParamsHelper.cc.

References EnergyCorrector::c, gather_cfg::cout, L1TMuonBarrelParams::LUTParams::eta_lut_, ext_lut(), l1mudttfetaplut, L1TMuonBarrelParams::l1mudttfmasks, L1TMuonBarrelParams::l1mudttfparams, l1mudttfqualplut, L1MuDTEtaPatternLut::load(), L1MuDTQualPatternLut::load(), load_ext(), load_phi(), load_pt(), L1TMuonBarrelParams::lutparams_, L1MuDTEtaPatternLut::m_lut, L1MuDTQualPatternLut::m_lut, RecoTauDiscriminantConfiguration::mask, phi_lut(), pta_lut(), pta_threshold(), L1TMuonBarrelParams::LUTParams::qp_lut_, L1MuDTTFParameters::reset(), set_BX_max(), set_BX_min(), set_DisableNewAlgo(), set_EtaTrackFinder(), L1MuDTTFMasks::set_etsoc_chdis_st1(), L1MuDTTFMasks::set_etsoc_chdis_st2(), L1MuDTTFMasks::set_etsoc_chdis_st3(), set_Extrapolation_21(), set_Extrapolation_Filter(), set_Extrapolation_nbits_Phi(), set_Extrapolation_nbits_PhiB(), L1MuDTTFMasks::set_inrec_chdis_csc(), L1MuDTTFMasks::set_inrec_chdis_st1(), L1MuDTTFMasks::set_inrec_chdis_st2(), L1MuDTTFMasks::set_inrec_chdis_st3(), L1MuDTTFMasks::set_inrec_chdis_st4(), set_Open_LUTs(), set_OutOfTime_Filter(), set_OutOfTime_Filter_Window(), set_PHI_Assignment_nbits_Phi(), set_PHI_Assignment_nbits_PhiB(), set_PT_Assignment_nbits_Phi(), set_PT_Assignment_nbits_PhiB(), setAssLUTPath(), setext_lut(), setFwVersion(), setphi_lut(), setpta_lut(), and setpta_threshold().

Referenced by L1TMuonBarrelParamsESProducer::L1TMuonBarrelParamsESProducer(), and ~L1TMuonBarrelParamsHelper().

18 {
19  set_PT_Assignment_nbits_Phi(allInts["PT_Assignment_nbits_Phi"]);
20  set_PT_Assignment_nbits_PhiB(allInts["PT_Assignment_nbits_PhiB"]);
21  set_PHI_Assignment_nbits_Phi(allInts["PHI_Assignment_nbits_Phi"]);
22  set_PHI_Assignment_nbits_PhiB(allInts["PHI_Assignment_nbits_PhiB"]);
23  set_Extrapolation_nbits_Phi(allInts["Extrapolation_nbits_Phi"]);
24  set_Extrapolation_nbits_PhiB(allInts["Extrapolation_nbits_PhiB"]);
25  set_BX_min(allInts["BX_min"]);
26  set_BX_max(allInts["BX_max"]);
27  set_Extrapolation_Filter(allInts["Extrapolation_Filter"]);
28  set_OutOfTime_Filter_Window(allInts["OutOfTime_Filter_Window"]);
29  set_OutOfTime_Filter(allBools["OutOfTime_Filter"]);
30  set_Open_LUTs(allBools["Open_LUTs"]);
31  set_EtaTrackFinder(allBools["EtaTrackFinder"]);
32  set_Extrapolation_21(allBools["Extrapolation_21"]);
34  set_DisableNewAlgo(allBools["DisableNewAlgo"]);
35 
36  setAssLUTPath(AssLUTpath);
38  std::vector<LUT> pta_lut(0); pta_lut.reserve(19);
39  std::vector<int> pta_threshold(10);
40  if ( load_pt(pta_lut,pta_threshold, allInts["PT_Assignment_nbits_Phi"], AssLUTpath) != 0 ) {
41  cout << "Can not open files to load pt-assignment look-up tables for L1TMuonBarrelTrackProducer!" << endl;
42  }
45 
47  std::vector<LUT> phi_lut(0); phi_lut.reserve(2);
48  if ( load_phi(phi_lut, allInts["PHI_Assignment_nbits_Phi"], allInts["PHI_Assignment_nbits_PhiB"], AssLUTpath) != 0 ) {
49  cout << "Can not open files to load phi-assignment look-up tables for L1TMuonBarrelTrackProducer!" << endl;
50  }
52 
53 
54 
55 
56  l1mudttfparams.reset(); //KK
57  l1mudttfqualplut.load(); //KK: Do these LUTs ever change and is it safe to initialize it from the release files like that?
58  l1mudttfetaplut.load(); //KK
59  // the data members of the Helper class loaded above are transient, push those to the persistent storage of the base class:
62 
63 
64  for( int wh=-3; wh<4; wh++ ) {
65  int sec = 0;
66  for(char& c : allMasks["mask_phtf_st1"].at(wh+3) ) {
67  int mask = c - '0';
69  sec++;
70  }
71  sec = 0;
72  for(char& c : allMasks["mask_phtf_st2"].at(wh+3) ) {
73  int mask = c - '0';
75  sec++;
76  }
77  sec = 0;
78  for(char& c : allMasks["mask_phtf_st3"].at(wh+3) ) {
79  int mask = c - '0';
81  sec++;
82  }
83  sec = 0;
84  for(char& c : allMasks["mask_phtf_st4"].at(wh+3) ) {
85  int mask = c - '0';
87  sec++;
88  }
89  sec = 0;
90  for(char& c : allMasks["mask_ettf_st1"].at(wh+3) ) {
91  int mask = c - '0';
93  sec++;
94  }
95  sec = 0;
96  for(char& c : allMasks["mask_ettf_st2"].at(wh+3) ) {
97  int mask = c - '0';
99  sec++;
100  }
101  sec = 0;
102  for(char& c : allMasks["mask_ettf_st3"].at(wh+3) ) {
103  int mask = c - '0';
104  l1mudttfmasks.set_etsoc_chdis_st3(wh,sec,mask);
105  //Not used in BMTF - mask
106  l1mudttfmasks.set_inrec_chdis_csc(wh,sec,true);
107  sec++;
108  }
109 
110  }
111 
112 
114  std::vector<L1TMuonBarrelParams::LUTParams::extLUT> ext_lut(0); ext_lut.reserve(12);
115  if ( load_ext(ext_lut, allInts["PHI_Assignment_nbits_Phi"], allInts["PHI_Assignment_nbits_PhiB"]) != 0 ) {
116  cout << "Can not open files to load extrapolation look-up tables for L1TMuonBarrelTrackProducer!" << endl;
117  }
119 
120  //l1mudttfextlut.load();
121 }
L1MuDTTFParameters l1mudttfparams
void set_etsoc_chdis_st1(int wh, int sc, const bool val)
int load_phi(std::vector< LUT > &, unsigned short int, unsigned short int, std::string)
std::vector< LUT > phi_lut() const
void set_etsoc_chdis_st2(int wh, int sc, const bool val)
int load()
load pattern look-up table
std::vector< LUT > pta_lut() const
std::vector< int > pta_threshold() const
std::vector< LUTParams::extLUT > ext_lut() const
void setphi_lut(std::vector< LUT > philut)
int load_ext(std::vector< L1TMuonBarrelParams::LUTParams::extLUT > &, unsigned short int, unsigned short int)
L1MuDTTFMasks l1mudttfmasks
void setpta_lut(std::vector< LUT > ptalut)
void set_inrec_chdis_st4(int wh, int sc, const bool val)
int load_pt(std::vector< LUT > &, std::vector< int > &, unsigned short int, std::string)
if configDB
int load()
load look-up tables
void reset()
reset parameters to zero
void setAssLUTPath(std::string path)
L1MuDTQualPatternLut l1mudttfqualplut
friend std::ostream& operator<<(std::ostream& o, const L1TMuonBarrelParams & p) { p...
void set_inrec_chdis_st2(int wh, int sc, const bool val)
void set_inrec_chdis_st3(int wh, int sc, const bool val)
void setFwVersion(unsigned fwVersion)
void set_etsoc_chdis_st3(int wh, int sc, const bool val)
void setext_lut(std::vector< LUTParams::extLUT > extlut)
void setpta_threshold(std::vector< int > ptathresh)
void set_inrec_chdis_csc(int wh, int sc, const bool val)
void set_inrec_chdis_st1(int wh, int sc, const bool val)
etaLUT L1TMuonBarrelParamsHelper::eta_lut ( ) const
inline
std::vector<LUTParams::extLUT> L1TMuonBarrelParamsHelper::ext_lut ( ) const
inline
unsigned L1TMuonBarrelParamsHelper::fwVersion ( ) const
inline

Definition at line 102 of file L1TMuonBarrelParamsHelper.h.

References L1TMuonBarrelParams::fwVersion_.

Referenced by setFwVersion(), and ~L1TMuonBarrelParamsHelper().

102 { return fwVersion_; }
int L1TMuonBarrelParamsHelper::get_BX_max ( ) const
inline
int L1TMuonBarrelParamsHelper::get_BX_min ( ) const
inline
bool L1TMuonBarrelParamsHelper::get_DisableNewAlgo ( ) const
inline
bool L1TMuonBarrelParamsHelper::get_EtaTrackFinder ( ) const
inline
bool L1TMuonBarrelParamsHelper::get_Extrapolation_21 ( ) const
inline
int L1TMuonBarrelParamsHelper::get_Extrapolation_Filter ( ) const
inline
int L1TMuonBarrelParamsHelper::get_Extrapolation_nbits_Phi ( ) const
inline
int L1TMuonBarrelParamsHelper::get_Extrapolation_nbits_PhiB ( ) const
inline
bool L1TMuonBarrelParamsHelper::get_Open_LUTs ( ) const
inline
bool L1TMuonBarrelParamsHelper::get_OutOfTime_Filter ( ) const
inline
int L1TMuonBarrelParamsHelper::get_OutOfTime_Filter_Window ( ) const
inline
int L1TMuonBarrelParamsHelper::get_PHI_Assignment_nbits_Phi ( ) const
inline
int L1TMuonBarrelParamsHelper::get_PHI_Assignment_nbits_PhiB ( ) const
inline
int L1TMuonBarrelParamsHelper::get_PT_Assignment_nbits_Phi ( ) const
inline
int L1TMuonBarrelParamsHelper::get_PT_Assignment_nbits_PhiB ( ) const
inline
int L1TMuonBarrelParamsHelper::load_ext ( std::vector< L1TMuonBarrelParams::LUTParams::extLUT > &  ext_lut,
unsigned short int  nbit_phi,
unsigned short int  nbit_phib 
)
private

Definition at line 475 of file L1TMuonBarrelParamsHelper.cc.

References L1TriggerLutFile::close(), EX12, EX13, EX14, EX15, EX16, EX21, EX23, EX24, EX25, EX26, EX34, EX56, FrontierConditions_GlobalTag_cff::file, edm::FileInPath::fullPath(), L1TriggerLutFile::good(), L1TMuonBarrelParams::LUTParams::extLUT::high, L1TMuonBarrelParams::LUTParams::extLUT::low, MAX_EXT, L1TriggerLutFile::open(), and L1TriggerLutFile::readInteger().

Referenced by configFromPy().

477  {
478 
479  //max. number of Extrapolations
480  const int MAX_EXT = 12;
481 
482  // extrapolation types
483  enum Extrapolation { EX12, EX13, EX14, EX21, EX23, EX24, EX34,
484  EX15, EX16, EX25, EX26, EX56 };
485 
486  // get directory name
487  string defaultPath = "L1Trigger/L1TMuon/data/bmtf_luts/";
488  string ext_dir = "LUTs_Ext/";
489  string ext_str = "";
490 
491  // precision : in the look-up tables the following precision is used :
492  // phi ...12 bits (low, high), phib ...10 bits (address)
493  // now convert phi and phib to the required precision
494 
495  int sh_phi = 12 - nbit_phi;
496  int sh_phib = 10 - nbit_phib;
497 
498  // loop over all extrapolations
499  for ( int ext = 0; ext < MAX_EXT; ext++ ) {
500  switch (ext) {
501  case EX12 : ext_str = "ext12"; break;
502  case EX13 : ext_str = "ext13"; break;
503  case EX14 : ext_str = "ext14"; break;
504  case EX21 : ext_str = "ext21"; break;
505  case EX23 : ext_str = "ext23"; break;
506  case EX24 : ext_str = "ext24"; break;
507  case EX34 : ext_str = "ext34"; break;
508  case EX15 : ext_str = "ext15"; break;
509  case EX16 : ext_str = "ext16"; break;
510  case EX25 : ext_str = "ext25"; break;
511  case EX26 : ext_str = "ext26"; break;
512  case EX56 : ext_str = "ext56"; break;
513  }
514 
515  // assemble file name
516  edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + ext_dir + ext_str + ".lut"));
517  string ext_file = lut_f.fullPath();
518 
519  // open file
520  L1TriggerLutFile file(ext_file);
521  if ( file.open() != 0 ) return -1;
522  // if ( L1MuDTTFConfig::Debug(1) ) cout << "Reading file : "
523  // << file.getName() << endl;
524 
526 
527  int number = -1;
528  int adr_old = -512 >> sh_phib;
529  int sum_low = 0;
530  int sum_high = 0;
531 
532  // read values and shift to correct precision
533  while ( file.good() ) {
534 
535  int adr = ( file.readInteger() ) >> sh_phib; // address (phib)
536  int low = ( file.readInteger() ); // low value (phi)
537  int high = ( file.readInteger() ); // high value (phi)
538 
539  number++;
540 
541  if ( adr != adr_old ) {
542 
543  tmplut.low[adr_old] = sum_low >> sh_phi;
544  tmplut.high[adr_old] = sum_high >> sh_phi;
545 
546  adr_old = adr;
547  number = 0;
548  sum_low = 0;
549  sum_high = 0;
550 
551  }
552 
553  if (number == 0) sum_low = low;
554  if (number == 0) sum_high = high;
555 
556  if ( !file.good() ) file.close();
557  }
558 
559  file.close();
560  ext_lut.push_back(tmplut);
561  }
562  return 0;
563 
564 }
std::vector< LUTParams::extLUT > ext_lut() const
const int MAX_EXT
Extrapolation
std::string fullPath() const
Definition: FileInPath.cc:184
Definition: memstream.h:15
int L1TMuonBarrelParamsHelper::load_phi ( std::vector< LUT > &  phi_lut,
unsigned short int  nbit_phi,
unsigned short int  nbit_phib,
std::string  AssLUTpath 
)
private

Definition at line 389 of file L1TMuonBarrelParamsHelper.cc.

References L1TriggerLutFile::close(), FrontierConditions_GlobalTag_cff::file, edm::FileInPath::fullPath(), L1TriggerLutFile::good(), training_settings::idx, L1TriggerLutFile::open(), phi, and L1TriggerLutFile::readInteger().

Referenced by configFromPy().

393  {
394 
395 
396  // precision : in the look-up tables the following precision is used :
397  // address (phib) ...10 bits, phi ... 12 bits
398 
399  int sh_phi = 12 - nbit_phi;
400  int sh_phib = 10 - nbit_phib;
401 
402  string phi_str;
403  // loop over all phi-assignment methods
404  for ( int idx = 0; idx < 2; idx++ ) {
405  switch ( idx ) {
406  case 0 : { phi_str = "phi12"; break; }
407  case 1 : { phi_str = "phi42"; break; }
408  }
409 
410  // assemble file name
411  edm::FileInPath lut_f = edm::FileInPath(string(AssLUTpath + phi_str + ".lut"));
412  string phi_file = lut_f.fullPath();
413 
414  // open file
415  L1TriggerLutFile file(phi_file);
416  if ( file.open() != 0 ) return -1;
417 
418  LUT tmplut;
419 
420  int number = -1;
421  int adr_old = -512 >> sh_phib;
422  int sum_phi = 0;
423 
424  // read values
425  while ( file.good() ) {
426 
427  int adr = (file.readInteger()) >> sh_phib;
428  int phi = file.readInteger();
429 
430  number++;
431 
432  if ( adr != adr_old ) {
433  assert(number);
434  tmplut.insert(make_pair( adr_old, ((sum_phi/number) >> sh_phi) ));
435 
436  adr_old = adr;
437  number = 0;
438  sum_phi = 0;
439  }
440 
441  sum_phi += phi;
442 
443  if ( !file.good() ) file.close();
444 
445  }
446 
447  file.close();
448  phi_lut.push_back(tmplut);
449  }
450  return 0;
451 
452 }
std::vector< LUT > phi_lut() const
std::string fullPath() const
Definition: FileInPath.cc:184
std::vector< unsigned short int > LUT
Definition: DTTracoLUTs.h:32
int L1TMuonBarrelParamsHelper::load_pt ( std::vector< LUT > &  pta_lut,
std::vector< int > &  pta_threshold,
unsigned short int  nbitphi,
std::string  AssLUTpath 
)
private

if configDB

Definition at line 282 of file L1TMuonBarrelParamsHelper.cc.

References L1TriggerLutFile::close(), FrontierConditions_GlobalTag_cff::file, edm::FileInPath::fullPath(), L1TriggerLutFile::good(), MAX_PTASSMETH, NODEF, L1TriggerLutFile::open(), EnergyCorrector::pt, PT12H, PT12L, PT13H, PT13L, PT14H, PT14L, PT23H, PT23L, PT24H, PT24L, PT34H, PT34L, L1TriggerLutFile::readInteger(), edm::shift, and ctppsDiamondLocalTracks_cfi::threshold.

Referenced by configFromPy().

286  {
287 
288 
289 // maximal number of pt assignment methods
290 const int MAX_PTASSMETH = 19;
291 const int MAX_PTASSMETHA = 12;
292 
293 // pt assignment methods
296  PB12H, PB13H, PB14H, PB21H, PB23H, PB24H, PB34H,
297  NODEF };
298 
299  // get directory name
300  string pta_str = "";
301  // precision : in the look-up tables the following precision is used :
302  // phi ...12 bits (address) and pt ...5 bits
303  // now convert phi and phib to the required precision
304  int nbit_phi = nbitphi;
305  int sh_phi = 12 - nbit_phi;
306 
307  // loop over all pt-assignment methods
308  for ( int pam = 0; pam < MAX_PTASSMETH; pam++ ) {
309  switch ( pam ) {
310  case PT12L : { pta_str = "pta12l"; break; }
311  case PT12H : { pta_str = "pta12h"; break; }
312  case PT13L : { pta_str = "pta13l"; break; }
313  case PT13H : { pta_str = "pta13h"; break; }
314  case PT14L : { pta_str = "pta14l"; break; }
315  case PT14H : { pta_str = "pta14h"; break; }
316  case PT23L : { pta_str = "pta23l"; break; }
317  case PT23H : { pta_str = "pta23h"; break; }
318  case PT24L : { pta_str = "pta24l"; break; }
319  case PT24H : { pta_str = "pta24h"; break; }
320  case PT34L : { pta_str = "pta34l"; break; }
321  case PT34H : { pta_str = "pta34h"; break; }
322  case PB12H : { pta_str = "ptb12h_Feb2016"; break; }
323  case PB13H : { pta_str = "ptb13h_Feb2016"; break; }
324  case PB14H : { pta_str = "ptb14h_Feb2016"; break; }
325  case PB21H : { pta_str = "ptb21h_Feb2016"; break; }
326  case PB23H : { pta_str = "ptb23h_Feb2016"; break; }
327  case PB24H : { pta_str = "ptb24h_Feb2016"; break; }
328  case PB34H : { pta_str = "ptb34h_Feb2016"; break; }
329 
330  }
331 
332  // assemble file name
333  string lutpath = AssLUTpath;
334  edm::FileInPath lut_f = edm::FileInPath(string(lutpath + pta_str + ".lut"));
335  string pta_file = lut_f.fullPath();
336 
337  // open file
338  L1TriggerLutFile file(pta_file);
339  if ( file.open() != 0 ) return -1;
340 
341  // get the right shift factor
342  int shift = sh_phi;
343  int adr_old = -2048 >> shift;
344  if (pam >= MAX_PTASSMETHA) adr_old = -512 >> shift;
345 
346  LUT tmplut;
347 
348  int number = -1;
349  int sum_pt = 0;
350 
351  if ( file.good() ) {
352  int threshold = file.readInteger();
353  pta_threshold[pam/2] = threshold;
354  }
355 
356  // read values and shift to correct precision
357  while ( file.good() ) {
358 
359  int adr = (file.readInteger()) >> shift;
360  int pt = file.readInteger();
361 
362  number++;
363  //cout<<pam<<" "<<number<<" "<<MAX_PTASSMETHA<<endl;
364  if ( adr != adr_old ) {
365  assert(number);
366  tmplut.insert(make_pair( adr_old, (sum_pt/number) ));
367 
368  adr_old = adr;
369  number = 0;
370  sum_pt = 0;
371  }
372 
373  sum_pt += pt;
374 
375  if ( !file.good() ) file.close();
376 
377  }
378 
379  file.close();
380  pta_lut.push_back(tmplut);
381  }
382  return 0;
383 
384 }
std::vector< LUT > pta_lut() const
std::vector< int > pta_threshold() const
static unsigned int const shift
std::string fullPath() const
Definition: FileInPath.cc:184
std::vector< unsigned short int > LUT
Definition: DTTracoLUTs.h:32
const int MAX_PTASSMETH
PtAssMethod
std::vector<LUT> L1TMuonBarrelParamsHelper::phi_lut ( ) const
inline
void L1TMuonBarrelParamsHelper::print ( std::ostream &  out) const

Definition at line 3 of file L1TMuonBarrelParamsHelper.cc.

References L1TMuonBarrelParams::fwVersion_.

Referenced by setFwVersion().

3  {
4 
5  out << "L1 BMTF Parameters" << std::endl;
6 
7  out << "Firmware version: " << fwVersion_ << std::endl;
8 }
std::vector<LUT> L1TMuonBarrelParamsHelper::pta_lut ( ) const
inline
std::vector<int> L1TMuonBarrelParamsHelper::pta_threshold ( ) const
inline
qpLUT L1TMuonBarrelParamsHelper::qp_lut ( ) const
inline
void L1TMuonBarrelParamsHelper::set_BX_max ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_BX_min ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_DisableNewAlgo ( bool  par1)
inline
void L1TMuonBarrelParamsHelper::set_EtaTrackFinder ( bool  par1)
inline
void L1TMuonBarrelParamsHelper::set_Extrapolation_21 ( bool  par1)
inline
void L1TMuonBarrelParamsHelper::set_Extrapolation_Filter ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_Extrapolation_nbits_Phi ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_Extrapolation_nbits_PhiB ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_Open_LUTs ( bool  par1)
inline
void L1TMuonBarrelParamsHelper::set_OutOfTime_Filter ( bool  par1)
inline
void L1TMuonBarrelParamsHelper::set_OutOfTime_Filter_Window ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_PHI_Assignment_nbits_Phi ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_PHI_Assignment_nbits_PhiB ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_PT_Assignment_nbits_Phi ( int  par1)
inline
void L1TMuonBarrelParamsHelper::set_PT_Assignment_nbits_PhiB ( int  par1)
inline
void L1TMuonBarrelParamsHelper::setAssLUTPath ( std::string  path)
inline

Definition at line 46 of file L1TMuonBarrelParamsHelper.h.

References L1TMuonBarrelParams::CONFIG, and L1TMuonBarrelParams::pnodes_.

Referenced by configFromPy().

46 { pnodes_[CONFIG].sparams_.push_back(path); }
std::vector< Node > pnodes_
void L1TMuonBarrelParamsHelper::seteta_lut ( etaLUT  eta_lut)
inline
void L1TMuonBarrelParamsHelper::setext_lut ( std::vector< LUTParams::extLUT >  extlut)
inline
void L1TMuonBarrelParamsHelper::setFwVersion ( unsigned  fwVersion)
inline
void L1TMuonBarrelParamsHelper::setphi_lut ( std::vector< LUT philut)
inline
void L1TMuonBarrelParamsHelper::setpta_lut ( std::vector< LUT ptalut)
inline
void L1TMuonBarrelParamsHelper::setpta_threshold ( std::vector< int >  ptathresh)
inline
void L1TMuonBarrelParamsHelper::setqp_lut ( qpLUT  qplut)
inline

Member Data Documentation

L1MuDTEtaPatternLut L1TMuonBarrelParamsHelper::l1mudttfetaplut

Definition at line 111 of file L1TMuonBarrelParamsHelper.h.

Referenced by configFromPy().

L1MuDTQualPatternLut L1TMuonBarrelParamsHelper::l1mudttfqualplut

friend std::ostream& operator<<(std::ostream& o, const L1TMuonBarrelParams & p) { p.print(o); return o; }

Definition at line 110 of file L1TMuonBarrelParamsHelper.h.

Referenced by configFromPy().