CMS 3D CMS Logo

L1MuBMEtaProcessor.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: L1MuBMEtaProcessor
4 //
5 // Description: Eta Processor
6 //
7 // An Eta Processor consists of :
8 // a receiver unit,
9 // one Eta Track Finder (ETF) and
10 // one Eta Matching Unit (EMU)
11 //
12 //
13 // Author :
14 // N. Neumeister CERN EP
15 // J. Troconiz UAM Madrid
16 //Modifications:
17 // G.Karathanasis U.Athens
18 //
19 //--------------------------------------------------
20 
21 //-----------------------
22 // This Class's Header --
23 //-----------------------
24 
26 
27 //---------------
28 // C++ Headers --
29 //---------------
30 
31 #include <iostream>
32 #include <iomanip>
33 #include <bitset>
34 
35 //-------------------------------
36 // Collaborating Class Headers --
37 //-------------------------------
38 
49 
53 
54 using namespace std;
55 
56 // --------------------------------
57 // class L1MuBMEtaProcessor
58 //---------------------------------
59 
60 //----------------
61 // Constructors --
62 //----------------
63 
65  : m_tf(tf),
66  m_epid(id),
67  m_foundPattern(0),
68  m_tseta(15),
69  m_DTDigiToken(iC.consumes<L1MuDTChambThContainer>(L1MuBMTFConfig::getBMThetaDigiInputTag())) {
70  m_tseta.reserve(15);
71 }
72 
73 //--------------
74 // Destructor --
75 //--------------
76 
78 
79 //--------------
80 // Operations --
81 //--------------
82 
83 //
84 // run Eta Processor
85 //
88  receiveData(bx, e, c);
90  }
91 
94 
95  assign();
96 }
97 
98 //
99 // reset Eta Processor
100 //
102  vector<const L1MuBMTrackSegEta*>::iterator iter = m_tseta.begin();
103  while (iter != m_tseta.end()) {
104  if (*iter) {
105  delete *iter;
106  *iter = nullptr;
107  }
108  iter++;
109  }
110 
111  m_tseta.clear();
112 
113  for (int i = 0; i < 12; i++) {
114  m_eta[i] = 99;
115  m_fine[i] = false;
116  m_pattern[i] = 0;
117  m_address[i] = 0;
118  m_TrackCand[i] = nullptr;
119  m_TracKCand[i] = nullptr;
120  }
121 
122  m_foundPattern.clear();
123 
124  m_mask = true;
125 }
126 
127 //
128 // print track candidates found in Eta Processor
129 //
131  bool empty1 = true;
132  for (int i = 0; i < 15; i++) {
133  empty1 &= (m_tseta[i] == nullptr || m_tseta[i]->empty());
134  }
135 
136  bool empty2 = true;
137  for (int i = 0; i < 12; i++) {
138  empty2 &= (m_address[i] == 0);
139  }
140 
141  if (!empty1 || !empty2) {
142  cout << "Eta processor " << m_epid << " : " << endl;
143 
144  // print local pattern
145  if (!empty1) {
146  cout << "Local pattern : " << endl;
147  for (int i = 0; i < 15; i++) {
148  if ((i + 5) % 5 == 0)
149  cout << "station " << m_tseta[i]->station() << " : ";
150  bitset<7> pos(m_tseta[i]->position());
151  bitset<7> qua(m_tseta[i]->quality());
152  for (int j = 6; j >= 0; j--) {
153  cout << pos[j] + qua[j];
154  }
155  cout << " ";
156  if ((i + 1) % 5 == 0)
157  cout << endl;
158  }
159  cout << "Found patterns :" << endl;
160  vector<int>::const_iterator iter;
161  for (iter = m_foundPattern.begin(); iter != m_foundPattern.end(); iter++) {
163  int qualitycode = p.quality();
164  cout << "ID = " << setw(4) << p.id() << " "
165  << "eta = " << setw(3) << p.eta() << " "
166  << "quality = " << setw(2) << qualitycode << " (" << quality(qualitycode, 1) << " "
167  << quality(qualitycode, 2) << " " << quality(qualitycode, 3) << ")";
168  for (int i = 0; i < 12; i++) {
169  if (m_pattern[i] == p.id())
170  cout << " <--";
171  }
172  cout << endl;
173  }
174  }
175 
176  cout << "Received addresses : " << endl;
177  for (int i = 0; i < 12; i++)
178  cout << setw(3) << m_address[i] << " ";
179  cout << endl;
180 
181  if (!empty1) {
182  cout << "Matched patterns : " << endl;
183  for (int i = 0; i < 12; i++) {
184  if (m_fine[i]) {
186  int fineeta = p.eta();
187  int coarseeta = theQualPatternLUT.getCoarseEta(i / 2 + 1, m_address[i]);
188  cout << "Index = " << setw(2) << i << ", "
189  << "address = " << setw(2) << m_address[i] << " --> "
190  << "pattern = " << setw(4) << m_pattern[i] << " "
191  << "eta (coarse) = " << setw(3) << coarseeta << " "
192  << "eta (fine) = " << setw(3) << fineeta << " "
193  << "quality = " << setw(2) << p.quality() << endl;
194  }
195  }
196  }
197 
198  cout << "Eta values and fine bits : " << endl;
199  for (int i = 0; i < 12; i++)
200  cout << setw(3) << m_eta[i] << " ";
201  cout << endl;
202  for (int i = 0; i < 12; i++)
203  cout << setw(3) << m_fine[i] << " ";
204  cout << endl;
205  }
206 }
207 
208 //
209 // receive data ( 15*3 BBMX eta trigger primitives )
210 //
212  //c.get< L1MuDTTFMasksRcd >().get( msks );
213  const L1TMuonBarrelParamsRcd& bmtfParamsRcd = c.get<L1TMuonBarrelParamsRcd>();
214  bmtfParamsRcd.get(bmtfParamsHandle);
215  const L1TMuonBarrelParams& bmtfParams = *bmtfParamsHandle.product();
216  msks = bmtfParams.l1mudttfmasks;
217  theEtaPatternLUT.m_lut = bmtfParams.lutparams_.eta_lut_; //l1mudttfetaplut; // ETF look-up table
218  theQualPatternLUT.m_lut = bmtfParams.lutparams_.qp_lut_; //l1mudttfqualplut; // EMU look-up tables
219 
221  // e.getByLabel(L1MuBMTFConfig::getBMThetaDigiInputTag(),dttrig);
222  e.getByToken(m_DTDigiToken, dttrig);
223 
224  // const int bx_offset = dttrig->correctBX();
225  int bx_offset = 0;
226  bx = bx + bx_offset;
227 
228  //
229  // get 5*3 eta track segments
230  //
231  int sector = m_epid;
232  for (int stat = 1; stat <= 3; stat++) {
233  for (int wheel = -2; wheel <= 2; wheel++) {
234  L1MuDTChambThDigi const* tseta = dttrig->chThetaSegm(wheel, stat, sector, bx);
235  bitset<7> pos;
236  bitset<7> qual;
237 
238  int lwheel = wheel + 1;
239  if (wheel < 0)
240  lwheel = wheel - 1;
241 
242  bool masked = false;
243  if (stat == 1)
244  masked = msks.get_etsoc_chdis_st1(lwheel, sector);
245  if (stat == 2)
246  masked = msks.get_etsoc_chdis_st2(lwheel, sector);
247  if (stat == 3)
248  masked = msks.get_etsoc_chdis_st3(lwheel, sector);
249 
250  if (!masked)
251  m_mask = false;
252 
253  if (tseta && !masked) {
254  if (wheel == -2 || wheel == -1 ||
255  (wheel == 0 && (sector == 0 || sector == 3 || sector == 4 || sector == 7 || sector == 8 || sector == 11))) {
256  for (int i = 0; i < 7; i++) {
257  if (tseta->position(i))
258  pos.set(6 - i);
259  if (tseta->quality(i))
260  qual.set(6 - i);
261  }
262  } else {
263  for (int i = 0; i < 7; i++) {
264  if (tseta->position(i))
265  pos.set(i);
266  if (tseta->quality(i))
267  qual.set(i);
268  }
269  }
270  }
271 
272  const L1MuBMTrackSegEta* tmpts =
273  new L1MuBMTrackSegEta(wheel, sector, stat, pos.to_ulong(), qual.to_ulong(), bx - bx_offset);
274  m_tseta.push_back(tmpts);
275  }
276  }
277 }
278 
279 //
280 // receive track addresses from 6 Sector Processors
281 //
283  // get track address code of all track segments
284  // 6*2 times 5 bits; valid range [1-22]
285 
286  int sector = m_epid;
287 
288  int i = 0;
289  for (int wheel = -3; wheel <= 3; wheel++) {
290  if (wheel == 0)
291  continue;
292  L1MuBMSecProcId tmpspid(wheel, sector);
293  for (int number = 0; number < 2; number++) {
294  const L1MuBMTrack* cand = m_tf.sp(tmpspid)->track(number);
295  const L1MuBMTrack* canD = m_tf.sp(tmpspid)->tracK(number);
296  if (cand) {
297  m_address[i] = cand->address().trackAddressCode();
298  if (!cand->empty()) {
299  m_TrackCand[i] = const_cast<L1MuBMTrack*>(cand);
300  m_TracKCand[i] = const_cast<L1MuBMTrack*>(canD);
301  }
302  i++;
303  }
304  }
305  }
306 }
307 
308 //
309 // run Eta Track Finder (ETF)
310 //
312  //c.get< L1MuDTEtaPatternLutRcd >().get( theEtaPatternLUT );
313  const L1TMuonBarrelParamsRcd& bmtfParamsRcd = c.get<L1TMuonBarrelParamsRcd>();
314  bmtfParamsRcd.get(bmtfParamsHandle);
315  const L1TMuonBarrelParams& bmtfParams = *bmtfParamsHandle.product();
316  theEtaPatternLUT.m_lut = bmtfParams.lutparams_.eta_lut_; //l1mudttfetaplut; // ETF look-up table
317 
318  // check if there are any data
319  bool empty = true;
320  for (int i = 0; i < 15; i++) {
321  empty &= m_tseta[i]->empty();
322  }
323  if (empty)
324  return;
325 
326  // Pattern comparator:
327  // loop over all patterns and compare with local chamber pattern
328  // result : list of valid pattern IDs ( m_foundPattern )
330  while (it != theEtaPatternLUT.end()) {
331  const L1MuDTEtaPattern pattern = (*it).second;
332  int qualitycode = pattern.quality();
333 
334  bool good = true;
335 
336  for (int station = 0; station < 3; station++) {
337  int q = quality(qualitycode, station + 1);
338  int wheel = pattern.wheel(station + 1);
339  int bin = pattern.position(station + 1);
340  if (bin == 0)
341  continue;
342  bitset<7> pos = m_tseta[wheel + 2 + station * 5]->position();
343  bitset<7> qual = m_tseta[wheel + 2 + station * 5]->quality();
344  // compare position
345  good &= pos.test(bin - 1);
346  // compare quality
347  if (q == 2)
348  good &= qual.test(bin - 1);
349  }
350 
351  if (good)
352  m_foundPattern.push_back(pattern.id());
353 
354  it++;
355  }
356 }
357 
358 //
359 // run Eta Matching Unit (EMU)
360 //
362  //c.get< L1MuDTQualPatternLutRcd >().get( theQualPatternLUT );
363  const L1TMuonBarrelParamsRcd& bmtfParamsRcd = c.get<L1TMuonBarrelParamsRcd>();
364  bmtfParamsRcd.get(bmtfParamsHandle);
365  const L1TMuonBarrelParams& bmtfParams = *bmtfParamsHandle.product();
366  theQualPatternLUT.m_lut = bmtfParams.lutparams_.qp_lut_; //l1mudttfqualplut; // EMU look-up tables
367 
368  // loop over all addresses
369  for (int i = 0; i < 12; i++) {
370  int adr = m_address[i];
371  if (adr == 0)
372  continue;
373  int sp = i / 2 + 1; //sector processor [1,6]
374 
375  // assign coarse eta value
376  if (!m_mask)
378 
379  if (m_foundPattern.empty())
380  continue;
381 
382  // get list of qualified patterns ordered by quality
383  // and compare with found patterns
384  const vector<short>& qualifiedPatterns = theQualPatternLUT.getQualifiedPatterns(sp, adr);
385  vector<short>::const_iterator iter;
386  vector<int>::const_iterator f_iter;
387  for (iter = qualifiedPatterns.begin(); iter != qualifiedPatterns.end(); iter++) {
388  f_iter = find(m_foundPattern.begin(), m_foundPattern.end(), (*iter));
389  // found
390  if (f_iter != m_foundPattern.end()) {
392  // assign fine eta value
393  m_fine[i] = true;
394  m_eta[i] = p.eta(); // improved eta
395  ;
396  m_pattern[i] = (*f_iter);
397  break;
398  }
399  }
400  }
401 
402  // if both tracks from one sector processor deliver the same track address
403  // both tracks get only a coarse eta value!
404 
405  // loop over sector processors
406  for (int i = 0; i < 6; i++) {
407  int idx1 = 2 * i;
408  int idx2 = 2 * i + 1;
409  int adr1 = m_address[idx1];
410  int adr2 = m_address[idx2];
411  if (adr1 == 0 || adr2 == 0)
412  continue;
413  if (adr1 == adr2 && !m_mask) {
414  // both tracks get coarse (default) eta value
415  m_eta[idx1] = theQualPatternLUT.getCoarseEta(i + 1, adr1);
416  m_pattern[idx1] = 0;
417  m_fine[idx1] = false;
418  m_eta[idx2] = theQualPatternLUT.getCoarseEta(i + 1, adr2);
419 
420  m_pattern[idx2] = 0;
421  m_fine[idx2] = false;
422  }
423  }
424 }
425 
426 //
427 // assign values to track candidates
428 //
430  for (int i = 0; i < 12; i++) {
431  if (m_TrackCand[i]) {
432  if (m_eta[i] != 99) {
433  m_TrackCand[i]->setEta(m_eta[i]);
434  m_TracKCand[i]->setEta(m_eta[i]);
435  } else {
436  // if ( i/2 != 2 ) cerr << "L1MuBMEtaProcessor: assign invalid eta" << " " << m_address[i] << endl;
437  }
438  if (m_fine[i]) {
441  // find all contributing track segments
443  vector<const L1MuBMTrackSegEta*> TSeta;
444  const L1MuBMTrackSegEta* ts = nullptr;
445  for (int stat = 0; stat < 3; stat++) {
446  int wh = p.wheel(stat + 1);
447  int pos = p.position(stat + 1);
448  if (pos == 0)
449  continue;
450  ts = m_tseta[wh + 2 + stat * 5];
451  TSeta.push_back(ts);
452  }
453  m_TrackCand[i]->setTSeta(TSeta);
454  m_TracKCand[i]->setTSeta(TSeta);
455  }
456  }
457  }
458 }
459 
460 //
461 // get quality: id [0,26], stat [1,3]
462 //
464  // quality codes as defined in CMS Note 2001/027
465  // This QualityPatterns are used to have a defined Quality-Identifier for
466  // all possible found tracks.
467  // Therefore three integer numbers ( Station 1, 2, 3 from left to right )
468  // can have numbers like 0, 1 or 2
469  // 0 ... no hit is given
470  // 1 ... a LTRG is given
471  // 2 ... a HTRG is given
472 
473  const int qualcode[27][3] = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {2, 0, 0}, {0, 2, 0}, {0, 0, 2},
474  {1, 1, 0}, {1, 0, 1}, {0, 1, 1}, {2, 1, 0}, {1, 2, 0}, {2, 0, 1}, {1, 0, 2},
475  {0, 2, 1}, {0, 1, 2}, {2, 2, 0}, {2, 0, 2}, {0, 2, 2}, {1, 1, 1}, {2, 1, 1},
476  {1, 2, 1}, {1, 1, 2}, {2, 2, 1}, {2, 1, 2}, {1, 2, 2}, {2, 2, 2}};
477 
478  return qualcode[id][stat - 1];
479 }
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
L1MuDTEtaPattern
Definition: L1MuDTEtaPattern.h:46
L1MuBMEtaProcessor::m_TrackCand
L1MuBMTrack * m_TrackCand[12]
Definition: L1MuBMEtaProcessor.h:123
L1MuBMTrackSegEta
Definition: L1MuBMTrackSegEta.h:41
mps_fire.i
i
Definition: mps_fire.py:428
L1MuDTChambThDigi::position
int position(const int i) const
Definition: L1MuDTChambThDigi.cc:90
L1MuBMEtaProcessor::id
int id() const
return Eta Processor identifier (0-11)
Definition: L1MuBMEtaProcessor.h:71
L1MuBMTEtaPatternLut::begin
ETFLut_iter begin() const
return iterator which points to the first entry of the LUT
Definition: L1MuBMTEtaPatternLut.h:71
L1TMuonBarrelParams::lutparams_
LUTParams lutparams_
Definition: L1TMuonBarrelParams.h:110
L1MuDTTFMasks::get_etsoc_chdis_st3
bool get_etsoc_chdis_st3(int wh, int sc) const
Definition: L1MuDTTFMasks.cc:153
L1MuBMEtaProcessor::m_tseta
std::vector< const L1MuBMTrackSegEta * > m_tseta
Definition: L1MuBMEtaProcessor.h:125
L1MuBMEtaProcessor.h
relativeConstraints.station
station
Definition: relativeConstraints.py:67
L1MuBMSecProcId
Definition: L1MuBMSecProcId.h:40
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
gather_cfg.cout
cout
Definition: gather_cfg.py:144
pos
Definition: PixelAliasList.h:18
L1MuBMEtaProcessor::theQualPatternLUT
L1MuBMTQualPatternLut theQualPatternLUT
Definition: L1MuBMEtaProcessor.h:133
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
L1MuBMEtaProcessor::runEtaTrackFinder
void runEtaTrackFinder(const edm::EventSetup &c)
run Eta Track Finder (ETF)
Definition: L1MuBMEtaProcessor.cc:311
L1MuBMEtaProcessor::bmtfParamsHandle
edm::ESHandle< L1TMuonBarrelParams > bmtfParamsHandle
Definition: L1MuBMEtaProcessor.h:130
L1MuBMEtaProcessor::m_DTDigiToken
edm::EDGetTokenT< L1MuDTChambThContainer > m_DTDigiToken
Definition: L1MuBMEtaProcessor.h:135
L1MuBMTrackFinder.h
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle< L1MuDTChambThContainer >
L1MuBMEtaProcessor::print
void print() const
print muon candidates found by the Eta Processor
Definition: L1MuBMEtaProcessor.cc:130
L1MuBMEtaProcessor::~L1MuBMEtaProcessor
virtual ~L1MuBMEtaProcessor()
destructor
Definition: L1MuBMEtaProcessor.cc:77
L1MuBMEtaProcessor::m_TracKCand
L1MuBMTrack * m_TracKCand[12]
Definition: L1MuBMEtaProcessor.h:124
L1TMuonBarrelParams::l1mudttfmasks
L1MuDTTFMasks l1mudttfmasks
Definition: L1TMuonBarrelParams.h:66
hgcalPlots.stat
stat
Definition: hgcalPlots.py:1119
contentValuesFiles.number
number
Definition: contentValuesFiles.py:53
L1MuBMTEtaPatternLut::m_lut
LUT m_lut
Definition: L1MuBMTEtaPatternLut.h:77
L1MuBMEtaProcessor::m_mask
int m_mask
Definition: L1MuBMEtaProcessor.h:114
L1MuBMEtaProcessor::m_epid
int m_epid
Definition: L1MuBMEtaProcessor.h:112
L1MuBMEtaProcessor::m_pattern
int m_pattern[12]
Definition: L1MuBMEtaProcessor.h:120
L1MuBMEtaProcessor::msks
L1MuDTTFMasks msks
Definition: L1MuBMEtaProcessor.h:131
L1MuBMEtaProcessor::quality
static int quality(int id, int stat)
get quality code; id [0,26], stat [1,3]
Definition: L1MuBMEtaProcessor.cc:463
L1MuBMTEtaPatternLut::ETFLut_iter
LUT::const_iterator ETFLut_iter
Definition: L1MuBMTEtaPatternLut.h:44
L1MuDTTFMasks.h
L1TMuonBarrelParams::LUTParams::qp_lut_
qpLUT qp_lut_
Definition: L1TMuonBarrelParams.h:85
L1MuBMTFConfig::getEtaTF
static bool getEtaTF()
Definition: L1MuBMTFConfig.h:65
L1MuBMEtaProcessor::m_tf
const L1MuBMTrackFinder & m_tf
Definition: L1MuBMEtaProcessor.h:111
L1TMuonBarrelParams::LUTParams::eta_lut_
etaLUT eta_lut_
Definition: L1TMuonBarrelParams.h:86
L1MuDTTFMasks::get_etsoc_chdis_st2
bool get_etsoc_chdis_st2(int wh, int sc) const
Definition: L1MuDTTFMasks.cc:141
L1MuBMTrack::setTSeta
void setTSeta(const std::vector< const L1MuBMTrackSegEta * > &tsList)
set eta track segments used to form the muon candidate
Definition: L1MuBMTrack.cc:160
L1MuBMEtaProcessor::m_eta
int m_eta[12]
Definition: L1MuBMEtaProcessor.h:116
L1MuBMTFConfig.h
L1MuBMEtaProcessor::run
virtual void run(int bx, const edm::Event &e, const edm::EventSetup &c)
run the Eta Processor
Definition: L1MuBMEtaProcessor.cc:86
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
cand
Definition: decayParser.h:32
L1MuBMEtaProcessor::m_address
int m_address[12]
Definition: L1MuBMEtaProcessor.h:122
L1MuBMTQualPatternLut::getQualifiedPatterns
const std::vector< short > & getQualifiedPatterns(int sp, int adr) const
get list of qualified patterns for a given sector processor [1-6] and address [1-22]
Definition: L1MuBMTQualPatternLut.cc:187
L1MuBMTrack
Definition: L1MuBMTrack.h:49
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
L1MuBMSecProcId.h
L1MuBMTQualPatternLut::m_lut
LUT m_lut
Definition: L1MuBMTQualPatternLut.h:82
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
L1MuBMTrack::setEta
void setEta(int eta)
set eta-code of muon candidate
Definition: L1MuBMTrack.cc:118
L1MuBMEtaProcessor::receiveAddresses
void receiveAddresses()
receive addresses (from 6 Sector Processors)
Definition: L1MuBMEtaProcessor.cc:282
submitPVResolutionJobs.q
q
Definition: submitPVResolutionJobs.py:84
edm::EventSetup
Definition: EventSetup.h:57
L1MuBMSectorProcessor::track
L1MuBMTrack * track(int id) const
return pointer to muon candidate, index [0,1]
Definition: L1MuBMSectorProcessor.h:100
L1MuDTChambThDigi::quality
int quality(const int i) const
Definition: L1MuDTChambThDigi.cc:97
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
L1MuBMEtaProcessor::receiveData
void receiveData(int bx, const edm::Event &e, const edm::EventSetup &c)
receive data (eta trigger primitives)
Definition: L1MuBMEtaProcessor.cc:211
L1MuBMEtaProcessor::m_fine
bool m_fine[12]
Definition: L1MuBMEtaProcessor.h:117
L1MuBMEtaProcessor::m_foundPattern
std::vector< int > m_foundPattern
Definition: L1MuBMEtaProcessor.h:119
L1MuBMTrack::setFineEtaBit
void setFineEtaBit()
set fine eta bit
Definition: L1MuBMTrack.h:151
L1MuBMTEtaPatternLut::getPattern
L1MuDTEtaPattern getPattern(int id) const
get pattern with a given ID
Definition: L1MuBMTEtaPatternLut.cc:149
L1MuDTChambThContainer::chThetaSegm
L1MuDTChambThDigi const * chThetaSegm(int wheel, int stat, int sect, int bx) const
Definition: L1MuDTChambThContainer.cc:65
newFWLiteAna.bin
bin
Definition: newFWLiteAna.py:161
L1MuDTEtaPatternLutRcd.h
std
Definition: JetResolutionObject.h:76
L1MuBMTQualPatternLut::getCoarseEta
int getCoarseEta(int sp, int adr) const
get coarse eta value for a given sector processor [1-6] and address [1-22]
Definition: L1MuBMTQualPatternLut.cc:174
L1MuBMEtaProcessor::assign
void assign()
assign eta and etaFineBit
Definition: L1MuBMEtaProcessor.cc:429
L1MuDTQualPatternLutRcd.h
L1MuDTChambThDigi
Definition: L1MuDTChambThDigi.h:33
L1MuBMEtaProcessor::L1MuBMEtaProcessor
L1MuBMEtaProcessor(const L1MuBMTrackFinder &, int id, edm::ConsumesCollector &&iC)
constructor
Definition: L1MuBMEtaProcessor.cc:64
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
L1MuDTTFMasks::get_etsoc_chdis_st1
bool get_etsoc_chdis_st1(int wh, int sc) const
Definition: L1MuDTTFMasks.cc:129
L1MuBMEtaProcessor::runEtaMatchingUnit
void runEtaMatchingUnit(const edm::EventSetup &c)
run Eta Matching Unit (EMU)
Definition: L1MuBMEtaProcessor.cc:361
L1MuBMEtaProcessor::reset
virtual void reset()
reset the Eta Processor
Definition: L1MuBMEtaProcessor.cc:101
L1MuBMTEtaPatternLut.h
L1MuBMTrackSegEta.h
L1MuBMEtaProcessor::theEtaPatternLUT
L1MuBMTEtaPatternLut theEtaPatternLUT
Definition: L1MuBMEtaProcessor.h:132
edm::eventsetup::EventSetupRecordImplementation::get
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
Definition: EventSetupRecordImplementation.h:74
L1TMuonBarrelParams
Definition: L1TMuonBarrelParams.h:23
L1MuDTTFMasksRcd.h
L1MuBMTrack.h
L1MuDTEtaPattern.h
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
L1MuBMTFConfig
Definition: L1MuBMTFConfig.h:41
edm::Event
Definition: Event.h:73
L1MuDTChambThContainer
Definition: L1MuDTChambThContainer.h:33
L1MuBMSectorProcessor::tracK
L1MuBMTrack * tracK(int id) const
return pointer to muon candidate, index [0,1]
Definition: L1MuBMSectorProcessor.h:103
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
L1MuBMTrackFinder::sp
const L1MuBMSectorProcessor * sp(const L1MuBMSecProcId &) const
get a pointer to a Sector Processor
Definition: L1MuBMTrackFinder.cc:408
L1TMuonBarrelParamsRcd
Definition: L1TMuonBarrelParamsRcd.h:13
L1MuBMSectorProcessor.h
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
L1MuBMTrackFinder
Definition: L1MuBMTrackFinder.h:66
L1MuBMTEtaPatternLut::end
ETFLut_iter end() const
return iterator which points to the one-past-last entry of the LUT
Definition: L1MuBMTEtaPatternLut.h:74