CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GtBoard.h
Go to the documentation of this file.
1 #ifndef GtBoard_h
2 #define GtBoard_h
3 
15 // system include files
16 #include <bitset>
17 #include <vector>
18 
19 // user include files
22 //#include "DataFormats/L1TGlobal/interface/L1TGlobalReadoutSetup.h"
24 //#include "L1Trigger/GlobalTrigger/interface/L1GtAlgorithmEvaluation.h"
26 
27 // Trigger Objects
33 
34 // Objects to produce for the output record.
37 
40 
42 
43 // forward declarations
44 class TriggerMenu;
45 class L1CaloGeometry;
46 class L1MuTriggerScales;
47 //class L1GtEtaPhiConversions;
48 
49 // class declaration
50 
51 namespace l1t {
52 
53 class GtBoard
54 {
55 
56 public:
57 
58  // constructors
59  GtBoard();
60 
61  // destructor
62  virtual ~GtBoard();
63 
64 public:
65 
68  edm::Event&,
73  const bool receiveEG, const int nrL1EG,
74  const bool receiveTau, const int nrL1Tau,
75  const bool receiveJet, const int nrL1Jet,
76  const bool receiveEtSums);
77 
79  edm::Event&,
81  const bool receiveMu, const int nrL1Mu);
82 
84  edm::Event&,
86  const bool receiveExt);
87 
89  void init(const int numberPhysTriggers, const int nrL1Mu, const int nrL1EG, const int nrL1Tau, const int nrL1Jet,
90  int bxFirst, int bxLast);
91 
93  void runGTL(edm::Event& iEvent, const edm::EventSetup& evSetup, const TriggerMenu* m_l1GtMenu,
94  const bool produceL1GtObjectMapRecord,
95  const int iBxInEvent, std::auto_ptr<L1GlobalTriggerObjectMapRecord>& gtObjectMapRecord,
96  const unsigned int numberPhysTriggers,
97  const int nrL1Mu,
98  const int nrL1EG,
99  const int nrL1Tau,
100  const int nrL1Jet,
101  const int nrL1JetCounts);
102 
104  void runFDL(edm::Event& iEvent,
105  const int iBxInEvent,
106  const int totalBxInEvent,
107  const unsigned int numberPhysTriggers,
108  const std::vector<int>& prescaleFactorsAlgoTrig,
109  const std::vector<unsigned int>& triggerMaskAlgoTrig,
110  const std::vector<unsigned int>& triggerMaskVetoAlgoTrig,
111  const bool algorithmTriggersUnprescaled,
112  const bool algorithmTriggersUnmasked );
113 
114 
116  void fillAlgRecord(int iBxInEvent,
117  std::auto_ptr<GlobalAlgBlkBxCollection>& uGtAlgRecord,
118  cms_uint64_t orbNr,
119  int bxNr);
120 
121  void fillExtRecord(int iBxInEvent,
122  std::auto_ptr<GlobalExtBlkBxCollection>& uGtExtRecord,
123  cms_uint64_t orbNr,
124  int bxNr);
125 
126 
127 
129  void reset();
130  void resetMu();
131  void resetCalo();
132  void resetExternal();
133 
135  void printGmtData(const int iBxInEvent) const;
136 
138  inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getDecisionWord() const
139  {
140  return m_gtlDecisionWord;
141  }
142 
144  inline const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& getAlgorithmOR() const
145  {
146  return m_gtlAlgorithmOR;
147  }
148 
151  {
152  return m_candL1Mu;
153  }
154 
157  {
158  return m_candL1EG;
159  }
160 
163  {
164  return m_candL1Jet;
165  }
166 
167 
170  {
171  return m_candL1Tau;
172  }
173 
176  {
177  return m_candL1EtSum;
178  }
179 
182  {
183  return m_candL1External;
184  }
185 
186 /* Drop individual EtSums for Now
188  inline const l1t::EtSum* getCandL1ETM() const
189  {
190  return m_candETM;
191  }
192 
194  inline const l1t::EtSum* getCandL1ETT() const
195  {
196  return m_candETT;
197  }
198 
200  inline const l1t::EtSum* getCandL1HTT() const
201  {
202  return m_candHTT;
203  }
204 
206  inline const l1t::EtSum* getCandL1HTM() const
207  {
208  return m_candHTM;
209  }
210 */
211 
212  void setBxFirst(int bx);
213  void setBxLast(int bx);
214 
215 public:
216 
217  inline void setVerbosity(const int verbosity) {
219  }
220 
221 private:
222 
223  // cached stuff
224 
225  // trigger menu
227  unsigned long long m_l1GtMenuCacheID;
228 
229  // L1 scales (phi, eta) for Mu, Calo and EnergySum objects
231  unsigned long long m_l1CaloGeometryCacheID;
232 
234  unsigned long long m_l1MuTriggerScalesCacheID;
235 
236  // conversions for eta and phi
237 // L1GtEtaPhiConversions* m_gtEtaPhiConversions;
238 
239 private:
240 
247 
248 // BXVector<const l1t::EtSum*>* m_candETM;
249 // BXVector<const l1t::EtSum*>* m_candETT;
250 // BXVector<const l1t::EtSum*>* m_candHTM;
251 // BXVector<const l1t::EtSum*>* m_candHTT;
252 
255 
256  std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlAlgorithmOR;
257  std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> m_gtlDecisionWord;
258 
261 
262  // cache of maps
263  std::vector<AlgorithmEvaluation::ConditionEvaluationMap> m_conditionResultMaps;
264 
266  std::vector<std::vector<int> > m_prescaleCounterAlgoTrig;
267 
268  bool m_firstEv;
270 
271 private:
272 
276 
277  // Flags for the OR of all algorithms at various stages. (Single bx)
283 
284  // Counter for number of events seen by this board
285  unsigned int m_boardEventCount;
286 
287  // Information about board
290 
291 
292 };
293 
294 }
295 #endif
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:260
void resetExternal()
Definition: GtBoard.cc:1121
const L1CaloGeometry * m_l1CaloGeometry
Definition: GtBoard.h:230
void setVerbosity(const int verbosity)
Definition: GtBoard.h:217
void resetMu()
Definition: GtBoard.cc:1099
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlAlgorithmOR
Definition: GtBoard.h:256
void printGmtData(const int iBxInEvent) const
print received Muon dataWord
Definition: GtBoard.cc:1130
std::vector< AlgorithmEvaluation::ConditionEvaluationMap > m_conditionResultMaps
Definition: GtBoard.h:263
int m_verbosity
verbosity level
Definition: GtBoard.h:274
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:259
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:241
void receiveExternalData(edm::Event &, const edm::EDGetTokenT< BXVector< GlobalExtBlk > > &, const bool receiveExt)
Definition: GtBoard.cc:394
virtual ~GtBoard()
Definition: GtBoard.cc:106
bool m_algFinalOrVeto
Definition: GtBoard.h:281
bool m_firstEvLumiSegment
Definition: GtBoard.h:269
const std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & getDecisionWord() const
return decision
Definition: GtBoard.h:138
bool m_uGtFinalBoard
Definition: GtBoard.h:289
bool m_firstEv
Definition: GtBoard.h:268
int m_bxFirst_
Definition: GtBoard.h:253
const L1MuTriggerScales * m_l1MuTriggerScales
Definition: GtBoard.h:233
bool m_algFinalOr
Definition: GtBoard.h:280
unsigned int m_boardEventCount
Definition: GtBoard.h:285
void setBxLast(int bx)
Definition: GtBoard.cc:127
const TriggerMenu * m_l1GtMenu
Definition: GtBoard.h:226
BXVector< const GlobalExtBlk * > * m_candL1External
Definition: GtBoard.h:246
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
Definition: GtBoard.h:257
unsigned long long m_l1MuTriggerScalesCacheID
Definition: GtBoard.h:234
int iEvent
Definition: GenABIO.cc:230
bool m_isDebugEnabled
Definition: GtBoard.h:275
bool m_algInitialOr
Definition: GtBoard.h:278
void receiveCaloObjectData(edm::Event &, const edm::EDGetTokenT< BXVector< l1t::EGamma >> &, const edm::EDGetTokenT< BXVector< l1t::Tau >> &, const edm::EDGetTokenT< BXVector< l1t::Jet >> &, const edm::EDGetTokenT< BXVector< l1t::EtSum >> &, const bool receiveEG, const int nrL1EG, const bool receiveTau, const int nrL1Tau, const bool receiveJet, const int nrL1Jet, const bool receiveEtSums)
receive data from Global Muon Trigger
Definition: GtBoard.cc:167
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:245
void setBxFirst(int bx)
Definition: GtBoard.cc:121
std::vector< std::vector< int > > m_prescaleCounterAlgoTrig
prescale counters: NumberPhysTriggers counters per bunch cross in event
Definition: GtBoard.h:266
const BXVector< const l1t::L1Candidate * > * getCandL1Jet() const
pointer to Jet data list
Definition: GtBoard.h:162
const std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & getAlgorithmOR() const
return algorithm OR decision
Definition: GtBoard.h:144
void reset()
clear uGT
Definition: GtBoard.cc:1082
void receiveMuonObjectData(edm::Event &, const edm::EDGetTokenT< BXVector< l1t::Muon > > &, const bool receiveMu, const int nrL1Mu)
Definition: GtBoard.cc:341
unsigned long long m_l1GtMenuCacheID
Definition: GtBoard.h:227
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:242
int m_bxLast_
Definition: GtBoard.h:254
const BXVector< const l1t::L1Candidate * > * getCandL1EG() const
pointer to EG data list
Definition: GtBoard.h:156
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:243
void resetCalo()
Definition: GtBoard.cc:1107
bool m_algPrescaledOr
Definition: GtBoard.h:279
void init(const int numberPhysTriggers, const int nrL1Mu, const int nrL1EG, const int nrL1Tau, const int nrL1Jet, int bxFirst, int bxLast)
initialize the class (mainly reserve)
Definition: GtBoard.cc:133
const BXVector< const l1t::Muon * > * getCandL1Mu() const
return global muon trigger candidate
Definition: GtBoard.h:150
const BXVector< const GlobalExtBlk * > * getCandL1External() const
pointer to Tau data list
Definition: GtBoard.h:181
void runFDL(edm::Event &iEvent, const int iBxInEvent, const int totalBxInEvent, const unsigned int numberPhysTriggers, const std::vector< int > &prescaleFactorsAlgoTrig, const std::vector< unsigned int > &triggerMaskAlgoTrig, const std::vector< unsigned int > &triggerMaskVetoAlgoTrig, const bool algorithmTriggersUnprescaled, const bool algorithmTriggersUnmasked)
run the uGT FDL (Apply Prescales and Veto)
Definition: GtBoard.cc:896
int m_uGtBoardNumber
Definition: GtBoard.h:288
void fillExtRecord(int iBxInEvent, std::auto_ptr< GlobalExtBlkBxCollection > &uGtExtRecord, cms_uint64_t orbNr, int bxNr)
Definition: GtBoard.cc:1060
bool m_algFinalOrPreVeto
Definition: GtBoard.h:282
void fillAlgRecord(int iBxInEvent, std::auto_ptr< GlobalAlgBlkBxCollection > &uGtAlgRecord, cms_uint64_t orbNr, int bxNr)
Fill the Daq Records.
Definition: GtBoard.cc:1030
const BXVector< const l1t::EtSum * > * getCandL1EtSum() const
pointer to Tau data list
Definition: GtBoard.h:175
unsigned long long cms_uint64_t
Definition: typedefs.h:17
const BXVector< const l1t::L1Candidate * > * getCandL1Tau() const
pointer to Tau data list
Definition: GtBoard.h:169
void runGTL(edm::Event &iEvent, const edm::EventSetup &evSetup, const TriggerMenu *m_l1GtMenu, const bool produceL1GtObjectMapRecord, const int iBxInEvent, std::auto_ptr< L1GlobalTriggerObjectMapRecord > &gtObjectMapRecord, const unsigned int numberPhysTriggers, const int nrL1Mu, const int nrL1EG, const int nrL1Tau, const int nrL1Jet, const int nrL1JetCounts)
run the uGT GTL (Conditions and Algorithms)
Definition: GtBoard.cc:442
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:244
unsigned long long m_l1CaloGeometryCacheID
Definition: GtBoard.h:231