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(1) , _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  std::cout << "DTTrig::createTUs: Sector Collector unit already exists"<<std::endl;
88  continue;
89  }
90  DTSectColl* sc;
91  sc = new DTSectColl(scid);
92  if(_debug){
93  std::cout << " DTTrig::createTUs new SC sc = " << sc
94  << " at scid.sector() " << scid.sector()
95  << " at scid.wheel() " << scid.wheel()
96  << std::endl;
97  }
98  _cache1[scid] = sc;
99  }
100  }
101 
103  iSetup.get<MuonGeometryRecord>().get(dtGeom);
104  for (std::vector<const DTChamber*>::const_iterator ich=dtGeom->chambers().begin(); ich!=dtGeom->chambers().end();ich++){
105 
106  const DTChamber* chamb = (*ich);
107  DTChamberId chid = chamb->id();
108  TU_iterator it = _cache.find(chid);
109  if ( it != _cache.end()) {
110  if (_debug) std::cout << "DTTrig::init: Trigger unit already exists" << std::endl;
111  continue;
112  }
113 
114  DTSCTrigUnit* tru = new DTSCTrigUnit(chamb);
115  _cache[chid] = tru;
116 
117  //----------- add TU to corresponding SC
118  // returning correspondent SC id
119  DTSectCollId scid;
120  if(chid.sector()==13) {
121  scid = DTSectCollId(chid.wheel(), 4);}
122  else if(chid.sector()==14) {
123  scid = DTSectCollId(chid.wheel(), 10);}
124  else {
125  scid = DTSectCollId(chid.wheel(), chid.sector() );}
126 
127  SC_iterator it1 = _cache1.find(scid);
128 
129  if ( it1 != _cache1.end()) {
130 
131  DTSectColl* sc = (*it1).second;
132  if(_debug) {
133  std::cout << "DTTrig::init: adding TU in SC << "
134  << " sector = " << scid.sector()
135  << " wheel = " << scid.wheel()
136  << std::endl;
137  }
138  sc->addTU(tru);
139  }
140  else {
141  std::cout << "DTTrig::createTUs: Trigger Unit not in the map: ";
142  }
143 
144  }
145 
146 }
147 
148 
149 void
151 
152  updateES(iSetup);
153  if (!_inputexist) return;
154 
155  DTDigiMap digiMap;
156  //Sort digis by chamber so they can be used by BTIs
158  iEvent.getByLabel(_digitag, dtDigis);
159 
160  if (!dtDigis.isValid()) {
161  LogDebug("DTTrig")
162  << "DTTrig::triggerReco DTDigiCollection with input tag " << _digitag
163  << "requested in configuration, but not found in the event." << std::endl;
164  _inputexist = false;
165  return;
166  }
167 
169 
170  for (detUnitIt=dtDigis->begin();
171  detUnitIt!=dtDigis->end();
172  ++detUnitIt){
173 
174  const DTLayerId& layId = (*detUnitIt).first;
175  const DTChamberId chambId=layId.superlayerId().chamberId();
176  const DTDigiCollection::Range& range = (*detUnitIt).second;
177  digiMap[chambId].put(range,layId);
178 
179  }
180 
181  //Run reconstruct for single trigger subsystem (Bti, Traco TS)
182  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
183  DTSCTrigUnit* thisTU=(*it).second;
184  if (thisTU->BtiTrigs()->size()>0){
185  thisTU->BtiTrigs()->clearCache();
186  thisTU->TSThTrigs()->clearCache();
187  thisTU->TracoTrigs()->clearCache();
188  thisTU->TSPhTrigs()->clearCache();
189  }
190  DTChamberId chid=thisTU->statId();
191  DTDigiMap_iterator dmit = digiMap.find(chid);
192  if (dmit !=digiMap.end()){
193  thisTU->BtiTrigs()->reconstruct((*dmit).second);
194  if(thisTU->BtiTrigs()->size()>0){
195  thisTU->TSThTrigs()->reconstruct();
196  thisTU->TracoTrigs()->reconstruct();
197  if(thisTU->TracoTrigs()->size()>0)
198  thisTU->TSPhTrigs()->reconstruct();
199  }
200  }
201  }
202  //Run reconstruct for Sector Collector
203  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
204  DTSectColl* sectcoll = (*it).second;
205  DTSectCollId scid = (*it).first;
206  if (sectcoll->sizePh()>0 || sectcoll->sizeTh()>0)
207  sectcoll->clearCache();
208  bool mustreco = false;
209  for (int i=1;i<5;i++) {
210  if (sectcoll->getTSPhi(i)->size()>0) {
211  mustreco = true;
212  break;
213  }
214  }
215  for (int i=1;i<4;i++) {
216  if (sectcoll->getTSTheta(i)->size()>0) {
217  mustreco = true;
218  break;
219  }
220  }
221  if (scid.sector()==4 || scid.sector()==10){
222  if (sectcoll->getTSPhi(5)->size()>0)
223  mustreco = true;
224  }
225  if (mustreco)
226  sectcoll->reconstruct();
227  }
228 
229 }
230 
231 void
233 
234  // Check for updatets in config
236  edm::ESHandle<DTGeometry> geomHandle;
237 
238  if (iSetup.get<DTConfigManagerRcd>().cacheIdentifier()!=_configid) {
239 
240  if (_debug)
241  std::cout << "DTTrig::updateES updating DTTPG configuration" << std::endl;
242 
243  _configid = iSetup.get<DTConfigManagerRcd>().cacheIdentifier();
244  iSetup.get<DTConfigManagerRcd>().get(confHandle);
245  _conf_manager = confHandle.product();
246  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
247  (*it).second->setConfig(_conf_manager);
248  }
249  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
250  (*it).second->setConfig(_conf_manager);
251  }
252 
253  }
254 
255  if (iSetup.get<MuonGeometryRecord>().cacheIdentifier()!=_configid) {
256 
257  if (_debug)
258  std::cout << "DTTrig::updateES updating muon geometry" << std::endl;
259 
260  _geomid = iSetup.get<MuonGeometryRecord>().cacheIdentifier();
261  iSetup.get<MuonGeometryRecord>().get(geomHandle);
262  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
263  (*it).second->setGeom(geomHandle->chamber((*it).second->statId()));
264  }
265 
266  }
267 
268 }
269 
270 
271 void
273  // Delete the map
274  for (TU_iterator it=_cache.begin();it!=_cache.end();it++){
275  // Delete all the trigger units
276  delete (*it).second;
277  }
278  _cache.clear();
279 
280  for (SC_iterator it=_cache1.begin();it!=_cache1.end();it++){
281  // Delete all the Sector Collectors
282  delete (*it).second;
283  }
284  _cache1.clear();
285 
286 }
287 
290  /*check();*/ return constTrigUnit(chid);
291 
292 }
293 
294 
295 
298 // std::cout << " SC: running DTTrig::constTrigUnit(DTChamberId chid)" << std::endl;
299  TU_const_iterator it = _cache.find(chid);
300  if ( it == _cache.end()) {
301  std::cout << "DTTrig::trigUnit: Trigger Unit not in the map: ";
302  std::cout << " wheel=" << chid.wheel() ;
303  std::cout << ", station=" << chid.station();
304  std::cout << ", sector=" << chid.sector();
305  std::cout << std::endl;
306  return 0;
307  }
308 
309  return (*it).second;
310 }
311 
312 DTSectColl*
314 SC_const_iterator it = _cache1.find(scid);
315  if ( it == _cache1.end()) {
316  std::cout << "DTTrig::SCUnit: Trigger Unit not in the map: ";
317  std::cout << " wheel=" << scid.wheel() ;
318  std::cout << ", sector=" << scid.sector();
319  std::cout << std::endl;
320  return 0;
321  }
322 
323  return (*it).second;
324 }
325 
327 DTTrig::trigUnit(int wheel, int stat, int sect) {
328  return constTrigUnit(wheel, stat, sect);
329 }
330 
331 DTSectColl*
332 DTTrig::SCUnit(int wheel, int sect) const {
333  sect++;
334  return SCUnit(DTSectCollId(wheel,sect));
335 }
336 
337 
339 DTTrig::constTrigUnit(int wheel, int stat, int sect) const {
340  sect++; // offset 1 for sector number ([0,11] --> [1,12])
341  return constTrigUnit(DTChamberId(wheel,stat,sect));
342 
343 }
344 
345 
348  if(unit==0)return 0;
349  if(unit->nPhiSegm(step)<1)return 0;
350  return const_cast<DTChambPhSegm*>(unit->phiSegment(step,1));
351 }
352 
355  if(unit==0)return 0;
356  if(unit->nPhiSegm(step)<2)return 0;
357  return const_cast<DTChambPhSegm*>(unit->phiSegment(step,2));
358 }
359 
362  if(unit==0)return 0;
363  if(unit->nThetaSegm(step)<1)return 0;
364  return const_cast<DTChambThSegm*>(unit->thetaSegment(step,1));
365 }
366 
369  return chPhiSegm1(trigUnit(sid),step);
370 }
371 
374  return chPhiSegm2(trigUnit(sid),step);
375 }
376 
379  if(sid.station()==4)return 0;
380  return chThetaSegm(trigUnit(sid),step);
381 }
382 
384 DTTrig::chPhiSegm1(int wheel, int stat, int sect, int step) {
385  return chPhiSegm1(trigUnit(wheel,stat,sect),step);
386  // to make it transparent to the outside world
387  // return chSectCollSegm1(wheel,stat,sect,step);
388 
389 }
390 
392 DTTrig::chPhiSegm2(int wheel, int stat, int sect, int step) {
393  // if(stat==4&&(sect==3||sect==9)) {
394  // if hrizontal chambers of MB4 get first track of twin chamber (flag=1)
395  // return chPhiSegm1(trigUnit(wheel,stat,sect,1),step);
396  // } else {
397  return chPhiSegm2(trigUnit(wheel,stat,sect),step);
398  // to make it transparent to the outside world
399  // return chSectCollSegm2(wheel,stat,sect,step);
400  //}
401 }
402 
404 DTTrig::chThetaSegm(int wheel, int stat, int sect, int step) {
405  if(stat==4)return 0;
406  return chThetaSegm(trigUnit(wheel,stat,sect),step);
407 }
408 
409 // SM sector collector section
412 
413  if(unit==0)return 0;
414  if(unit->nSegmPh(step)<1)return 0;
415  return const_cast<DTSectCollPhSegm*>(unit->SectCollPhSegment(step,1));
416 }
417 
420  if(unit==0)return 0;
421  if(unit->nSegmPh(step)<2)return 0;
422  return const_cast<DTSectCollPhSegm*>(unit->SectCollPhSegment(step,2));
423 }
424 
425 
427 DTTrig::chSectCollPhSegm1(int wheel, int sect, int step) {
428 
429  return chSectCollPhSegm1(SCUnit(wheel,sect),step);
430 }
431 
433 DTTrig::chSectCollPhSegm2(int wheel, int sect, int step) {
434  // if(stat==4&&(sect==3||sect==9)) {
435  // if hrizontal chambers of MB4 get first track of twin chamber (flag=1)
436  //return chSectCollSegm1(trigUnit(wheel,stat,sect,1),step);
437  //} else {
438  return chSectCollPhSegm2(SCUnit(wheel,sect),step);
439  //}
440 }
441 
444 
445  if(unit==0)return 0;
446  if(unit->nSegmTh(step)<1)return 0;
447  return const_cast<DTSectCollThSegm*>(unit->SectCollThSegment(step));
448 }
449 
451 DTTrig::chSectCollThSegm(int wheel, int sect, int step) {
452 
453  return chSectCollThSegm(SCUnit(wheel,sect),step);
454 }
455 
456  // end SM
457 
458 
459 void
461  /*check();*/
462  for (TU_const_iterator it=_cache.begin();it!=_cache.end();it++){
463  ((*it).second)->dumpGeom();
464  }
465 }
466 
467 void
468 DTTrig::dumpLuts(short int lut_btic, const DTConfigManager *conf) {
469  for (TU_const_iterator it=_cache.begin();it!=_cache.end();it++){
470 
471  DTSCTrigUnit* thisTU = (*it).second;
472 
473  // dump lut command file from geometry
474  thisTU->dumpLUT(lut_btic);
475 
476  // dump lut command file from parameters (DB or CMSSW)
477  DTChamberId chid = thisTU->statId();
478  conf->dumpLUTParam(chid);
479 
480  }
481 
482  return;
483 
484 }
485 
486 std::vector<DTBtiTrigData>
488  /*check();*/
489  std::vector<DTBtiTrigData> trigs;
490  TU_iterator ptu;
491  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
492  DTSCTrigUnit* tu = (*ptu).second;
493  std::vector<DTBtiTrigData>::const_iterator p; //p=0;
494  std::vector<DTBtiTrigData>::const_iterator peb=tu->BtiTrigs()->end();
495  for(p=tu->BtiTrigs()->begin();p!=peb;p++){
496  trigs.push_back(*p);
497  }
498  }
499  return trigs;
500 }
501 
502 std::vector<DTTracoTrigData>
504  std::vector<DTTracoTrigData> trigs;
505  TU_iterator ptu;
506  /*check();*/
507  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
508  DTSCTrigUnit* tu = (*ptu).second;
509  std::vector<DTTracoTrigData>::const_iterator p; //p=0;
510  std::vector<DTTracoTrigData>::const_iterator peb=tu->TracoTrigs()->end();
511  for(p=tu->TracoTrigs()->begin();p!=peb;p++){
512  trigs.push_back(*p);
513  }
514  }
515  return trigs;
516 }
517 
518 std::vector<DTChambPhSegm>
520  /*check();*/
521  std::vector<DTChambPhSegm> trigs;
522  TU_iterator ptu;
523  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
524  DTSCTrigUnit* tu = (*ptu).second;
525  std::vector<DTChambPhSegm>::const_iterator p; //p=0;
526  std::vector<DTChambPhSegm>::const_iterator peb=tu->TSPhTrigs()->end();
527  for(p=tu->TSPhTrigs()->begin();p!=peb;p++){
528  trigs.push_back(*p);
529  }
530  }
531  return trigs;
532 }
533 
534 std::vector<DTChambThSegm>
536  /*check();*/
537  std::vector<DTChambThSegm> trigs;
538  TU_iterator ptu;
539  for(ptu=_cache.begin();ptu!=_cache.end();ptu++) {
540  DTSCTrigUnit* tu = (*ptu).second;
541  std::vector<DTChambThSegm>::const_iterator p; //p=0;
542  std::vector<DTChambThSegm>::const_iterator peb=tu->TSThTrigs()->end();
543  for(p=tu->TSThTrigs()->begin();p!=peb;p++){
544  trigs.push_back(*p);
545  }
546  }
547  return trigs;
548 }
549 
550 std::vector<DTSectCollPhSegm>
552  /*check();*/
553  std::vector<DTSectCollPhSegm> trigs;
554  // SC_iterator ptu;
555  SC_iterator psc;
556  for(psc=_cache1.begin();psc!=_cache1.end();psc++) {
557  // DTSCTrigUnit* tu = (*ptu).second;
558  //
559  // old SMDB:
560  // DTSectColl* tu = (*ptu).second;
561  // std::vector<DTChambPhSegm>::const_iterator p=0;
562  // std::vector<DTChambPhSegm>::const_iterator peb=tu->SCTrigs()->end();
563  // for(p=tu->SCTrigs()->begin();p!=peb;p++){
564  // trigs.push_back(*p);
565  // }
566 
567  DTSectColl* sc = (*psc).second;
568  std::vector<DTSectCollPhSegm>::const_iterator p;
569  std::vector<DTSectCollPhSegm>::const_iterator peb=sc->endPh();
570  for(p=sc->beginPh();p!=peb;p++){
571  trigs.push_back(*p);
572  }
573 
574  }
575  return trigs;
576 }
577 
578 
579 std::vector<DTSectCollThSegm>
581  /*check();*/
582  std::vector<DTSectCollThSegm> trigs;
583  SC_iterator psc;
584  for(psc=_cache1.begin();psc!=_cache1.end();psc++) {
585  DTSectColl* sc = (*psc).second;
586  std::vector<DTSectCollThSegm>::const_iterator p; //p=0;
587  std::vector<DTSectCollThSegm>::const_iterator peb=sc->endTh();
588  for(p=sc->beginTh();p!=peb;p++){
589  trigs.push_back(*p);
590  }
591 
592  }
593  return trigs;
594 }
#define LogDebug(id)
virtual void reconstruct()
Load Trigger Units triggers and run Sector Collector algorithm.
Definition: DTSectColl.h:177
int sizePh()
Return Phi cache size.
Definition: DTSectColl.h:153
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
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:313
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:373
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
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:411
DTChambPhSegm * chPhiSegm1(DTChamberId sid, int step)
Return the first phi track segment in req. chamber/step.
Definition: DTTrig.cc:368
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:551
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:232
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:150
DTSCTrigUnit * constTrigUnit(DTChamberId sid) const
Return a trigger unit - Muon numbering - const version.
Definition: DTTrig.cc:297
bool isValid() const
Definition: HandleBase.h:74
void dumpGeom()
Dump the geometry.
Definition: DTTrig.cc:460
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:416
DTSectCollPhSegm * chSectCollPhSegm2(DTSectColl *unit, int step)
Return the second phi track segment in req. chamber/step [SC step].
Definition: DTTrig.cc:419
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:535
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:468
DTSCTrigUnit * trigUnit(DTChamberId sid)
Return a trigger unit - Muon numbering.
Definition: DTTrig.cc:289
std::vector< DTTracoTrigData > TracoTrigs()
Return a copy of all the TRACO triggers.
Definition: DTTrig.cc:503
DTTracoCard * TracoTrigs() const
Return container of TRACO triggers.
Definition: DTSCTrigUnit.h:91
void reconstruct()
Load BTIs triggers and run TSTheta algoritm.
Definition: DTTSTheta.h:83
const T & get() const
Definition: EventSetup.h:55
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:378
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
virtual void reconstruct()
Load TRACO triggers and run TSPhi algorithm.
Definition: DTTSPhi.h:82
DTSectCollThSegm * chSectCollThSegm(DTSectColl *unit, int step)
Return the theta track segment in req. chamber/step [SC step].
Definition: DTTrig.cc:443
virtual void reconstruct()
Load BTIs triggers and run TRACOs algorithm.
Definition: DTTracoCard.h:105
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:487
std::vector< DTSectCollThSegm > SCThTrigs()
Return a copy of all the Sector Collector (Theta) triggers.
Definition: DTTrig.cc:580
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:519
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:272