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

$Date$ $Revision$

Definition at line 43 of file L1GlobalTriggerFDL.h.

Constructor & Destructor Documentation

L1GlobalTriggerFDL::L1GlobalTriggerFDL ( )

constructor

Definition at line 48 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord.

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

destructor

Definition at line 65 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and reset().

66 {
67 
68  reset();
69  delete m_gtFdlWord;
70 
71 }
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 451 of file L1GlobalTriggerFDL.cc.

References FDL, and m_gtFdlWord.

Referenced by L1GlobalTrigger::produce().

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

References FDL, and m_gtFdlWord.

Referenced by L1GlobalTrigger::produce().

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

return the GtFdlWord

Definition at line 97 of file L1GlobalTriggerFDL.h.

References m_gtFdlWord.

98  {
99  return m_gtFdlWord;
100  }
L1GtFdlWord * m_gtFdlWord
void L1GlobalTriggerFDL::reset ( void  )

clear FDL

Definition at line 544 of file L1GlobalTriggerFDL.cc.

References m_gtFdlWord, and L1GtFdlWord::reset().

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

545 {
546 
547  m_gtFdlWord->reset();
548 
549  // do NOT reset the prescale counters
550 
551 }
L1GtFdlWord * m_gtFdlWord
void reset()
reset the content of a L1GtFdlWord
Definition: L1GtFdlWord.cc:734
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 76 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().

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

Referenced by run().

bool L1GlobalTriggerFDL::m_firstEvLumiSegment
private

Definition at line 123 of file L1GlobalTriggerFDL.h.

Referenced by run().

bool L1GlobalTriggerFDL::m_firstEvRun
private

Definition at line 124 of file L1GlobalTriggerFDL.h.

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

Definition at line 130 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 113 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 116 of file L1GlobalTriggerFDL.h.

Referenced by run().

int L1GlobalTriggerFDL::m_verbosity
private

verbosity level

Definition at line 129 of file L1GlobalTriggerFDL.h.

Referenced by run(), and setVerbosity().