CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
L1TGT Class Reference

#include <L1TGT.h>

Inheritance diagram for L1TGT:
DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks > edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1TGT (const edm::ParameterSet &ps)
 
 ~L1TGT () override
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) final
 end section More...
 
void bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Types

enum  activeDAQ {
  FDL = 0, PSB9, PSB13, PSB14,
  PSB15, PSB19, PSB20, PSB21,
  GMT
}
 
enum  activeEVM { TCS, FDLEVM }
 
typedef std::vector< std::pair< int, int > >::const_iterator CItVecPair
 

Private Member Functions

void countPfsIndicesPerLs ()
 
bool isActive (int word, int bit)
 book all histograms for the module More...
 

Private Attributes

MonitorElementalgo_bits
 
MonitorElementalgo_bits_corr
 
MonitorElementalgo_bits_lumi
 
MonitorElementalgo_tt_bits_corr
 
std::string algoBitToName [128]
 
MonitorElementBST_beamMode
 
MonitorElementBST_beamMomentum
 
MonitorElementBST_intensityBeam1
 
MonitorElementBST_intensityBeam2
 
MonitorElementBST_lhcFillNumber
 
MonitorElementBST_MasterStatus
 
MonitorElementBST_turnCountNumber
 
MonitorElementdbx_module
 
MonitorElementevent_lumi
 
MonitorElementevent_number
 
MonitorElementevent_type
 
MonitorElementevnum_trignum_lumi
 
MonitorElementgpsfreq
 
MonitorElementgpsfreqlum
 
MonitorElementgpsfreqwide
 
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecordgtEvmSource_
 input tag for L1 GT EVM readout record More...
 
MonitorElementgtfe_bx
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordgtSource_L1GT_
 input parameters More...
 
edm::EDGetTokenT< L1MuGMTReadoutCollectiongtSource_L1MuGMT_
 
MonitorElementh_L1AlgoBX1
 
MonitorElementh_L1AlgoBX2
 
MonitorElementh_L1AlgoBX3
 
MonitorElementh_L1AlgoBX4
 
MonitorElementh_L1TechBX
 
std::map< std::string, bool > l1TechTriggerDecision
 
std::map< std::string, bool > l1TriggerDecision
 
std::string m_histFolder
 histogram folder for L1 GT plots More...
 
MonitorElementm_monL1PfIndicesPerLs
 
MonitorElementm_monL1PrescaleFactorSet
 
MonitorElementm_monLsNrDiffTcsFdlEvm
 
MonitorElementm_monLsNrDiffTcsFdlEvmLs
 
MonitorElementm_monOrbitNrDiffTcsFdlEvm
 
MonitorElementm_monOrbitNrDiffTcsFdlEvmLs
 
int m_nrEvJob
 number of events processed More...
 
int m_nrEvRun
 
std::vector< std::pair< int, int > > m_pairLsNumberPfIndex
 
bool m_runInEndLumi
 
bool m_runInEventLoop
 switches to choose the running of various methods More...
 
MonitorElementorbit_lumi
 
uint64_t preGps_
 
uint64_t preOrb_
 
MonitorElementsetupversion_lumi
 
std::string techBitToName [64]
 
std::map< std::string, bool >::iterator trig_iter
 
MonitorElementtrigger_lumi
 
MonitorElementtrigger_number
 
MonitorElementtt_bits
 
MonitorElementtt_bits_corr
 
MonitorElementtt_bits_lumi
 
bool verbose_
 verbosity switch More...
 

Static Private Attributes

static const int MaxLsNrDiffTcsFdlEvm = 24
 
static const int MaxOrbitNrDiffTcsFdlEvm = 24
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: DQM for L1 Global Trigger.

Author
J. Berryhill, I. Mikulec
Vasile Mihai Ghete - HEPHY Vienna

Definition at line 49 of file L1TGT.h.

Member Typedef Documentation

◆ CItVecPair

typedef std::vector<std::pair<int, int> >::const_iterator L1TGT::CItVecPair
private

Definition at line 183 of file L1TGT.h.

Member Enumeration Documentation

◆ activeDAQ

enum L1TGT::activeDAQ
private
Enumerator
FDL 
PSB9 
PSB13 
PSB14 
PSB15 
PSB19 
PSB20 
PSB21 
GMT 

Definition at line 81 of file L1TGT.h.

81 { FDL = 0, PSB9, PSB13, PSB14, PSB15, PSB19, PSB20, PSB21, GMT };

◆ activeEVM

enum L1TGT::activeEVM
private
Enumerator
TCS 
FDLEVM 

Definition at line 85 of file L1TGT.h.

85 { TCS, FDLEVM };

Constructor & Destructor Documentation

◆ L1TGT()

L1TGT::L1TGT ( const edm::ParameterSet ps)

Definition at line 18 of file L1TGT.cc.

19  : gtSource_L1GT_(consumes<L1GlobalTriggerReadoutRecord>(ps.getParameter<edm::InputTag>("gtSource"))),
20  gtSource_L1MuGMT_(consumes<L1MuGMTReadoutCollection>(ps.getParameter<edm::InputTag>("gtSource"))),
21  gtEvmSource_(consumes<L1GlobalTriggerEvmReadoutRecord>(ps.getParameter<edm::InputTag>("gtEvmSource"))),
22  m_runInEventLoop(ps.getUntrackedParameter<bool>("runInEventLoop", false)),
23  m_runInEndLumi(ps.getUntrackedParameter<bool>("runInEndLumi", false)),
24  verbose_(ps.getUntrackedParameter<bool>("verbose", false)),
25  m_nrEvJob(0),
26  m_nrEvRun(0),
27  preGps_(0ULL),
28  preOrb_(0ULL) {
29  m_histFolder = ps.getUntrackedParameter<std::string>("HistFolder", "L1T/L1TGT");
30 }

References edm::ParameterSet::getUntrackedParameter(), m_histFolder, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~L1TGT()

L1TGT::~L1TGT ( )
override

Definition at line 32 of file L1TGT.cc.

32  {
33  // empty
34 }

Member Function Documentation

◆ analyze()

void L1TGT::analyze ( const edm::Event iEvent,
const edm::EventSetup evSetup 
)
overrideprotectedvirtual

get Global Trigger algo and technical trigger bit statistics

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 330 of file L1TGT.cc.

330  {
331  m_nrEvJob++;
332 
333  if (verbose_) {
334  edm::LogInfo("L1TGT") << "L1TGT: analyze...." << std::endl;
335  }
336 
337  // initialize Bx, orbit number, luminosity segment number to invalid value
338  int tcsBx = -1;
339  int gtfeEvmBx = -1;
340 
341  long long int orbitTcs = -1;
342  int orbitEvmFdl = -1;
343 
344  int lsTcs = -1;
345  int lsEvmFdl = -1;
346 
347  // get once only the LS block number, to be used in many histograms
348  const int lsNumber = iEvent.luminosityBlock();
349 
350  // open EVM readout record if available
352  iEvent.getByToken(gtEvmSource_, gtEvmReadoutRecord);
353 
354  if (!gtEvmReadoutRecord.isValid()) {
355  edm::LogInfo("L1TGT") << "can't find L1GlobalTriggerEvmReadoutRecord";
356  } else {
357  // get all info from the EVM record if available and fill the histograms
358 
359  const L1GtfeWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
360  const L1GtfeExtWord& gtfeEvmExtWord = gtEvmReadoutRecord->gtfeWord();
361 
362  gtfeEvmBx = gtfeEvmWord.bxNr();
363  int gtfeEvmActiveBoards = gtfeEvmWord.activeBoards();
364 
365  if (isActive(gtfeEvmActiveBoards, TCS)) {
366  // if TCS present in the record
367 
368  const L1TcsWord& tcsWord = gtEvmReadoutRecord->tcsWord();
369 
370  tcsBx = tcsWord.bxNr();
371  orbitTcs = tcsWord.orbitNr();
372  lsTcs = tcsWord.luminositySegmentNr();
373 
374  event_type->Fill(tcsWord.triggerType());
375  orbit_lumi->Fill(lsNumber, orbitTcs);
376 
377  trigger_number->Fill(tcsWord.partTrigNr());
378  event_number->Fill(tcsWord.eventNr());
379 
380  trigger_lumi->Fill(lsNumber, tcsWord.partTrigNr());
381  event_lumi->Fill(lsNumber, tcsWord.eventNr());
382  evnum_trignum_lumi->Fill(lsNumber,
383  static_cast<double>(tcsWord.eventNr()) / static_cast<double>(tcsWord.partTrigNr()));
384 
385  uint16_t master = gtfeEvmExtWord.bstMasterStatus();
386  uint32_t turnCount = gtfeEvmExtWord.turnCountNumber();
387  uint32_t lhcFill = gtfeEvmExtWord.lhcFillNumber();
388  uint16_t beam = gtfeEvmExtWord.beamMode();
389  uint16_t momentum = gtfeEvmExtWord.beamMomentum();
390  uint32_t intensity1 = gtfeEvmExtWord.totalIntensityBeam1();
391  uint32_t intensity2 = gtfeEvmExtWord.totalIntensityBeam2();
392 
393  BST_MasterStatus->Fill(lsNumber, static_cast<double>(master));
394  BST_turnCountNumber->Fill(lsNumber, static_cast<double>(turnCount));
395  BST_lhcFillNumber->Fill(static_cast<double>(lhcFill % 1000));
396  BST_beamMode->Fill(lsNumber, static_cast<double>(beam));
397 
398  BST_beamMomentum->Fill(lsNumber, static_cast<double>(momentum));
399  BST_intensityBeam1->Fill(lsNumber, static_cast<double>(intensity1));
400  BST_intensityBeam2->Fill(lsNumber, static_cast<double>(intensity2));
401 
402  if (verbose_) {
403  edm::LogInfo("L1TGT") << " check mode = " << beam << " momentum " << momentum << " int2 " << intensity2
404  << std::endl;
405  }
406 
407  uint64_t gpsr = gtfeEvmExtWord.gpsTime();
408  uint64_t gpshi = (gpsr >> 32) & 0xffffffff;
409  uint64_t gpslo = gpsr & 0xffffffff;
410  uint64_t gps = gpshi * 1000000 + gpslo;
411  // edm::LogInfo("L1TGT") << " gpsr = " << std::hex << gpsr << " hi=" << gpshi << " lo=" << gpslo << " gps=" << gps << std::endl;
412 
413  Long64_t delorb = orbitTcs - preOrb_;
414  Long64_t delgps = gps - preGps_;
415  Double_t freq = -1.;
416 
417  if (delgps > 0) {
418  freq = ((Double_t)(delorb)) * 3564. / ((Double_t)(delgps));
419  }
420 
421  if (delorb > 0) {
422  gpsfreq->Fill(freq);
423  gpsfreqwide->Fill(freq);
424  gpsfreqlum->Fill(lsNumber, freq);
425  if (verbose_) {
426  if (freq > 200.) {
427  edm::LogInfo("L1TGT") << " preOrb_ = " << preOrb_ << " orbitTcs=" << orbitTcs << " delorb=" << delorb
428  << std::hex << " preGps_=" << preGps_ << " gps=" << gps << std::dec
429  << " delgps=" << delgps << " freq=" << freq << std::endl;
430  }
431  }
432  }
433 
434  preGps_ = gps;
435  preOrb_ = orbitTcs;
436  }
437 
438  // get info from FDL if active
439  if (isActive(gtfeEvmActiveBoards, FDL)) {
440  const L1GtFdlWord& fdlWord = gtEvmReadoutRecord->gtFdlWord();
441 
442  orbitEvmFdl = fdlWord.orbitNr();
443  lsEvmFdl = fdlWord.lumiSegmentNr();
444  }
445 
446  if ((orbitTcs >= 0) && (orbitEvmFdl >= 0)) {
447  int diffOrbit = static_cast<float>(orbitTcs - orbitEvmFdl);
448  edm::LogInfo("L1TGT") << "\n orbitTcs = " << orbitTcs << " orbitEvmFdl = " << orbitEvmFdl
449  << " diffOrbit = " << diffOrbit << " orbitEvent = " << iEvent.orbitNumber() << std::endl;
450 
451  if (diffOrbit >= MaxOrbitNrDiffTcsFdlEvm) {
453 
454  } else if (diffOrbit <= -MaxOrbitNrDiffTcsFdlEvm) {
456 
457  } else {
458  m_monOrbitNrDiffTcsFdlEvm->Fill(diffOrbit);
459  m_monOrbitNrDiffTcsFdlEvmLs->Fill(lsNumber, diffOrbit);
460  }
461 
462  } else {
463  if (orbitTcs >= 0) {
464  // EVM_FDL error
466  } else if (orbitEvmFdl >= 0) {
467  // TCS error
469 
470  } else {
471  // TCS and EVM_FDL error
474  }
475  }
476 
477  if ((lsTcs >= 0) && (lsEvmFdl >= 0)) {
478  int diffLs = static_cast<float>(lsTcs - lsEvmFdl);
479  edm::LogInfo("L1TGT") << "\n lsTcs = " << lsTcs << " lsEvmFdl = " << lsEvmFdl << " diffLs = " << diffLs
480  << " lsEvent = " << lsNumber << std::endl;
481 
482  if (diffLs >= MaxLsNrDiffTcsFdlEvm) {
484 
485  } else if (diffLs <= -MaxLsNrDiffTcsFdlEvm) {
487 
488  } else {
489  m_monLsNrDiffTcsFdlEvm->Fill(diffLs);
490  m_monLsNrDiffTcsFdlEvmLs->Fill(lsNumber, diffLs);
491  }
492 
493  } else {
494  if (lsTcs >= 0) {
495  // EVM_FDL error
497  } else if (lsEvmFdl >= 0) {
498  // TCS error
500 
501  } else {
502  // TCS and EVM_FDL error
505  }
506  }
507  }
508 
509  // open GT DAQ readout record - exit if failed
511  iEvent.getByToken(gtSource_L1GT_, gtReadoutRecord);
512 
513  //edm::ESHandle<L1GtTriggerMenu> menuRcd;
514  //evSetup.get<L1GtTriggerMenuRcd>().get(menuRcd);
515 
516  //const L1GtTriggerMenu* menu = menuRcd.product();
517 
518  if (!gtReadoutRecord.isValid()) {
519  edm::LogInfo("L1TGT") << "can't find L1GlobalTriggerReadoutRecord";
520  return;
521  }
522 
523  if (gtReadoutRecord.isValid()) {
524  unsigned int NmaxL1AlgoBit = gtReadoutRecord->decisionWord().size();
525  unsigned int NmaxL1TechBit = gtReadoutRecord->technicalTriggerWord().size();
526 
527  const DecisionWord dWord = gtReadoutRecord->decisionWord();
528  const TechnicalTriggerWord technicalTriggerWordBeforeMask = gtReadoutRecord->technicalTriggerWord();
529 
530  const std::vector<L1GtFdlWord>& m_gtFdlWord(gtReadoutRecord->gtFdlVector());
531  int numberBxInEvent = m_gtFdlWord.size();
532  int minBxInEvent = (numberBxInEvent + 1) / 2 - numberBxInEvent;
533 
534  for (unsigned int iBit = 0; iBit < NmaxL1AlgoBit; ++iBit) {
535  bool accept = dWord[iBit];
536 
539  if (trig_iter == l1TriggerDecision.end()) {
540  l1TriggerDecision.insert(valType(algoBitToName[iBit], accept));
541  } else {
542  trig_iter->second = accept;
543  }
544 
545  int ibx = 0;
546  for (std::vector<L1GtFdlWord>::const_iterator itBx = m_gtFdlWord.begin(); itBx != m_gtFdlWord.end(); ++itBx) {
547  const DecisionWord dWordBX = (*itBx).gtDecisionWord();
548  bool accept = dWordBX[iBit];
549  if (accept) {
550  if (iBit < 32)
551  h_L1AlgoBX1->Fill(iBit, minBxInEvent + ibx);
552  else if (iBit < 64)
553  h_L1AlgoBX2->Fill(iBit, minBxInEvent + ibx);
554  else if (iBit < 96)
555  h_L1AlgoBX3->Fill(iBit, minBxInEvent + ibx);
556  else if (iBit < 128)
557  h_L1AlgoBX4->Fill(iBit, minBxInEvent + ibx);
558  }
559  ibx++;
560  }
561  }
562 
563  for (unsigned int iBit = 0; iBit < NmaxL1TechBit; ++iBit) {
564  bool accept = technicalTriggerWordBeforeMask[iBit];
565 
568  if (trig_iter == l1TechTriggerDecision.end())
569  l1TechTriggerDecision.insert(valType(techBitToName[iBit], accept));
570  else
571  trig_iter->second = accept;
572 
573  int ibx = 0;
574  for (std::vector<L1GtFdlWord>::const_iterator itBx = m_gtFdlWord.begin(); itBx != m_gtFdlWord.end(); ++itBx) {
575  const DecisionWord dWordBX = (*itBx).gtTechnicalTriggerWord();
576  bool accept = dWordBX[iBit];
577  if (accept)
578  h_L1TechBX->Fill(iBit, minBxInEvent + ibx);
579  ibx++;
580  }
581  }
582  }
583 
584  // initialize bx's to invalid value
585  int gtfeBx = -1;
586  int fdlBx[2] = {-1, -1};
587  int psbBx[2][7] = {{-1, -1, -1, -1, -1, -1, -1}, {-1, -1, -1, -1, -1, -1, -1}};
588  int gmtBx = -1;
589 
590  // get info from GTFE DAQ record
591  const L1GtfeWord& gtfeWord = gtReadoutRecord->gtfeWord();
592  gtfeBx = gtfeWord.bxNr();
593  gtfe_bx->Fill(gtfeBx);
594  setupversion_lumi->Fill(lsNumber, gtfeWord.setupVersion());
595  int gtfeActiveBoards = gtfeWord.activeBoards();
596 
597  // look for GMT readout collection from the same source if GMT active
598  if (isActive(gtfeActiveBoards, GMT)) {
599  edm::Handle<L1MuGMTReadoutCollection> gmtReadoutCollection;
600  iEvent.getByToken(gtSource_L1MuGMT_, gmtReadoutCollection);
601 
602  if (gmtReadoutCollection.isValid()) {
603  gmtBx = gmtReadoutCollection->getRecord().getBxNr();
604  }
605  }
606 
607  // get info from FDL if active (including decision word)
608  if (isActive(gtfeActiveBoards, FDL)) {
609  const L1GtFdlWord& fdlWord = gtReadoutRecord->gtFdlWord();
610  fdlBx[0] = fdlWord.bxNr();
611  fdlBx[1] = fdlWord.localBxNr();
612 
614  const DecisionWord& gtDecisionWord = gtReadoutRecord->decisionWord();
615  const TechnicalTriggerWord& gtTTWord = gtReadoutRecord->technicalTriggerWord();
616 
617  int dbitNumber = 0;
618  DecisionWord::const_iterator GTdbitItr;
619  algo_bits->Fill(-1.); // fill underflow to normalize
620  for (GTdbitItr = gtDecisionWord.begin(); GTdbitItr != gtDecisionWord.end(); GTdbitItr++) {
621  if (*GTdbitItr) {
622  algo_bits->Fill(dbitNumber);
623  algo_bits_lumi->Fill(lsNumber, dbitNumber);
624  int dbitNumber1 = 0;
625  DecisionWord::const_iterator GTdbitItr1;
626  for (GTdbitItr1 = gtDecisionWord.begin(); GTdbitItr1 != gtDecisionWord.end(); GTdbitItr1++) {
627  if (*GTdbitItr1)
628  algo_bits_corr->Fill(dbitNumber, dbitNumber1);
629  dbitNumber1++;
630  }
631  int tbitNumber1 = 0;
632  TechnicalTriggerWord::const_iterator GTtbitItr1;
633  for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1 != gtTTWord.end(); GTtbitItr1++) {
634  if (*GTtbitItr1)
635  algo_tt_bits_corr->Fill(dbitNumber, tbitNumber1);
636  tbitNumber1++;
637  }
638  }
639  dbitNumber++;
640  }
641 
642  int tbitNumber = 0;
643  TechnicalTriggerWord::const_iterator GTtbitItr;
644  tt_bits->Fill(-1.); // fill underflow to normalize
645  for (GTtbitItr = gtTTWord.begin(); GTtbitItr != gtTTWord.end(); GTtbitItr++) {
646  if (*GTtbitItr) {
647  tt_bits->Fill(tbitNumber);
648  tt_bits_lumi->Fill(lsNumber, tbitNumber);
649  int tbitNumber1 = 0;
650  TechnicalTriggerWord::const_iterator GTtbitItr1;
651  for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1 != gtTTWord.end(); GTtbitItr1++) {
652  if (*GTtbitItr1)
653  tt_bits_corr->Fill(tbitNumber, tbitNumber1);
654  tbitNumber1++;
655  }
656  }
657  tbitNumber++;
658  }
659 
660  // fill the index of actual prescale factor set
661  // the index for technical triggers and algorithm trigger is the same (constraint in L1 GT TS)
662  // so we read only pfIndexAlgoTrig (uint16_t)
663 
664  const int pfIndexAlgoTrig = fdlWord.gtPrescaleFactorIndexAlgo();
665  m_monL1PrescaleFactorSet->Fill(lsNumber, static_cast<float>(pfIndexAlgoTrig));
666 
667  //
668 
669  // check that the combination (lsNumber, pfIndex) is not already included
670  // to avoid fake entries due to different event order
671 
672  std::pair<int, int> pairLsPfi = std::make_pair(lsNumber, pfIndexAlgoTrig);
673 
674  CItVecPair cIt = find(m_pairLsNumberPfIndex.begin(), m_pairLsNumberPfIndex.end(), pairLsPfi);
675 
676  if (cIt == m_pairLsNumberPfIndex.end()) {
677  m_pairLsNumberPfIndex.push_back(pairLsPfi);
678  }
679  }
680 
681  // get info from active PSB's
682  int ibit = PSB9; // first psb
683  // for now hardcode psb id's - TODO - get them from Vasile's board maps...
684  int psbID[7] = {0xbb09, 0xbb0d, 0xbb0e, 0xbb0f, 0xbb13, 0xbb14, 0xbb15};
685  for (int i = 0; i < 7; i++) {
686  if (isActive(gtfeActiveBoards, ibit)) {
687  L1GtPsbWord psbWord = gtReadoutRecord->gtPsbWord(psbID[i]);
688  psbBx[0][i] = psbWord.bxNr();
689  psbBx[1][i] = psbWord.localBxNr();
690  }
691  ibit++;
692  }
693 
694  //fill the dbx histo
695  if (gtfeEvmBx > -1)
696  dbx_module->Fill(0., gtfeEvmBx - gtfeBx);
697  if (tcsBx > -1)
698  dbx_module->Fill(1., tcsBx - gtfeBx);
699  for (int i = 0; i < 2; i++) {
700  if (fdlBx[i] > -1)
701  dbx_module->Fill(2. + i, fdlBx[i] - gtfeBx);
702  }
703  for (int j = 0; j < 7; j++) {
704  for (int i = 0; i < 2; i++) {
705  if (psbBx[i][j] > -1)
706  dbx_module->Fill(4. + i + 2 * j, psbBx[i][j] - gtfeBx);
707  }
708  }
709  if (gmtBx > -1)
710  dbx_module->Fill(18., gmtBx - gtfeBx);
711 }

References accept(), L1GtfeWord::activeBoards(), algo_bits, algo_bits_corr, algo_bits_lumi, algo_tt_bits_corr, algoBitToName, EcalCondDBWriter_cfi::beam, L1GtfeExtWord::beamMode(), L1GtfeExtWord::beamMomentum(), BST_beamMode, BST_beamMomentum, BST_intensityBeam1, BST_intensityBeam2, BST_lhcFillNumber, BST_MasterStatus, BST_turnCountNumber, L1GtfeExtWord::bstMasterStatus(), L1TcsWord::bxNr(), L1GtPsbWord::bxNr(), L1GtFdlWord::bxNr(), L1GtfeWord::bxNr(), dbx_module, TauDecayModes::dec, L1GlobalTriggerReadoutRecord::decisionWord(), event_lumi, event_number, event_type, L1TcsWord::eventNr(), evnum_trignum_lumi, FDL, dqm::impl::MonitorElement::Fill(), spr::find(), L1MuGMTReadoutRecord::getBxNr(), L1MuGMTReadoutCollection::getRecord(), GMT, gpsfreq, gpsfreqlum, gpsfreqwide, L1GtfeExtWord::gpsTime(), gtEvmSource_, L1GlobalTriggerReadoutRecord::gtFdlVector(), L1GlobalTriggerEvmReadoutRecord::gtFdlWord(), L1GlobalTriggerReadoutRecord::gtFdlWord(), gtfe_bx, L1GlobalTriggerEvmReadoutRecord::gtfeWord(), L1GlobalTriggerReadoutRecord::gtfeWord(), L1GtFdlWord::gtPrescaleFactorIndexAlgo(), L1GlobalTriggerReadoutRecord::gtPsbWord(), gtSource_L1GT_, gtSource_L1MuGMT_, h_L1AlgoBX1, h_L1AlgoBX2, h_L1AlgoBX3, h_L1AlgoBX4, h_L1TechBX, mps_fire::i, iEvent, isActive(), edm::HandleBase::isValid(), dqmiolumiharvest::j, l1TechTriggerDecision, l1TriggerDecision, L1GtfeExtWord::lhcFillNumber(), L1GtPsbWord::localBxNr(), L1GtFdlWord::localBxNr(), L1TcsWord::luminositySegmentNr(), L1GtFdlWord::lumiSegmentNr(), m_monL1PrescaleFactorSet, m_monLsNrDiffTcsFdlEvm, m_monLsNrDiffTcsFdlEvmLs, m_monOrbitNrDiffTcsFdlEvm, m_monOrbitNrDiffTcsFdlEvmLs, m_nrEvJob, m_pairLsNumberPfIndex, volumeBasedMagneticField_160812_cfi::master, MaxLsNrDiffTcsFdlEvm, MaxOrbitNrDiffTcsFdlEvm, orbit_lumi, L1TcsWord::orbitNr(), L1GtFdlWord::orbitNr(), L1TcsWord::partTrigNr(), preGps_, preOrb_, PSB9, L1GtfeWord::setupVersion(), setupversion_lumi, TCS, L1GlobalTriggerEvmReadoutRecord::tcsWord(), techBitToName, L1GlobalTriggerReadoutRecord::technicalTriggerWord(), L1GtfeExtWord::totalIntensityBeam1(), L1GtfeExtWord::totalIntensityBeam2(), trig_iter, trigger_lumi, trigger_number, L1TcsWord::triggerType(), tt_bits, tt_bits_corr, tt_bits_lumi, L1GtfeExtWord::turnCountNumber(), and verbose_.

◆ beginLuminosityBlock()

void L1TGT::beginLuminosityBlock ( const edm::LuminosityBlock ,
const edm::EventSetup  
)
inlinefinalprotected

end section

Definition at line 64 of file L1TGT.h.

64 {}

◆ bookHistograms()

void L1TGT::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &  evSetup 
)
overrideprotectedvirtual

Implements DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 36 of file L1TGT.cc.

36  {
38 
39  // book histograms
40  const int TotalNrBinsLs = 1000;
41  const double totalNrBinsLs = static_cast<double>(TotalNrBinsLs);
42 
44 
45  algo_bits = ibooker.book1D("algo_bits", "GT algorithm trigger bits", 128, -0.5, 127.5);
46  algo_bits->setAxisTitle("Algorithm trigger bits", 1);
47 
49  ibooker.book2D("algo_bits_corr", "GT algorithm trigger bit correlation", 128, -0.5, 127.5, 128, -0.5, 127.5);
50  algo_bits_corr->setAxisTitle("Algorithm trigger bits", 1);
51  algo_bits_corr->setAxisTitle("Algorithm trigger bits", 2);
52 
53  tt_bits = ibooker.book1D("tt_bits", "GT technical trigger bits", 64, -0.5, 63.5);
54  tt_bits->setAxisTitle("Technical trigger bits", 1);
55 
56  tt_bits_corr = ibooker.book2D("tt_bits_corr", "GT technical trigger bit correlation", 64, -0.5, 63.5, 64, -0.5, 63.5);
57  tt_bits_corr->setAxisTitle("Technical trigger bits", 1);
58  tt_bits_corr->setAxisTitle("Technical trigger bits", 2);
59 
60  algo_tt_bits_corr = ibooker.book2D(
61  "algo_tt_bits_corr", "GT algorithm - technical trigger bit correlation", 128, -0.5, 127.5, 64, -0.5, 63.5);
62  algo_tt_bits_corr->setAxisTitle("Algorithm trigger bits", 1);
63  algo_tt_bits_corr->setAxisTitle("Technical trigger bits", 2);
64 
65  algo_bits_lumi = ibooker.book2D(
66  "algo_bits_lumi", "GT algorithm trigger bit rate per LS", TotalNrBinsLs, 0., totalNrBinsLs, 128, -0.5, 127.5);
67  algo_bits_lumi->setAxisTitle("Luminosity segment", 1);
68  algo_bits_lumi->setAxisTitle("Algorithm trigger bits", 2);
69 
70  tt_bits_lumi = ibooker.book2D(
71  "tt_bits_lumi", "GT technical trigger bit rate per LS", TotalNrBinsLs, 0., totalNrBinsLs, 64, -0.5, 63.5);
72  tt_bits_lumi->setAxisTitle("Luminosity segment", 1);
73  tt_bits_lumi->setAxisTitle("Technical trigger bits", 2);
74 
75  event_type = ibooker.book1D("event_type", "GT event type", 10, -0.5, 9.5);
76  event_type->setAxisTitle("Event type", 1);
77  event_type->setBinLabel(2, "Physics", 1);
78  event_type->setBinLabel(3, "Calibration", 1);
79  event_type->setBinLabel(4, "Random", 1);
80  event_type->setBinLabel(6, "Traced", 1);
81  event_type->setBinLabel(7, "Test", 1);
82  event_type->setBinLabel(8, "Error", 1);
83 
84  event_number = ibooker.book1D("event_number", "GT event number (from last resync)", 100, 0., 50000.);
85  event_number->setAxisTitle("Event number", 1);
86 
87  event_lumi = ibooker.bookProfile(
88  "event_lumi", "GT event number (from last resync) vs LS", TotalNrBinsLs, 0., totalNrBinsLs, 100, -0.1, 1.e15, "s");
89  event_lumi->setAxisTitle("Luminosity segment", 1);
90  event_lumi->setAxisTitle("Event number", 2);
91 
92  trigger_number = ibooker.book1D("trigger_number", "GT trigger number (from start run)", 100, 0., 50000.);
93  trigger_number->setAxisTitle("Trigger number", 1);
94 
95  trigger_lumi = ibooker.bookProfile("trigger_lumi",
96  "GT trigger number (from start run) vs LS",
97  TotalNrBinsLs,
98  0.,
99  totalNrBinsLs,
100  100,
101  -0.1,
102  1.e15,
103  "s");
104  trigger_lumi->setAxisTitle("Luminosity segment", 1);
105  trigger_lumi->setAxisTitle("Trigger number", 2);
106 
108  "evnum_trignum_lumi", "GT event/trigger number ratio vs LS", TotalNrBinsLs, 0., totalNrBinsLs, 100, -0.1, 2., "s");
109  evnum_trignum_lumi->setAxisTitle("Luminosity segment", 1);
110  evnum_trignum_lumi->setAxisTitle("Event/trigger number ratio", 2);
111 
112  orbit_lumi = ibooker.bookProfile(
113  "orbit_lumi", "GT orbit number vs LS", TotalNrBinsLs, 0., totalNrBinsLs, 100, -0.1, 1.e15, "s");
114  orbit_lumi->setAxisTitle("Luminosity segment", 1);
115  orbit_lumi->setAxisTitle("Orbit number", 2);
116 
117  setupversion_lumi = ibooker.bookProfile(
118  "setupversion_lumi", "GT setup version vs LS", TotalNrBinsLs, 0., totalNrBinsLs, 100, -0.1, 1.e10, "i");
119  setupversion_lumi->setAxisTitle("Luminosity segment", 1);
120  setupversion_lumi->setAxisTitle("Setup version", 2);
121 
122  gtfe_bx = ibooker.book1D("gtfe_bx", "GTFE Bx number", 3600, 0., 3600.);
123  gtfe_bx->setAxisTitle("GTFE BX number", 1);
124 
125  dbx_module =
126  ibooker.bookProfile("dbx_module", "delta Bx of GT modules wrt GTFE", 20, 0., 20., 100, -4000., 4000., "i");
127  dbx_module->setAxisTitle("GT crate module", 1);
128  dbx_module->setAxisTitle("Module Bx - GTFE Bx", 2);
129  dbx_module->setBinLabel(1, "GTFEevm", 1);
130  dbx_module->setBinLabel(2, "TCS", 1);
131  dbx_module->setBinLabel(3, "FDL", 1);
132  dbx_module->setBinLabel(4, "FDLloc", 1);
133  dbx_module->setBinLabel(5, "PSB9", 1);
134  dbx_module->setBinLabel(6, "PSB9loc", 1);
135  dbx_module->setBinLabel(7, "PSB13", 1);
136  dbx_module->setBinLabel(8, "PSB13loc", 1);
137  dbx_module->setBinLabel(9, "PSB14", 1);
138  dbx_module->setBinLabel(10, "PSB14loc", 1);
139  dbx_module->setBinLabel(11, "PSB15", 1);
140  dbx_module->setBinLabel(12, "PSB15loc", 1);
141  dbx_module->setBinLabel(13, "PSB19", 1);
142  dbx_module->setBinLabel(14, "PSB19loc", 1);
143  dbx_module->setBinLabel(15, "PSB20", 1);
144  dbx_module->setBinLabel(16, "PSB20loc", 1);
145  dbx_module->setBinLabel(17, "PSB21", 1);
146  dbx_module->setBinLabel(18, "PSB21loc", 1);
147  dbx_module->setBinLabel(19, "GMT", 1);
148 
150  ibooker.book2D("BST_MasterStatus", "BST master status over LS", TotalNrBinsLs, 0., totalNrBinsLs, 6, -1., 5.);
151  BST_MasterStatus->setAxisTitle("Luminosity segment", 1);
152  BST_MasterStatus->setAxisTitle("BST master status", 2);
153  BST_MasterStatus->setBinLabel(2, "Master Beam 1", 2);
154  BST_MasterStatus->setBinLabel(3, "Master Beam 2", 2);
155 
157  ibooker.book2D("BST_turnCountNumber", "BST turn count over LS", TotalNrBinsLs, 0., totalNrBinsLs, 250, 0., 4.3e9);
158  BST_turnCountNumber->setAxisTitle("Luminosity segment", 1);
159  BST_turnCountNumber->setAxisTitle("BST turn count number", 2);
160 
161  BST_lhcFillNumber = ibooker.book1D("BST_lhcFillNumber", "BST LHC fill number % 1000", 1000, 0., 1000.);
162  BST_lhcFillNumber->setAxisTitle("BST LHC fill number modulo 1000");
163 
164  BST_beamMode = ibooker.book2D("BST_beamMode", "BST beam mode over LS", TotalNrBinsLs, 0., totalNrBinsLs, 25, 1., 26.);
165  BST_beamMode->setAxisTitle("Luminosity segment", 1);
166  BST_beamMode->setAxisTitle("Mode", 2);
167  BST_beamMode->setBinLabel(1, "No mode", 2);
168  BST_beamMode->setBinLabel(2, "Setup", 2);
169  BST_beamMode->setBinLabel(3, "Inj pilot", 2);
170  BST_beamMode->setBinLabel(4, "Inj intr", 2);
171  BST_beamMode->setBinLabel(5, "Inj nomn", 2);
172  BST_beamMode->setBinLabel(6, "Pre ramp", 2);
173  BST_beamMode->setBinLabel(7, "Ramp", 2);
174  BST_beamMode->setBinLabel(8, "Flat top", 2);
175  BST_beamMode->setBinLabel(9, "Squeeze", 2);
176  BST_beamMode->setBinLabel(10, "Adjust", 2);
177  BST_beamMode->setBinLabel(11, "Stable", 2);
178  BST_beamMode->setBinLabel(12, "Unstable", 2);
179  BST_beamMode->setBinLabel(13, "Beam dump", 2);
180  BST_beamMode->setBinLabel(14, "Ramp down", 2);
181  BST_beamMode->setBinLabel(15, "Recovery", 2);
182  BST_beamMode->setBinLabel(16, "Inj dump", 2);
183  BST_beamMode->setBinLabel(17, "Circ dump", 2);
184  BST_beamMode->setBinLabel(18, "Abort", 2);
185  BST_beamMode->setBinLabel(19, "Cycling", 2);
186  BST_beamMode->setBinLabel(20, "Warn beam dump", 2);
187  BST_beamMode->setBinLabel(21, "No beam", 2);
188 
190  ibooker.book2D("BST_beamMomentum", "BST beam momentum", TotalNrBinsLs, 0., totalNrBinsLs, 100, 0., 7200.);
191  BST_beamMomentum->setAxisTitle("Luminosity segment", 1);
192  BST_beamMomentum->setAxisTitle("Beam momentum", 2);
193 
194  gpsfreq = ibooker.book1D("gpsfreq", "Clock frequency measured by GPS", 1000, 39.95, 40.2);
195  gpsfreq->setAxisTitle("CMS clock frequency (MHz)");
196 
197  gpsfreqwide = ibooker.book1D("gpsfreqwide", "Clock frequency measured by GPS", 1000, -2., 200.);
198  gpsfreqwide->setAxisTitle("CMS clock frequency (MHz)");
199 
200  gpsfreqlum = ibooker.book2D(
201  "gpsfreqlum", "Clock frequency measured by GPS", TotalNrBinsLs, 0., totalNrBinsLs, 100, 39.95, 40.2);
202  gpsfreqlum->setAxisTitle("Luminosity segment", 1);
203  gpsfreqlum->setAxisTitle("CMS clock frequency (MHz)", 2);
204 
206  ibooker.book2D("BST_intensityBeam1", "Intensity beam 1", TotalNrBinsLs, 0., totalNrBinsLs, 1000, 0., 5000.);
207  BST_intensityBeam1->setAxisTitle("Luminosity segment", 1);
208  BST_intensityBeam1->setAxisTitle("Beam intensity", 2);
209 
211  ibooker.book2D("BST_intensityBeam2", "Intensity beam 2", TotalNrBinsLs, 0., totalNrBinsLs, 1000, 0., 5000.);
212  BST_intensityBeam2->setAxisTitle("Luminosity segment", 1);
213  BST_intensityBeam2->setAxisTitle("Beam intensity", 2);
214 
215  // prescale factor index monitoring
216 
218  "L1PrescaleFactorSet", "Index of L1 prescale factor set", TotalNrBinsLs, 0., totalNrBinsLs, 25, 0., 25.);
219  m_monL1PrescaleFactorSet->setAxisTitle("Luminosity segment", 1);
220  m_monL1PrescaleFactorSet->setAxisTitle("L1 PF set index", 2);
222  ibooker.book1D("L1PfIndicesPerLs", "Number of prescale factor indices used per LS", 10, 0., 10.);
223  m_monL1PfIndicesPerLs->setAxisTitle("Number of PF indices used per LS", 1);
224  m_monL1PfIndicesPerLs->setAxisTitle("Entries", 2);
225 
226  // TCS vs FDL common quantity monitoring
227 
228  ibooker.setCurrentFolder(m_histFolder + "/TCSvsEvmFDL");
229 
230  // orbit number
231  m_monOrbitNrDiffTcsFdlEvm = ibooker.book1D("OrbitNrDiffTcsFdlEvm",
232  "Orbit number difference (TCS - EVM_FDL)",
233  2 * MaxOrbitNrDiffTcsFdlEvm + 1,
234  static_cast<float>(-(MaxOrbitNrDiffTcsFdlEvm + 1)),
235  static_cast<float>(MaxOrbitNrDiffTcsFdlEvm + 1));
236  m_monOrbitNrDiffTcsFdlEvm->setAxisTitle("Orbit number difference", 1);
237  m_monOrbitNrDiffTcsFdlEvm->setAxisTitle("Entries/run", 2);
238  m_monLsNrDiffTcsFdlEvm = ibooker.book1D("LsNrDiffTcsFdlEvm",
239  "LS number difference (TCS - EVM_FDL)",
240  2 * MaxLsNrDiffTcsFdlEvm + 1,
241  static_cast<float>(-(MaxLsNrDiffTcsFdlEvm + 1)),
242  static_cast<float>(MaxLsNrDiffTcsFdlEvm + 1));
243  m_monLsNrDiffTcsFdlEvm->setAxisTitle("LS number difference", 1);
244  m_monLsNrDiffTcsFdlEvm->setAxisTitle("Entries/run", 2);
245 
246  // LS number
247  m_monOrbitNrDiffTcsFdlEvmLs = ibooker.book2D("OrbitNrDiffTcsFdlEvmLs",
248  "Orbit number difference (TCS - EVM_FDL)",
249  TotalNrBinsLs,
250  0.,
251  totalNrBinsLs,
252  2 * MaxOrbitNrDiffTcsFdlEvm + 1,
253  static_cast<float>(-(MaxOrbitNrDiffTcsFdlEvm + 1)),
254  static_cast<float>(MaxOrbitNrDiffTcsFdlEvm + 1));
255  m_monOrbitNrDiffTcsFdlEvmLs->setAxisTitle("Luminosity segment", 1);
256  m_monOrbitNrDiffTcsFdlEvmLs->setAxisTitle("Orbit number difference (TCS - EVM_FDL)", 2);
257 
258  m_monLsNrDiffTcsFdlEvmLs = ibooker.book2D("LsNrDiffTcsFdlEvmLs",
259  "LS number difference (TCS - EVM_FDL)",
260  TotalNrBinsLs,
261  0.,
262  totalNrBinsLs,
263  2 * MaxLsNrDiffTcsFdlEvm + 1,
264  static_cast<float>(-(MaxLsNrDiffTcsFdlEvm + 1)),
265  static_cast<float>(MaxLsNrDiffTcsFdlEvm + 1));
266  m_monLsNrDiffTcsFdlEvmLs->setAxisTitle("Luminosity segment", 1);
267  m_monLsNrDiffTcsFdlEvmLs->setAxisTitle("LS number difference (TCS - EVM_FDL)", 2);
268 
270  // clear bookkeeping for prescale factor change
271  m_pairLsNumberPfIndex.clear();
272 
273  ibooker.setCurrentFolder(m_histFolder + "/PlotTrigsBx");
274 
275  //--------book AlgoBits/TechBits vs Bx Histogram-----------
276 
278  evSetup.get<L1GtTriggerMenuRcd>().get(menuRcd);
279 
280  const L1GtTriggerMenu* menu = menuRcd.product();
281 
282  h_L1AlgoBX1 = ibooker.book2D("h_L1AlgoBX1", "L1 Algo Trigger BX (algo bit 0 to 31)", 32, -0.5, 31.5, 5, -2.5, 2.5);
283  h_L1AlgoBX2 = ibooker.book2D("h_L1AlgoBX2", "L1 Algo Trigger BX (algo bit 32 to 63)", 32, 31.5, 63.5, 5, -2.5, 2.5);
284  h_L1AlgoBX3 = ibooker.book2D("h_L1AlgoBX3", "L1 Algo Trigger BX (algo bit 64 to 95)", 32, 63.5, 95.5, 5, -2.5, 2.5);
285  h_L1AlgoBX4 = ibooker.book2D("h_L1AlgoBX4", "L1 Algo Trigger BX (algo bit 96 to 127)", 32, 95.5, 127.5, 5, -2.5, 2.5);
286  h_L1TechBX = ibooker.book2D("h_L1TechBX", "L1 Tech Trigger BX", 64, -0.5, 63.5, 5, -2.5, 2.5);
287 
288  for (CItAlgo algo = menu->gtAlgorithmMap().begin(); algo != menu->gtAlgorithmMap().end(); ++algo) {
289  int itrig = (algo->second).algoBitNumber();
290  //algoBitToName[itrig] = TString( (algo->second).algoName() );
291  //const char* trigName = (algo->second).algoName().c_str();
292  if (itrig < 32) {
293  //h_L1AlgoBX1->setBinLabel(itrig+1,trigName);
294  h_L1AlgoBX1->setBinLabel(itrig + 1, std::to_string(itrig));
295  h_L1AlgoBX1->setAxisTitle("Algorithm trigger bits", 1);
296  h_L1AlgoBX1->setAxisTitle("BX (0=L1A)", 2);
297  } else if (itrig < 64) {
298  //h_L1AlgoBX2->setBinLabel(itrig+1-32,trigName);
299  h_L1AlgoBX2->setBinLabel(itrig + 1 - 32, std::to_string(itrig));
300  h_L1AlgoBX2->setAxisTitle("Algorithm trigger bits", 1);
301  h_L1AlgoBX2->setAxisTitle("BX (0=L1A)", 2);
302  } else if (itrig < 96) {
303  //h_L1AlgoBX3->setBinLabel(itrig+1-64,trigName);
304  h_L1AlgoBX3->setBinLabel(itrig + 1 - 64, std::to_string(itrig));
305  h_L1AlgoBX3->setAxisTitle("Algorithm trigger bits", 1);
306  h_L1AlgoBX3->setAxisTitle("BX (0=L1A)", 2);
307  } else if (itrig < 128) {
308  //h_L1AlgoBX4->setBinLabel(itrig+1-96,trigName);
309  h_L1AlgoBX4->setBinLabel(itrig + 1 - 96, std::to_string(itrig));
310  h_L1AlgoBX4->setAxisTitle("Algorithm trigger bits", 1);
311  h_L1AlgoBX4->setAxisTitle("BX (0=L1A)", 2);
312  }
313  }
314 
315  // technical trigger bits
316  for (CItAlgo techTrig = menu->gtTechnicalTriggerMap().begin(); techTrig != menu->gtTechnicalTriggerMap().end();
317  ++techTrig) {
318  int itrig = (techTrig->second).algoBitNumber();
319  //techBitToName[itrig] = TString( (techTrig->second).algoName() );
320  //const char* trigName = (techTrig->second).algoName().c_str();
321  h_L1TechBX->setBinLabel(itrig + 1, std::to_string(itrig));
322  h_L1TechBX->setAxisTitle("Technical trigger bits", 1);
323  h_L1TechBX->setAxisTitle("BX (0=L1A)", 2);
324  }
325 }

References algo_bits, algo_bits_corr, algo_bits_lumi, algo_tt_bits_corr, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), BST_beamMode, BST_beamMomentum, BST_intensityBeam1, BST_intensityBeam2, BST_lhcFillNumber, BST_MasterStatus, BST_turnCountNumber, dbx_module, event_lumi, event_number, event_type, evnum_trignum_lumi, edm::EventSetup::get(), get, gpsfreq, gpsfreqlum, gpsfreqwide, gtfe_bx, h_L1AlgoBX1, h_L1AlgoBX2, h_L1AlgoBX3, h_L1AlgoBX4, h_L1TechBX, m_histFolder, m_monL1PfIndicesPerLs, m_monL1PrescaleFactorSet, m_monLsNrDiffTcsFdlEvm, m_monLsNrDiffTcsFdlEvmLs, m_monOrbitNrDiffTcsFdlEvm, m_monOrbitNrDiffTcsFdlEvmLs, m_pairLsNumberPfIndex, MaxLsNrDiffTcsFdlEvm, MaxOrbitNrDiffTcsFdlEvm, optionsL1T::menu, orbit_lumi, edm::ESHandle< T >::product(), dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), setupversion_lumi, trigger_lumi, trigger_number, tt_bits, tt_bits_corr, and tt_bits_lumi.

◆ countPfsIndicesPerLs()

void L1TGT::countPfsIndicesPerLs ( )
private

Definition at line 727 of file L1TGT.cc.

727  {
728  if (verbose_) {
729  edm::LogInfo("L1TGT") << "\n Prescale factor indices used in a LS " << std::endl;
730 
731  for (CItVecPair cIt = m_pairLsNumberPfIndex.begin(); cIt != m_pairLsNumberPfIndex.end(); ++cIt) {
732  edm::LogVerbatim("L1TGT") << " lsNumber = " << (*cIt).first << " pfIndex = " << (*cIt).second << std::endl;
733  }
734  edm::LogVerbatim("L1TGT") << std::endl;
735  }
736 
737  // reset the histogram...
739 
740  // sort the vector (for pairs: sort after first argument, then after the second argument)
742 
743  int previousLsNumber = -1;
744  int previousPfsIndex = -1;
745 
746  // count the number of pairs (lsNumber, pfIndex) per Ls
747  // there are no duplicate entries, and pairs are sorted after both members
748  // ... and fill again the histogram
749  for (CItVecPair cIt = m_pairLsNumberPfIndex.begin(); cIt != m_pairLsNumberPfIndex.end(); ++cIt) {
750  int pfsIndicesPerLs = 1;
751 
752  if ((*cIt).first == previousLsNumber) {
753  if ((*cIt).second != previousPfsIndex) {
754  pfsIndicesPerLs++;
755  previousPfsIndex = (*cIt).second;
756  }
757 
758  } else {
759  // fill the histogram with the number of PF indices for the previous Ls
760  if (previousLsNumber != -1) {
761  m_monL1PfIndicesPerLs->Fill(pfsIndicesPerLs);
762  }
763 
764  // new Ls
765  previousLsNumber = (*cIt).first;
766  previousPfsIndex = (*cIt).second;
767 
768  pfsIndicesPerLs = 1;
769  }
770  }
771 }

References dqm::impl::MonitorElement::Fill(), m_monL1PfIndicesPerLs, m_pairLsNumberPfIndex, dqm::impl::MonitorElement::Reset(), jetUpdater_cfi::sort, and verbose_.

Referenced by endLuminosityBlock().

◆ dqmBeginRun()

void L1TGT::dqmBeginRun ( const edm::Run iRrun,
const edm::EventSetup evSetup 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 327 of file L1TGT.cc.

327 { m_nrEvRun = 0; }

References m_nrEvRun.

◆ endLuminosityBlock()

void L1TGT::endLuminosityBlock ( const edm::LuminosityBlock iLumi,
const edm::EventSetup evSetup 
)
overrideprotected

Definition at line 714 of file L1TGT.cc.

714  {
715  if (m_runInEndLumi) {
717  }
718 }

References countPfsIndicesPerLs(), and m_runInEndLumi.

◆ isActive()

bool L1TGT::isActive ( int  word,
int  bit 
)
private

book all histograms for the module

Definition at line 721 of file L1TGT.cc.

721  {
722  if (word & (1 << bit))
723  return true;
724  return false;
725 }

Referenced by analyze().

Member Data Documentation

◆ algo_bits

MonitorElement* L1TGT::algo_bits
private

Definition at line 109 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ algo_bits_corr

MonitorElement* L1TGT::algo_bits_corr
private

Definition at line 110 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ algo_bits_lumi

MonitorElement* L1TGT::algo_bits_lumi
private

Definition at line 114 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ algo_tt_bits_corr

MonitorElement* L1TGT::algo_tt_bits_corr
private

Definition at line 113 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ algoBitToName

std::string L1TGT::algoBitToName[128]
private

Definition at line 177 of file L1TGT.h.

Referenced by analyze().

◆ BST_beamMode

MonitorElement* L1TGT::BST_beamMode
private

Definition at line 132 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_beamMomentum

MonitorElement* L1TGT::BST_beamMomentum
private

Definition at line 133 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_intensityBeam1

MonitorElement* L1TGT::BST_intensityBeam1
private

Definition at line 134 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_intensityBeam2

MonitorElement* L1TGT::BST_intensityBeam2
private

Definition at line 135 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_lhcFillNumber

MonitorElement* L1TGT::BST_lhcFillNumber
private

Definition at line 131 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_MasterStatus

MonitorElement* L1TGT::BST_MasterStatus
private

Definition at line 129 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ BST_turnCountNumber

MonitorElement* L1TGT::BST_turnCountNumber
private

Definition at line 130 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ dbx_module

MonitorElement* L1TGT::dbx_module
private

Definition at line 127 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ event_lumi

MonitorElement* L1TGT::event_lumi
private

Definition at line 119 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ event_number

MonitorElement* L1TGT::event_number
private

Definition at line 118 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ event_type

MonitorElement* L1TGT::event_type
private

Definition at line 116 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ evnum_trignum_lumi

MonitorElement* L1TGT::evnum_trignum_lumi
private

Definition at line 122 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ gpsfreq

MonitorElement* L1TGT::gpsfreq
private

Definition at line 136 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ gpsfreqlum

MonitorElement* L1TGT::gpsfreqlum
private

Definition at line 138 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ gpsfreqwide

MonitorElement* L1TGT::gpsfreqwide
private

Definition at line 137 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ gtEvmSource_

edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> L1TGT::gtEvmSource_
private

input tag for L1 GT EVM readout record

Definition at line 99 of file L1TGT.h.

Referenced by analyze().

◆ gtfe_bx

MonitorElement* L1TGT::gtfe_bx
private

Definition at line 126 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ gtSource_L1GT_

edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> L1TGT::gtSource_L1GT_
private

input parameters

input tag for L1 GT DAQ readout record

Definition at line 95 of file L1TGT.h.

Referenced by analyze().

◆ gtSource_L1MuGMT_

edm::EDGetTokenT<L1MuGMTReadoutCollection> L1TGT::gtSource_L1MuGMT_
private

Definition at line 96 of file L1TGT.h.

Referenced by analyze().

◆ h_L1AlgoBX1

MonitorElement* L1TGT::h_L1AlgoBX1
private

Definition at line 158 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ h_L1AlgoBX2

MonitorElement* L1TGT::h_L1AlgoBX2
private

Definition at line 159 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ h_L1AlgoBX3

MonitorElement* L1TGT::h_L1AlgoBX3
private

Definition at line 160 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ h_L1AlgoBX4

MonitorElement* L1TGT::h_L1AlgoBX4
private

Definition at line 161 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ h_L1TechBX

MonitorElement* L1TGT::h_L1TechBX
private

Definition at line 162 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ l1TechTriggerDecision

std::map<std::string, bool> L1TGT::l1TechTriggerDecision
private

Definition at line 179 of file L1TGT.h.

Referenced by analyze().

◆ l1TriggerDecision

std::map<std::string, bool> L1TGT::l1TriggerDecision
private

Definition at line 179 of file L1TGT.h.

Referenced by analyze().

◆ m_histFolder

std::string L1TGT::m_histFolder
private

histogram folder for L1 GT plots

Definition at line 172 of file L1TGT.h.

Referenced by bookHistograms(), and L1TGT().

◆ m_monL1PfIndicesPerLs

MonitorElement* L1TGT::m_monL1PfIndicesPerLs
private

Definition at line 141 of file L1TGT.h.

Referenced by bookHistograms(), and countPfsIndicesPerLs().

◆ m_monL1PrescaleFactorSet

MonitorElement* L1TGT::m_monL1PrescaleFactorSet
private

Definition at line 140 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ m_monLsNrDiffTcsFdlEvm

MonitorElement* L1TGT::m_monLsNrDiffTcsFdlEvm
private

Definition at line 144 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ m_monLsNrDiffTcsFdlEvmLs

MonitorElement* L1TGT::m_monLsNrDiffTcsFdlEvmLs
private

Definition at line 156 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ m_monOrbitNrDiffTcsFdlEvm

MonitorElement* L1TGT::m_monOrbitNrDiffTcsFdlEvm
private

Definition at line 143 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ m_monOrbitNrDiffTcsFdlEvmLs

MonitorElement* L1TGT::m_monOrbitNrDiffTcsFdlEvmLs
private

Definition at line 155 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ m_nrEvJob

int L1TGT::m_nrEvJob
private

number of events processed

Definition at line 168 of file L1TGT.h.

Referenced by analyze().

◆ m_nrEvRun

int L1TGT::m_nrEvRun
private

Definition at line 169 of file L1TGT.h.

Referenced by dqmBeginRun().

◆ m_pairLsNumberPfIndex

std::vector<std::pair<int, int> > L1TGT::m_pairLsNumberPfIndex
private

Definition at line 182 of file L1TGT.h.

Referenced by analyze(), bookHistograms(), and countPfsIndicesPerLs().

◆ m_runInEndLumi

bool L1TGT::m_runInEndLumi
private

Definition at line 103 of file L1TGT.h.

Referenced by endLuminosityBlock().

◆ m_runInEventLoop

bool L1TGT::m_runInEventLoop
private

switches to choose the running of various methods

Definition at line 102 of file L1TGT.h.

◆ MaxLsNrDiffTcsFdlEvm

const int L1TGT::MaxLsNrDiffTcsFdlEvm = 24
staticprivate

Definition at line 153 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ MaxOrbitNrDiffTcsFdlEvm

const int L1TGT::MaxOrbitNrDiffTcsFdlEvm = 24
staticprivate

Definition at line 152 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ orbit_lumi

MonitorElement* L1TGT::orbit_lumi
private

Definition at line 123 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ preGps_

uint64_t L1TGT::preGps_
private

Definition at line 174 of file L1TGT.h.

Referenced by analyze().

◆ preOrb_

uint64_t L1TGT::preOrb_
private

Definition at line 175 of file L1TGT.h.

Referenced by analyze().

◆ setupversion_lumi

MonitorElement* L1TGT::setupversion_lumi
private

Definition at line 124 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ techBitToName

std::string L1TGT::techBitToName[64]
private

Definition at line 178 of file L1TGT.h.

Referenced by analyze().

◆ trig_iter

std::map<std::string, bool>::iterator L1TGT::trig_iter
private

Definition at line 180 of file L1TGT.h.

Referenced by analyze().

◆ trigger_lumi

MonitorElement* L1TGT::trigger_lumi
private

Definition at line 121 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ trigger_number

MonitorElement* L1TGT::trigger_number
private

Definition at line 120 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ tt_bits

MonitorElement* L1TGT::tt_bits
private

Definition at line 111 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ tt_bits_corr

MonitorElement* L1TGT::tt_bits_corr
private

Definition at line 112 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ tt_bits_lumi

MonitorElement* L1TGT::tt_bits_lumi
private

Definition at line 115 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

◆ verbose_

bool L1TGT::verbose_
private

verbosity switch

Definition at line 106 of file L1TGT.h.

Referenced by analyze(), and countPfsIndicesPerLs().

L1TGT::FDL
Definition: L1TGT.h:81
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
L1TGT::CItVecPair
std::vector< std::pair< int, int > >::const_iterator CItVecPair
Definition: L1TGT.h:183
L1GtfeWord::activeBoards
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
Definition: L1GtfeWord.h:119
L1TGT::setupversion_lumi
MonitorElement * setupversion_lumi
Definition: L1TGT.h:124
L1TGT::gtSource_L1MuGMT_
edm::EDGetTokenT< L1MuGMTReadoutCollection > gtSource_L1MuGMT_
Definition: L1TGT.h:96
mps_fire.i
i
Definition: mps_fire.py:428
L1TGT::l1TriggerDecision
std::map< std::string, bool > l1TriggerDecision
Definition: L1TGT.h:179
L1TGT::gpsfreqwide
MonitorElement * gpsfreqwide
Definition: L1TGT.h:137
L1TGT::evnum_trignum_lumi
MonitorElement * evnum_trignum_lumi
Definition: L1TGT.h:122
L1TGT::m_nrEvRun
int m_nrEvRun
Definition: L1TGT.h:169
L1GtFdlWord::gtPrescaleFactorIndexAlgo
const cms_uint16_t gtPrescaleFactorIndexAlgo() const
Definition: L1GtFdlWord.h:195
L1TGT::techBitToName
std::string techBitToName[64]
Definition: L1TGT.h:178
L1TGT::GMT
Definition: L1TGT.h:81
L1TGT::algo_bits_corr
MonitorElement * algo_bits_corr
Definition: L1TGT.h:110
L1TGT::m_monOrbitNrDiffTcsFdlEvm
MonitorElement * m_monOrbitNrDiffTcsFdlEvm
Definition: L1TGT.h:143
L1TcsWord
Definition: L1TcsWord.h:29
L1GtfeExtWord::turnCountNumber
const cms_uint32_t turnCountNumber() const
Definition: L1GtfeExtWord.cc:175
L1GlobalTriggerEvmReadoutRecord::gtfeWord
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
Definition: L1GlobalTriggerEvmReadoutRecord.cc:249
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
L1TGT::m_runInEventLoop
bool m_runInEventLoop
switches to choose the running of various methods
Definition: L1TGT.h:102
L1TGT::m_monLsNrDiffTcsFdlEvmLs
MonitorElement * m_monLsNrDiffTcsFdlEvmLs
Definition: L1TGT.h:156
L1TGT::BST_intensityBeam1
MonitorElement * BST_intensityBeam1
Definition: L1TGT.h:134
L1GtfeWord::setupVersion
const cms_uint32_t setupVersion() const
get/set setup version
Definition: L1GtfeWord.h:104
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
L1GtfeWord
Definition: L1GtfeWord.h:30
L1GtfeExtWord::totalIntensityBeam1
const cms_uint32_t totalIntensityBeam1() const
Definition: L1GtfeExtWord.cc:295
L1GlobalTriggerReadoutRecord::gtPsbWord
const L1GtPsbWord gtPsbWord(cms_uint16_t boardIdValue, int bxInEventValue) const
get / set PSB word (record) in the GT readout record
Definition: L1GlobalTriggerReadoutRecord.cc:421
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
L1TcsWord::orbitNr
const cms_uint64_t orbitNr() const
get/set orbit number since start of run
Definition: L1TcsWord.h:185
L1TGT::event_number
MonitorElement * event_number
Definition: L1TGT.h:118
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
L1GtPsbWord
Definition: L1GtPsbWord.h:29
edm::Handle
Definition: AssociativeIterator.h:50
L1TGT::gtfe_bx
MonitorElement * gtfe_bx
Definition: L1TGT.h:126
L1TGT::BST_MasterStatus
MonitorElement * BST_MasterStatus
Definition: L1TGT.h:129
L1GtPsbWord::bxNr
const cms_uint16_t bxNr() const
get/set bunch cross number of the actual bx
Definition: L1GtPsbWord.h:84
L1GtfeExtWord::bstMasterStatus
const cms_uint16_t bstMasterStatus() const
Definition: L1GtfeExtWord.cc:155
word
uint64_t word
Definition: CTPPSTotemDataFormatter.cc:29
L1TGT::gtEvmSource_
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmSource_
input tag for L1 GT EVM readout record
Definition: L1TGT.h:99
cmsdt::algo
algo
Definition: constants.h:165
accept
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
L1GtFdlWord::localBxNr
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
Definition: L1GtFdlWord.h:259
L1TcsWord::eventNr
const cms_uint32_t eventNr() const
get/set event number since last L1 reset generated in TCS chip
Definition: L1TcsWord.h:173
CItAlgo
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
Definition: L1GtTriggerMenuFwd.h:38
L1TGT::BST_beamMode
MonitorElement * BST_beamMode
Definition: L1TGT.h:132
L1GtTriggerMenuRcd
Definition: L1GtTriggerMenuRcd.h:32
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
L1TGT::MaxOrbitNrDiffTcsFdlEvm
static const int MaxOrbitNrDiffTcsFdlEvm
Definition: L1TGT.h:152
L1TGT::PSB20
Definition: L1TGT.h:81
L1TcsWord::bxNr
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the TCS chip
Definition: L1TcsWord.h:73
L1MuGMTReadoutRecord::getBxNr
int getBxNr() const
get counters
Definition: L1MuGMTReadoutRecord.h:61
dqm::impl::MonitorElement::Reset
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
Definition: MonitorElement.cc:354
edm::ESHandle
Definition: DTSurvey.h:22
L1TGT::tt_bits
MonitorElement * tt_bits
Definition: L1TGT.h:111
L1TGT::verbose_
bool verbose_
verbosity switch
Definition: L1TGT.h:106
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
L1TGT::orbit_lumi
MonitorElement * orbit_lumi
Definition: L1TGT.h:123
L1TGT::h_L1TechBX
MonitorElement * h_L1TechBX
Definition: L1TGT.h:162
L1GlobalTriggerEvmReadoutRecord::gtFdlWord
const L1GtFdlWord gtFdlWord(int bxInEvent) const
get / set FDL word (record) in the GT readout record
Definition: L1GlobalTriggerEvmReadoutRecord.cc:259
L1TGT::gpsfreq
MonitorElement * gpsfreq
Definition: L1TGT.h:136
EcalCondDBWriter_cfi.beam
beam
Definition: EcalCondDBWriter_cfi.py:45
L1GtfeExtWord::beamMomentum
const cms_uint16_t beamMomentum() const
Definition: L1GtfeExtWord.cc:275
L1TcsWord::partTrigNr
const cms_uint32_t partTrigNr() const
get/set total number of L1A sent since start of the run to this DAQ partition
Definition: L1TcsWord.h:161
L1TGT::h_L1AlgoBX3
MonitorElement * h_L1AlgoBX3
Definition: L1TGT.h:160
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TGT::MaxLsNrDiffTcsFdlEvm
static const int MaxLsNrDiffTcsFdlEvm
Definition: L1TGT.h:153
L1TGT::m_monOrbitNrDiffTcsFdlEvmLs
MonitorElement * m_monOrbitNrDiffTcsFdlEvmLs
Definition: L1TGT.h:155
L1TGT::BST_intensityBeam2
MonitorElement * BST_intensityBeam2
Definition: L1TGT.h:135
optionsL1T.menu
menu
Definition: optionsL1T.py:29
L1TGT::m_monLsNrDiffTcsFdlEvm
MonitorElement * m_monLsNrDiffTcsFdlEvm
Definition: L1TGT.h:144
L1GtTriggerMenu
Definition: L1GtTriggerMenu.h:48
L1GtfeExtWord::lhcFillNumber
const cms_uint32_t lhcFillNumber() const
Definition: L1GtfeExtWord.cc:195
L1TGT::PSB14
Definition: L1TGT.h:81
L1GtfeWord::bxNr
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
Definition: L1GtfeWord.h:93
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
L1GlobalTriggerReadoutRecord::decisionWord
const DecisionWord & decisionWord(int bxInEventValue) const
Definition: L1GlobalTriggerReadoutRecord.cc:186
L1TGT::algo_bits
MonitorElement * algo_bits
Definition: L1TGT.h:109
L1MuGMTReadoutCollection::getRecord
L1MuGMTReadoutRecord const & getRecord(int bx=0) const
Definition: L1MuGMTReadoutCollection.h:55
L1TGT::PSB21
Definition: L1TGT.h:81
L1TGT::m_nrEvJob
int m_nrEvJob
number of events processed
Definition: L1TGT.h:168
L1GtFdlWord
Definition: L1GtFdlWord.h:29
L1GlobalTriggerReadoutRecord::gtfeWord
const L1GtfeWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
Definition: L1GlobalTriggerReadoutRecord.cc:367
iEvent
int iEvent
Definition: GenABIO.cc:224
L1TGT::dbx_module
MonitorElement * dbx_module
Definition: L1TGT.h:127
L1TGT::preGps_
uint64_t preGps_
Definition: L1TGT.h:174
L1TGT::gtSource_L1GT_
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtSource_L1GT_
input parameters
Definition: L1TGT.h:95
dqm::impl::MonitorElement::setBinLabel
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:771
L1TGT::countPfsIndicesPerLs
void countPfsIndicesPerLs()
Definition: L1TGT.cc:727
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
L1TGT::algoBitToName
std::string algoBitToName[128]
Definition: L1TGT.h:177
L1TGT::isActive
bool isActive(int word, int bit)
book all histograms for the module
Definition: L1TGT.cc:721
L1TGT::PSB9
Definition: L1TGT.h:81
L1TGT::h_L1AlgoBX4
MonitorElement * h_L1AlgoBX4
Definition: L1TGT.h:161
L1GtFdlWord::lumiSegmentNr
const cms_uint16_t lumiSegmentNr() const
get/set luminosity segment number of the actual bx
Definition: L1GtFdlWord.h:247
get
#define get
L1TcsWord::triggerType
const cms_uint16_t triggerType() const
get/set trigger type, identical with event type in CMS header
Definition: L1TcsWord.h:97
L1GtFdlWord::bxNr
const cms_uint16_t bxNr() const
get/set BxNr - bunch cross number of the actual bx
Definition: L1GtFdlWord.h:88
L1GtfeExtWord
Definition: L1GtfeExtWord.h:31
L1TGT::gpsfreqlum
MonitorElement * gpsfreqlum
Definition: L1TGT.h:138
L1TGT::event_type
MonitorElement * event_type
Definition: L1TGT.h:116
DecisionWord
std::vector< bool > DecisionWord
typedefs
Definition: L1GlobalTriggerReadoutSetupFwd.h:34
L1TGT::BST_lhcFillNumber
MonitorElement * BST_lhcFillNumber
Definition: L1TGT.h:131
L1TGT::m_histFolder
std::string m_histFolder
histogram folder for L1 GT plots
Definition: L1TGT.h:172
L1TGT::algo_bits_lumi
MonitorElement * algo_bits_lumi
Definition: L1TGT.h:114
L1TcsWord::luminositySegmentNr
const cms_uint16_t luminositySegmentNr() const
get/set luminosity segment number
Definition: L1TcsWord.h:121
L1GtfeExtWord::totalIntensityBeam2
const cms_uint32_t totalIntensityBeam2() const
Definition: L1GtfeExtWord.cc:315
L1TGT::m_monL1PfIndicesPerLs
MonitorElement * m_monL1PfIndicesPerLs
Definition: L1TGT.h:141
L1TGT::PSB19
Definition: L1TGT.h:81
L1TGT::BST_turnCountNumber
MonitorElement * BST_turnCountNumber
Definition: L1TGT.h:130
L1TGT::FDLEVM
Definition: L1TGT.h:85
L1TGT::tt_bits_lumi
MonitorElement * tt_bits_lumi
Definition: L1TGT.h:115
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
L1TGT::algo_tt_bits_corr
MonitorElement * algo_tt_bits_corr
Definition: L1TGT.h:113
L1GlobalTriggerEvmReadoutRecord::tcsWord
const L1TcsWord tcsWord() const
get / set TCS word (record) in the GT readout record
Definition: L1GlobalTriggerEvmReadoutRecord.cc:254
L1TGT::preOrb_
uint64_t preOrb_
Definition: L1TGT.h:175
L1TGT::BST_beamMomentum
MonitorElement * BST_beamMomentum
Definition: L1TGT.h:133
L1GtPsbWord::localBxNr
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
Definition: L1GtPsbWord.h:134
L1TGT::m_runInEndLumi
bool m_runInEndLumi
Definition: L1TGT.h:103
L1TGT::PSB15
Definition: L1TGT.h:81
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
L1TGT::tt_bits_corr
MonitorElement * tt_bits_corr
Definition: L1TGT.h:112
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
L1TGT::trig_iter
std::map< std::string, bool >::iterator trig_iter
Definition: L1TGT.h:180
L1TGT::l1TechTriggerDecision
std::map< std::string, bool > l1TechTriggerDecision
Definition: L1TGT.h:179
L1TGT::h_L1AlgoBX1
MonitorElement * h_L1AlgoBX1
Definition: L1TGT.h:158
L1TGT::trigger_lumi
MonitorElement * trigger_lumi
Definition: L1TGT.h:121
L1TGT::trigger_number
MonitorElement * trigger_number
Definition: L1TGT.h:120
L1GlobalTriggerReadoutRecord::technicalTriggerWord
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
Definition: L1GlobalTriggerReadoutRecord.cc:212
TechnicalTriggerWord
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
Definition: L1GlobalTriggerReadoutSetupFwd.h:41
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
volumeBasedMagneticField_160812_cfi.master
master
Definition: volumeBasedMagneticField_160812_cfi.py:60
L1TGT::h_L1AlgoBX2
MonitorElement * h_L1AlgoBX2
Definition: L1TGT.h:159
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
L1GtfeExtWord::beamMode
const cms_uint16_t beamMode() const
Definition: L1GtfeExtWord.cc:215
L1GlobalTriggerReadoutRecord::gtFdlWord
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
Definition: L1GlobalTriggerReadoutRecord.cc:372
edm::InputTag
Definition: InputTag.h:15
L1TGT::PSB13
Definition: L1TGT.h:81
L1TGT::m_monL1PrescaleFactorSet
MonitorElement * m_monL1PrescaleFactorSet
Definition: L1TGT.h:140
L1GtFdlWord::orbitNr
const cms_uint32_t orbitNr() const
get/set orbit number
Definition: L1GtFdlWord.h:235
L1TGT::TCS
Definition: L1TGT.h:85
L1GtfeExtWord::gpsTime
const cms_uint64_t gpsTime() const
LHC-BOB-ES-0001 (EDMS 638899)
Definition: L1GtfeExtWord.cc:104
L1GlobalTriggerReadoutRecord::gtFdlVector
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
Definition: L1GlobalTriggerReadoutRecord.h:119
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
L1TGT::event_lumi
MonitorElement * event_lumi
Definition: L1TGT.h:119
L1TGT::m_pairLsNumberPfIndex
std::vector< std::pair< int, int > > m_pairLsNumberPfIndex
Definition: L1TGT.h:182