CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
L1MuBMTrackFinder Class Reference

#include <L1MuBMTrackFinder.h>

Public Types

typedef l1t::RegionalMuonCandBxCollection::const_iterator TFtracks_const_iter
 container for muon candidates More...
 
typedef l1t::RegionalMuonCandBxCollection::iterator TFtracks_iter
 

Public Member Functions

TFtracks_const_iter begin (int bx)
 
void clear ()
 
TFtracks_const_iter end (int bx)
 
const L1MuBMEtaProcessorep (int id) const
 get a pointer to an Eta Processor, index [0-11] More...
 
l1t::RegionalMuonCandBxCollectiongetcache ()
 
l1t::RegionalMuonCandBxCollectiongetcache0 ()
 
L1MuBMTrackCollectiongetcache1 ()
 
L1MuBMTrackSegPhiCollectiongetcache2 ()
 
L1MuBMTrackSegEtaCollectiongetcache3 ()
 
 L1MuBMTrackFinder (const edm::ParameterSet &ps, edm::ConsumesCollector &&iC)
 constructor More...
 
const L1MuBMMuonSorterms () const
 get a pointer to the BM Muon Sorter More...
 
int numberOfTracks ()
 get number of muon candidates found by the barrel MTTF More...
 
int numberOfTracks (int bx)
 get number of muon candidates found by the barrel MTTF at a given bx More...
 
void reset ()
 reset the barrel MTTF More...
 
void run (const edm::Event &e, const edm::EventSetup &c)
 run the barrel MTTF More...
 
int setAdd (int ust, int rel_add)
 
void setup (edm::ConsumesCollector &&)
 build the structure of the barrel MTTF More...
 
const L1MuBMSectorProcessorsp (const L1MuBMSecProcId &) const
 get a pointer to a Sector Processor More...
 
const L1MuBMWedgeSorterws (int id) const
 get a pointer to a Wedge Sorter, index [0-11] More...
 
virtual ~L1MuBMTrackFinder ()
 destructor More...
 

Static Public Member Functions

static const L1MuBMTFConfigconfig ()
 return configuration More...
 

Private Member Functions

virtual void reconstruct (const edm::Event &e, const edm::EventSetup &c)
 run Track Finder and store candidates in cache More...
 

Private Attributes

l1t::RegionalMuonCandBxCollection _cache
 
l1t::RegionalMuonCandBxCollection _cache0
 
L1MuBMTrackCollection _cache1
 
L1MuBMTrackSegPhiCollection _cache2
 
L1MuBMTrackSegEtaCollection _cache3
 
edm::EDGetTokenT< L1MuDTChambPhContainerm_DTDigiToken
 
std::vector< L1MuBMEtaProcessor * > m_epvec
 Eta Processors. More...
 
L1MuBMMuonSorterm_ms
 BM Muon Sorter. More...
 
L1MuBMSecProcMapm_spmap
 Sector Processors. More...
 
std::vector< L1MuBMWedgeSorter * > m_wsvec
 Wedge Sorters. More...
 

Static Private Attributes

static L1MuBMTFConfigm_config = nullptr
 Track Finder configuration. More...
 

Detailed Description

L1 barrel Muon Trigger Track Finder (MTTF)

The barrel MTTF consists of:

N. Neumeister CERN EP J. Troconiz UAM Madrid modification: G.Karathanasis UoAthens

Definition at line 66 of file L1MuBMTrackFinder.h.

Member Typedef Documentation

◆ TFtracks_const_iter

container for muon candidates

Definition at line 69 of file L1MuBMTrackFinder.h.

◆ TFtracks_iter

Definition at line 70 of file L1MuBMTrackFinder.h.

Constructor & Destructor Documentation

◆ L1MuBMTrackFinder()

L1MuBMTrackFinder::L1MuBMTrackFinder ( const edm::ParameterSet ps,
edm::ConsumesCollector &&  iC 
)

constructor

Definition at line 60 of file L1MuBMTrackFinder.cc.

61  : _cache0(144, -9, 8), _cache(36, -9, 8) {
62  // set configuration parameters
63  if (m_config == nullptr)
64  m_config = new L1MuBMTFConfig(ps);
65 
66  if (L1MuBMTFConfig::Debug(1))
67  cout << endl;
68  if (L1MuBMTFConfig::Debug(1))
69  cout << "**** entering L1MuBMTrackFinder ****" << endl;
70  if (L1MuBMTFConfig::Debug(1))
71  cout << endl;
72 
73  m_spmap = new L1MuBMSecProcMap();
74  m_epvec.reserve(12);
75  m_wsvec.reserve(12);
76  m_ms = nullptr;
77 
79 }

References gather_cfg::cout, L1MuBMTFConfig::Debug(), L1MuBMTFConfig::getBMDigiInputTag(), m_config, m_DTDigiToken, m_epvec, m_ms, m_spmap, and m_wsvec.

◆ ~L1MuBMTrackFinder()

L1MuBMTrackFinder::~L1MuBMTrackFinder ( )
virtual

destructor

Definition at line 85 of file L1MuBMTrackFinder.cc.

85  {
86  delete m_spmap;
87 
88  vector<L1MuBMEtaProcessor*>::iterator it_ep = m_epvec.begin();
89  while (it_ep != m_epvec.end()) {
90  delete (*it_ep);
91  it_ep++;
92  }
93  m_epvec.clear();
94 
95  vector<L1MuBMWedgeSorter*>::iterator it_ws = m_wsvec.begin();
96  while (it_ws != m_wsvec.end()) {
97  delete (*it_ws);
98  it_ws++;
99  }
100  m_wsvec.clear();
101 
102  delete m_ms;
103 
104  if (m_config)
105  delete m_config;
106  m_config = nullptr;
107 }

References m_config, m_epvec, m_ms, m_spmap, and m_wsvec.

Member Function Documentation

◆ begin()

L1MuBMTrackFinder::TFtracks_const_iter L1MuBMTrackFinder::begin ( int  bx)

Definition at line 421 of file L1MuBMTrackFinder.cc.

421 { return _cache.begin(bx); }

References _cache, BXVector< T >::begin(), and l1GtPatternGenerator_cfi::bx.

◆ clear()

void L1MuBMTrackFinder::clear ( void  )

Definition at line 425 of file L1MuBMTrackFinder.cc.

425  {
426  _cache.clear();
427  _cache0.clear();
428  _cache1.clear();
429  _cache2.clear();
430  _cache3.clear();
431 }

References _cache, _cache0, _cache1, _cache2, _cache3, and BXVector< T >::clear().

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ config()

static const L1MuBMTFConfig* L1MuBMTrackFinder::config ( void  )
inlinestatic

return configuration

Definition at line 114 of file L1MuBMTrackFinder.h.

114 { return m_config; }

References m_config.

◆ end()

L1MuBMTrackFinder::TFtracks_const_iter L1MuBMTrackFinder::end ( int  bx)

Definition at line 423 of file L1MuBMTrackFinder.cc.

423 { return _cache.end(bx); }

References _cache, l1GtPatternGenerator_cfi::bx, and BXVector< T >::end().

◆ ep()

const L1MuBMEtaProcessor* L1MuBMTrackFinder::ep ( int  id) const
inline

get a pointer to an Eta Processor, index [0-11]

Definition at line 93 of file L1MuBMTrackFinder.h.

93 { return m_epvec[id]; }

References triggerObjects_cff::id, and m_epvec.

Referenced by setup().

◆ getcache()

l1t::RegionalMuonCandBxCollection& L1MuBMTrackFinder::getcache ( )
inline

Definition at line 116 of file L1MuBMTrackFinder.h.

116 { return _cache; }

References _cache.

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ getcache0()

l1t::RegionalMuonCandBxCollection& L1MuBMTrackFinder::getcache0 ( )
inline

Definition at line 117 of file L1MuBMTrackFinder.h.

117 { return _cache0; }

References _cache0.

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ getcache1()

L1MuBMTrackCollection& L1MuBMTrackFinder::getcache1 ( )
inline

Definition at line 118 of file L1MuBMTrackFinder.h.

118 { return _cache1; }

References _cache1.

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ getcache2()

L1MuBMTrackSegPhiCollection& L1MuBMTrackFinder::getcache2 ( )
inline

Definition at line 119 of file L1MuBMTrackFinder.h.

119 { return _cache2; }

References _cache2.

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ getcache3()

L1MuBMTrackSegEtaCollection& L1MuBMTrackFinder::getcache3 ( )
inline

Definition at line 120 of file L1MuBMTrackFinder.h.

120 { return _cache3; }

References _cache3.

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ ms()

const L1MuBMMuonSorter* L1MuBMTrackFinder::ms ( ) const
inline

get a pointer to the BM Muon Sorter

Definition at line 99 of file L1MuBMTrackFinder.h.

99 { return m_ms; }

References m_ms.

◆ numberOfTracks() [1/2]

int L1MuBMTrackFinder::numberOfTracks ( )

get number of muon candidates found by the barrel MTTF

Definition at line 413 of file L1MuBMTrackFinder.cc.

413  {
414  int num = 0;
415  for (int bx = _cache.getFirstBX(); bx < _cache.getLastBX(); ++bx) {
416  num += _cache.size(bx);
417  }
418  return num;
419 }

References _cache, l1GtPatternGenerator_cfi::bx, BXVector< T >::getFirstBX(), BXVector< T >::getLastBX(), EgammaValidation_cff::num, and BXVector< T >::size().

Referenced by L1TMuonBarrelTrackProducer::produce().

◆ numberOfTracks() [2/2]

int L1MuBMTrackFinder::numberOfTracks ( int  bx)

get number of muon candidates found by the barrel MTTF at a given bx

Definition at line 436 of file L1MuBMTrackFinder.cc.

436 { return _cache.size(0); }

References _cache, and BXVector< T >::size().

◆ reconstruct()

virtual void L1MuBMTrackFinder::reconstruct ( const edm::Event e,
const edm::EventSetup c 
)
inlineprivatevirtual

run Track Finder and store candidates in cache

Definition at line 124 of file L1MuBMTrackFinder.h.

124  {
125  reset();
126  run(e, c);
127  }

References HltBtagPostValidation_cff::c, MillePedeFileConverter_cfg::e, reset(), and run().

◆ reset()

void L1MuBMTrackFinder::reset ( void  )

reset the barrel MTTF

Definition at line 379 of file L1MuBMTrackFinder.cc.

379  {
381  while (it_sp != m_spmap->end()) {
382  if ((*it_sp).second)
383  (*it_sp).second->reset();
384  it_sp++;
385  }
386 
387  vector<L1MuBMEtaProcessor*>::iterator it_ep = m_epvec.begin();
388  while (it_ep != m_epvec.end()) {
389  if (*it_ep)
390  (*it_ep)->reset();
391  it_ep++;
392  }
393 
394  vector<L1MuBMWedgeSorter*>::iterator it_ws = m_wsvec.begin();
395  while (it_ws != m_wsvec.end()) {
396  if (*it_ws)
397  (*it_ws)->reset();
398  it_ws++;
399  }
400 
401  if (m_ms)
402  m_ms->reset();
403 }

References L1MuBMSecProcMap::begin(), L1MuBMSecProcMap::end(), m_epvec, m_ms, m_spmap, m_wsvec, and L1MuBMMuonSorter::reset().

Referenced by reconstruct(), and run().

◆ run()

void L1MuBMTrackFinder::run ( const edm::Event e,
const edm::EventSetup c 
)

run the barrel MTTF

Definition at line 160 of file L1MuBMTrackFinder.cc.

160  {
162  int bx_min = L1MuBMTFConfig::getBxMin();
163  int bx_max = L1MuBMTFConfig::getBxMax();
164 
165  //Resize the bx range according to the config file
166  _cache0.setBXRange(bx_min, bx_max);
167  _cache.setBXRange(bx_min, bx_max);
168 
169  // run the barrel Muon Trigger Track Finder
171  e.getByToken(m_DTDigiToken, dttrig);
172  if (dttrig->getContainer()->empty())
173  return;
174 
175  if (L1MuBMTFConfig::Debug(2))
176  cout << endl;
177  if (L1MuBMTFConfig::Debug(2))
178  cout << "**** L1MuBMTrackFinder processing ------****" << endl;
179  if (L1MuBMTFConfig::Debug(2))
180  cout << endl;
181 
182  for (int bx = bx_min; bx <= bx_max; bx++) {
183  if (dttrig->bxEmpty(bx))
184  continue;
185 
186  if (L1MuBMTFConfig::Debug(2))
187  cout << "L1MuBMTrackFinder processing bunch-crossing : " << bx << endl;
188 
189  // reset MTTF
190  reset();
191 
192  // run sector processors
194  while (it_sp != m_spmap->end()) {
195  if (L1MuBMTFConfig::Debug(2))
196  cout << "running " << (*it_sp).second->id() << endl;
197  if ((*it_sp).second)
198  (*it_sp).second->run(bx, e, c);
199  if (L1MuBMTFConfig::Debug(2) && (*it_sp).second)
200  (*it_sp).second->print();
201  it_sp++;
202  }
203 
204  // run eta processors
205  vector<L1MuBMEtaProcessor*>::iterator it_ep = m_epvec.begin();
206  while (it_ep != m_epvec.end()) {
207  if (L1MuBMTFConfig::Debug(2))
208  cout << "running Eta Processor " << (*it_ep)->id() << endl;
209  if (*it_ep)
210  (*it_ep)->run(bx, e, c);
211  if (L1MuBMTFConfig::Debug(2) && *it_ep)
212  (*it_ep)->print();
213  it_ep++;
214  }
215 
216  // read sector processors
217  it_sp = m_spmap->begin();
218  while (it_sp != m_spmap->end()) {
219  if (L1MuBMTFConfig::Debug(2))
220  cout << "reading " << (*it_sp).second->id() << endl;
221  for (int number = 0; number < 2; number++) {
222  const L1MuBMTrack* cand = (*it_sp).second->tracK(number);
223 
224  if (cand && !cand->empty()) {
226 
227  // max value in LUTs is 117
228  if (cand->hwEta() > -117 || cand->hwEta() < 117)
229  rmc.setHwEta(cand->hwEta());
230  else
231  rmc.setHwEta(-1000);
232 
233  rmc.setHwPt(cand->pt());
234  int abs_add_1 = setAdd(1, cand->address(1));
235  int abs_add_2 = setAdd(2, cand->address(2));
236  int abs_add_3 = setAdd(3, cand->address(3));
237  int abs_add_4 = setAdd(4, cand->address(4));
238 
239  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kWheelSide, cand->spid().wheel() < 0); // this has to be set!
241  abs(cand->spid().wheel()) - 1); // this has to be set!
250  rmc.setHwHF(cand->hwHF());
251 
252  rmc.setHwPhi(cand->hwPhi());
253  rmc.setHwSign(cand->hwSign() == 1 ? 0 : 1);
254  rmc.setHwSignValid(cand->hwSignValid());
255  rmc.setHwQual(cand->hwQual());
256  rmc.setTFIdentifiers(cand->spid().sector(), l1t::tftype::bmtf);
257 
258  _cache0.push_back(cand->bx(), rmc);
259  _cache2.insert(std::end(_cache2), std::begin(cand->getTSphi()), std::end(cand->getTSphi()));
260  _cache3.insert(std::end(_cache3), std::begin(cand->getTSeta()), std::end(cand->getTSeta()));
261  }
262  }
263  it_sp++;
264  }
265 
266  // run wedge sorters
267  vector<L1MuBMWedgeSorter*>::iterator it_ws = m_wsvec.begin();
268  while (it_ws != m_wsvec.end()) {
269  if (L1MuBMTFConfig::Debug(2))
270  cout << "running Wedge Sorter " << (*it_ws)->id() << endl;
271  if (*it_ws)
272  (*it_ws)->run();
273  if (L1MuBMTFConfig::Debug(2) && *it_ws)
274  (*it_ws)->print();
275 
276  // store found track candidates in container (cache)
277  if ((*it_ws)->anyMuonCands()) {
278  const vector<const L1MuBMTrack*>& mttf_cont = (*it_ws)->tracks();
279 
280  vector<const L1MuBMTrack*>::const_iterator iter;
281  for (iter = mttf_cont.begin(); iter != mttf_cont.end(); iter++) {
282  if (!*iter)
283  continue;
285  rmc.setHwPt((*iter)->hwPt());
286  int abs_add_1 = setAdd(1, (*iter)->address(1));
287  int abs_add_2 = setAdd(2, (*iter)->address(2));
288  int abs_add_3 = setAdd(3, (*iter)->address(3));
289  int abs_add_4 = setAdd(4, (*iter)->address(4));
290 
292  (*iter)->spid().wheel() < 0); // this has to be set!
294  abs((*iter)->spid().wheel()) - 1); // this has to be set!
303  rmc.setHwHF((*iter)->hwHF());
304 
305  rmc.setHwPhi((*iter)->hwPhi());
306  if ((*iter)->hwEta() > -117 || (*iter)->hwEta() < 117)
307  // rmc.setHwEta(eta_map[(*iter)->hwEta()]);
308  rmc.setHwEta((*iter)->hwEta());
309  else
310  rmc.setHwEta(-1000);
311  rmc.setHwSign((*iter)->hwSign() == 1 ? 0 : 1);
312  rmc.setHwSignValid((*iter)->hwSignValid());
313  rmc.setHwQual((*iter)->hwQual());
314  rmc.setTFIdentifiers((*iter)->spid().sector(), l1t::tftype::bmtf);
315 
316  if (*iter) {
317  _cache.push_back((*iter)->bx(), rmc);
318  _cache1.push_back(**iter);
319  }
320  }
321  }
322 
323  it_ws++;
324 
325  } //end wedge sorting
326 
327  /* // run muon sorter
328  if ( L1MuBMTFConfig::Debug(2) ) cout << "running BM Muon Sorter" << endl;
329  if ( m_ms ) m_ms->run();
330  if ( L1MuBMTFConfig::Debug(2) && m_ms ) m_ms->print();
331 
332 
333  // store found track candidates in container (cache)
334  if ( m_ms->numberOfTracks() > 0 ) {
335  const vector<const L1MuBMTrack*>& mttf_cont = m_ms->tracks();
336  vector<const L1MuBMTrack*>::const_iterator iter;
337  for ( iter = mttf_cont.begin(); iter != mttf_cont.end(); iter++ ) {
338 
339  l1t::RegionalMuonCand rmc;
340  rmc.setHwPt((*iter)->hwPt());
341  int abs_add_1 = setAdd(1,(*iter)->address(1));
342  int abs_add_2 = setAdd(2,(*iter)->address(2));
343  int abs_add_3 = setAdd(3,(*iter)->address(3));
344  int abs_add_4 = setAdd(4,(*iter)->address(4));
345 
346  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kWheelSide, (*iter)->spid().wheel() < 0); // this has to be set!
347  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kWheelNum, abs((*iter)->spid().wheel()) - 1); // this has to be set!
348  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kStat1, abs_add_1);
349  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kStat2, abs_add_2);
350  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kStat3, abs_add_3);
351  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kStat4, abs_add_4);
352  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kSegSelStat1, 0);
353  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kSegSelStat2, 0);
354  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kSegSelStat3, 0);
355  rmc.setTrackSubAddress(l1t::RegionalMuonCand::kSegSelStat4, 0);
356 
357 
358  rmc.setHwPhi((*iter)->hwPhi());
359  if((*iter)->hwEta()>-33 || (*iter)->hwEta()<32 )
360  rmc.setHwEta(eta_map[(*iter)->hwEta()]);
361  else
362  rmc.setHwEta(-1000);
363  rmc.setHwSign((*iter)->hwSign() == 1 ? 0 : 1);
364  rmc.setHwSignValid((*iter)->hwSignValid());
365  rmc.setHwQual((*iter)->hwQual());
366  rmc.setTFIdentifiers((*iter)->spid().sector(),l1t::tftype::bmtf);
367 
368  if ( *iter ){ _cache.push_back((*iter)->bx(), rmc);}
369  }
370  }
371  */
372 
373  } //end of bx loop
374 }

References _cache, _cache0, _cache1, _cache2, _cache3, funct::abs(), begin, L1MuBMSecProcMap::begin(), l1t::bmtf, l1GtPatternGenerator_cfi::bx, L1MuDTChambPhContainer::bxEmpty(), HltBtagPostValidation_cff::c, gather_cfg::cout, L1MuBMTFConfig::Debug(), MillePedeFileConverter_cfg::e, end, L1MuBMSecProcMap::end(), L1MuBMTFConfig::getBxMax(), L1MuBMTFConfig::getBxMin(), L1MuDTChambPhContainer::getContainer(), l1t::RegionalMuonCand::kSegSelStat1, l1t::RegionalMuonCand::kSegSelStat2, l1t::RegionalMuonCand::kSegSelStat3, l1t::RegionalMuonCand::kSegSelStat4, l1t::RegionalMuonCand::kStat1, l1t::RegionalMuonCand::kStat2, l1t::RegionalMuonCand::kStat3, l1t::RegionalMuonCand::kStat4, l1t::RegionalMuonCand::kWheelNum, l1t::RegionalMuonCand::kWheelSide, m_config, m_DTDigiToken, m_epvec, m_spmap, m_wsvec, contentValuesFiles::number, BXVector< T >::push_back(), reset(), setAdd(), BXVector< T >::setBXRange(), L1MuBMTFConfig::setDefaultsES(), l1t::RegionalMuonCand::setHwEta(), l1t::RegionalMuonCand::setHwHF(), l1t::RegionalMuonCand::setHwPhi(), l1t::RegionalMuonCand::setHwPt(), l1t::RegionalMuonCand::setHwQual(), l1t::RegionalMuonCand::setHwSign(), l1t::RegionalMuonCand::setHwSignValid(), l1t::RegionalMuonCand::setTFIdentifiers(), and l1t::RegionalMuonCand::setTrackSubAddress().

Referenced by L1TMuonBarrelTrackProducer::produce(), and reconstruct().

◆ setAdd()

int L1MuBMTrackFinder::setAdd ( int  ust,
int  rel_add 
)
inline

Definition at line 442 of file L1MuBMTrackFinder.cc.

442  {
443  unsigned int uadd = rel_add;
444 
445  switch (uadd) {
446  case 0: {
447  rel_add = 8;
448  break;
449  }
450  case 1: {
451  rel_add = 9;
452  break;
453  }
454  case 2: {
455  rel_add = 0;
456  break;
457  }
458  case 3: {
459  rel_add = 1;
460  break;
461  }
462  case 8: {
463  rel_add = 10;
464  break;
465  }
466  case 9: {
467  rel_add = 11;
468  break;
469  }
470  case 10: {
471  rel_add = 2;
472  break;
473  }
474  case 11: {
475  rel_add = 3;
476  break;
477  }
478  case 4: {
479  rel_add = 12;
480  break;
481  }
482  case 5: {
483  rel_add = 13;
484  break;
485  }
486  case 6: {
487  rel_add = 4;
488  break;
489  }
490  case 7: {
491  rel_add = 5;
492  break;
493  }
494  case 15: {
495  rel_add = 15;
496  break;
497  }
498  default: {
499  rel_add = 15;
500  break;
501  }
502  }
503 
504  if (ust != 1)
505  return rel_add;
506 
507  switch (uadd) {
508  case 0: {
509  rel_add = 2;
510  break;
511  }
512  case 1: {
513  rel_add = 1;
514  break;
515  }
516  case 15: {
517  rel_add = 3;
518  break;
519  }
520  default: {
521  rel_add = 3;
522  break;
523  }
524  }
525  return rel_add;
526 }

Referenced by run().

◆ setup()

void L1MuBMTrackFinder::setup ( edm::ConsumesCollector &&  iC)

build the structure of the barrel MTTF

Definition at line 116 of file L1MuBMTrackFinder.cc.

116  {
117  // build the barrel Muon Trigger Track Finder
118 
119  if (L1MuBMTFConfig::Debug(1))
120  cout << endl;
121  if (L1MuBMTFConfig::Debug(1))
122  cout << "**** L1MuBMTrackFinder building ****" << endl;
123  if (L1MuBMTFConfig::Debug(1))
124  cout << endl;
125 
126  // create new sector processors
127  for (int wh = -3; wh <= 3; wh++) {
128  if (wh == 0)
129  continue;
130  for (int sc = 0; sc < 12; sc++) {
131  L1MuBMSecProcId tmpspid(wh, sc);
132  L1MuBMSectorProcessor* sp = new L1MuBMSectorProcessor(*this, tmpspid, std::move(iC));
133  if (L1MuBMTFConfig::Debug(2))
134  cout << "creating " << tmpspid << endl;
135  m_spmap->insert(tmpspid, sp);
136  }
137  }
138 
139  // create new eta processors and wedge sorters
140  for (int sc = 0; sc < 12; sc++) {
141  L1MuBMEtaProcessor* ep = new L1MuBMEtaProcessor(*this, sc, std::move(iC));
142  if (L1MuBMTFConfig::Debug(2))
143  cout << "creating Eta Processor " << sc << endl;
144  m_epvec.push_back(ep);
145  L1MuBMWedgeSorter* ws = new L1MuBMWedgeSorter(*this, sc);
146  if (L1MuBMTFConfig::Debug(2))
147  cout << "creating Wedge Sorter " << sc << endl;
148  m_wsvec.push_back(ws);
149  }
150 
151  // create new muon sorter
152  if (L1MuBMTFConfig::Debug(2))
153  cout << "creating BM Muon Sorter " << endl;
154  m_ms = new L1MuBMMuonSorter(*this);
155 }

References gather_cfg::cout, L1MuBMTFConfig::Debug(), ep(), L1MuBMSecProcMap::insert(), m_epvec, m_ms, m_spmap, m_wsvec, eostools::move(), sp(), and ws().

Referenced by L1MuBMTFSetup::L1MuBMTFSetup().

◆ sp()

const L1MuBMSectorProcessor * L1MuBMTrackFinder::sp ( const L1MuBMSecProcId id) const

get a pointer to a Sector Processor

Definition at line 408 of file L1MuBMTrackFinder.cc.

408 { return m_spmap->sp(id); }

References m_spmap, and L1MuBMSecProcMap::sp().

Referenced by L1MuBMSectorProcessor::neighbour(), L1MuBMEtaProcessor::receiveAddresses(), L1MuBMWedgeSorter::run(), and setup().

◆ ws()

const L1MuBMWedgeSorter* L1MuBMTrackFinder::ws ( int  id) const
inline

get a pointer to a Wedge Sorter, index [0-11]

Definition at line 96 of file L1MuBMTrackFinder.h.

96 { return m_wsvec[id]; }

References triggerObjects_cff::id, and m_wsvec.

Referenced by L1MuBMMuonSorter::run(), and setup().

Member Data Documentation

◆ _cache

l1t::RegionalMuonCandBxCollection L1MuBMTrackFinder::_cache
private

◆ _cache0

l1t::RegionalMuonCandBxCollection L1MuBMTrackFinder::_cache0
private

Definition at line 130 of file L1MuBMTrackFinder.h.

Referenced by clear(), getcache0(), and run().

◆ _cache1

L1MuBMTrackCollection L1MuBMTrackFinder::_cache1
private

Definition at line 132 of file L1MuBMTrackFinder.h.

Referenced by clear(), getcache1(), and run().

◆ _cache2

L1MuBMTrackSegPhiCollection L1MuBMTrackFinder::_cache2
private

Definition at line 133 of file L1MuBMTrackFinder.h.

Referenced by clear(), getcache2(), and run().

◆ _cache3

L1MuBMTrackSegEtaCollection L1MuBMTrackFinder::_cache3
private

Definition at line 134 of file L1MuBMTrackFinder.h.

Referenced by clear(), getcache3(), and run().

◆ m_config

L1MuBMTFConfig * L1MuBMTrackFinder::m_config = nullptr
staticprivate

Track Finder configuration.

Definition at line 141 of file L1MuBMTrackFinder.h.

Referenced by config(), L1MuBMTrackFinder(), run(), and ~L1MuBMTrackFinder().

◆ m_DTDigiToken

edm::EDGetTokenT<L1MuDTChambPhContainer> L1MuBMTrackFinder::m_DTDigiToken
private

Definition at line 143 of file L1MuBMTrackFinder.h.

Referenced by L1MuBMTrackFinder(), and run().

◆ m_epvec

std::vector<L1MuBMEtaProcessor*> L1MuBMTrackFinder::m_epvec
private

Eta Processors.

Definition at line 137 of file L1MuBMTrackFinder.h.

Referenced by ep(), L1MuBMTrackFinder(), reset(), run(), setup(), and ~L1MuBMTrackFinder().

◆ m_ms

L1MuBMMuonSorter* L1MuBMTrackFinder::m_ms
private

BM Muon Sorter.

Definition at line 139 of file L1MuBMTrackFinder.h.

Referenced by L1MuBMTrackFinder(), ms(), reset(), setup(), and ~L1MuBMTrackFinder().

◆ m_spmap

L1MuBMSecProcMap* L1MuBMTrackFinder::m_spmap
private

Sector Processors.

Definition at line 136 of file L1MuBMTrackFinder.h.

Referenced by L1MuBMTrackFinder(), reset(), run(), setup(), sp(), and ~L1MuBMTrackFinder().

◆ m_wsvec

std::vector<L1MuBMWedgeSorter*> L1MuBMTrackFinder::m_wsvec
private

Wedge Sorters.

Definition at line 138 of file L1MuBMTrackFinder.h.

Referenced by L1MuBMTrackFinder(), reset(), run(), setup(), ws(), and ~L1MuBMTrackFinder().

L1MuBMSecProcMap::begin
SPmap_iter begin()
return iterator which points to the first entry of the container
Definition: L1MuBMSecProcMap.h:60
l1t::RegionalMuonCand::kStat2
Definition: RegionalMuonCand.h:16
L1MuBMTrackFinder::m_ms
L1MuBMMuonSorter * m_ms
BM Muon Sorter.
Definition: L1MuBMTrackFinder.h:139
l1t::bmtf
Definition: RegionalMuonCandFwd.h:8
L1MuBMWedgeSorter
Definition: L1MuBMWedgeSorter.h:45
l1t::RegionalMuonCand::kWheelNum
Definition: RegionalMuonCand.h:14
L1MuBMEtaProcessor
Definition: L1MuBMEtaProcessor.h:62
l1t::RegionalMuonCand::kSegSelStat4
Definition: RegionalMuonCand.h:22
l1t::RegionalMuonCand::kSegSelStat1
Definition: RegionalMuonCand.h:19
L1MuBMTrackFinder::ws
const L1MuBMWedgeSorter * ws(int id) const
get a pointer to a Wedge Sorter, index [0-11]
Definition: L1MuBMTrackFinder.h:96
l1t::RegionalMuonCand::setHwSign
void setHwSign(int bits)
Set charge sign bit (charge = (-1)^(sign))
Definition: RegionalMuonCand.h:136
L1MuBMTrackFinder::reset
void reset()
reset the barrel MTTF
Definition: L1MuBMTrackFinder.cc:379
L1MuBMSecProcId
Definition: L1MuBMSecProcId.h:40
L1MuBMTrackFinder::ep
const L1MuBMEtaProcessor * ep(int id) const
get a pointer to an Eta Processor, index [0-11]
Definition: L1MuBMTrackFinder.h:93
gather_cfg.cout
cout
Definition: gather_cfg.py:144
L1MuBMSecProcMap::insert
void insert(const L1MuBMSecProcId &, L1MuBMSectorProcessor *sp)
insert a Sector Processor into the container
Definition: L1MuBMSecProcMap.cc:77
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
l1t::RegionalMuonCand::kStat4
Definition: RegionalMuonCand.h:18
l1t::RegionalMuonCand::kStat3
Definition: RegionalMuonCand.h:17
L1MuBMTrackFinder::_cache3
L1MuBMTrackSegEtaCollection _cache3
Definition: L1MuBMTrackFinder.h:134
edm::Handle< L1MuDTChambPhContainer >
L1MuBMTFConfig::getBxMax
static int getBxMax()
Definition: L1MuBMTFConfig.h:61
L1MuBMSectorProcessor
Definition: L1MuBMSectorProcessor.h:54
L1MuDTChambPhContainer
Definition: L1MuDTChambPhContainer.h:33
L1MuBMSecProcMap::end
SPmap_iter end()
return iterator which points to the one-past-last entry of the container
Definition: L1MuBMSecProcMap.h:63
L1MuDTChambPhContainer::getContainer
Phi_Container const * getContainer() const
Definition: L1MuDTChambPhContainer.cc:41
end
#define end
Definition: vmac.h:39
BXVector::getFirstBX
int getFirstBX() const
L1MuBMTrackFinder::m_wsvec
std::vector< L1MuBMWedgeSorter * > m_wsvec
Wedge Sorters.
Definition: L1MuBMTrackFinder.h:138
contentValuesFiles.number
number
Definition: contentValuesFiles.py:53
L1MuBMTrackFinder::_cache1
L1MuBMTrackCollection _cache1
Definition: L1MuBMTrackFinder.h:132
L1MuBMTFConfig::setDefaultsES
void setDefaultsES(const edm::EventSetup &c)
Definition: L1MuBMTFConfig.cc:90
l1t::RegionalMuonCand::setTFIdentifiers
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
Definition: RegionalMuonCand.cc:5
l1t::RegionalMuonCand::kStat1
Definition: RegionalMuonCand.h:15
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
L1MuBMMuonSorter::reset
void reset() override
reset Muon Sorter
Definition: L1MuBMMuonSorter.cc:121
L1MuBMTFConfig::Debug
static bool Debug()
Definition: L1MuBMTFConfig.h:54
BXVector::clear
void clear()
l1t::RegionalMuonCand::setHwPt
void setHwPt(int bits)
Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)
Definition: RegionalMuonCand.h:126
BXVector::begin
const_iterator begin(int bx) const
l1t::RegionalMuonCand::setHwHF
void setHwHF(bool bit)
Set HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1)
Definition: RegionalMuonCand.h:142
L1MuBMTrackFinder::run
void run(const edm::Event &e, const edm::EventSetup &c)
run the barrel MTTF
Definition: L1MuBMTrackFinder.cc:160
BXVector::end
const_iterator end(int bx) const
L1MuBMTrackFinder::m_epvec
std::vector< L1MuBMEtaProcessor * > m_epvec
Eta Processors.
Definition: L1MuBMTrackFinder.h:137
l1t::RegionalMuonCand::setHwEta
void setHwEta(int bits)
Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits)
Definition: RegionalMuonCand.h:134
cand
Definition: decayParser.h:34
L1MuBMTrack
Definition: L1MuBMTrack.h:51
L1MuBMTFConfig::getBxMin
static int getBxMin()
Definition: L1MuBMTFConfig.h:60
L1MuBMSecProcMap::sp
L1MuBMSectorProcessor * sp(const L1MuBMSecProcId &) const
return pointer to Sector Processor
Definition: L1MuBMSecProcMap.cc:65
l1t::RegionalMuonCand::kSegSelStat2
Definition: RegionalMuonCand.h:20
L1MuBMTrackFinder::setAdd
int setAdd(int ust, int rel_add)
Definition: L1MuBMTrackFinder.cc:442
l1t::RegionalMuonCand::kSegSelStat3
Definition: RegionalMuonCand.h:21
l1t::RegionalMuonCand::kWheelSide
Definition: RegionalMuonCand.h:13
L1MuBMTrackFinder::m_config
static L1MuBMTFConfig * m_config
Track Finder configuration.
Definition: L1MuBMTrackFinder.h:141
l1t::RegionalMuonCand::setTrackSubAddress
void setTrackSubAddress(bmtfAddress subAddress, int value)
Set a part of the muon candidates track address; specialised for BMTF.
Definition: RegionalMuonCand.h:152
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
l1t::RegionalMuonCand::setHwQual
void setHwQual(int bits)
Set compressed quality code as transmitted by hardware (4 bits)
Definition: RegionalMuonCand.h:140
L1MuBMTrackFinder::_cache0
l1t::RegionalMuonCandBxCollection _cache0
Definition: L1MuBMTrackFinder.h:130
l1t::RegionalMuonCand::setHwSignValid
void setHwSignValid(int bits)
Set whether charge measurement is valid (0 for high pT muons)
Definition: RegionalMuonCand.h:138
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:34
L1MuBMTFConfig::getBMDigiInputTag
static edm::InputTag getBMDigiInputTag()
Definition: L1MuBMTFConfig.h:51
L1MuBMTrackFinder::_cache
l1t::RegionalMuonCandBxCollection _cache
Definition: L1MuBMTrackFinder.h:131
L1MuBMTrackFinder::_cache2
L1MuBMTrackSegPhiCollection _cache2
Definition: L1MuBMTrackFinder.h:133
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1MuBMMuonSorter
Definition: L1MuBMMuonSorter.h:45
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
L1MuBMSecProcMap::SPmap_iter
SPmap::iterator SPmap_iter
Definition: L1MuBMSecProcMap.h:42
L1MuBMSecProcMap
Definition: L1MuBMSecProcMap.h:39
BXVector::size
unsigned size(int bx) const
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
L1MuBMTrackFinder::m_DTDigiToken
edm::EDGetTokenT< L1MuDTChambPhContainer > m_DTDigiToken
Definition: L1MuBMTrackFinder.h:143
l1t::RegionalMuonCand::setHwPhi
void setHwPhi(int bits)
Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)
Definition: RegionalMuonCand.h:132
L1MuBMTFConfig
Definition: L1MuBMTFConfig.h:41
BXVector::setBXRange
void setBXRange(int bxFirst, int bxLast)
BXVector::getLastBX
int getLastBX() const
L1MuDTChambPhContainer::bxEmpty
bool bxEmpty(int step) const
Definition: L1MuDTChambPhContainer.cc:43
BXVector::push_back
void push_back(int bx, T object)
begin
#define begin
Definition: vmac.h:32
l1t::RegionalMuonCand
Definition: RegionalMuonCand.h:8
L1MuBMTrackFinder::sp
const L1MuBMSectorProcessor * sp(const L1MuBMSecProcId &) const
get a pointer to a Sector Processor
Definition: L1MuBMTrackFinder.cc:408
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
L1MuBMTrackFinder::m_spmap
L1MuBMSecProcMap * m_spmap
Sector Processors.
Definition: L1MuBMTrackFinder.h:136