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