CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
L1GlobalTriggerFDL Class Reference

#include <L1GlobalTriggerFDL.h>

Public Member Functions

void fillDaqFdlBlock (const int iBxInEvent, const uint16_t &activeBoardsGtDaq, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardDaq, const std::vector< L1GtBoard > &boardMaps, L1GlobalTriggerReadoutRecord *gtDaqReadoutRecord)
 fill the FDL block in the L1 GT DAQ record for iBxInEvent More...
 
void fillEvmFdlBlock (const int iBxInEvent, const uint16_t &activeBoardsGtEvm, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardEvm, const std::vector< L1GtBoard > &boardMaps, L1GlobalTriggerEvmReadoutRecord *gtEvmReadoutRecord)
 fill the FDL block in the L1 GT EVM record for iBxInEvent More...
 
L1GtFdlWordgtFdlWord () const
 return the GtFdlWord More...
 
 L1GlobalTriggerFDL ()
 constructor More...
 
void reset ()
 clear FDL More...
 
void run (edm::Event &iEvent, const std::vector< int > &prescaleFactorsAlgoTrig, const std::vector< int > &prescaleFactorsTechTrig, const std::vector< unsigned int > &triggerMaskAlgoTrig, const std::vector< unsigned int > &triggerMaskTechTrig, const std::vector< unsigned int > &triggerMaskVetoAlgoTrig, const std::vector< unsigned int > &triggerMaskVetoTechTrig, const std::vector< L1GtBoard > &boardMaps, const int totalBxInEvent, const int iBxInEvent, const unsigned int numberPhysTriggers, const unsigned int numberTechnicalTriggers, const unsigned int numberDaqPartitions, const L1GlobalTriggerGTL *ptrGTL, const L1GlobalTriggerPSB *ptrPSB, const int pfAlgoSetIndex, const int pfTechSetIndex, const bool algorithmTriggersUnprescaled, const bool algorithmTriggersUnmasked, const bool technicalTriggersUnprescaled, const bool technicalTriggersUnmasked, const bool technicalTriggersVetoUnmasked)
 run the FDL More...
 
void setVerbosity (const int verbosity)
 
virtual ~L1GlobalTriggerFDL ()
 destructor More...
 

Private Attributes

bool m_firstEv
 
bool m_firstEvLumiSegment
 
bool m_firstEvRun
 
L1GtFdlWordm_gtFdlWord
 
bool m_isDebugEnabled
 
std::vector< std::vector< int > > m_prescaleCounterAlgoTrig
 prescale counters: NumberPhysTriggers counters per bunch cross in event More...
 
std::vector< std::vector< int > > m_prescaleCounterTechTrig
 prescale counters: technical trigger counters per bunch cross in event More...
 
int m_verbosity
 verbosity level More...
 

Detailed Description

Description: Final Decision Logic board.

Implementation: <TODO: enter implementation details>

Author
: M. Fierro - HEPHY Vienna - ORCA version
: Vasile Mihai Ghete - HEPHY Vienna - CMSSW version

Definition at line 40 of file L1GlobalTriggerFDL.h.

Constructor & Destructor Documentation

◆ L1GlobalTriggerFDL()

L1GlobalTriggerFDL::L1GlobalTriggerFDL ( )

constructor

Definition at line 44 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord.

45  : // logical switches
46  m_firstEv(true),
48  m_firstEvRun(true),
50  // create empty FDL word
51  m_gtFdlWord = new L1GtFdlWord();
52 
53  // can not reserve memory here for prescale counters - no access to EventSetup
54 }
bool isDebugEnabled()
L1GtFdlWord * m_gtFdlWord

◆ ~L1GlobalTriggerFDL()

L1GlobalTriggerFDL::~L1GlobalTriggerFDL ( )
virtual

destructor

Definition at line 57 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and reset().

57  {
58  reset();
59  delete m_gtFdlWord;
60 }
L1GtFdlWord * m_gtFdlWord
void reset()
clear FDL

Member Function Documentation

◆ fillDaqFdlBlock()

void L1GlobalTriggerFDL::fillDaqFdlBlock ( const int  iBxInEvent,
const uint16_t &  activeBoardsGtDaq,
const int  recordLength0,
const int  recordLength1,
const unsigned int  altNrBxBoardDaq,
const std::vector< L1GtBoard > &  boardMaps,
L1GlobalTriggerReadoutRecord gtDaqReadoutRecord 
)

fill the FDL block in the L1 GT DAQ record for iBxInEvent

Definition at line 386 of file L1GlobalTriggerFDL.cc.

References FDL, m_gtFdlWord, and L1GlobalTriggerReadoutRecord::setGtFdlWord().

Referenced by L1GlobalTrigger::produce().

392  {
393  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
394  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
395  int iPosition = itBoard->gtPositionDaqRecord();
396  if (iPosition > 0) {
397  int iActiveBit = itBoard->gtBitDaqActiveBoards();
398  bool activeBoard = false;
399  bool writeBoard = false;
400 
401  int recLength = -1;
402 
403  if (iActiveBit >= 0) {
404  activeBoard = activeBoardsGtDaq & (1 << iActiveBit);
405 
406  int altNrBxBoard = (altNrBxBoardDaq & (1 << iActiveBit)) >> iActiveBit;
407 
408  if (altNrBxBoard == 1) {
409  recLength = recordLength1;
410  } else {
411  recLength = recordLength0;
412  }
413 
414  int lowBxInEvent = (recLength + 1) / 2 - recLength;
415  int uppBxInEvent = (recLength + 1) / 2 - 1;
416 
417  if ((iBxInEvent >= lowBxInEvent) && (iBxInEvent <= uppBxInEvent)) {
418  writeBoard = true;
419  }
420  }
421 
422  if (activeBoard && writeBoard && (itBoard->gtBoardType() == FDL)) {
423  gtDaqReadoutRecord->setGtFdlWord(*m_gtFdlWord);
424  }
425  }
426  }
427 }
L1GtFdlWord * m_gtFdlWord
void setGtFdlWord(const L1GtFdlWord &, int bxInEventValue)

◆ fillEvmFdlBlock()

void L1GlobalTriggerFDL::fillEvmFdlBlock ( const int  iBxInEvent,
const uint16_t &  activeBoardsGtEvm,
const int  recordLength0,
const int  recordLength1,
const unsigned int  altNrBxBoardEvm,
const std::vector< L1GtBoard > &  boardMaps,
L1GlobalTriggerEvmReadoutRecord gtEvmReadoutRecord 
)

fill the FDL block in the L1 GT EVM record for iBxInEvent

Definition at line 430 of file L1GlobalTriggerFDL.cc.

References FDL, m_gtFdlWord, and L1GlobalTriggerEvmReadoutRecord::setGtFdlWord().

Referenced by L1GlobalTrigger::produce().

436  {
437  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
438  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
439  int iPosition = itBoard->gtPositionEvmRecord();
440  if (iPosition > 0) {
441  int iActiveBit = itBoard->gtBitEvmActiveBoards();
442  bool activeBoard = false;
443 
444  if (iActiveBit >= 0) {
445  activeBoard = activeBoardsGtEvm & (1 << iActiveBit);
446  }
447 
448  if (activeBoard && (itBoard->gtBoardType() == FDL)) {
449  gtEvmReadoutRecord->setGtFdlWord(*m_gtFdlWord);
450  }
451  }
452  }
453 }
L1GtFdlWord * m_gtFdlWord
void setGtFdlWord(const L1GtFdlWord &, int bxInEvent)

◆ gtFdlWord()

L1GtFdlWord* L1GlobalTriggerFDL::gtFdlWord ( ) const
inline

return the GtFdlWord

Definition at line 94 of file L1GlobalTriggerFDL.h.

References m_gtFdlWord.

94 { return m_gtFdlWord; }
L1GtFdlWord * m_gtFdlWord

◆ reset()

void L1GlobalTriggerFDL::reset ( void  )

clear FDL

Definition at line 456 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and L1GtFdlWord::reset().

Referenced by L1GlobalTrigger::produce(), and ~L1GlobalTriggerFDL().

456  {
457  m_gtFdlWord->reset();
458 
459  // do NOT reset the prescale counters
460 }
L1GtFdlWord * m_gtFdlWord
void reset()
reset the content of a L1GtFdlWord
Definition: L1GtFdlWord.cc:565

◆ run()

void L1GlobalTriggerFDL::run ( edm::Event iEvent,
const std::vector< int > &  prescaleFactorsAlgoTrig,
const std::vector< int > &  prescaleFactorsTechTrig,
const std::vector< unsigned int > &  triggerMaskAlgoTrig,
const std::vector< unsigned int > &  triggerMaskTechTrig,
const std::vector< unsigned int > &  triggerMaskVetoAlgoTrig,
const std::vector< unsigned int > &  triggerMaskVetoTechTrig,
const std::vector< L1GtBoard > &  boardMaps,
const int  totalBxInEvent,
const int  iBxInEvent,
const unsigned int  numberPhysTriggers,
const unsigned int  numberTechnicalTriggers,
const unsigned int  numberDaqPartitions,
const L1GlobalTriggerGTL ptrGTL,
const L1GlobalTriggerPSB ptrPSB,
const int  pfAlgoSetIndex,
const int  pfTechSetIndex,
const bool  algorithmTriggersUnprescaled,
const bool  algorithmTriggersUnmasked,
const bool  technicalTriggersUnprescaled,
const bool  technicalTriggersUnmasked,
const bool  technicalTriggersVetoUnmasked 
)

run the FDL

Definition at line 65 of file L1GlobalTriggerFDL.cc.

References TauDecayModes::dec, FDL, L1GlobalTriggerGTL::getAlgorithmOR(), L1GlobalTriggerPSB::getGtTechnicalTriggers(), iEvent, LogDebug, m_firstEv, m_firstEvLumiSegment, m_gtFdlWord, m_prescaleCounterAlgoTrig, m_prescaleCounterTechTrig, m_verbosity, L1GlobalTriggerReadoutSetup::NumberPhysTriggers, L1GtFdlWord::setBoardId(), L1GtFdlWord::setBxInEvent(), L1GtFdlWord::setBxNr(), L1GtFdlWord::setEventNr(), L1GtFdlWord::setFinalOR(), L1GtFdlWord::setGtDecisionWord(), L1GtFdlWord::setGtPrescaleFactorIndexAlgo(), L1GtFdlWord::setGtPrescaleFactorIndexTech(), L1GtFdlWord::setGtTechnicalTriggerWord(), L1GtFdlWord::setLocalBxNr(), L1GtFdlWord::setLumiSegmentNr(), and L1GtFdlWord::setOrbitNr().

Referenced by L1GlobalTrigger::produce().

86  {
87  // FIXME get rid of bitset in GTL in order to use only EventSetup
88  const unsigned int numberPhysTriggersSet = L1GlobalTriggerReadoutSetup::NumberPhysTriggers;
89 
90  // get gtlDecisionWord from GTL
91  std::bitset<numberPhysTriggersSet> gtlDecisionWord = ptrGTL->getAlgorithmOR();
92 
93  // convert decision word from std::bitset to std::vector<bool>
94  DecisionWord algoDecisionWord(numberPhysTriggers);
95 
96  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
97  bool bitValue = gtlDecisionWord.test(iBit);
98  algoDecisionWord[iBit] = bitValue;
99  }
100 
101  // prescale counters are reset at the beginning of the luminosity segment
102 
103  if (m_firstEv) {
104  // prescale counters: numberPhysTriggers counters per bunch cross
105  m_prescaleCounterAlgoTrig.reserve(numberPhysTriggers * totalBxInEvent);
106 
107  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
108  m_prescaleCounterAlgoTrig.push_back(prescaleFactorsAlgoTrig);
109  }
110 
111  // prescale counters: numberTechnicalTriggers counters per bunch cross
112  m_prescaleCounterTechTrig.reserve(numberTechnicalTriggers * totalBxInEvent);
113 
114  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
115  m_prescaleCounterTechTrig.push_back(prescaleFactorsTechTrig);
116  }
117 
118  m_firstEv = false;
119  }
120 
121  // TODO FIXME find the beginning of the luminosity segment
122  if (m_firstEvLumiSegment) {
124  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
125  m_prescaleCounterAlgoTrig.push_back(prescaleFactorsAlgoTrig);
126  }
127 
129  for (int iBxInEvent = 0; iBxInEvent <= totalBxInEvent; ++iBxInEvent) {
130  m_prescaleCounterTechTrig.push_back(prescaleFactorsTechTrig);
131  }
132 
133  m_firstEvLumiSegment = false;
134  }
135 
136  // prescale the algorithm, if necessary
137 
138  // iBxInEvent is ... -2 -1 0 1 2 ... while counters are 0 1 2 3 4 ...
139  int inBxInEvent = totalBxInEvent / 2 + iBxInEvent;
140 
141  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
142  if ((!algorithmTriggersUnprescaled) && (prescaleFactorsAlgoTrig.at(iBit) != 1)) {
143  bool bitValue = algoDecisionWord.at(iBit);
144  if (bitValue) {
145  (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit))--;
146  if (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) == 0) {
147  // bit already true in algoDecisionWord, just reset counter
148  m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) = prescaleFactorsAlgoTrig.at(iBit);
149 
150  // LogTrace("L1GlobalTrigger")
151  //<< "\nPrescaled algorithm: " << iBit << ". Reset counter to "
152  //<< prescaleFactorsAlgoTrig.at(iBit) << "\n"
153  //<< std::endl;
154 
155  } else {
156  // change bit to false
157  algoDecisionWord[iBit] = false;
158  ;
159 
160  // LogTrace("L1GlobalTrigger")
161  //<< "\nPrescaled algorithm: " << iBit << ". Result set to false"
162  //<< std::endl;
163  }
164  }
165  }
166  }
167 
168  // algo decision word written in the FDL readout before the trigger mask
169  // in order to allow multiple DAQ partitions
170 
171  //
172  // technical triggers
173  //
174 
175  std::vector<bool> techDecisionWord = *(ptrPSB->getGtTechnicalTriggers());
176 
177  // prescale the technical trigger, if necessary
178 
179  for (unsigned int iBit = 0; iBit < numberTechnicalTriggers; ++iBit) {
180  if ((!technicalTriggersUnprescaled) && (prescaleFactorsTechTrig.at(iBit) != 1)) {
181  bool bitValue = techDecisionWord.at(iBit);
182  if (bitValue) {
183  (m_prescaleCounterTechTrig.at(inBxInEvent).at(iBit))--;
184  if (m_prescaleCounterTechTrig.at(inBxInEvent).at(iBit) == 0) {
185  // bit already true in techDecisionWord, just reset counter
186  m_prescaleCounterTechTrig.at(inBxInEvent).at(iBit) = prescaleFactorsTechTrig.at(iBit);
187 
188  // LogTrace("L1GlobalTrigger")
189  //<< "\nPrescaled algorithm: " << iBit << ". Reset counter to "
190  //<< prescaleFactorsTechTrig.at(iBit) << "\n"
191  //<< std::endl;
192 
193  } else {
194  // change bit to false
195  techDecisionWord[iBit] = false;
196 
197  // LogTrace("L1GlobalTrigger")
198  //<< "\nPrescaled technical trigger: " << iBit << ". Result set to
199  // false"
200  //<< std::endl;
201  }
202  }
203  }
204  }
205 
206  // technical trigger decision word written in the FDL readout before the
207  // trigger mask in order to allow multiple DAQ partitions
208 
209  //
210  // compute the final decision word per DAQ partition
211  //
212 
213  uint16_t finalOrValue = 0;
214 
215  for (unsigned int iDaq = 0; iDaq < numberDaqPartitions; ++iDaq) {
216  bool daqPartitionFinalOR = false;
217 
218  // starts with technical trigger veto mask to minimize computation
219  // no algorithm trigger veto mask is implemented up to now in hardware,
220  // therefore do not implement it here
221  bool vetoTechTrig = false;
222 
223  // vetoTechTrig can change only when using trigger veto masks
224  if (!technicalTriggersVetoUnmasked) {
225  for (unsigned int iBit = 0; iBit < numberTechnicalTriggers; ++iBit) {
226  int triggerMaskVetoTechTrigBit = triggerMaskVetoTechTrig[iBit] & (1 << iDaq);
227  // LogTrace("L1GlobalTrigger")
228  //<< "\nTechnical trigger bit: " << iBit
229  //<< " mask = " << triggerMaskVetoTechTrigBit
230  //<< " DAQ partition " << iDaq
231  //<< std::endl;
232 
233  if (triggerMaskVetoTechTrigBit && techDecisionWord[iBit]) {
234  vetoTechTrig = true;
235 
236  // LogTrace("L1GlobalTrigger")
237  //<< "\nVeto mask technical trigger: " << iBit
238  // << ". FinalOR for DAQ partition " << iDaq << " set to false"
239  //<< std::endl;
240 
241  break;
242  }
243  }
244  }
245 
246  // apply algorithm and technical trigger masks only if no veto from
247  // technical trigger
248  if (!vetoTechTrig) {
249  // algorithm trigger mask
250  bool algoFinalOr = false;
251 
252  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
253  bool iBitDecision = false;
254 
255  int triggerMaskAlgoTrigBit = -1;
256 
257  if (algorithmTriggersUnmasked) {
258  triggerMaskAlgoTrigBit = 0;
259  } else {
260  triggerMaskAlgoTrigBit = triggerMaskAlgoTrig[iBit] & (1 << iDaq);
261  }
262  // LogTrace("L1GlobalTrigger")
263  //<< "\nAlgorithm trigger bit: " << iBit
264  //<< " mask = " << triggerMaskAlgoTrigBit
265  //<< " DAQ partition " << iDaq
266  //<< std::endl;
267 
268  if (triggerMaskAlgoTrigBit) {
269  iBitDecision = false;
270 
271  // LogTrace("L1GlobalTrigger")
272  //<< "\nMasked algorithm trigger: " << iBit << ". Result set to false"
273  //<< std::endl;
274  } else {
275  iBitDecision = algoDecisionWord[iBit];
276  }
277 
278  algoFinalOr = algoFinalOr || iBitDecision;
279  }
280 
281  // set the technical trigger mask: block the corresponding algorithm if
282  // bit value is 1
283 
284  bool techFinalOr = false;
285 
286  for (unsigned int iBit = 0; iBit < numberTechnicalTriggers; ++iBit) {
287  bool iBitDecision = false;
288 
289  int triggerMaskTechTrigBit = -1;
290 
291  if (technicalTriggersUnmasked) {
292  triggerMaskTechTrigBit = 0;
293  } else {
294  triggerMaskTechTrigBit = triggerMaskTechTrig[iBit] & (1 << iDaq);
295  }
296  // LogTrace("L1GlobalTrigger")
297  //<< "\nTechnical trigger bit: " << iBit
298  //<< " mask = " << triggerMaskTechTrigBit
299  //<< std::endl;
300 
301  if (triggerMaskTechTrigBit) {
302  iBitDecision = false;
303 
304  // LogTrace("L1GlobalTrigger")
305  //<< "\nMasked technical trigger: " << iBit << ". Result set to false"
306  //<< std::endl;
307  } else {
308  iBitDecision = techDecisionWord[iBit];
309  }
310 
311  techFinalOr = techFinalOr || iBitDecision;
312  }
313 
314  daqPartitionFinalOR = algoFinalOr || techFinalOr;
315 
316  } else {
317  daqPartitionFinalOR = false; // vetoTechTrig
318  }
319 
320  // push it in finalOrValue
321  uint16_t daqPartitionFinalORValue = static_cast<uint16_t>(daqPartitionFinalOR);
322 
323  finalOrValue = finalOrValue | (daqPartitionFinalORValue << iDaq);
324  }
325 
326  // fill everything we know in the L1GtFdlWord
327 
328  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
329  for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
330  if ((itBoard->gtBoardType() == FDL)) {
331  m_gtFdlWord->setBoardId(itBoard->gtBoardId());
332 
333  // BxInEvent
334  m_gtFdlWord->setBxInEvent(iBxInEvent);
335 
336  // bunch crossing
337 
338  // fill in emulator the same bunch crossing (12 bits - hardwired number of
339  // bits...) and the same local bunch crossing for all boards
340  int bxCross = iEvent.bunchCrossing();
341  uint16_t bxCrossHw = 0;
342  if ((bxCross & 0xFFF) == bxCross) {
343  bxCrossHw = static_cast<uint16_t>(bxCross);
344  } else {
345  bxCrossHw = 0; // Bx number too large, set to 0!
346  if (m_verbosity) {
347  LogDebug("L1GlobalTrigger") << "\nBunch cross number [hex] = " << std::hex << bxCross
348  << "\n larger than 12 bits. Set to 0! \n"
349  << std::dec << std::endl;
350  }
351  }
352 
353  m_gtFdlWord->setBxNr(bxCrossHw);
354 
355  // set event number since last L1 reset generated in FDL
356  m_gtFdlWord->setEventNr(static_cast<uint32_t>(iEvent.id().event()));
357 
358  // technical trigger decision word
359  m_gtFdlWord->setGtTechnicalTriggerWord(techDecisionWord);
360 
361  // algorithm trigger decision word
362  m_gtFdlWord->setGtDecisionWord(algoDecisionWord);
363 
364  // index of prescale factor set - technical triggers and algo
365  m_gtFdlWord->setGtPrescaleFactorIndexTech(static_cast<uint16_t>(pfTechSetIndex));
366  m_gtFdlWord->setGtPrescaleFactorIndexAlgo(static_cast<uint16_t>(pfAlgoSetIndex));
367 
368  // NoAlgo bit FIXME
369 
370  // finalOR
371  m_gtFdlWord->setFinalOR(finalOrValue);
372 
373  // orbit number
374  m_gtFdlWord->setOrbitNr(static_cast<uint32_t>(iEvent.orbitNumber()));
375 
376  // luminosity segment number
377  m_gtFdlWord->setLumiSegmentNr(static_cast<uint16_t>(iEvent.luminosityBlock()));
378 
379  // local bunch crossing - set identical with absolute BxNr
380  m_gtFdlWord->setLocalBxNr(bxCrossHw);
381  }
382  }
383 }
void setBoardId(const cms_uint16_t &boardIdValue)
set BoardId from a BoardId value
Definition: L1GtFdlWord.h:66
void setFinalOR(const cms_uint16_t &finalORValue)
Definition: L1GtFdlWord.h:223
L1GtFdlWord * m_gtFdlWord
void setEventNr(const cms_uint32_t &eventNrValue)
Definition: L1GtFdlWord.h:102
void setGtDecisionWord(const DecisionWord &gtDecisionWordValue)
Definition: L1GtFdlWord.h:130
void setLocalBxNr(const cms_uint16_t &localBxNrValue)
Definition: L1GtFdlWord.h:261
int iEvent
Definition: GenABIO.cc:224
void setGtTechnicalTriggerWord(const TechnicalTriggerWord &gtTechnicalTriggerWordValue)
Definition: L1GtFdlWord.h:114
void setLumiSegmentNr(const cms_uint16_t &lumiSegmentNrValue)
Definition: L1GtFdlWord.h:249
std::vector< std::vector< int > > m_prescaleCounterAlgoTrig
prescale counters: NumberPhysTriggers counters per bunch cross in event
std::vector< bool > DecisionWord
typedefs
int m_verbosity
verbosity level
static const unsigned int NumberPhysTriggers
void setGtPrescaleFactorIndexAlgo(const cms_uint16_t &gtPrescaleFactorIndexAlgoValue)
Definition: L1GtFdlWord.h:197
void setGtPrescaleFactorIndexTech(const cms_uint16_t &gtPrescaleFactorIndexTechValue)
Definition: L1GtFdlWord.h:184
const std::vector< bool > * getGtTechnicalTriggers() const
pointer to technical trigger bits
const std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & getAlgorithmOR() const
return algorithm OR decision
void setOrbitNr(const cms_uint32_t &orbitNrValue)
Definition: L1GtFdlWord.h:237
void setBxInEvent(const int bxInEventValue)
Definition: L1GtFdlWord.h:78
std::vector< std::vector< int > > m_prescaleCounterTechTrig
prescale counters: technical trigger counters per bunch cross in event
void setBxNr(const cms_uint16_t &bxNrValue)
Definition: L1GtFdlWord.h:90
#define LogDebug(id)

◆ setVerbosity()

void L1GlobalTriggerFDL::setVerbosity ( const int  verbosity)
inline

Definition at line 97 of file L1GlobalTriggerFDL.h.

References m_verbosity, and verbosity.

Referenced by L1GlobalTrigger::L1GlobalTrigger().

int m_verbosity
verbosity level
const int verbosity

Member Data Documentation

◆ m_firstEv

bool L1GlobalTriggerFDL::m_firstEv
private

logical switches for the first event the first event in the luminosity segment and the first event in the run

Definition at line 112 of file L1GlobalTriggerFDL.h.

Referenced by run().

◆ m_firstEvLumiSegment

bool L1GlobalTriggerFDL::m_firstEvLumiSegment
private

Definition at line 113 of file L1GlobalTriggerFDL.h.

Referenced by run().

◆ m_firstEvRun

bool L1GlobalTriggerFDL::m_firstEvRun
private

Definition at line 114 of file L1GlobalTriggerFDL.h.

◆ m_gtFdlWord

L1GtFdlWord* L1GlobalTriggerFDL::m_gtFdlWord
private

◆ m_isDebugEnabled

bool L1GlobalTriggerFDL::m_isDebugEnabled
private

Definition at line 119 of file L1GlobalTriggerFDL.h.

◆ m_prescaleCounterAlgoTrig

std::vector<std::vector<int> > L1GlobalTriggerFDL::m_prescaleCounterAlgoTrig
private

prescale counters: NumberPhysTriggers counters per bunch cross in event

Definition at line 103 of file L1GlobalTriggerFDL.h.

Referenced by run().

◆ m_prescaleCounterTechTrig

std::vector<std::vector<int> > L1GlobalTriggerFDL::m_prescaleCounterTechTrig
private

prescale counters: technical trigger counters per bunch cross in event

Definition at line 106 of file L1GlobalTriggerFDL.h.

Referenced by run().

◆ m_verbosity

int L1GlobalTriggerFDL::m_verbosity
private

verbosity level

Definition at line 118 of file L1GlobalTriggerFDL.h.

Referenced by run(), and setVerbosity().