CMS 3D CMS Logo

DTTrig.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: DTTrig
4 //
5 // Description: Steering routine for L1 trigger simulation in
6 // a muon barrel station
7 //
8 //
9 // Author List:
10 // C. Grandi
11 // Modifications:
12 // S Vanini, S. Marcellini, D. Bonacorsi, C.Battilana
13 //
14 // 07/03/30 : configuration now through DTConfigManager SV
15 //-------------------------------------------------------
16 
17 //-----------------------
18 // This Class's Header --
19 //-----------------------
21 
27 
34 
35 //---------------
36 // C++ Headers --
37 //---------------
38 #include <iostream>
39 #include <string>
40 
41 //-------------------------------
42 // Collaborating Class Headers --
43 //-------------------------------
45 
46 //----------------
47 // Constructors --
48 //----------------
49 
51  _inputexist(true) , _configid(0) , _geomid(0) {
52 
53  // Set configuration parameters
54  _debug = params.getUntrackedParameter<bool>("debug");
55 
56  if(_debug){
57  std::cout << std::endl;
58  std::cout << "**** Initialization of DTTrigger ****" << std::endl;
59  }
60 
61  _digitag = params.getParameter<edm::InputTag>("digiTag");
62  iC.consumes<DTDigiCollection>(_digitag);
63 }
64 
65 
66 //--------------
67 // Destructor --
68 //--------------
70 
71  clear();
72 
73 }
74 
75 void
77 
78  // build up Sector Collectors and then
79  // build the trrigger units (one for each chamber)
80  for(int iwh=-2;iwh<=2;iwh++){
81  for(int ise=1;ise<=12;ise++){
82  if(_debug){
83  std::cout << "calling sectcollid wh sc " << iwh << " " << ise << std::endl;}
84  DTSectCollId scid(iwh,ise);
85  SC_iterator it = _cache1.find(scid);
86  if ( it != _cache1.end()) {
87  if(_debug){
88  std::cout << "DTTrig::createTUs: Sector Collector unit already exists"<<std::endl;
89  }
90  continue;
91  }
92  DTSectColl* sc;
93  sc = new DTSectColl(scid);
94  if(_debug){
95  std::cout << " DTTrig::createTUs new SC sc = " << sc
96  << " at scid.sector() " << scid.sector()
97  << " at scid.wheel() " << scid.wheel()
98  << std::endl;
99  }
100  _cache1[scid] = sc;
101  }
102  }
103 
105  iSetup.get<MuonGeometryRecord>().get(dtGeom);
106  for (std::vector<const DTChamber*>::const_iterator ich=dtGeom->chambers().begin(); ich!=dtGeom->chambers().end();ich++){
107 
108  const DTChamber* chamb = (*ich);
109  DTChamberId chid = chamb->id();
110  TU_iterator it = _cache.find(chid);
111  if ( it != _cache.end()) {
112  if (_debug) std::cout << "DTTrig::init: Trigger unit already exists" << std::endl;
113  continue;
114  }
115 
116  DTSCTrigUnit* tru = new DTSCTrigUnit(chamb);
117  _cache[chid] = tru;
118 
119  //----------- add TU to corresponding SC
120  // returning correspondent SC id
121  DTSectCollId scid;
122  if(chid.sector()==13) {
123  scid = DTSectCollId(chid.wheel(), 4);}
124  else if(chid.sector()==14) {
125  scid = DTSectCollId(chid.wheel(), 10);}
126  else {
127  scid = DTSectCollId(chid.wheel(), chid.sector() );}
128 
129  SC_iterator it1 = _cache1.find(scid);
130 
131  if ( it1 != _cache1.end()) {
132 
133  DTSectColl* sc = (*it1).second;
134  if(_debug) {
135  std::cout << "DTTrig::init: adding TU in SC << "
136  << " sector = " << scid.sector()
137  << " wheel = " << scid.wheel()
138  << std::endl;
139  }
140  sc->addTU(tru);
141  }
142  else {
143  std::cout << "DTTrig::createTUs: Trigger Unit not in the map: ";
144  }
145 
146  }
147 
148 }
149 
150 
151 void
153 
154  updateES(iSetup);
155  if (!_inputexist) return;
156 
157  DTDigiMap digiMap;
158  //Sort digis by chamber so they can be used by BTIs
160  iEvent.getByLabel(_digitag, dtDigis);
161 
162  if (!dtDigis.isValid()) {
163  LogDebug("DTTrig")
164  << "DTTrig::triggerReco DTDigiCollection with input tag " << _digitag
165  << "requested in configuration, but not found in the event." << std::endl;
166  _inputexist = false;
167  return;
168  }
169 
171 
172  for (detUnitIt=dtDigis->begin();
173  detUnitIt!=dtDigis->end();
174  ++detUnitIt){
175 
176  const DTLayerId& layId = (*detUnitIt).first;
177  const DTChamberId chambId=layId.superlayerId().chamberId();
178  const DTDigiCollection::Range& range = (*detUnitIt).second;
179  digiMap[chambId].put(range,layId);
180 
181  }
182 
183  //Run reconstruct for single trigger subsystem (Bti, Traco TS)
184  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
185  DTSCTrigUnit* thisTU=(*it).second;
186  if (thisTU->BtiTrigs()->size()>0){
187  thisTU->BtiTrigs()->clearCache();
188  thisTU->TSThTrigs()->clearCache();
189  thisTU->TracoTrigs()->clearCache();
190  thisTU->TSPhTrigs()->clearCache();
191  }
192  DTChamberId chid=thisTU->statId();
193  DTDigiMap_iterator dmit = digiMap.find(chid);
194  if (dmit !=digiMap.end()){
195  thisTU->BtiTrigs()->reconstruct((*dmit).second);
196  if(thisTU->BtiTrigs()->size()>0){
197  thisTU->TSThTrigs()->reconstruct();
198  thisTU->TracoTrigs()->reconstruct();
199  if(thisTU->TracoTrigs()->size()>0)
200  thisTU->TSPhTrigs()->reconstruct();
201  }
202  }
203  }
204  //Run reconstruct for Sector Collector
205  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
206  DTSectColl* sectcoll = (*it).second;
207  DTSectCollId scid = (*it).first;
208  if (sectcoll->sizePh()>0 || sectcoll->sizeTh()>0)
209  sectcoll->clearCache();
210  bool mustreco = false;
211  for (int i=1;i<5;i++) {
212  if (sectcoll->getTSPhi(i)->size()>0) {
213  mustreco = true;
214  break;
215  }
216  }
217  for (int i=1;i<4;i++) {
218  if (sectcoll->getTSTheta(i)->size()>0) {
219  mustreco = true;
220  break;
221  }
222  }
223  if (scid.sector()==4 || scid.sector()==10){
224  if (sectcoll->getTSPhi(5)->size()>0)
225  mustreco = true;
226  }
227  if (mustreco)
228  sectcoll->reconstruct();
229  }
230 
231 }
232 
233 void
235 
236  // Check for updatets in config
238  edm::ESHandle<DTGeometry> geomHandle;
239 
240  if (iSetup.get<DTConfigManagerRcd>().cacheIdentifier()!=_configid) {
241 
242  if (_debug)
243  std::cout << "DTTrig::updateES updating DTTPG configuration" << std::endl;
244 
245  _configid = iSetup.get<DTConfigManagerRcd>().cacheIdentifier();
246  iSetup.get<DTConfigManagerRcd>().get(confHandle);
247  _conf_manager = confHandle.product();
248  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
249  (*it).second->setConfig(_conf_manager);
250  }
251  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
252  (*it).second->setConfig(_conf_manager);
253  }
254 
255  }
256 
257  if (iSetup.get<MuonGeometryRecord>().cacheIdentifier()!=_configid) {
258 
259  if (_debug)
260  std::cout << "DTTrig::updateES updating muon geometry" << std::endl;
261 
262  _geomid = iSetup.get<MuonGeometryRecord>().cacheIdentifier();
263  iSetup.get<MuonGeometryRecord>().get(geomHandle);
264  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
265  (*it).second->setGeom(geomHandle->chamber((*it).second->statId()));
266  }
267 
268  }
269 
270 }
271 
272 
273 void
275  // Delete the map
276  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
277  // Delete all the trigger units
278  delete (*it).second;
279  }
280  _cache.clear();
281 
282  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
283  // Delete all the Sector Collectors
284  delete (*it).second;
285  }
286  _cache1.clear();
287 
288 }
289 
292  /*check();*/ return constTrigUnit(chid);
293 
294 }
295 
296 
297 
300 // std::cout << " SC: running DTTrig::constTrigUnit(DTChamberId chid)" << std::endl;
301  TU_const_iterator it = _cache.find(chid);
302  if ( it == _cache.end()) {
303  std::cout << "DTTrig::trigUnit: Trigger Unit not in the map: ";
304  std::cout << " wheel=" << chid.wheel() ;
305  std::cout << ", station=" << chid.station();
306  std::cout << ", sector=" << chid.sector();
307  std::cout << std::endl;
308  return nullptr;
309  }
310 
311  return (*it).second;
312 }
313 
314 DTSectColl*
316 SC_const_iterator it = _cache1.find(scid);
317  if ( it == _cache1.end()) {
318  std::cout << "DTTrig::SCUnit: Trigger Unit not in the map: ";
319  std::cout << " wheel=" << scid.wheel() ;
320  std::cout << ", sector=" << scid.sector();
321  std::cout << std::endl;
322  return nullptr;
323  }
324 
325  return (*it).second;
326 }
327 
329 DTTrig::trigUnit(int wheel, int stat, int sect) {
330  return constTrigUnit(wheel, stat, sect);
331 }
332 
333 DTSectColl*
334 DTTrig::SCUnit(int wheel, int sect) const {
335  sect++;
336  return SCUnit(DTSectCollId(wheel,sect));
337 }
338 
339 
341 DTTrig::constTrigUnit(int wheel, int stat, int sect) const {
342  sect++; // offset 1 for sector number ([0,11] --> [1,12])
343  return constTrigUnit(DTChamberId(wheel,stat,sect));
344 
345 }
346 
347 
350  if(unit==nullptr)return nullptr;
351  if(unit->nPhiSegm(step)<1)return nullptr;
352  return const_cast<DTChambPhSegm*>(unit->phiSegment(step,1));
353 }
354 
357  if(unit==nullptr)return nullptr;
358  if(unit->nPhiSegm(step)<2)return nullptr;
359  return const_cast<DTChambPhSegm*>(unit->phiSegment(step,2));
360 }
361 
364  if(unit==nullptr)return nullptr;
365  if(unit->nThetaSegm(step)<1)return nullptr;
366  return const_cast<DTChambThSegm*>(unit->thetaSegment(step,1));
367 }
368 
371  return chPhiSegm1(trigUnit(sid),step);
372 }
373 
376  return chPhiSegm2(trigUnit(sid),step);
377 }
378 
381  if(sid.station()==4)return nullptr;
382  return chThetaSegm(trigUnit(sid),step);
383 }
384 
386 DTTrig::chPhiSegm1(int wheel, int stat, int sect, int step) {
387  return chPhiSegm1(trigUnit(wheel,stat,sect),step);
388  // to make it transparent to the outside world
389  // return chSectCollSegm1(wheel,stat,sect,step);
390 
391 }
392 
394 DTTrig::chPhiSegm2(int wheel, int stat, int sect, int step) {
395  // if(stat==4&&(sect==3||sect==9)) {
396  // if hrizontal chambers of MB4 get first track of twin chamber (flag=1)
397  // return chPhiSegm1(trigUnit(wheel,stat,sect,1),step);
398  // } else {
399  return chPhiSegm2(trigUnit(wheel,stat,sect),step);
400  // to make it transparent to the outside world
401  // return chSectCollSegm2(wheel,stat,sect,step);
402  //}
403 }
404 
406 DTTrig::chThetaSegm(int wheel, int stat, int sect, int step) {
407  if(stat==4)return nullptr;
408  return chThetaSegm(trigUnit(wheel,stat,sect),step);
409 }
410 
411 // SM sector collector section
414 
415  if(unit==nullptr)return nullptr;
416  if(unit->nSegmPh(step)<1)return nullptr;
417  return const_cast<DTSectCollPhSegm*>(unit->SectCollPhSegment(step,1));
418 }
419 
422  if(unit==nullptr)return nullptr;
423  if(unit->nSegmPh(step)<2)return nullptr;
424  return const_cast<DTSectCollPhSegm*>(unit->SectCollPhSegment(step,2));
425 }
426 
427 
429 DTTrig::chSectCollPhSegm1(int wheel, int sect, int step) {
430 
431  return chSectCollPhSegm1(SCUnit(wheel,sect),step);
432 }
433 
435 DTTrig::chSectCollPhSegm2(int wheel, int sect, int step) {
436  // if(stat==4&&(sect==3||sect==9)) {
437  // if hrizontal chambers of MB4 get first track of twin chamber (flag=1)
438  //return chSectCollSegm1(trigUnit(wheel,stat,sect,1),step);
439  //} else {
440  return chSectCollPhSegm2(SCUnit(wheel,sect),step);
441  //}
442 }
443 
446 
447  if(unit==nullptr)return nullptr;
448  if(unit->nSegmTh(step)<1)return nullptr;
449  return const_cast<DTSectCollThSegm*>(unit->SectCollThSegment(step));
450 }
451 
453 DTTrig::chSectCollThSegm(int wheel, int sect, int step) {
454 
455  return chSectCollThSegm(SCUnit(wheel,sect),step);
456 }
457 
458  // end SM
459 
460 
461 void
463  /*check();*/
464  for (TU_const_iterator it=_cache.begin();it!=_cache.end();it++){
465  ((*it).second)->dumpGeom();
466  }
467 }
468 
469 void
470 DTTrig::dumpLuts(short int lut_btic, const DTConfigManager *conf) {
471  for (TU_const_iterator it=_cache.begin();it!=_cache.end();it++){
472 
473  DTSCTrigUnit* thisTU = (*it).second;
474 
475  // dump lut command file from geometry
476  thisTU->dumpLUT(lut_btic);
477 
478  // dump lut command file from parameters (DB or CMSSW)
479  DTChamberId chid = thisTU->statId();
480  conf->dumpLUTParam(chid);
481 
482  }
483 
484  return;
485 
486 }
487 
488 std::vector<DTBtiTrigData>
490  /*check();*/
491  std::vector<DTBtiTrigData> trigs;
492  TU_iterator ptu;
493  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
494  DTSCTrigUnit* tu = (*ptu).second;
495  std::vector<DTBtiTrigData>::const_iterator p; //p=0;
496  std::vector<DTBtiTrigData>::const_iterator peb=tu->BtiTrigs()->end();
497  for(p=tu->BtiTrigs()->begin();p!=peb;p++){
498  trigs.push_back(*p);
499  }
500  }
501  return trigs;
502 }
503 
504 std::vector<DTTracoTrigData>
506  std::vector<DTTracoTrigData> trigs;
507  TU_iterator ptu;
508  /*check();*/
509  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
510  DTSCTrigUnit* tu = (*ptu).second;
511  std::vector<DTTracoTrigData>::const_iterator p; //p=0;
512  std::vector<DTTracoTrigData>::const_iterator peb=tu->TracoTrigs()->end();
513  for(p=tu->TracoTrigs()->begin();p!=peb;p++){
514  trigs.push_back(*p);
515  }
516  }
517  return trigs;
518 }
519 
520 std::vector<DTChambPhSegm>
522  /*check();*/
523  std::vector<DTChambPhSegm> trigs;
524  TU_iterator ptu;
525  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
526  DTSCTrigUnit* tu = (*ptu).second;
527  std::vector<DTChambPhSegm>::const_iterator p; //p=0;
528  std::vector<DTChambPhSegm>::const_iterator peb=tu->TSPhTrigs()->end();
529  for(p=tu->TSPhTrigs()->begin();p!=peb;p++){
530  trigs.push_back(*p);
531  }
532  }
533  return trigs;
534 }
535 
536 std::vector<DTChambThSegm>
538  /*check();*/
539  std::vector<DTChambThSegm> trigs;
540  TU_iterator ptu;
541  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
542  DTSCTrigUnit* tu = (*ptu).second;
543  std::vector<DTChambThSegm>::const_iterator p; //p=0;
544  std::vector<DTChambThSegm>::const_iterator peb=tu->TSThTrigs()->end();
545  for(p=tu->TSThTrigs()->begin();p!=peb;p++){
546  trigs.push_back(*p);
547  }
548  }
549  return trigs;
550 }
551 
552 std::vector<DTSectCollPhSegm>
554  /*check();*/
555  std::vector<DTSectCollPhSegm> trigs;
556  // SC_iterator ptu;
557  SC_iterator psc;
558  for(psc=_cache1.begin();psc!=_cache1.end();psc++) {
559  // DTSCTrigUnit* tu = (*ptu).second;
560  //
561  // old SMDB:
562  // DTSectColl* tu = (*ptu).second;
563  // std::vector<DTChambPhSegm>::const_iterator p=0;
564  // std::vector<DTChambPhSegm>::const_iterator peb=tu->SCTrigs()->end();
565  // for(p=tu->SCTrigs()->begin();p!=peb;p++){
566  // trigs.push_back(*p);
567  // }
568 
569  DTSectColl* sc = (*psc).second;
570  std::vector<DTSectCollPhSegm>::const_iterator p;
571  std::vector<DTSectCollPhSegm>::const_iterator peb=sc->endPh();
572  for(p=sc->beginPh();p!=peb;p++){
573  trigs.push_back(*p);
574  }
575 
576  }
577  return trigs;
578 }
579 
580 
581 std::vector<DTSectCollThSegm>
583  /*check();*/
584  std::vector<DTSectCollThSegm> trigs;
585  SC_iterator psc;
586  for(psc=_cache1.begin();psc!=_cache1.end();psc++) {
587  DTSectColl* sc = (*psc).second;
588  std::vector<DTSectCollThSegm>::const_iterator p; //p=0;
589  std::vector<DTSectCollThSegm>::const_iterator peb=sc->endTh();
590  for(p=sc->beginTh();p!=peb;p++){
591  trigs.push_back(*p);
592  }
593 
594  }
595  return trigs;
596 }
#define LogDebug(id)
int sizePh()
Return Phi cache size.
Definition: DTSectColl.h:153
void reconstruct() override
Load BTIs triggers and run TSTheta algoritm.
Definition: DTTSTheta.h:83
virtual void reconstruct(const DTDigiCollection dtDigis)
Definition: DTBtiCard.h:102
void clearCache()
Clear all traco stuff (cache & map)
Definition: DTTracoCard.cc:70
T getParameter(std::string const &) const
unsigned long long cacheIdentifier() const
T getUntrackedParameter(std::string const &, T const &) const
const DTChambThSegm * thetaSegment(int step, int n)
Return output segments, theta view.
Definition: DTSCTrigUnit.h:152
SCcontainer::iterator SC_iterator
Definition: DTTrig.h:61
void dumpLUTParam(DTChamberId &chambid) const
Dump luts string commands from configuration parameters.
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
void reconstruct() override
Load Trigger Units triggers and run Sector Collector algorithm.
Definition: DTSectColl.h:177
void reconstruct() override
Load TRACO triggers and run TSPhi algorithm.
Definition: DTTSPhi.h:82
SCcontainer _cache1
Definition: DTTrig.h:248
std::vector< DTSectCollPhSegm >::const_iterator endPh()
Return iterator to the end of Phi cache.
Definition: DTSectColl.h:156
DTSectColl * SCUnit(DTSectCollId scid) const
Return a SC unit - Muon numbering - const version.
Definition: DTTrig.cc:315
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:99
DTChamberId chamberId() const
Return the corresponding ChamberId.
DTTSTheta * TSThTrigs() const
Return the chamber Trigger Server (Theta)
Definition: DTSCTrigUnit.h:97
bool _debug
Definition: DTTrig.h:251
void clearCache()
Clear all BTI stuff (map & cache)
Definition: DTBtiCard.cc:95
DTChambPhSegm * chPhiSegm2(DTChamberId sid, int step)
Return the second phi track segment in req. chamber/step.
Definition: DTTrig.cc:375
int sizeTh()
Return Theta cache size.
Definition: DTSectColl.h:162
int nSegmTh(int step)
Return number of DTSectCollTheta segments (SC step)
Definition: DTSectColl.cc:497
DTTrig(const edm::ParameterSet &params, edm::ConsumesCollector &&ix)
Constructors.
Definition: DTTrig.cc:50
DTTSPhi * TSPhTrigs() const
Return the chamber Trigger Server (Phi)
Definition: DTSCTrigUnit.h:94
TUcontainer _cache
Definition: DTTrig.h:247
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
Definition: DTLayerId.h:59
void reconstruct() override
Load BTIs triggers and run TRACOs algorithm.
Definition: DTTracoCard.h:105
TUcontainer::iterator TU_iterator
Definition: DTTrig.h:58
DTSectCollPhSegm * chSectCollPhSegm1(DTSectColl *unit, int step)
Return the first phi track segment in req. chamber/step [SC step].
Definition: DTTrig.cc:413
DTChambPhSegm * chPhiSegm1(DTChamberId sid, int step)
Return the first phi track segment in req. chamber/step.
Definition: DTTrig.cc:370
unsigned long long _geomid
Definition: DTTrig.h:255
std::vector< DTSectCollPhSegm > SCPhTrigs()
Return a copy of all the Sector Collector (Phi) triggers.
Definition: DTTrig.cc:553
void dumpLUT(short int btic) const
Dump the Lut file.
Definition: DTSCTrigUnit.h:131
DTBtiCard * BtiTrigs() const
Return container of BTI triggers.
Definition: DTSCTrigUnit.h:88
int iEvent
Definition: GenABIO.cc:230
int nSegmPh(int step)
Return number of DTSectCollPhi segments (SC step)
Definition: DTSectColl.cc:483
void updateES(const edm::EventSetup &iSetup)
update the eventsetup info
Definition: DTTrig.cc:234
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
~DTTrig()
Destructor.
Definition: DTTrig.cc:69
edm::InputTag _digitag
Definition: DTTrig.h:250
void triggerReco(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Run the whole trigger reconstruction chain.
Definition: DTTrig.cc:152
DTSCTrigUnit * constTrigUnit(DTChamberId sid) const
Return a trigger unit - Muon numbering - const version.
Definition: DTTrig.cc:299
bool isValid() const
Definition: HandleBase.h:74
void dumpGeom()
Dump the geometry.
Definition: DTTrig.cc:462
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:475
DTSectCollPhSegm * chSectCollPhSegm2(DTSectColl *unit, int step)
Return the second phi track segment in req. chamber/step [SC step].
Definition: DTTrig.cc:421
DTDigiMap::iterator DTDigiMap_iterator
Definition: DTTrig.h:66
int sector() const
Definition: DTSectCollId.h:41
TUcontainer::const_iterator TU_const_iterator
Definition: DTTrig.h:59
std::vector< DTChambThSegm > TSThTrigs()
Return a copy of all the Trigger Server (Theta) triggers.
Definition: DTTrig.cc:537
void addTU(DTSCTrigUnit *tru)
Add a Trigger Unit to the Sector Collector.
Definition: DTSectColl.cc:128
std::vector< DTSectCollThSegm >::const_iterator beginTh()
Return iterator to the begni of Theta cache.
Definition: DTSectColl.h:159
void dumpLuts(short int lut_btic, const DTConfigManager *conf)
Dump the LUT files.
Definition: DTTrig.cc:470
DTSCTrigUnit * trigUnit(DTChamberId sid)
Return a trigger unit - Muon numbering.
Definition: DTTrig.cc:291
std::vector< DTTracoTrigData > TracoTrigs()
Return a copy of all the TRACO triggers.
Definition: DTTrig.cc:505
DTTracoCard * TracoTrigs() const
Return container of TRACO triggers.
Definition: DTSCTrigUnit.h:91
const T & get() const
Definition: EventSetup.h:59
const DTSectCollThSegm * SectCollThSegment(int step)
Return requested Sector Collector Theta Segment.
Definition: DTSectColl.cc:526
std::vector< DTSectCollThSegm >::const_iterator endTh()
Return iterator to the end of Theta cache.
Definition: DTSectColl.h:165
int wheel() const
Definition: DTSectCollId.h:40
const_iterator begin() const
Get first cache element.
Definition: DTCache.h:40
DTChambThSegm * chThetaSegm(DTChamberId sid, int step)
Return the theta candidates in req. chamber/step.
Definition: DTTrig.cc:380
void clearCache()
Local position in chamber of a trigger-data object.
Definition: DTSectColl.h:174
std::map< DTChamberId, DTDigiCollection, std::less< DTChamberId > > DTDigiMap
Definition: DTTrig.h:65
const DTConfigManager * _conf_manager
Definition: DTTrig.h:249
int sector() const
Definition: DTChamberId.h:61
bool _inputexist
Definition: DTTrig.h:252
DTChamberId statId() const
Identifier of the associated chamber.
Definition: DTSCTrigUnit.h:76
std::vector< DTSectCollPhSegm >::const_iterator beginPh()
Return iterator to the beghin of Phi cache.
Definition: DTSectColl.h:150
const DTSectCollPhSegm * SectCollPhSegment(int step, unsigned n)
Return requested Sector Collector Phi Segment 1st/2nd.
Definition: DTSectColl.cc:512
DTSectCollThSegm * chSectCollThSegm(DTSectColl *unit, int step)
Return the theta track segment in req. chamber/step [SC step].
Definition: DTTrig.cc:445
std::pair< const_iterator, const_iterator > Range
step
const DTChambPhSegm * phiSegment(int step, int n)
Return output segments, phi view.
Definition: DTSCTrigUnit.h:144
int nPhiSegm(int step)
Number of Phi segments for a given step.
Definition: DTSCTrigUnit.h:140
int station() const
Return the station number.
Definition: DTChamberId.h:51
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:45
const_iterator end() const
Get last cache element.
Definition: DTCache.h:43
void createTUs(const edm::EventSetup &iSetup)
Create the trigger units and store them in the cache.
Definition: DTTrig.cc:76
void clearCache()
Clear cache vector.
Definition: DTCache.h:49
T const * product() const
Definition: ESHandle.h:86
DTTSPhi * getTSPhi(int istat) const
Return TSPhi.
Definition: DTSectColl.h:71
unsigned long long _configid
Definition: DTTrig.h:254
SCcontainer::const_iterator SC_const_iterator
Definition: DTTrig.h:62
int size() const
Get cache vector&#39;s size.
Definition: DTCache.h:46
std::vector< DTBtiTrigData > BtiTrigs()
Return a copy of all the BTI triggers.
Definition: DTTrig.cc:489
std::vector< DTSectCollThSegm > SCThTrigs()
Return a copy of all the Sector Collector (Theta) triggers.
Definition: DTTrig.cc:582
DTTSTheta * getTSTheta(int istat) const
Return TSTheta.
Definition: DTSectColl.h:74
std::vector< DTChambPhSegm > TSPhTrigs()
Return a copy of all the Trigger Server (Phi) triggers.
Definition: DTTrig.cc:521
int nThetaSegm(int step)
Number of theta segments for a given step.
Definition: DTSCTrigUnit.h:149
void clear()
Clear the trigger units cache.
Definition: DTTrig.cc:274