CMS 3D CMS Logo

L1GlobalTriggerGTL.h
Go to the documentation of this file.
1 #ifndef GlobalTrigger_L1GlobalTriggerGTL_h
2 #define GlobalTrigger_L1GlobalTriggerGTL_h
3 
19 // system include files
20 #include <bitset>
21 #include <vector>
22 
23 // user include files
31 
33 
36 
39 
40 // forward declarations
41 class L1GlobalTriggerPSB;
42 class L1GtTriggerMenu;
43 class L1CaloGeometry;
44 class L1MuTriggerScales;
46 
47 // class declaration
49 public:
50  // constructors
52 
53  // destructor
54  virtual ~L1GlobalTriggerGTL();
55 
56 public:
59  edm::Event &, const edm::InputTag &, const int iBxInEvent, const bool receiveMu, const int nrL1Mu);
60 
62  void init(const int nrL1Mu, const int numberPhysTriggers);
63 
65  void run(edm::Event &iEvent,
66  const edm::EventSetup &evSetup,
67  const L1GlobalTriggerPSB *ptrGtPSB,
68  const bool produceL1GtObjectMapRecord,
69  const int iBxInEvent,
70  L1GlobalTriggerObjectMapRecord *gtObjectMapRecord,
71  const unsigned int numberPhysTriggers,
72  const int nrL1Mu,
73  const int nrL1NoIsoEG,
74  const int nrL1IsoEG,
75  const int nrL1CenJet,
76  const int nrL1ForJet,
77  const int nrL1TauJet,
78  const int nrL1JetCounts,
79  const int ifMuEtaNumberBits,
80  const int ifCaloEtaNumberBits);
81 
83  void reset();
84 
86  void printGmtData(const int iBxInEvent) const;
87 
89  inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> &getDecisionWord() const {
90  return m_gtlDecisionWord;
91  }
92 
94  inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> &getAlgorithmOR() const {
95  return m_gtlAlgorithmOR;
96  }
97 
99  inline const std::vector<const L1MuGMTCand *> *getCandL1Mu() const { return m_candL1Mu; }
100 
101 public:
102  inline void setVerbosity(const int verbosity) { m_verbosity = verbosity; }
103 
104 private:
105  // cached stuff
106 
107  // trigger menu
109 
110  // L1 scales (phi, eta) for Mu, Calo and EnergySum objects
113  unsigned long long m_l1CaloGeometryCacheID;
114 
117  unsigned long long m_l1MuTriggerScalesCacheID;
118 
119  // conversions for eta and phi
121 
122 private:
123  std::vector<const L1MuGMTCand *> *m_candL1Mu;
124 
125  std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlAlgorithmOR;
126  std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlDecisionWord;
127 
128  // cache of maps
129  std::vector<L1GtAlgorithmEvaluation::ConditionEvaluationMap> m_conditionResultMaps;
130 
131 private:
135 };
136 
137 #endif
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)
const edm::ESGetToken< L1CaloGeometry, L1CaloGeometryRecord > m_l1CaloGeometryToken
L1GlobalTriggerGTL(const edm::InputTag &mutag, edm::ConsumesCollector &&iC)
const std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & getDecisionWord() const
return decision
const std::vector< const L1MuGMTCand * > * getCandL1Mu() const
return global muon trigger candidate
const edm::ESGetToken< L1GtTriggerMenu, L1GtTriggerMenuRcd > m_l1GtMenuToken
int iEvent
Definition: GenABIO.cc:224
int m_verbosity
verbosity level
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
void run(edm::Event &iEvent, const edm::EventSetup &evSetup, const L1GlobalTriggerPSB *ptrGtPSB, const bool produceL1GtObjectMapRecord, const int iBxInEvent, 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
const edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > m_l1MuTriggerScalesToken
std::vector< const L1MuGMTCand * > * m_candL1Mu
const int verbosity
const L1MuTriggerScales * m_l1MuTriggerScales
L1GtEtaPhiConversions * m_gtEtaPhiConversions
const std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & getAlgorithmOR() const
return algorithm OR decision
void receiveGmtObjectData(edm::Event &, const edm::InputTag &, const int iBxInEvent, const bool receiveMu, const int nrL1Mu)
receive data from Global Muon Trigger
void printGmtData(const int iBxInEvent) const
print received Muon dataWord
const L1CaloGeometry * m_l1CaloGeometry
void setVerbosity(const int verbosity)
unsigned long long m_l1MuTriggerScalesCacheID
void reset()
clear GTL
unsigned long long m_l1CaloGeometryCacheID