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:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 L1TGT (const edm::ParameterSet &ps)
 
 ~L1TGT () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void beginRun (edm::Run const &, edm::EventSetup const &) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) override
 
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
 end section More...
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, 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
 
boost::uint64_t preGps_
 
boost::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 edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Description: DQM for L1 Global Trigger.

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

Definition at line 50 of file L1TGT.h.

Member Typedef Documentation

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

Definition at line 197 of file L1TGT.h.

Member Enumeration Documentation

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

Definition at line 87 of file L1TGT.h.

87  {
89  };
enum L1TGT::activeEVM
private
Enumerator
TCS 
FDLEVM 

Definition at line 93 of file L1TGT.h.

93  {
94  TCS, FDLEVM
95  };

Constructor & Destructor Documentation

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

Definition at line 18 of file L1TGT.cc.

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

18  :
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), m_nrEvRun(0),
26  preGps_(0ULL), preOrb_(0ULL)
27 {
28 
30  "L1T/L1TGT");
31 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int m_nrEvRun
Definition: L1TGT.h:183
boost::uint64_t preGps_
Definition: L1TGT.h:188
bool verbose_
verbosity switch
Definition: L1TGT.h:118
bool m_runInEventLoop
switches to choose the running of various methods
Definition: L1TGT.h:114
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmSource_
input tag for L1 GT EVM readout record
Definition: L1TGT.h:111
std::string m_histFolder
histogram folder for L1 GT plots
Definition: L1TGT.h:186
bool m_runInEndLumi
Definition: L1TGT.h:115
int m_nrEvJob
number of events processed
Definition: L1TGT.h:182
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtSource_L1GT_
input parameters
Definition: L1TGT.h:107
boost::uint64_t preOrb_
Definition: L1TGT.h:189
edm::EDGetTokenT< L1MuGMTReadoutCollection > gtSource_L1MuGMT_
Definition: L1TGT.h:108
L1TGT::~L1TGT ( )
override

Definition at line 33 of file L1TGT.cc.

33  {
34 
35  // empty
36 }

Member Function Documentation

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

get Global Trigger algo and technical trigger bit statistics

Definition at line 320 of file L1TGT.cc.

References accept(), L1GtfeWord::activeBoards(), algo_bits, algo_bits_corr, algo_bits_lumi, algo_tt_bits_corr, algoBitToName, 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, MonitorElement::Fill(), spr::find(), L1MuGMTReadoutRecord::getBxNr(), edm::Event::getByToken(), 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, isActive(), edm::HandleBase::isValid(), l1TechTriggerDecision, l1TriggerDecision, L1GtfeExtWord::lhcFillNumber(), L1GtPsbWord::localBxNr(), L1GtFdlWord::localBxNr(), edm::EventBase::luminosityBlock(), L1TcsWord::luminositySegmentNr(), L1GtFdlWord::lumiSegmentNr(), m_monL1PrescaleFactorSet, m_monLsNrDiffTcsFdlEvm, m_monLsNrDiffTcsFdlEvmLs, m_monOrbitNrDiffTcsFdlEvm, m_monOrbitNrDiffTcsFdlEvmLs, m_nrEvJob, m_pairLsNumberPfIndex, funct::master(), MaxLsNrDiffTcsFdlEvm, MaxOrbitNrDiffTcsFdlEvm, orbit_lumi, L1TcsWord::orbitNr(), L1GtFdlWord::orbitNr(), edm::EventBase::orbitNumber(), 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_.

320  {
321 
322  m_nrEvJob++;
323 
324  if (verbose_) {
325  edm::LogInfo("L1TGT") << "L1TGT: analyze...." << std::endl;
326  }
327 
328  // initialize Bx, orbit number, luminosity segment number to invalid value
329  int tcsBx = -1;
330  int gtfeEvmBx = -1;
331 
332  long long int orbitTcs = -1;
333  int orbitEvmFdl = -1;
334 
335  int lsTcs = -1;
336  int lsEvmFdl = -1;
337 
338  // get once only the LS block number, to be used in many histograms
339  const int lsNumber = iEvent.luminosityBlock();
340 
341  // open EVM readout record if available
343  iEvent.getByToken(gtEvmSource_, gtEvmReadoutRecord);
344 
345  if (!gtEvmReadoutRecord.isValid()) {
346  edm::LogInfo("L1TGT")
347  << "can't find L1GlobalTriggerEvmReadoutRecord";
348  } else {
349 
350  // get all info from the EVM record if available and fill the histograms
351 
352  const L1GtfeWord& gtfeEvmWord = gtEvmReadoutRecord->gtfeWord();
353  const L1GtfeExtWord& gtfeEvmExtWord = gtEvmReadoutRecord->gtfeWord();
354 
355  gtfeEvmBx = gtfeEvmWord.bxNr();
356  int gtfeEvmActiveBoards = gtfeEvmWord.activeBoards();
357 
358  if (isActive(gtfeEvmActiveBoards, TCS)) {
359  // if TCS present in the record
360 
361  const L1TcsWord& tcsWord = gtEvmReadoutRecord->tcsWord();
362 
363  tcsBx = tcsWord.bxNr();
364  orbitTcs = tcsWord.orbitNr();
365  lsTcs = tcsWord.luminositySegmentNr();
366 
367  event_type->Fill(tcsWord.triggerType());
368  orbit_lumi->Fill(lsNumber, orbitTcs);
369 
370  trigger_number->Fill(tcsWord.partTrigNr());
371  event_number->Fill(tcsWord.eventNr());
372 
373  trigger_lumi->Fill(lsNumber, tcsWord.partTrigNr());
374  event_lumi->Fill(lsNumber, tcsWord.eventNr());
375  evnum_trignum_lumi->Fill(lsNumber,
376  static_cast<double>(tcsWord.eventNr()) / static_cast<double>(tcsWord.partTrigNr()));
377 
378  boost::uint16_t master = gtfeEvmExtWord.bstMasterStatus();
379  boost::uint32_t turnCount = gtfeEvmExtWord.turnCountNumber();
380  boost::uint32_t lhcFill = gtfeEvmExtWord.lhcFillNumber();
381  boost::uint16_t beam = gtfeEvmExtWord.beamMode();
382  boost::uint16_t momentum = gtfeEvmExtWord.beamMomentum();
383  boost::uint32_t intensity1 = gtfeEvmExtWord.totalIntensityBeam1();
384  boost::uint32_t intensity2 = gtfeEvmExtWord.totalIntensityBeam2();
385 
386  BST_MasterStatus->Fill(lsNumber, static_cast<double>(master));
387  BST_turnCountNumber->Fill(lsNumber, static_cast<double>(turnCount));
388  BST_lhcFillNumber->Fill(static_cast<double>(lhcFill % 1000));
389  BST_beamMode->Fill(lsNumber, static_cast<double>(beam));
390 
391  BST_beamMomentum->Fill(lsNumber, static_cast<double>(momentum));
392  BST_intensityBeam1->Fill(lsNumber, static_cast<double>(intensity1));
393  BST_intensityBeam2->Fill(lsNumber, static_cast<double>(intensity2));
394 
395  if (verbose_) {
396  edm::LogInfo("L1TGT") << " check mode = " << beam << " momentum " << momentum
397  << " int2 " << intensity2 << std::endl;
398  }
399 
400  boost::uint64_t gpsr = gtfeEvmExtWord.gpsTime();
401  boost::uint64_t gpshi = (gpsr >> 32) & 0xffffffff;
402  boost::uint64_t gpslo = gpsr & 0xffffffff;
403  boost::uint64_t gps = gpshi * 1000000 + gpslo;
404  // edm::LogInfo("L1TGT") << " gpsr = " << std::hex << gpsr << " hi=" << gpshi << " lo=" << gpslo << " gps=" << gps << std::endl;
405 
406  Long64_t delorb = orbitTcs - preOrb_;
407  Long64_t delgps = gps - preGps_;
408  Double_t freq = -1.;
409 
410  if (delgps > 0) {
411  freq = ((Double_t)(delorb)) * 3564. / ((Double_t)(delgps));
412  }
413 
414  if (delorb > 0) {
415  gpsfreq->Fill(freq);
416  gpsfreqwide->Fill(freq);
417  gpsfreqlum->Fill(lsNumber, freq);
418  if (verbose_) {
419  if (freq > 200.) {
420  edm::LogInfo("L1TGT") << " preOrb_ = " << preOrb_ << " orbitTcs=" << orbitTcs
421  << " delorb=" << delorb << std::hex << " preGps_="
422  << preGps_ << " gps=" << gps << std::dec
423  << " delgps=" << delgps << " freq=" << freq
424  << std::endl;
425 
426  }
427  }
428  }
429 
430  preGps_ = gps;
431  preOrb_ = orbitTcs;
432 
433  }
434 
435  // get info from FDL if active
436  if (isActive(gtfeEvmActiveBoards, FDL)) {
437  const L1GtFdlWord& fdlWord = gtEvmReadoutRecord->gtFdlWord();
438 
439  orbitEvmFdl = fdlWord.orbitNr();
440  lsEvmFdl = fdlWord.lumiSegmentNr();
441  }
442 
443  if ((orbitTcs >= 0) && (orbitEvmFdl >= 0)) {
444 
445  int diffOrbit = static_cast<float> (orbitTcs - orbitEvmFdl);
446  edm::LogInfo("L1TGT") << "\n orbitTcs = " << orbitTcs << " orbitEvmFdl = "
447  << orbitEvmFdl << " diffOrbit = " << diffOrbit
448  << " orbitEvent = " << iEvent.orbitNumber() << std::endl;
449 
450  if (diffOrbit >= MaxOrbitNrDiffTcsFdlEvm) {
452 
453  } else if (diffOrbit <= -MaxOrbitNrDiffTcsFdlEvm) {
455 
456  } else {
457  m_monOrbitNrDiffTcsFdlEvm->Fill(diffOrbit);
458  m_monOrbitNrDiffTcsFdlEvmLs->Fill(lsNumber, diffOrbit);
459 
460  }
461 
462  } else {
463 
464  if (orbitTcs >= 0) {
465  // EVM_FDL error
467  } else if (orbitEvmFdl >= 0) {
468  // TCS error
470 
471  } else {
472  // TCS and EVM_FDL error
475  }
476  }
477 
478  if ((lsTcs >= 0) && (lsEvmFdl >= 0)) {
479 
480  int diffLs = static_cast<float> (lsTcs - lsEvmFdl);
481  edm::LogInfo("L1TGT") << "\n lsTcs = " << lsTcs << " lsEvmFdl = " << lsEvmFdl
482  << " diffLs = " << diffLs << " lsEvent = "
483  << lsNumber << std::endl;
484 
485  if (diffLs >= MaxLsNrDiffTcsFdlEvm) {
487 
488  } else if (diffLs <= -MaxLsNrDiffTcsFdlEvm) {
490 
491  } else {
492  m_monLsNrDiffTcsFdlEvm->Fill(diffLs);
493  m_monLsNrDiffTcsFdlEvmLs->Fill(lsNumber, diffLs);
494 
495  }
496 
497  } else {
498 
499  if (lsTcs >= 0) {
500  // EVM_FDL error
502  } else if (lsEvmFdl >= 0) {
503  // TCS error
505 
506  } else {
507  // TCS and EVM_FDL error
510  }
511  }
512  }
513 
514  // open GT DAQ readout record - exit if failed
516  iEvent.getByToken(gtSource_L1GT_, gtReadoutRecord);
517 
518  //edm::ESHandle<L1GtTriggerMenu> menuRcd;
519  //evSetup.get<L1GtTriggerMenuRcd>().get(menuRcd);
520 
521  //const L1GtTriggerMenu* menu = menuRcd.product();
522 
523  if (!gtReadoutRecord.isValid()) {
524  edm::LogInfo("L1TGT")
525  << "can't find L1GlobalTriggerReadoutRecord";
526  return;
527  }
528 
529  if(gtReadoutRecord.isValid()) {
530 
531  unsigned int NmaxL1AlgoBit = gtReadoutRecord->decisionWord().size();
532  unsigned int NmaxL1TechBit = gtReadoutRecord->technicalTriggerWord().size();
533 
534  const DecisionWord dWord = gtReadoutRecord->decisionWord();
535  const TechnicalTriggerWord technicalTriggerWordBeforeMask = gtReadoutRecord->technicalTriggerWord();
536 
537  const std::vector<L1GtFdlWord> &m_gtFdlWord(gtReadoutRecord->gtFdlVector());
538  int numberBxInEvent=m_gtFdlWord.size();
539  int minBxInEvent = (numberBxInEvent + 1)/2 - numberBxInEvent;
540 
541  for (unsigned int iBit = 0; iBit < NmaxL1AlgoBit; ++iBit) {
542  bool accept = dWord[iBit];
543 
546  if (trig_iter==l1TriggerDecision.end()){
547  l1TriggerDecision.insert(valType(algoBitToName[iBit],accept));
548  }else{
549  trig_iter->second=accept;
550  }
551 
552  int ibx=0;
553  for (std::vector<L1GtFdlWord>::const_iterator itBx = m_gtFdlWord.begin(); itBx != m_gtFdlWord.end(); ++itBx) {
554 
555  const DecisionWord dWordBX = (*itBx).gtDecisionWord();
556  bool accept = dWordBX[iBit];
557  if (accept) {
558  if (iBit < 32)
559  h_L1AlgoBX1->Fill(iBit, minBxInEvent+ibx);
560  else if (iBit < 64)
561  h_L1AlgoBX2->Fill(iBit, minBxInEvent+ibx);
562  else if (iBit < 96)
563  h_L1AlgoBX3->Fill(iBit, minBxInEvent+ibx);
564  else if (iBit < 128)
565  h_L1AlgoBX4->Fill(iBit, minBxInEvent+ibx);
566  }
567  ibx++;
568  }
569  }
570 
571  for (unsigned int iBit = 0; iBit < NmaxL1TechBit; ++iBit) {
572  bool accept = technicalTriggerWordBeforeMask[iBit];
573 
576  if (trig_iter==l1TechTriggerDecision.end())
577  l1TechTriggerDecision.insert(valType(techBitToName[iBit],accept));
578  else
579  trig_iter->second=accept;
580 
581 
582  int ibx=0;
583  for (std::vector<L1GtFdlWord>::const_iterator itBx = m_gtFdlWord.begin();
584  itBx != m_gtFdlWord.end(); ++itBx) {
585 
586  const DecisionWord dWordBX = (*itBx).gtTechnicalTriggerWord();
587  bool accept = dWordBX[iBit];
588  if (accept) h_L1TechBX->Fill(iBit,minBxInEvent+ibx);
589  ibx++;
590  }
591  }
592  }
593 
594  // initialize bx's to invalid value
595  int gtfeBx = -1;
596  int fdlBx[2] = { -1, -1 };
597  int psbBx[2][7] = { { -1, -1, -1, -1, -1, -1, -1 }, { -1, -1, -1, -1, -1,
598  -1, -1 } };
599  int gmtBx = -1;
600 
601  // get info from GTFE DAQ record
602  const L1GtfeWord& gtfeWord = gtReadoutRecord->gtfeWord();
603  gtfeBx = gtfeWord.bxNr();
604  gtfe_bx->Fill(gtfeBx);
605  setupversion_lumi->Fill(lsNumber, gtfeWord.setupVersion());
606  int gtfeActiveBoards = gtfeWord.activeBoards();
607 
608  // look for GMT readout collection from the same source if GMT active
609  if (isActive(gtfeActiveBoards, GMT)) {
610  edm::Handle<L1MuGMTReadoutCollection> gmtReadoutCollection;
611  iEvent.getByToken(gtSource_L1MuGMT_, gmtReadoutCollection);
612 
613  if (gmtReadoutCollection.isValid()) {
614  gmtBx = gmtReadoutCollection->getRecord().getBxNr();
615  }
616  }
617 
618  // get info from FDL if active (including decision word)
619  if (isActive(gtfeActiveBoards, FDL)) {
620  const L1GtFdlWord& fdlWord = gtReadoutRecord->gtFdlWord();
621  fdlBx[0] = fdlWord.bxNr();
622  fdlBx[1] = fdlWord.localBxNr();
623 
625  const DecisionWord& gtDecisionWord = gtReadoutRecord->decisionWord();
626  const TechnicalTriggerWord& gtTTWord =
627  gtReadoutRecord->technicalTriggerWord();
628 
629  int dbitNumber = 0;
630  DecisionWord::const_iterator GTdbitItr;
631  algo_bits->Fill(-1.); // fill underflow to normalize
632  for (GTdbitItr = gtDecisionWord.begin(); GTdbitItr
633  != gtDecisionWord.end(); GTdbitItr++) {
634  if (*GTdbitItr) {
635  algo_bits->Fill(dbitNumber);
636  algo_bits_lumi->Fill(lsNumber, dbitNumber);
637  int dbitNumber1 = 0;
638  DecisionWord::const_iterator GTdbitItr1;
639  for (GTdbitItr1 = gtDecisionWord.begin(); GTdbitItr1
640  != gtDecisionWord.end(); GTdbitItr1++) {
641  if (*GTdbitItr1)
642  algo_bits_corr->Fill(dbitNumber, dbitNumber1);
643  dbitNumber1++;
644  }
645  int tbitNumber1 = 0;
646  TechnicalTriggerWord::const_iterator GTtbitItr1;
647  for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1
648  != gtTTWord.end(); GTtbitItr1++) {
649  if (*GTtbitItr1)
650  algo_tt_bits_corr->Fill(dbitNumber, tbitNumber1);
651  tbitNumber1++;
652  }
653  }
654  dbitNumber++;
655  }
656 
657  int tbitNumber = 0;
658  TechnicalTriggerWord::const_iterator GTtbitItr;
659  tt_bits->Fill(-1.); // fill underflow to normalize
660  for (GTtbitItr = gtTTWord.begin(); GTtbitItr != gtTTWord.end(); GTtbitItr++) {
661  if (*GTtbitItr) {
662  tt_bits->Fill(tbitNumber);
663  tt_bits_lumi->Fill(lsNumber, tbitNumber);
664  int tbitNumber1 = 0;
665  TechnicalTriggerWord::const_iterator GTtbitItr1;
666  for (GTtbitItr1 = gtTTWord.begin(); GTtbitItr1
667  != gtTTWord.end(); GTtbitItr1++) {
668  if (*GTtbitItr1)
669  tt_bits_corr->Fill(tbitNumber, tbitNumber1);
670  tbitNumber1++;
671  }
672  }
673  tbitNumber++;
674  }
675 
676 
677  // fill the index of actual prescale factor set
678  // the index for technical triggers and algorithm trigger is the same (constraint in L1 GT TS)
679  // so we read only pfIndexAlgoTrig (boost::uint16_t)
680 
681  const int pfIndexAlgoTrig = fdlWord.gtPrescaleFactorIndexAlgo();
682  m_monL1PrescaleFactorSet->Fill(lsNumber,
683  static_cast<float> (pfIndexAlgoTrig));
684 
685  //
686 
687  // check that the combination (lsNumber, pfIndex) is not already included
688  // to avoid fake entries due to different event order
689 
690  std::pair<int, int> pairLsPfi = std::make_pair(lsNumber,
691  pfIndexAlgoTrig);
692 
693  CItVecPair cIt = find(m_pairLsNumberPfIndex.begin(),
694  m_pairLsNumberPfIndex.end(), pairLsPfi);
695 
696  if (cIt == m_pairLsNumberPfIndex.end()) {
697 
698  m_pairLsNumberPfIndex.push_back(pairLsPfi);
699 
700  }
701 
702  }
703 
704  // get info from active PSB's
705  int ibit = PSB9; // first psb
706  // for now hardcode psb id's - TODO - get them from Vasile's board maps...
707  int psbID[7] = { 0xbb09, 0xbb0d, 0xbb0e, 0xbb0f, 0xbb13, 0xbb14, 0xbb15 };
708  for (int i = 0; i < 7; i++) {
709  if (isActive(gtfeActiveBoards, ibit)) {
710  L1GtPsbWord psbWord = gtReadoutRecord->gtPsbWord(psbID[i]);
711  psbBx[0][i] = psbWord.bxNr();
712  psbBx[1][i] = psbWord.localBxNr();
713  }
714  ibit++;
715  }
716 
717  //fill the dbx histo
718  if (gtfeEvmBx > -1)
719  dbx_module->Fill(0., gtfeEvmBx - gtfeBx);
720  if (tcsBx > -1)
721  dbx_module->Fill(1., tcsBx - gtfeBx);
722  for (int i = 0; i < 2; i++) {
723  if (fdlBx[i] > -1)
724  dbx_module->Fill(2. + i, fdlBx[i] - gtfeBx);
725  }
726  for (int j = 0; j < 7; j++) {
727  for (int i = 0; i < 2; i++) {
728  if (psbBx[i][j] > -1)
729  dbx_module->Fill(4. + i + 2 * j, psbBx[i][j] - gtfeBx);
730  }
731  }
732  if (gmtBx > -1)
733  dbx_module->Fill(18., gmtBx - gtfeBx);
734 
735 }
MonitorElement * m_monL1PrescaleFactorSet
Definition: L1TGT.h:153
Master< F > master(const F &f)
Definition: FunctClone.h:68
std::map< std::string, bool > l1TechTriggerDecision
Definition: L1TGT.h:193
MonitorElement * h_L1AlgoBX1
Definition: L1TGT.h:171
MonitorElement * gpsfreqwide
Definition: L1TGT.h:150
const cms_uint16_t bxNr() const
get/set bunch cross number of the actual bx
Definition: L1GtPsbWord.h:108
boost::uint64_t preGps_
Definition: L1TGT.h:188
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
const cms_uint64_t orbitNr() const
get/set orbit number since start of run
Definition: L1TcsWord.h:266
MonitorElement * m_monLsNrDiffTcsFdlEvmLs
Definition: L1TGT.h:169
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
std::vector< std::pair< int, int > >::const_iterator CItVecPair
Definition: L1TGT.h:197
int getBxNr() const
get counters
const L1GtfeExtWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
const L1TcsWord tcsWord() const
get / set TCS word (record) in the GT readout record
const std::vector< L1GtFdlWord > gtFdlVector() const
get the vector of L1GtFdlWord
const L1GtfeWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
const cms_uint64_t gpsTime() const
LHC-BOB-ES-0001 (EDMS 638899)
std::vector< std::pair< int, int > > m_pairLsNumberPfIndex
Definition: L1TGT.h:196
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
const cms_uint16_t luminositySegmentNr() const
get/set luminosity segment number
Definition: L1TcsWord.h:166
MonitorElement * BST_intensityBeam1
Definition: L1TGT.h:147
static const int MaxOrbitNrDiffTcsFdlEvm
Definition: L1TGT.h:165
MonitorElement * algo_bits_corr
Definition: L1TGT.h:123
MonitorElement * tt_bits
Definition: L1TGT.h:124
bool verbose_
verbosity switch
Definition: L1TGT.h:118
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
const cms_uint16_t bstMasterStatus() const
MonitorElement * gtfe_bx
Definition: L1TGT.h:139
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:226
MonitorElement * BST_beamMode
Definition: L1TGT.h:145
void Fill(long long x)
MonitorElement * BST_MasterStatus
Definition: L1TGT.h:142
std::map< std::string, bool >::iterator trig_iter
Definition: L1TGT.h:194
const cms_uint16_t beamMomentum() const
const cms_uint16_t bxNr() const
get/set BxNr - bunch cross number of the actual bx
Definition: L1GtFdlWord.h:110
MonitorElement * BST_intensityBeam2
Definition: L1TGT.h:148
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the TCS chip
Definition: L1TcsWord.h:87
MonitorElement * h_L1TechBX
Definition: L1TGT.h:175
MonitorElement * event_number
Definition: L1TGT.h:131
MonitorElement * h_L1AlgoBX3
Definition: L1TGT.h:173
std::vector< bool > DecisionWord
typedefs
static const int MaxLsNrDiffTcsFdlEvm
Definition: L1TGT.h:166
edm::EDGetTokenT< L1GlobalTriggerEvmReadoutRecord > gtEvmSource_
input tag for L1 GT EVM readout record
Definition: L1TGT.h:111
MonitorElement * orbit_lumi
Definition: L1TGT.h:136
MonitorElement * h_L1AlgoBX4
Definition: L1TGT.h:174
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
int orbitNumber() const
Definition: EventBase.h:67
const L1GtPsbWord gtPsbWord(cms_uint16_t boardIdValue, int bxInEventValue) const
get / set PSB word (record) in the GT readout record
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
Definition: L1GtPsbWord.h:178
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * algo_bits_lumi
Definition: L1TGT.h:127
std::map< std::string, bool > l1TriggerDecision
Definition: L1TGT.h:193
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
Definition: L1GtfeWord.h:163
const DecisionWord & decisionWord(int bxInEventValue) const
MonitorElement * m_monLsNrDiffTcsFdlEvm
Definition: L1TGT.h:157
MonitorElement * gpsfreq
Definition: L1TGT.h:149
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
Definition: L1GtfeWord.h:122
std::string algoBitToName[128]
Definition: L1TGT.h:191
const cms_uint32_t totalIntensityBeam2() const
const cms_uint32_t totalIntensityBeam1() const
MonitorElement * algo_bits
Definition: L1TGT.h:122
MonitorElement * event_type
Definition: L1TGT.h:129
const cms_uint16_t gtPrescaleFactorIndexAlgo() const
Definition: L1GtFdlWord.h:267
MonitorElement * m_monOrbitNrDiffTcsFdlEvmLs
Definition: L1TGT.h:168
const cms_uint16_t lumiSegmentNr() const
get/set luminosity segment number of the actual bx
Definition: L1GtFdlWord.h:352
MonitorElement * dbx_module
Definition: L1TGT.h:140
unsigned long long uint64_t
Definition: Time.h:15
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
const cms_uint32_t lhcFillNumber() const
MonitorElement * tt_bits_corr
Definition: L1TGT.h:125
bool isActive(int word, int bit)
book all histograms for the module
Definition: L1TGT.cc:749
MonitorElement * gpsfreqlum
Definition: L1TGT.h:151
int m_nrEvJob
number of events processed
Definition: L1TGT.h:182
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > gtSource_L1GT_
input parameters
Definition: L1TGT.h:107
MonitorElement * h_L1AlgoBX2
Definition: L1TGT.h:172
const cms_uint16_t triggerType() const
get/set trigger type, identical with event type in CMS header
Definition: L1TcsWord.h:127
const cms_uint32_t eventNr() const
get/set event number since last L1 reset generated in TCS chip
Definition: L1TcsWord.h:246
const cms_uint32_t setupVersion() const
get/set setup version
Definition: L1GtfeWord.h:140
MonitorElement * trigger_number
Definition: L1TGT.h:133
MonitorElement * BST_beamMomentum
Definition: L1TGT.h:146
L1MuGMTReadoutRecord const & getRecord(int bx=0) const
MonitorElement * BST_lhcFillNumber
Definition: L1TGT.h:144
MonitorElement * setupversion_lumi
Definition: L1TGT.h:137
const cms_uint32_t turnCountNumber() const
const L1GtFdlWord gtFdlWord(int bxInEvent) const
get / set FDL word (record) in the GT readout record
MonitorElement * BST_turnCountNumber
Definition: L1TGT.h:143
boost::uint64_t preOrb_
Definition: L1TGT.h:189
MonitorElement * event_lumi
Definition: L1TGT.h:132
const cms_uint16_t beamMode() const
MonitorElement * tt_bits_lumi
Definition: L1TGT.h:128
MonitorElement * trigger_lumi
Definition: L1TGT.h:134
MonitorElement * evnum_trignum_lumi
Definition: L1TGT.h:135
const cms_uint32_t orbitNr() const
get/set orbit number
Definition: L1GtFdlWord.h:332
MonitorElement * algo_tt_bits_corr
Definition: L1TGT.h:126
std::string techBitToName[64]
Definition: L1TGT.h:192
const cms_uint16_t localBxNr() const
get/set local bunch cross number of the actual bx
Definition: L1GtFdlWord.h:372
MonitorElement * m_monOrbitNrDiffTcsFdlEvm
Definition: L1TGT.h:156
edm::EDGetTokenT< L1MuGMTReadoutCollection > gtSource_L1MuGMT_
Definition: L1TGT.h:108
void L1TGT::beginLuminosityBlock ( const edm::LuminosityBlock iLumi,
const edm::EventSetup evSetup 
)
overrideprotected

Definition at line 314 of file L1TGT.cc.

314  {
315 
316 
317 }
void L1TGT::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &  evSetup 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 40 of file L1TGT.cc.

References patPFMETCorrections_cff::algo, algo_bits, algo_bits_corr, algo_bits_lumi, algo_tt_bits_corr, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::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(), gpsfreq, gpsfreqlum, gpsfreqwide, L1GtTriggerMenu::gtAlgorithmMap(), gtfe_bx, L1GtTriggerMenu::gtTechnicalTriggerMap(), 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, orbit_lumi, edm::ESHandle< T >::product(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), setupversion_lumi, trigger_lumi, trigger_number, tt_bits, tt_bits_corr, and tt_bits_lumi.

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

Definition at line 756 of file L1TGT.cc.

References MonitorElement::Fill(), m_monL1PfIndicesPerLs, m_pairLsNumberPfIndex, MaxLsNrDiffTcsFdlEvm, MaxOrbitNrDiffTcsFdlEvm, MonitorElement::Reset(), and verbose_.

Referenced by endLuminosityBlock().

756  {
757 
758  if (verbose_) {
759  edm::LogInfo("L1TGT") << "\n Prescale factor indices used in a LS "
760  << std::endl;
761 
762  for (CItVecPair cIt = m_pairLsNumberPfIndex.begin(); cIt
763  != m_pairLsNumberPfIndex.end(); ++cIt) {
764 
765  edm::LogVerbatim("L1TGT") << " lsNumber = " << (*cIt).first
766  << " pfIndex = " << (*cIt).second << std::endl;
767  }
768  edm::LogVerbatim("L1TGT") << std::endl;
769  }
770 
771  // reset the histogram...
773 
774  // sort the vector (for pairs: sort after first argument, then after the second argument)
775  std::sort(m_pairLsNumberPfIndex.begin(), m_pairLsNumberPfIndex.end());
776 
777  int previousLsNumber = -1;
778  int previousPfsIndex = -1;
779 
780  // count the number of pairs (lsNumber, pfIndex) per Ls
781  // there are no duplicate entries, and pairs are sorted after both members
782  // ... and fill again the histogram
783  for (CItVecPair cIt = m_pairLsNumberPfIndex.begin(); cIt
784  != m_pairLsNumberPfIndex.end(); ++cIt) {
785 
786  int pfsIndicesPerLs = 1;
787 
788  if ((*cIt).first == previousLsNumber) {
789 
790  if ((*cIt).second != previousPfsIndex) {
791  pfsIndicesPerLs++;
792  previousPfsIndex = (*cIt).second;
793  }
794 
795  } else {
796 
797  // fill the histogram with the number of PF indices for the previous Ls
798  if (previousLsNumber != -1) {
799  m_monL1PfIndicesPerLs->Fill(pfsIndicesPerLs);
800  }
801 
802  // new Ls
803  previousLsNumber = (*cIt).first;
804  previousPfsIndex = (*cIt).second;
805 
806  pfsIndicesPerLs = 1;
807  }
808 
809  }
810 
811 }
std::vector< std::pair< int, int > >::const_iterator CItVecPair
Definition: L1TGT.h:197
std::vector< std::pair< int, int > > m_pairLsNumberPfIndex
Definition: L1TGT.h:196
bool verbose_
verbosity switch
Definition: L1TGT.h:118
void Fill(long long x)
MonitorElement * m_monL1PfIndicesPerLs
Definition: L1TGT.h:154
void Reset(void)
reset ME (ie. contents, errors, etc)
void L1TGT::dqmBeginRun ( const edm::Run ,
const edm::EventSetup  
)
overrideprotected

Definition at line 308 of file L1TGT.cc.

References m_nrEvRun.

308  {
309 
310  m_nrEvRun = 0;
311 }
int m_nrEvRun
Definition: L1TGT.h:183
void L1TGT::endLuminosityBlock ( const edm::LuminosityBlock iLumi,
const edm::EventSetup evSetup 
)
overrideprotected

end section

Definition at line 739 of file L1TGT.cc.

References countPfsIndicesPerLs(), and m_runInEndLumi.

740  {
741 
742  if (m_runInEndLumi) {
744  }
745 }
bool m_runInEndLumi
Definition: L1TGT.h:115
void countPfsIndicesPerLs()
Definition: L1TGT.cc:756
bool L1TGT::isActive ( int  word,
int  bit 
)
private

book all histograms for the module

Definition at line 749 of file L1TGT.cc.

Referenced by analyze().

749  {
750  if (word & (1 << bit))
751  return true;
752  return false;
753 }

Member Data Documentation

MonitorElement* L1TGT::algo_bits
private

Definition at line 122 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::algo_bits_corr
private

Definition at line 123 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::algo_bits_lumi
private

Definition at line 127 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::algo_tt_bits_corr
private

Definition at line 126 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 191 of file L1TGT.h.

Referenced by analyze().

MonitorElement* L1TGT::BST_beamMode
private

Definition at line 145 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_beamMomentum
private

Definition at line 146 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_intensityBeam1
private

Definition at line 147 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_intensityBeam2
private

Definition at line 148 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_lhcFillNumber
private

Definition at line 144 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_MasterStatus
private

Definition at line 142 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::BST_turnCountNumber
private

Definition at line 143 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::dbx_module
private

Definition at line 140 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::event_lumi
private

Definition at line 132 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::event_number
private

Definition at line 131 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::event_type
private

Definition at line 129 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::evnum_trignum_lumi
private

Definition at line 135 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::gpsfreq
private

Definition at line 149 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::gpsfreqlum
private

Definition at line 151 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::gpsfreqwide
private

Definition at line 150 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

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

input tag for L1 GT EVM readout record

Definition at line 111 of file L1TGT.h.

Referenced by analyze().

MonitorElement* L1TGT::gtfe_bx
private

Definition at line 139 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

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

input parameters

input tag for L1 GT DAQ readout record

Definition at line 107 of file L1TGT.h.

Referenced by analyze().

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

Definition at line 108 of file L1TGT.h.

Referenced by analyze().

MonitorElement* L1TGT::h_L1AlgoBX1
private

Definition at line 171 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::h_L1AlgoBX2
private

Definition at line 172 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::h_L1AlgoBX3
private

Definition at line 173 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::h_L1AlgoBX4
private

Definition at line 174 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::h_L1TechBX
private

Definition at line 175 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 193 of file L1TGT.h.

Referenced by analyze().

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

Definition at line 193 of file L1TGT.h.

Referenced by analyze().

std::string L1TGT::m_histFolder
private

histogram folder for L1 GT plots

Definition at line 186 of file L1TGT.h.

Referenced by bookHistograms(), and L1TGT().

MonitorElement* L1TGT::m_monL1PfIndicesPerLs
private

Definition at line 154 of file L1TGT.h.

Referenced by bookHistograms(), and countPfsIndicesPerLs().

MonitorElement* L1TGT::m_monL1PrescaleFactorSet
private

Definition at line 153 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::m_monLsNrDiffTcsFdlEvm
private

Definition at line 157 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::m_monLsNrDiffTcsFdlEvmLs
private

Definition at line 169 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::m_monOrbitNrDiffTcsFdlEvm
private

Definition at line 156 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::m_monOrbitNrDiffTcsFdlEvmLs
private

Definition at line 168 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

int L1TGT::m_nrEvJob
private

number of events processed

Definition at line 182 of file L1TGT.h.

Referenced by analyze().

int L1TGT::m_nrEvRun
private

Definition at line 183 of file L1TGT.h.

Referenced by dqmBeginRun().

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

Definition at line 196 of file L1TGT.h.

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

bool L1TGT::m_runInEndLumi
private

Definition at line 115 of file L1TGT.h.

Referenced by endLuminosityBlock().

bool L1TGT::m_runInEventLoop
private

switches to choose the running of various methods

Definition at line 114 of file L1TGT.h.

const int L1TGT::MaxLsNrDiffTcsFdlEvm = 24
staticprivate

Definition at line 166 of file L1TGT.h.

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

const int L1TGT::MaxOrbitNrDiffTcsFdlEvm = 24
staticprivate

Definition at line 165 of file L1TGT.h.

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

MonitorElement* L1TGT::orbit_lumi
private

Definition at line 136 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

boost::uint64_t L1TGT::preGps_
private

Definition at line 188 of file L1TGT.h.

Referenced by analyze().

boost::uint64_t L1TGT::preOrb_
private

Definition at line 189 of file L1TGT.h.

Referenced by analyze().

MonitorElement* L1TGT::setupversion_lumi
private

Definition at line 137 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 192 of file L1TGT.h.

Referenced by analyze().

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

Definition at line 194 of file L1TGT.h.

Referenced by analyze().

MonitorElement* L1TGT::trigger_lumi
private

Definition at line 134 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::trigger_number
private

Definition at line 133 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::tt_bits
private

Definition at line 124 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::tt_bits_corr
private

Definition at line 125 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TGT::tt_bits_lumi
private

Definition at line 128 of file L1TGT.h.

Referenced by analyze(), and bookHistograms().

bool L1TGT::verbose_
private

verbosity switch

Definition at line 118 of file L1TGT.h.

Referenced by analyze(), and countPfsIndicesPerLs().