CMS 3D CMS Logo

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