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