CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1GlobalTriggerGTL.cc
Go to the documentation of this file.
1 
16 // this class header
18 
19 // system include files
20 #include <ext/hash_map>
21 
22 // user include files
24 
26 
29 
32 
43 
48 
51 
53 
64 
66 
68 
71 
73 
74 // forward declarations
75 
76 // constructor
78  m_candL1Mu( new std::vector<const L1MuGMTCand*>),
79  m_isDebugEnabled(edm::isDebugEnabled())
80 {
81 
82  m_gtlAlgorithmOR.reset();
83  m_gtlDecisionWord.reset();
84 
85  // initialize cached IDs
86  m_l1GtMenuCacheID = 0ULL;
89 
90  // pointer to conversion - actually done in the event loop (cached)
93 
94  iC.consumes<std::vector<L1MuGMTCand> >(m_muGmtInputTag);
95 
96 }
97 
98 // destructor
100 
101  reset();
102  delete m_candL1Mu;
103  delete m_gtEtaPhiConversions;
104 
105 }
106 
107 // operations
108 void L1GlobalTriggerGTL::init(const int nrL1Mu, const int numberPhysTriggers) {
109 
110  m_candL1Mu->reserve(nrL1Mu);
111 
112  // FIXME move from bitset to std::vector<bool> to be able to use
113  // numberPhysTriggers from EventSetup
114 
115  //m_gtlAlgorithmOR.reserve(numberPhysTriggers);
116  //m_gtlAlgorithmOR.assign(numberPhysTriggers, false);
117 
118  //m_gtlDecisionWord.reserve(numberPhysTriggers);
119  //m_gtlDecisionWord.assign(numberPhysTriggers, false);
120 
121 }
122 
123 // receive data from Global Muon Trigger
125  const edm::InputTag& muGmtInputTag, const int iBxInEvent, const bool receiveMu,
126  const int nrL1Mu) {
127 
128  if (m_verbosity) {
129  LogDebug("L1GlobalTrigger")
130  << "\n**** L1GlobalTriggerGTL receiving muon data for BxInEvent = "
131  << iBxInEvent << "\n from input tag " << muGmtInputTag << "\n"
132  << std::endl;
133 
134  }
135 
136  reset();
137 
138  // get data from Global Muon Trigger
139  if (receiveMu) {
140 
142  iEvent.getByLabel(muGmtInputTag, muonData);
143 
144  if (!muonData.isValid()) {
145  if (m_verbosity) {
146  edm::LogWarning("L1GlobalTrigger")
147  << "\nWarning: std::vector<L1MuGMTCand> with input tag "
148  << muGmtInputTag
149  << "\nrequested in configuration, but not found in the event.\n"
150  << std::endl;
151  }
152  } else {
153 
154  std::vector<L1MuGMTCand>::const_iterator itMuon;
155  for (itMuon = muonData->begin(); itMuon != muonData->end(); itMuon++) {
156  if ((*itMuon).bx() == iBxInEvent) {
157 
158  (*m_candL1Mu).push_back(&(*itMuon));
159  //LogTrace("L1GlobalTrigger") << (*itMuon)
160  // << std::endl;
161 
162  }
163 
164  }
165 
166  }
167  }
168 
169  if (m_verbosity && m_isDebugEnabled) {
170  printGmtData(iBxInEvent);
171  }
172 
173 }
174 
175 // run GTL
177  edm::Event& iEvent, const edm::EventSetup& evSetup,
178  const L1GlobalTriggerPSB* ptrGtPSB,
179  const bool produceL1GtObjectMapRecord,
180  const int iBxInEvent,
181  std::auto_ptr<L1GlobalTriggerObjectMapRecord>& gtObjectMapRecord,
182  const unsigned int numberPhysTriggers,
183  const int nrL1Mu,
184  const int nrL1NoIsoEG, const int nrL1IsoEG,
185  const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet,
186  const int nrL1JetCounts,
187  const int ifMuEtaNumberBits, const int ifCaloEtaNumberBits) {
188 
189 
190  // get / update the trigger menu from the EventSetup
191  // local cache & check on cacheIdentifier
192 
193  unsigned long long l1GtMenuCacheID = evSetup.get<L1GtTriggerMenuRcd>().cacheIdentifier();
194 
195  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
196 
198  evSetup.get< L1GtTriggerMenuRcd>().get(l1GtMenu) ;
199  m_l1GtMenu = l1GtMenu.product();
200  (const_cast<L1GtTriggerMenu*>(m_l1GtMenu))->buildGtConditionMap();
201 
202  m_l1GtMenuCacheID = l1GtMenuCacheID;
203 
204  }
205 
206  const std::vector<ConditionMap>& conditionMap = m_l1GtMenu->gtConditionMap();
207  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
208 
209  const std::vector<std::vector<L1GtMuonTemplate> >& corrMuon =
211 
212  const std::vector<std::vector<L1GtCaloTemplate> >& corrCalo =
214 
215  const std::vector<std::vector<L1GtEnergySumTemplate> >& corrEnergySum =
217 
218  // conversion needed for correlation conditions
219  // done in the condition loop when the first correlation template is in the menu
220  bool convertScale = false;
221 
222  // get / update the calorimeter geometry from the EventSetup
223  // local cache & check on cacheIdentifier
224  unsigned long long l1CaloGeometryCacheID =
225  evSetup.get<L1CaloGeometryRecord>().cacheIdentifier();
226 
227  if (m_l1CaloGeometryCacheID != l1CaloGeometryCacheID) {
228 
230  evSetup.get<L1CaloGeometryRecord>().get(l1CaloGeometry) ;
231  m_l1CaloGeometry = l1CaloGeometry.product();
232 
233  m_l1CaloGeometryCacheID = l1CaloGeometryCacheID;
234  convertScale = true;
235 
236  }
237 
238  // get / update the eta and phi muon trigger scales from the EventSetup
239  // local cache & check on cacheIdentifier
240  unsigned long long l1MuTriggerScalesCacheID =
241  evSetup.get<L1MuTriggerScalesRcd>().cacheIdentifier();
242 
243  if (m_l1MuTriggerScalesCacheID != l1MuTriggerScalesCacheID) {
244 
245  edm::ESHandle< L1MuTriggerScales> l1MuTriggerScales;
246  evSetup.get< L1MuTriggerScalesRcd>().get(l1MuTriggerScales);
247  m_l1MuTriggerScales = l1MuTriggerScales.product();
248 
249  m_l1MuTriggerScalesCacheID = l1MuTriggerScalesCacheID;
250  convertScale = true;
251  }
252 
253  if (convertScale) {
256  m_l1MuTriggerScales, ifCaloEtaNumberBits, ifMuEtaNumberBits);
257 
258  // print the conversions if DEBUG and verbosity enabled
259 
260  if (m_verbosity && m_isDebugEnabled) {
261  std::ostringstream myCout;
262  m_gtEtaPhiConversions->print(myCout);
263 
264  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
265  }
266 
267  // set convertScale to false to avoid executing the conversion
268  // more than once - in case the scales change it will be set to true
269  // in the cache check
270  convertScale = false;
271  }
272 
273 
274  // loop over condition maps (one map per condition chip)
275  // then loop over conditions in the map
276  // save the results in temporary maps
277 
278  // never happens in production but at first event...
279  if (m_conditionResultMaps.size() != conditionMap.size()) {
280  m_conditionResultMaps.clear();
281  m_conditionResultMaps.resize(conditionMap.size());
282  }
283 
284  int iChip = -1;
285 
286  for (std::vector<ConditionMap>::const_iterator
287  itCondOnChip = conditionMap.begin(); itCondOnChip != conditionMap.end(); itCondOnChip++) {
288 
289  iChip++;
290 
291  //L1GtAlgorithmEvaluation::ConditionEvaluationMap cMapResults;
292  // L1GtAlgorithmEvaluation::ConditionEvaluationMap cMapResults((*itCondOnChip).size()); // hash map
294  m_conditionResultMaps[iChip];
295 
296  for (CItCond itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
297 
298  // evaluate condition
299  switch ((itCond->second)->condCategory()) {
300  case CondMuon: {
301 
302  L1GtMuonCondition* muCondition = new L1GtMuonCondition(itCond->second, this,
303  nrL1Mu, ifMuEtaNumberBits);
304 
305  muCondition->setVerbosity(m_verbosity);
306  muCondition->setGtCorrParDeltaPhiNrBins(
308  + 1);
309  muCondition->evaluateConditionStoreResult();
310 
311  cMapResults[itCond->first] = muCondition;
312 
313  if (m_verbosity && m_isDebugEnabled) {
314  std::ostringstream myCout;
315  muCondition->print(myCout);
316 
317  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
318  }
319 
320  //delete muCondition;
321 
322  }
323  break;
324  case CondCalo: {
325 
326  L1GtCaloCondition* caloCondition = new L1GtCaloCondition(
327  itCond->second, ptrGtPSB,
328  nrL1NoIsoEG,
329  nrL1IsoEG,
330  nrL1CenJet,
331  nrL1ForJet,
332  nrL1TauJet,
333  ifCaloEtaNumberBits);
334 
335  caloCondition->setVerbosity(m_verbosity);
336  caloCondition->setGtCorrParDeltaPhiNrBins(
338  ((itCond->second)->objectType())[0])) / 2
339  + 1);
340  caloCondition->evaluateConditionStoreResult();
341 
342  cMapResults[itCond->first] = caloCondition;
343 
344  if (m_verbosity && m_isDebugEnabled) {
345  std::ostringstream myCout;
346  caloCondition->print(myCout);
347 
348  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
349  }
350  // delete caloCondition;
351 
352  }
353  break;
354  case CondEnergySum: {
355  L1GtEnergySumCondition* eSumCondition = new L1GtEnergySumCondition(
356  itCond->second, ptrGtPSB);
357 
358  eSumCondition->setVerbosity(m_verbosity);
359  eSumCondition->evaluateConditionStoreResult();
360 
361  cMapResults[itCond->first] = eSumCondition;
362 
363  if (m_verbosity && m_isDebugEnabled) {
364  std::ostringstream myCout;
365  eSumCondition->print(myCout);
366 
367  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
368  }
369  // delete eSumCondition;
370 
371  }
372  break;
373  case CondJetCounts: {
375  itCond->second, ptrGtPSB, nrL1JetCounts);
376 
377  jcCondition->setVerbosity(m_verbosity);
378  jcCondition->evaluateConditionStoreResult();
379 
380  cMapResults[itCond->first] = jcCondition;
381 
382  if (m_verbosity && m_isDebugEnabled) {
383  std::ostringstream myCout;
384  jcCondition->print(myCout);
385 
386  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
387  }
388 
389  // delete jcCondition;
390 
391  }
392  break;
393  case CondHfBitCounts: {
395  itCond->second, ptrGtPSB);
396 
397  bcCondition->setVerbosity(m_verbosity);
398  bcCondition->evaluateConditionStoreResult();
399 
400  cMapResults[itCond->first] = bcCondition;
401 
402  if (m_isDebugEnabled ) {
403  std::ostringstream myCout;
404  bcCondition->print(myCout);
405 
406  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
407  }
408 
409  // delete bcCondition;
410 
411  }
412  break;
413  case CondHfRingEtSums: {
415  itCond->second, ptrGtPSB);
416 
417  etCondition->setVerbosity(m_verbosity);
418  etCondition->evaluateConditionStoreResult();
419 
420  cMapResults[itCond->first] = etCondition;
421 
422  if (m_verbosity && m_isDebugEnabled) {
423  std::ostringstream myCout;
424  etCondition->print(myCout);
425 
426  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
427  }
428 
429  // delete etCondition;
430 
431  }
432  break;
433  case CondCastor: {
434  bool castorCondResult = false;
435 
436  // FIXME need a solution to read CASTOR
437  //if (castorConditionFlag) {
438  // castorCondResult = castorData->conditionResult(itCond->first);
439  //}
440 
441  L1GtCastorCondition* castorCondition = new L1GtCastorCondition(
442  itCond->second, castorCondResult);
443 
444  castorCondition->setVerbosity(m_verbosity);
445  castorCondition->evaluateConditionStoreResult();
446 
447  cMapResults[itCond->first] = castorCondition;
448 
449  if (m_verbosity && m_isDebugEnabled) {
450  std::ostringstream myCout;
451  castorCondition->print(myCout);
452 
453  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
454  }
455 
456  // delete castorCondition;
457 
458  }
459  break;
460  case CondBptx: {
461  bool bptxCondResult = true;
462 
463  // FIXME need a solution to read BPTX with real value
464 
465  L1GtBptxCondition* bptxCondition = new L1GtBptxCondition(
466  itCond->second, bptxCondResult);
467 
468  bptxCondition->setVerbosity(m_verbosity);
469  bptxCondition->evaluateConditionStoreResult();
470 
471  cMapResults[itCond->first] = bptxCondition;
472 
473  if (m_verbosity && m_isDebugEnabled) {
474  std::ostringstream myCout;
475  bptxCondition->print(myCout);
476 
477  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
478  }
479 
480  // delete bptxCondition;
481 
482  }
483  break;
484  case CondExternal: {
485  bool externalCondResult = true;
486 
487  // FIXME need a solution to read External with real value
488 
489  L1GtExternalCondition* externalCondition = new L1GtExternalCondition(
490  itCond->second, externalCondResult);
491 
492  externalCondition->setVerbosity(m_verbosity);
493  externalCondition->evaluateConditionStoreResult();
494 
495  cMapResults[itCond->first] = externalCondition;
496 
497  if (m_verbosity && m_isDebugEnabled) {
498  std::ostringstream myCout;
499  externalCondition->print(myCout);
500 
501  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
502  }
503 
504  // delete externalCondition;
505 
506  }
507  break;
508  case CondCorrelation: {
509 
510  // get first the sub-conditions
511  const L1GtCorrelationTemplate* corrTemplate =
512  static_cast<const L1GtCorrelationTemplate*>(itCond->second);
513  const L1GtConditionCategory cond0Categ = corrTemplate->cond0Category();
514  const L1GtConditionCategory cond1Categ = corrTemplate->cond1Category();
515  const int cond0Ind = corrTemplate->cond0Index();
516  const int cond1Ind = corrTemplate->cond1Index();
517 
518  const L1GtCondition* cond0Condition = 0;
519  const L1GtCondition* cond1Condition = 0;
520 
521  // maximum number of objects received for evaluation of Type1s condition
522  int cond0NrL1Objects = 0;
523  int cond1NrL1Objects = 0;
524 
525  int cond0EtaBits = 0;
526  int cond1EtaBits = 0;
527 
528  switch (cond0Categ) {
529  case CondMuon: {
530  cond0Condition = &((corrMuon[iChip])[cond0Ind]);
531  cond0NrL1Objects = nrL1Mu;
532  cond0EtaBits = ifMuEtaNumberBits;
533  }
534  break;
535  case CondCalo: {
536  cond0Condition = &((corrCalo[iChip])[cond0Ind]);
537 
538  switch ((cond0Condition->objectType())[0]) {
539  case NoIsoEG:
540  cond0NrL1Objects= nrL1NoIsoEG;
541  break;
542  case IsoEG:
543  cond0NrL1Objects = nrL1IsoEG;
544  break;
545  case CenJet:
546  cond0NrL1Objects = nrL1CenJet;
547  break;
548  case ForJet:
549  cond0NrL1Objects = nrL1ForJet;
550  break;
551  case TauJet:
552  cond0NrL1Objects = nrL1TauJet;
553  break;
554  default:
555  cond0NrL1Objects = 0;
556  break;
557  }
558 
559  cond0EtaBits = ifCaloEtaNumberBits;
560  }
561  break;
562  case CondEnergySum: {
563  cond0Condition = &((corrEnergySum[iChip])[cond0Ind]);
564  cond0NrL1Objects = 1;
565  }
566  break;
567  default: {
568  // do nothing, should not arrive here
569  }
570  break;
571  }
572 
573  switch (cond1Categ) {
574  case CondMuon: {
575  cond1Condition = &((corrMuon[iChip])[cond1Ind]);
576  cond1NrL1Objects = nrL1Mu;
577  cond1EtaBits = ifMuEtaNumberBits;
578  }
579  break;
580  case CondCalo: {
581  cond1Condition = &((corrCalo[iChip])[cond1Ind]);
582 
583  switch ((cond1Condition->objectType())[0]) {
584  case NoIsoEG:
585  cond1NrL1Objects= nrL1NoIsoEG;
586  break;
587  case IsoEG:
588  cond1NrL1Objects = nrL1IsoEG;
589  break;
590  case CenJet:
591  cond1NrL1Objects = nrL1CenJet;
592  break;
593  case ForJet:
594  cond1NrL1Objects = nrL1ForJet;
595  break;
596  case TauJet:
597  cond1NrL1Objects = nrL1TauJet;
598  break;
599  default:
600  cond1NrL1Objects = 0;
601  break;
602  }
603 
604  cond1EtaBits = ifCaloEtaNumberBits;
605  }
606  break;
607  case CondEnergySum: {
608  cond1Condition = &((corrEnergySum[iChip])[cond1Ind]);
609  cond1NrL1Objects = 1;
610  }
611  break;
612  default: {
613  // do nothing, should not arrive here
614  }
615  break;
616  }
617 
618  L1GtCorrelationCondition* correlationCond =
619  new L1GtCorrelationCondition(itCond->second,
620  cond0Condition, cond1Condition,
621  cond0NrL1Objects, cond1NrL1Objects,
622  cond0EtaBits, cond1EtaBits,
623  this, ptrGtPSB, m_gtEtaPhiConversions);
624 
625  correlationCond->setVerbosity(m_verbosity);
626  correlationCond->evaluateConditionStoreResult();
627 
628  cMapResults[itCond->first] = correlationCond;
629 
630  if (m_verbosity && m_isDebugEnabled) {
631  std::ostringstream myCout;
632  correlationCond->print(myCout);
633 
634  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
635  }
636 
637  // delete correlationCond;
638 
639  }
640  break;
641  case CondNull: {
642 
643  // do nothing
644 
645  }
646  break;
647  default: {
648 
649  // do nothing
650 
651  }
652  break;
653  }
654 
655  }
656 
657  }
658 
659  // loop over algorithm map
660 
661  // empty vector for object maps - filled during loop
662  std::vector<L1GlobalTriggerObjectMap> objMapVec;
663  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) objMapVec.reserve(numberPhysTriggers);
664 
665  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
666 
667  L1GtAlgorithmEvaluation gtAlg(itAlgo->second);
668  gtAlg.evaluateAlgorithm((itAlgo->second).algoChipNumber(), m_conditionResultMaps);
669 
670  int algBitNumber = (itAlgo->second).algoBitNumber();
671  bool algResult = gtAlg.gtAlgoResult();
672 
673  if (algResult) {
674  m_gtlAlgorithmOR.set(algBitNumber);
675  }
676 
677  if (m_verbosity && m_isDebugEnabled) {
678  std::ostringstream myCout;
679  ( itAlgo->second ).print(myCout);
680  gtAlg.print(myCout);
681 
682  LogTrace("L1GlobalTrigger") << myCout.str() << std::endl;
683  }
684 
685 
686  // object maps only for BxInEvent = 0
687  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
688 
689  // set object map
691 
692  objMap.setAlgoName(itAlgo->first);
693  objMap.setAlgoBitNumber(algBitNumber);
694  objMap.setAlgoGtlResult(algResult);
697  // gtAlg is empty now...
698 
699  if (m_verbosity && m_isDebugEnabled) {
700  std::ostringstream myCout1;
701  objMap.print(myCout1);
702 
703  LogTrace("L1GlobalTrigger") << myCout1.str() << std::endl;
704  }
705 
706  objMapVec.push_back(objMap);
707 
708  }
709 
710 
711  }
712 
713  // object maps only for BxInEvent = 0
714  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
715  gtObjectMapRecord->swapGtObjectMap(objMapVec);
716  }
717 
718  // loop over condition maps (one map per condition chip)
719  // then loop over conditions in the map
720  // delete the conditions created with new, zero pointer, do not clear map, keep the vector as is...
721  for (std::vector<L1GtAlgorithmEvaluation::ConditionEvaluationMap>::iterator
722  itCondOnChip = m_conditionResultMaps.begin();
723  itCondOnChip != m_conditionResultMaps.end(); itCondOnChip++) {
724 
726  itCond = itCondOnChip->begin();
727  itCond != itCondOnChip->end(); itCond++) {
728 
729  delete itCond->second;
730  itCond->second = 0;
731  }
732  }
733 
734 }
735 
736 // clear GTL
738 
739  m_candL1Mu->clear();
740 
741  m_gtlDecisionWord.reset();
742  m_gtlAlgorithmOR.reset();
743 
744 }
745 
746 // print Global Muon Trigger data received by GTL
747 void L1GlobalTriggerGTL::printGmtData(const int iBxInEvent) const {
748 
749  LogTrace("L1GlobalTrigger")
750  << "\nL1GlobalTrigger: GMT data received for BxInEvent = "
751  << iBxInEvent << std::endl;
752 
753  int nrL1Mu = m_candL1Mu->size();
754  LogTrace("L1GlobalTrigger")
755  << "Number of GMT muons = " << nrL1Mu << "\n"
756  << std::endl;
757 
758  for (std::vector<const L1MuGMTCand*>::const_iterator iter =
759  m_candL1Mu->begin(); iter != m_candL1Mu->end(); iter++) {
760 
761  LogTrace("L1GlobalTrigger") << *(*iter) << std::endl;
762 
763  }
764 
765  LogTrace("L1GlobalTrigger") << std::endl;
766 
767 }
#define LogDebug(id)
bool isDebugEnabled()
void print(std::ostream &myCout) const
print condition
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlAlgorithmOR
std::vector< L1GtAlgorithmEvaluation::ConditionEvaluationMap > m_conditionResultMaps
void init(const int nrL1Mu, const int numberPhysTriggers)
initialize the class (mainly reserve)
void print(std::ostream &myCout) const
print condition
void run(edm::Event &iEvent, const edm::EventSetup &evSetup, const L1GlobalTriggerPSB *ptrGtPSB, const bool produceL1GtObjectMapRecord, const int iBxInEvent, std::auto_ptr< L1GlobalTriggerObjectMapRecord > &gtObjectMapRecord, const unsigned int numberPhysTriggers, const int nrL1Mu, const int nrL1NoIsoEG, const int nrL1IsoEG, const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet, const int nrL1JetCounts, const int ifMuEtaNumberBits, const int ifCaloEtaNumberBits)
run the GTL
void printGmtData(const int iBxInEvent) const
print received Muon dataWord
void swapCombinationVector(std::vector< CombinationsInCond > &combinationVectorValue)
void setAlgoName(const std::string &algoNameValue)
void print(std::ostream &myCout) const
print condition
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
std::string print(const Track &, edm::Verbosity=edm::Concise)
Track print utility.
Definition: print.cc:10
std::vector< CombinationsInCond > & gtAlgoCombinationVector()
ConditionMap::const_iterator CItCond
iterators through map containing the conditions
L1GlobalTriggerGTL(const edm::InputTag &mutag, edm::ConsumesCollector &&iC)
void setVerbosity(const int verbosity)
__gnu_cxx::hash_map< std::string, L1GtConditionEvaluation * > ConditionEvaluationMap
copy constructor
std::vector< L1GtLogicParser::OperandToken > & operandTokenVector()
const std::vector< L1GtObject > & objectType() const
get / set the trigger object type(s) in the condition
Definition: L1GtCondition.h:90
void print(std::ostream &myCout) const
print condition
void swapOperandTokenVector(std::vector< L1GtLogicParser::OperandToken > &operandTokenVectorValue)
const std::vector< ConditionMap > & gtConditionMap() const
get / set / build the condition maps
const std::vector< std::vector< L1GtEnergySumTemplate > > & corEnergySumTemplate() const
void print(std::ostream &myCout) const
print condition
std::vector< const L1MuGMTCand * > * m_candL1Mu
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
const L1GtConditionCategory cond1Category() const
void evaluateConditionStoreResult()
call evaluateCondition and save last result
void setVerbosity(const int verbosity)
int iEvent
Definition: GenABIO.cc:230
bool gtAlgoResult() const
get / set the result of the algorithm
void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int)
perform all scale conversions
int m_verbosity
verbosity level
const L1GtTriggerMenu * m_l1GtMenu
void print(std::ostream &myCout) const
print the full object map
L1GtConditionCategory
condition categories
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
const L1GtConditionCategory cond0Category() const
get / set the category of the two sub-conditions
const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const
return the number of phi bins for a GT object
const std::vector< std::vector< L1GtMuonTemplate > > & corMuonTemplate() const
bool isValid() const
Definition: HandleBase.h:76
unsigned long long m_l1GtMenuCacheID
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:402
const std::vector< std::vector< L1GtCaloTemplate > > & corCaloTemplate() const
#define LogTrace(id)
const int cond0Index() const
get / set the index of the two sub-conditions in the cor* vector from menu
const L1MuTriggerScales * m_l1MuTriggerScales
void setAlgoGtlResult(bool algoGtlResultValue)
L1GtEtaPhiConversions * m_gtEtaPhiConversions
void print(std::ostream &myCout) const
print condition
Definition: L1GtObject.h:30
void print(std::ostream &myCout) const
print condition
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
string const
Definition: compareJSON.py:14
void receiveGmtObjectData(edm::Event &, const edm::InputTag &, const int iBxInEvent, const bool receiveMu, const int nrL1Mu)
receive data from Global Muon Trigger
void print(std::ostream &myCout) const
print condition
void print(std::ostream &myCout) const
print condition
void setAlgoBitNumber(int algoBitNumberValue)
void print(std::ostream &myCout) const
print condition
void setGtCorrParDeltaPhiNrBins(const int &)
virtual void print(std::ostream &myCout) const
print all the performed conversions
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
ConditionEvaluationMap::iterator ItEvalMap
void print(std::ostream &myCout) const
const L1CaloGeometry * m_l1CaloGeometry
void evaluateAlgorithm(const int chipNumber, const std::vector< ConditionEvaluationMap > &)
evaluate an algorithm
unsigned long long m_l1MuTriggerScalesCacheID
void reset()
clear GTL
unsigned long long m_l1CaloGeometryCacheID
void setGtCorrParDeltaPhiNrBins(const int &)