CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
L1GlobalTriggerFDL Class Reference

#include <L1GlobalTriggerFDL.h>

Public Member Functions

void fillDaqFdlBlock (const int iBxInEvent, const boost::uint16_t &activeBoardsGtDaq, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardDaq, const std::vector< L1GtBoard > &boardMaps, std::auto_ptr< L1GlobalTriggerReadoutRecord > &gtDaqReadoutRecord)
 fill the FDL block in the L1 GT DAQ record for iBxInEvent More...
 
void fillEvmFdlBlock (const int iBxInEvent, const boost::uint16_t &activeBoardsGtEvm, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardEvm, const std::vector< L1GtBoard > &boardMaps, std::auto_ptr< 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 41 of file L1GlobalTriggerFDL.h.

Constructor & Destructor Documentation

L1GlobalTriggerFDL::L1GlobalTriggerFDL ( )

constructor

Definition at line 46 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord.

46  :
47  // logical switches
48  m_firstEv(true),
50  m_firstEvRun(true),
52 {
53 
54  // create empty FDL word
55  m_gtFdlWord = new L1GtFdlWord();
56 
57 
58  // can not reserve memory here for prescale counters - no access to EventSetup
59 
60 }
bool isDebugEnabled()
L1GtFdlWord * m_gtFdlWord
L1GlobalTriggerFDL::~L1GlobalTriggerFDL ( )
virtual

destructor

Definition at line 63 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and reset().

64 {
65 
66  reset();
67  delete m_gtFdlWord;
68 
69 }
L1GtFdlWord * m_gtFdlWord
void reset()
clear FDL

Member Function Documentation

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

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

Definition at line 449 of file L1GlobalTriggerFDL.cc.

References FDL, and m_gtFdlWord.

Referenced by L1GlobalTrigger::produce().

454 {
455 
456  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
457  for (CItBoardMaps
458  itBoard = boardMaps.begin();
459  itBoard != boardMaps.end(); ++itBoard) {
460 
461  int iPosition = itBoard->gtPositionDaqRecord();
462  if (iPosition > 0) {
463 
464  int iActiveBit = itBoard->gtBitDaqActiveBoards();
465  bool activeBoard = false;
466  bool writeBoard = false;
467 
468  int recLength = -1;
469 
470  if (iActiveBit >= 0) {
471  activeBoard = activeBoardsGtDaq & ( 1 << iActiveBit );
472 
473  int altNrBxBoard = (altNrBxBoardDaq & ( 1 << iActiveBit )) >> iActiveBit;
474 
475  if (altNrBxBoard == 1) {
476  recLength = recordLength1;
477  } else {
478  recLength = recordLength0;
479  }
480 
481  int lowBxInEvent = (recLength + 1)/2 - recLength;
482  int uppBxInEvent = (recLength + 1)/2 - 1;
483 
484  if ((iBxInEvent >= lowBxInEvent) && (iBxInEvent <= uppBxInEvent)) {
485  writeBoard = true;
486  }
487 
488  }
489 
490  if (activeBoard && writeBoard && (itBoard->gtBoardType() == FDL)) {
491 
492  gtDaqReadoutRecord->setGtFdlWord(*m_gtFdlWord);
493 
494 
495  }
496 
497  }
498 
499  }
500 
501 
502 }
L1GtFdlWord * m_gtFdlWord
void L1GlobalTriggerFDL::fillEvmFdlBlock ( const int  iBxInEvent,
const boost::uint16_t &  activeBoardsGtEvm,
const int  recordLength0,
const int  recordLength1,
const unsigned int  altNrBxBoardEvm,
const std::vector< L1GtBoard > &  boardMaps,
std::auto_ptr< L1GlobalTriggerEvmReadoutRecord > &  gtEvmReadoutRecord 
)

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

Definition at line 505 of file L1GlobalTriggerFDL.cc.

References FDL, and m_gtFdlWord.

Referenced by L1GlobalTrigger::produce().

510 {
511 
512  typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
513  for (CItBoardMaps
514  itBoard = boardMaps.begin();
515  itBoard != boardMaps.end(); ++itBoard) {
516 
517  int iPosition = itBoard->gtPositionEvmRecord();
518  if (iPosition > 0) {
519 
520  int iActiveBit = itBoard->gtBitEvmActiveBoards();
521  bool activeBoard = false;
522 
523  if (iActiveBit >= 0) {
524  activeBoard = activeBoardsGtEvm & (1 << iActiveBit);
525  }
526 
527  if (activeBoard && (itBoard->gtBoardType() == FDL)) {
528 
529  gtEvmReadoutRecord->setGtFdlWord(*m_gtFdlWord);
530 
531 
532  }
533 
534  }
535 
536  }
537 
538 }
L1GtFdlWord * m_gtFdlWord
L1GtFdlWord* L1GlobalTriggerFDL::gtFdlWord ( ) const
inline

return the GtFdlWord

Definition at line 95 of file L1GlobalTriggerFDL.h.

References m_gtFdlWord.

96  {
97  return m_gtFdlWord;
98  }
L1GtFdlWord * m_gtFdlWord
void L1GlobalTriggerFDL::reset ( void  )

clear FDL

Definition at line 542 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and L1GtFdlWord::reset().

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

543 {
544 
545  m_gtFdlWord->reset();
546 
547  // do NOT reset the prescale counters
548 
549 }
L1GtFdlWord * m_gtFdlWord
void reset()
reset the content of a L1GtFdlWord
Definition: L1GtFdlWord.cc:732
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 74 of file L1GlobalTriggerFDL.cc.

References edm::EventBase::bunchCrossing(), edm::EventID::event(), FDL, L1GlobalTriggerGTL::getAlgorithmOR(), L1GlobalTriggerPSB::getGtTechnicalTriggers(), edm::EventBase::id(), LogDebug, edm::EventBase::luminosityBlock(), m_firstEv, m_firstEvLumiSegment, m_gtFdlWord, m_prescaleCounterAlgoTrig, m_prescaleCounterTechTrig, m_verbosity, L1GlobalTriggerReadoutSetup::NumberPhysTriggers, edm::EventBase::orbitNumber(), 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().

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

Member Data Documentation

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 120 of file L1GlobalTriggerFDL.h.

Referenced by run().

bool L1GlobalTriggerFDL::m_firstEvLumiSegment
private

Definition at line 121 of file L1GlobalTriggerFDL.h.

Referenced by run().

bool L1GlobalTriggerFDL::m_firstEvRun
private

Definition at line 122 of file L1GlobalTriggerFDL.h.

L1GtFdlWord* L1GlobalTriggerFDL::m_gtFdlWord
private
bool L1GlobalTriggerFDL::m_isDebugEnabled
private

Definition at line 128 of file L1GlobalTriggerFDL.h.

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

prescale counters: NumberPhysTriggers counters per bunch cross in event

Definition at line 111 of file L1GlobalTriggerFDL.h.

Referenced by run().

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

prescale counters: technical trigger counters per bunch cross in event

Definition at line 114 of file L1GlobalTriggerFDL.h.

Referenced by run().

int L1GlobalTriggerFDL::m_verbosity
private

verbosity level

Definition at line 127 of file L1GlobalTriggerFDL.h.

Referenced by run(), and setVerbosity().