CMS 3D CMS Logo

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

#include <GEMDAQStatusSource.h>

Inheritance diagram for GEMDAQStatusSource:
GEMDQMBase DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 GEMDAQStatusSource (const edm::ParameterSet &cfg)
 
 ~GEMDAQStatusSource () override
 
- Public Member Functions inherited from GEMDQMBase
 GEMDQMBase (const edm::ParameterSet &cfg)
 
int readGeometryPhiInfoChamber (const GEMStation *station, MEStationInfo &stationInfo)
 
int readGeometryRadiusInfoChamber (const GEMStation *station, MEStationInfo &stationInfo)
 
 ~GEMDQMBase () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &eSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void FillStatusSummaryPlot (std::map< ME5IdsKey, bool > &mapChamber, MonitorElement *h2Plot, std::map< ME5IdsKey, bool > *pmapSummary=nullptr)
 
void FillWithRiseErr (MonitorElement *h, Int_t nX, Int_t nY, Bool_t &bErr)
 
void LoadROMap (edm::EventSetup const &iSetup)
 
- Protected Member Functions inherited from GEMDQMBase
template<typename T >
bool checkRefs (const std::vector< T *> &)
 
dqm::impl::MonitorElementCreateSummaryHist (DQMStore::IBooker &ibooker, TString strName)
 
int GenerateMEPerChamber (DQMStore::IBooker &ibooker)
 
int getDetOccXBin (const int, const int, const int)
 
int getIdxModule (const int, const int)
 
int getIEtaFromVFAT (const int station, const int vfat)
 
int getIEtaFromVFATGE0 (const int vfat)
 
int getIEtaFromVFATGE11 (const int vfat)
 
int getIEtaFromVFATGE21 (const int vfat)
 
int getMaxVFAT (const int)
 
std::string getNameDirLayer (ME3IdsKey key3)
 
std::string getNameDirLayer (ME4IdsKey key4)
 
int getNumEtaPartitions (const GEMStation *)
 
int getNumModule (const int)
 
int getVFATNumber (const int, const int, const int)
 
int getVFATNumberByDigi (const int, const int, const int)
 
int getVFATNumberGE11 (const int, const int, const int)
 
int initGeometry (edm::EventSetup const &iSetup)
 
ME2IdsKey key3Tokey2 (ME3IdsKey key)
 
ME3IdsKey key4Tokey3 (ME4IdsKey key)
 
ME4IdsKey key5Tokey4 (ME5IdsKey key)
 
int keyToChamber (ME4IdsKey key)
 
int keyToChamber (ME5IdsKey key)
 
int keyToIEta (ME4IdsKey key)
 
int keyToIEta (ME5IdsKey key)
 
int keyToLayer (ME3IdsKey key)
 
int keyToLayer (ME4IdsKey key)
 
int keyToLayer (ME5IdsKey key)
 
int keyToModule (ME4IdsKey key)
 
int keyToModule (ME5IdsKey key)
 
int keyToRegion (ME2IdsKey key)
 
int keyToRegion (ME3IdsKey key)
 
int keyToRegion (ME4IdsKey key)
 
int keyToRegion (ME5IdsKey key)
 
int keyToStation (ME2IdsKey key)
 
int keyToStation (ME3IdsKey key)
 
int keyToStation (ME4IdsKey key)
 
int keyToStation (ME5IdsKey key)
 
int loadChambers ()
 
virtual int ProcessWithMEMap2 (BookingHelper &bh, ME2IdsKey key)
 
virtual int ProcessWithMEMap2AbsReWithEta (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap2WithEta (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap3 (BookingHelper &bh, ME3IdsKey key)
 
virtual int ProcessWithMEMap4WithChamber (BookingHelper &bh, ME4IdsKey key)
 
virtual int ProcessWithMEMap5 (BookingHelper &bh, ME5IdsKey key)
 
Float_t restrictAngle (const Float_t fTheta, const Float_t fStart)
 
int SortingLayers (std::vector< ME4IdsKey > &listLayers)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

int ProcessWithMEMap4 (BookingHelper &bh, ME4IdsKey key) override
 
int ProcessWithMEMap5WithChamber (BookingHelper &bh, ME5IdsKey key) override
 
void SetLabelAMC13Status (MonitorElement *h2Status)
 
void SetLabelAMCStatus (MonitorElement *h2Status)
 
void SetLabelOHStatus (MonitorElement *h2Status)
 
void SetLabelVFATStatus (MonitorElement *h2Status)
 

Private Attributes

Bool_t bFillAMC_
 
Bool_t bWarnedNotFound_
 
const edm::ESGetToken< GEMChMap, GEMChMapRcdgemChMapToken_
 
MonitorElementh2AMC13Status_
 
MonitorElementh2SummaryStatusAll
 
MonitorElementh2SummaryStatusAMC13Error
 
MonitorElementh2SummaryStatusAMCError
 
MonitorElementh2SummaryStatusAMCWarning
 
MonitorElementh2SummaryStatusError
 
MonitorElementh2SummaryStatusOHError
 
MonitorElementh2SummaryStatusOHWarning
 
MonitorElementh2SummaryStatusVFATError
 
MonitorElementh2SummaryStatusVFATWarning
 
MonitorElementh2SummaryStatusWarning
 
std::map< int, std::vector< GEMDetId > > mapAMC13ToListChamber_
 
std::map< std::tuple< int, int >, std::vector< GEMDetId > > mapAMCToListChamber_
 
std::map< UInt_t, MonitorElement * > mapFEDIdToAMCStatus_
 
std::map< UInt_t, int > mapFEDIdToPosition_
 
std::map< UInt_t, int > mapFEDIdToRe_
 
std::map< UInt_t, int > mapFEDIdToSt_
 
MEMap4Inf mapStatusErrVFATPerLayer_
 
MEMap4Inf mapStatusOH_
 
MEMap4Inf mapStatusVFAT_
 
MEMap5Inf mapStatusVFATPerCh_
 
MEMap4Inf mapStatusWarnVFATPerLayer_
 
Int_t nAMCSlots_
 
int nBitAMC13_ = 10
 
int nBitAMC_ = 12
 
int nBitOH_ = 18
 
int nBitVFAT_ = 8
 
Int_t nBXMax_
 
Int_t nBXMin_
 
std::string strFolderMain_
 
edm::EDGetToken tagAMC13_
 
edm::EDGetToken tagAMC_
 
edm::EDGetToken tagOH_
 
edm::EDGetToken tagVFAT_
 
Bool_t useDBEMap_
 

Additional Inherited Members

- Public Types inherited from GEMDQMBase
enum  {
  GEMDQM_RUNTYPE_ONLINE, GEMDQM_RUNTYPE_OFFLINE, GEMDQM_RUNTYPE_RELVAL, GEMDQM_RUNTYPE_ALLPLOTS,
  GEMDQM_RUNTYPE_NONE = -1
}
 
typedef MEMapInfT< MEMap2Ids, ME2IdsKeyMEMap2Inf
 
typedef MEMapInfT< MEMap3Ids, ME3IdsKeyMEMap3Inf
 
typedef MEMapInfT< MEMap4Ids, ME4IdsKeyMEMap4Inf
 
typedef MEMapInfT< MEMap5Ids, ME5IdsKeyMEMap5Inf
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Public Attributes inherited from GEMDQMBase
std::string log_category_
 
Int_t nRunType_
 
- Protected Attributes inherited from GEMDQMBase
const GEMGeometryGEMGeometry_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomToken_
 
std::vector< GEMDetIdlistChamberId_
 
std::map< GEMDetId, std::vector< const GEMEtaPartition * > > mapEtaPartition_
 
std::map< ME3IdsKey, MEStationInfomapStationInfo_
 
std::map< ME4IdsKey, int > mapStationToIdx_
 
std::map< ME3IdsKey, bool > MEMap2AbsReWithEtaCheck_
 
std::map< ME2IdsKey, bool > MEMap2Check_
 
std::map< ME3IdsKey, bool > MEMap2WithEtaCheck_
 
std::map< ME3IdsKey, bool > MEMap3Check_
 
std::map< ME4IdsKey, bool > MEMap4Check_
 
std::map< ME4IdsKey, bool > MEMap4WithChCheck_
 
std::map< ME5IdsKey, bool > MEMap5Check_
 
std::map< ME5IdsKey, bool > MEMap5WithChCheck_
 
int nMaxNumCh_
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 33 of file GEMDAQStatusSource.h.

Constructor & Destructor Documentation

◆ GEMDAQStatusSource()

GEMDAQStatusSource::GEMDAQStatusSource ( const edm::ParameterSet cfg)
explicit

Definition at line 6 of file GEMDAQStatusSource.cc.

References edm::BeginRun, bWarnedNotFound_, looper::cfg, nAMCSlots_, tagAMC13_, tagAMC_, tagOH_, tagVFAT_, and useDBEMap_.

7  : GEMDQMBase(cfg), gemChMapToken_(esConsumes<GEMChMap, GEMChMapRcd, edm::Transition::BeginRun>()) {
8  tagVFAT_ = consumes<GEMVFATStatusCollection>(cfg.getParameter<edm::InputTag>("VFATInputLabel"));
9  tagOH_ = consumes<GEMOHStatusCollection>(cfg.getParameter<edm::InputTag>("OHInputLabel"));
10  tagAMC_ = consumes<GEMAMCStatusCollection>(cfg.getParameter<edm::InputTag>("AMCInputLabel"));
11  tagAMC13_ = consumes<GEMAMC13StatusCollection>(cfg.getParameter<edm::InputTag>("AMC13InputLabel"));
12  useDBEMap_ = cfg.getParameter<bool>("useDBEMap");
13 
14  nAMCSlots_ = cfg.getParameter<Int_t>("AMCSlots");
15 
16  bWarnedNotFound_ = false;
17 }
edm::EDGetToken tagAMC13_
edm::EDGetToken tagVFAT_
const edm::ESGetToken< GEMChMap, GEMChMapRcd > gemChMapToken_
edm::EDGetToken tagOH_
GEMDQMBase(const edm::ParameterSet &cfg)
Definition: GEMDQMBase.cc:7
edm::EDGetToken tagAMC_

◆ ~GEMDAQStatusSource()

GEMDAQStatusSource::~GEMDAQStatusSource ( )
inlineoverride

Definition at line 36 of file GEMDAQStatusSource.h.

36 {};

Member Function Documentation

◆ analyze()

void GEMDAQStatusSource::analyze ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 304 of file GEMDAQStatusSource.cc.

References MuonDigiCollection< IndexType, DigiType >::begin(), bFillAMC_, bWarnedNotFound_, GEMDetId::chamber(), MuonDigiCollection< IndexType, DigiType >::end(), l1tstage2_dqm_sourceclient-live_cfg::fedId, dqm::impl::MonitorElement::Fill(), GEMDQMBase::MEMapInfT< M, K >::Fill(), FillStatusSummaryPlot(), FillWithRiseErr(), GEMDQMBase::GEMDQM_RUNTYPE_ALLPLOTS, GEMDQMBase::GEMDQM_RUNTYPE_ONLINE, GEMDQMBase::GEMDQM_RUNTYPE_RELVAL, GEMDQMBase::getIdxModule(), h2AMC13Status_, h2SummaryStatusAll, h2SummaryStatusAMC13Error, h2SummaryStatusAMCError, h2SummaryStatusAMCWarning, h2SummaryStatusError, h2SummaryStatusOHError, h2SummaryStatusOHWarning, h2SummaryStatusVFATError, h2SummaryStatusVFATWarning, h2SummaryStatusWarning, mps_fire::i, edm::HandleBase::isValid(), GEMDetId::layer(), GEMDQMBase::log_category_, mapAMC13ToListChamber_, mapAMCToListChamber_, mapFEDIdToAMCStatus_, mapFEDIdToPosition_, GEMDQMBase::mapStationInfo_, mapStatusErrVFATPerLayer_, mapStatusOH_, mapStatusVFATPerCh_, mapStatusWarnVFATPerLayer_, nano_mu_digi_cff::missingVFATs, run3scouting_cff::nCh, GEMDQMBase::MEStationInfo::nMaxVFAT_, GEMDQMBase::MEStationInfo::nNumModules_, GEMDQMBase::nRunType_, FastTimerService_cff::range, GEMDetId::region(), GEMDetId::station(), tagAMC13_, tagAMC_, tagOH_, tagVFAT_, nano_mu_digi_cff::vfatMask, and GCP_Ntuples_cfg::warnings.

304  {
309 
310  event.getByToken(tagVFAT_, gemVFAT);
311  event.getByToken(tagOH_, gemOH);
312  event.getByToken(tagAMC_, gemAMC);
313  event.getByToken(tagAMC13_, gemAMC13);
314 
315  if (!(gemVFAT.isValid() && gemOH.isValid() && gemAMC.isValid() && gemAMC13.isValid())) {
316  if (!bWarnedNotFound_) {
317  edm::LogWarning(log_category_) << "DAQ sources from muonGEMDigis are not found";
318  bWarnedNotFound_ = true;
319  }
320  return;
321  }
322 
323  std::map<ME5IdsKey, bool> mapChamberAll;
324  std::map<ME5IdsKey, bool> mapChamberWarning;
325  std::map<ME5IdsKey, bool> mapChamberError;
326  std::map<ME5IdsKey, bool> mapChamberVFATWarning;
327  std::map<ME5IdsKey, bool> mapChamberVFATError;
328  std::map<ME5IdsKey, bool> mapChamberOHWarning;
329  std::map<ME5IdsKey, bool> mapChamberOHError;
330  std::map<ME5IdsKey, bool> mapChamberAMCWarning;
331  std::map<ME5IdsKey, bool> mapChamberAMCError;
332  std::map<ME5IdsKey, bool> mapChamberAMC13Error;
333 
334  for (auto amc13It = gemAMC13->begin(); amc13It != gemAMC13->end(); ++amc13It) {
335  int fedId = (*amc13It).first;
336  if (mapFEDIdToPosition_.find(fedId) == mapFEDIdToPosition_.end()) {
337  continue;
338  }
339  int nXBin = mapFEDIdToPosition_[fedId];
340 
341  const auto &range = (*amc13It).second;
342  for (auto amc13 = range.first; amc13 != range.second; ++amc13) {
343  Bool_t bWarn = false;
344  Bool_t bErr = false;
345 
348 
349  if (bFillAMC_) {
351  if (warnings.InValidAMC)
352  FillWithRiseErr(h2AMC13Status_, nXBin, 2, bWarn);
353  }
354 
356  if (errors.InValidSize)
357  FillWithRiseErr(h2AMC13Status_, nXBin, 3, bErr);
358  if (errors.failTrailerCheck)
359  FillWithRiseErr(h2AMC13Status_, nXBin, 4, bErr);
360  if (errors.failFragmentLength)
361  FillWithRiseErr(h2AMC13Status_, nXBin, 5, bErr);
362  if (errors.failTrailerMatch)
363  FillWithRiseErr(h2AMC13Status_, nXBin, 6, bErr);
364  if (errors.moreTrailers)
365  FillWithRiseErr(h2AMC13Status_, nXBin, 7, bErr);
366  if (errors.crcModified)
367  FillWithRiseErr(h2AMC13Status_, nXBin, 8, bErr);
368  if (errors.slinkError)
369  FillWithRiseErr(h2AMC13Status_, nXBin, 9, bErr);
370  if (errors.wrongFedId)
371  FillWithRiseErr(h2AMC13Status_, nXBin, 10, bErr);
372  }
373  }
374 
375  if (!bWarn && !bErr) {
377  h2AMC13Status_->Fill(nXBin, 1);
378  }
379  } else {
380  auto &listChamber = mapAMC13ToListChamber_[fedId];
381  for (auto gid : listChamber) {
382  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
383  MEStationInfo &stationInfo = mapStationInfo_[key3];
384  for (int nIdxModule = 1; nIdxModule <= stationInfo.nNumModules_; nIdxModule++) {
385  ME5IdsKey key5Ch{gid.region(), gid.station(), gid.layer(), nIdxModule, gid.chamber()};
386  if (bErr)
387  mapChamberAMC13Error[key5Ch] = false;
388  }
389  }
390  }
391  }
392  }
393 
394  MonitorElement *h2AMCStatus = nullptr;
395 
396  for (auto amcIt = gemAMC->begin(); amcIt != gemAMC->end(); ++amcIt) {
397  int fedId = (*amcIt).first;
398  if (mapFEDIdToAMCStatus_.find(fedId) == mapFEDIdToAMCStatus_.end()) {
399  continue;
400  }
401  h2AMCStatus = mapFEDIdToAMCStatus_[fedId];
402 
403  const GEMAMCStatusCollection::Range &range = (*amcIt).second;
404  for (auto amc = range.first; amc != range.second; ++amc) {
405  Bool_t bWarn = false;
406  Bool_t bErr = false;
407 
408  Int_t nAMCNum = amc->amcNumber();
409 
410  GEMAMCStatus::Warnings warnings{amc->warnings()};
411  GEMAMCStatus::Errors errors{amc->errors()};
412 
413  if (bFillAMC_) {
415  if (warnings.InValidOH)
416  FillWithRiseErr(h2AMCStatus, nAMCNum, 2, bWarn);
417  if (warnings.backPressure)
418  FillWithRiseErr(h2AMCStatus, nAMCNum, 3, bWarn);
419  }
420 
422  if (errors.badEC)
423  FillWithRiseErr(h2AMCStatus, nAMCNum, 4, bErr);
424  if (errors.badBC)
425  FillWithRiseErr(h2AMCStatus, nAMCNum, 5, bErr);
426  if (errors.badOC)
427  FillWithRiseErr(h2AMCStatus, nAMCNum, 6, bErr);
428  if (errors.badRunType)
429  FillWithRiseErr(h2AMCStatus, nAMCNum, 7, bErr);
430  if (errors.badCRC)
431  FillWithRiseErr(h2AMCStatus, nAMCNum, 8, bErr);
432  if (errors.MMCMlocked)
433  FillWithRiseErr(h2AMCStatus, nAMCNum, 9, bErr);
434  if (errors.DAQclocklocked)
435  FillWithRiseErr(h2AMCStatus, nAMCNum, 10, bErr);
436  if (errors.DAQnotReday)
437  FillWithRiseErr(h2AMCStatus, nAMCNum, 11, bErr);
438  if (errors.BC0locked)
439  FillWithRiseErr(h2AMCStatus, nAMCNum, 12, bErr);
440  }
441  }
442 
443  if (!bWarn && !bErr) {
445  h2AMCStatus->Fill(nAMCNum, 1);
446  }
447  } else {
448  auto &listChamber = mapAMCToListChamber_[{fedId, nAMCNum}];
449  for (auto gid : listChamber) {
450  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
451  MEStationInfo &stationInfo = mapStationInfo_[key3];
452  for (int nIdxModule = 1; nIdxModule <= stationInfo.nNumModules_; nIdxModule++) {
453  ME5IdsKey key5Ch{gid.region(), gid.station(), gid.layer(), nIdxModule, gid.chamber()};
454  if (bErr)
455  mapChamberAMCError[key5Ch] = false;
456  if (bWarn)
457  mapChamberAMCWarning[key5Ch] = false;
458  }
459  }
460  }
461  }
462  }
463 
464  std::map<ME5IdsKey, uint32_t> map_missingVFATs;
465  std::map<ME5IdsKey, uint32_t> map_vfatMask;
466 
467  for (auto ohIt = gemOH->begin(); ohIt != gemOH->end(); ++ohIt) {
468  GEMDetId gid = (*ohIt).first;
469  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
470  MEStationInfo &stationInfo = mapStationInfo_[key3];
471 
472  Int_t nNumVFATPerModule = stationInfo.nMaxVFAT_ / stationInfo.nNumModules_;
473 
474  const GEMOHStatusCollection::Range &range = (*ohIt).second;
475  for (auto OHStatus = range.first; OHStatus != range.second; ++OHStatus) {
476  Int_t nIdxModule = getIdxModule(gid.station(), OHStatus->chamberType());
477  Int_t nCh = gid.chamber();
478  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), nIdxModule};
479  ME5IdsKey key5Mod{
480  gid.region(), gid.station(), gid.layer(), nIdxModule, nCh}; // WARNING: Chamber+Module, not iEta
481 
482  auto vfatMask = OHStatus->vfatMask();
483  map_missingVFATs[key5Mod] = OHStatus->missingVFATs();
484  map_vfatMask[key5Mod] = vfatMask;
485 
486  for (Int_t i = 0; i < nNumVFATPerModule; i++) {
487  if ((vfatMask & (1 << i)) == 0) {
488  // -16: A sufficient large number to avoid any effect from a buggy filling
489  mapStatusErrVFATPerLayer_.Fill(key4, nCh, i, -16);
490  }
491  }
492 
493  GEMOHStatus::Warnings warnings{OHStatus->warnings()};
494  if (warnings.EvtNF)
495  mapStatusOH_.Fill(key4, nCh, 2);
496  if (warnings.InNF)
497  mapStatusOH_.Fill(key4, nCh, 3);
498  if (warnings.L1aNF)
499  mapStatusOH_.Fill(key4, nCh, 4);
500  if (warnings.EvtSzW)
501  mapStatusOH_.Fill(key4, nCh, 5);
502  if (warnings.InValidVFAT)
503  mapStatusOH_.Fill(key4, nCh, 6);
504  if (warnings.missingVFAT)
505  mapStatusOH_.Fill(key4, nCh, 7);
506 
507  GEMOHStatus::Errors errors{OHStatus->errors()};
508  if (errors.EvtF)
509  mapStatusOH_.Fill(key4, nCh, 8);
510  if (errors.InF)
511  mapStatusOH_.Fill(key4, nCh, 9);
512  if (errors.L1aF)
513  mapStatusOH_.Fill(key4, nCh, 10);
514  if (errors.EvtSzOFW)
515  mapStatusOH_.Fill(key4, nCh, 11);
516  if (errors.Inv)
517  mapStatusOH_.Fill(key4, nCh, 12);
518  if (errors.OOScAvV)
519  mapStatusOH_.Fill(key4, nCh, 13);
520  if (errors.OOScVvV)
521  mapStatusOH_.Fill(key4, nCh, 14);
522  if (errors.BxmAvV)
523  mapStatusOH_.Fill(key4, nCh, 15);
524  if (errors.BxmVvV)
525  mapStatusOH_.Fill(key4, nCh, 16);
526  if (errors.InUfw)
527  mapStatusOH_.Fill(key4, nCh, 17);
528  if (errors.badVFatCount)
529  mapStatusOH_.Fill(key4, nCh, 18);
530 
531  Bool_t bWarn = warnings.wcodes != 0;
532  Bool_t bErr = errors.codes != 0;
533  if (!bWarn && !bErr)
534  mapStatusOH_.Fill(key4, nCh, 1);
535  if (bWarn)
536  mapChamberOHWarning[key5Mod] = false;
537  if (bErr)
538  mapChamberOHError[key5Mod] = false;
539  mapChamberAll[key5Mod] = true;
540  }
541  }
542 
543  for (auto vfatIt = gemVFAT->begin(); vfatIt != gemVFAT->end(); ++vfatIt) {
544  GEMDetId gid = (*vfatIt).first;
545  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
546 
547  const GEMVFATStatusCollection::Range &range = (*vfatIt).second;
548 
549  for (auto vfatStat = range.first; vfatStat != range.second; ++vfatStat) {
550  Int_t nIdxModule = getIdxModule(gid.station(), vfatStat->chamberType());
551  Int_t nCh = gid.chamber();
552  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), nIdxModule};
553  ME5IdsKey key5Mod{
554  gid.region(), gid.station(), gid.layer(), nIdxModule, nCh}; // WARNING: Chamber+Module, not iEta
555 
556  Int_t nIdxVFAT = vfatStat->vfatPosition();
557  Int_t nIdxVFATMod = nIdxVFAT;
558 
559  auto missingVFATs = map_missingVFATs[key5Mod] & (1 << nIdxVFAT);
560  auto vfatMask = map_vfatMask[key5Mod] & (1 << nIdxVFAT);
561 
562  if (vfatMask == 0) {
563  continue;
564  }
565 
566  Bool_t bErr_masked = missingVFATs != 0;
567 
568  GEMVFATStatus::Warnings warnings{vfatStat->warnings()};
569  if (warnings.basicOFW)
570  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 2);
571  if (warnings.zeroSupOFW)
572  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 3);
573 
574  GEMVFATStatus::Errors errors{(uint8_t)vfatStat->errors()};
575  if (errors.vc)
576  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 4);
577  if (errors.InValidHeader)
578  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 5);
579  if (errors.EC)
580  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 6);
581  if (errors.BC)
582  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 7);
583  if (bErr_masked)
584  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 8);
585 
586  Bool_t bWarn = warnings.wcodes != 0;
587  Bool_t bErr = errors.codes != 0 || bErr_masked;
588  if (!bWarn && !bErr)
589  mapStatusVFATPerCh_.Fill(key5Mod, nIdxVFATMod, 1);
590  if (bWarn)
591  mapChamberVFATWarning[key5Mod] = false;
592  if (bErr)
593  mapChamberVFATError[key5Mod] = false;
594  if (bWarn)
595  mapStatusWarnVFATPerLayer_.Fill(key4, nCh, nIdxVFAT);
596  if (bErr)
597  mapStatusErrVFATPerLayer_.Fill(key4, nCh, nIdxVFAT);
598  mapChamberAll[key5Mod] = true;
599  }
600  }
601 
603  // Summarizing all presence of status of each chamber
605  // Summarizing all the error and warning occupancy
606  FillStatusSummaryPlot(mapChamberVFATWarning, h2SummaryStatusVFATWarning, &mapChamberWarning);
607  FillStatusSummaryPlot(mapChamberVFATError, h2SummaryStatusVFATError, &mapChamberError);
608  FillStatusSummaryPlot(mapChamberOHWarning, h2SummaryStatusOHWarning, &mapChamberWarning);
609  FillStatusSummaryPlot(mapChamberOHError, h2SummaryStatusOHError, &mapChamberError);
610  FillStatusSummaryPlot(mapChamberAMCWarning, h2SummaryStatusAMCWarning, &mapChamberWarning);
611  FillStatusSummaryPlot(mapChamberAMCError, h2SummaryStatusAMCError, &mapChamberError);
612  FillStatusSummaryPlot(mapChamberAMC13Error, h2SummaryStatusAMC13Error, &mapChamberError);
613 
614  FillStatusSummaryPlot(mapChamberWarning, h2SummaryStatusWarning);
616  }
617 }
void FillStatusSummaryPlot(std::map< ME5IdsKey, bool > &mapChamber, MonitorElement *h2Plot, std::map< ME5IdsKey, bool > *pmapSummary=nullptr)
constexpr int station() const
Definition: GEMDetId.h:179
constexpr int region() const
Definition: GEMDetId.h:171
Int_t nRunType_
Definition: GEMDQMBase.h:545
int getIdxModule(const int, const int)
Definition: GEMDQMBase.h:671
std::tuple< Int_t, Int_t, Int_t, Int_t, Int_t > ME5IdsKey
void FillWithRiseErr(MonitorElement *h, Int_t nX, Int_t nY, Bool_t &bErr)
edm::EDGetToken tagAMC13_
MonitorElement * h2SummaryStatusAMCWarning
MonitorElement * h2AMC13Status_
MonitorElement * h2SummaryStatusAMCError
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:634
std::map< std::tuple< int, int >, std::vector< GEMDetId > > mapAMCToListChamber_
constexpr int layer() const
Definition: GEMDetId.h:190
int Fill(K key, Double_t x)
Definition: GEMDQMBase.h:395
std::string log_category_
Definition: GEMDQMBase.h:547
constexpr int chamber() const
Definition: GEMDetId.h:183
MEMap4Inf mapStatusErrVFATPerLayer_
edm::EDGetToken tagVFAT_
MonitorElement * h2SummaryStatusVFATError
void Fill(long long x)
std::map< UInt_t, MonitorElement * > mapFEDIdToAMCStatus_
edm::EDGetToken tagOH_
MonitorElement * h2SummaryStatusError
std::map< UInt_t, int > mapFEDIdToPosition_
DigiRangeIterator begin() const
std::map< int, std::vector< GEMDetId > > mapAMC13ToListChamber_
MonitorElement * h2SummaryStatusVFATWarning
MonitorElement * h2SummaryStatusAll
std::pair< const_iterator, const_iterator > Range
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * h2SummaryStatusOHWarning
MonitorElement * h2SummaryStatusAMC13Error
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
Definition: errors.py:1
MEMap4Inf mapStatusWarnVFATPerLayer_
MonitorElement * h2SummaryStatusWarning
Log< level::Warning, false > LogWarning
Definition: AMCSpec.h:8
MonitorElement * h2SummaryStatusOHError
DigiRangeIterator end() const
edm::EDGetToken tagAMC_

◆ bookHistograms()

void GEMDAQStatusSource::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 162 of file GEMDAQStatusSource.cc.

References bFillAMC_, dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), GEMDQMBase::CreateSummaryHist(), l1tstage2_dqm_sourceclient-live_cfg::fedId, GEMDQMBase::GEMDQM_RUNTYPE_ALLPLOTS, GEMDQMBase::GEMDQM_RUNTYPE_OFFLINE, GEMDQMBase::GEMDQM_RUNTYPE_ONLINE, GEMDQMBase::GEMDQM_RUNTYPE_RELVAL, GEMDQMBase::GEMGeometry_, GEMDQMBase::GenerateMEPerChamber(), h2AMC13Status_, h2SummaryStatusAll, h2SummaryStatusAMC13Error, h2SummaryStatusAMCError, h2SummaryStatusAMCWarning, h2SummaryStatusError, h2SummaryStatusOHError, h2SummaryStatusOHWarning, h2SummaryStatusVFATError, h2SummaryStatusVFATWarning, h2SummaryStatusWarning, GEMDQMBase::initGeometry(), GEMDQMBase::loadChambers(), LoadROMap(), mapAMC13ToListChamber_, mapAMCToListChamber_, mapFEDIdToAMCStatus_, mapFEDIdToPosition_, mapFEDIdToRe_, mapFEDIdToSt_, mapStatusErrVFATPerLayer_, mapStatusOH_, mapStatusVFATPerCh_, mapStatusWarnVFATPerLayer_, nAMCSlots_, nBitAMC13_, nBitAMC_, nBitOH_, nBitVFAT_, nBXMax_, nBXMin_, GEMDQMBase::nRunType_, dqm::implementation::NavigatorBase::setCurrentFolder(), SetLabelAMC13Status(), SetLabelAMCStatus(), dqm::impl::MonitorElement::setTitle(), strFolderMain_, and GEMDQMBase::MEMapInfT< M, K >::TurnOff().

162  {
163  LoadROMap(iSetup);
164  if (mapAMC13ToListChamber_.empty() || mapAMCToListChamber_.empty())
165  return;
166  initGeometry(iSetup);
167  if (GEMGeometry_ == nullptr)
168  return;
169  loadChambers();
170 
171  strFolderMain_ = "GEM/DAQStatus";
172 
173  nBXMin_ = -10;
174  nBXMax_ = 10;
175 
176  ibooker.cd();
178 
179  h2AMC13Status_ = nullptr;
180 
181  bFillAMC_ = false;
182 
183  //if (nRunType_ != GEMDQM_RUNTYPE_RELVAL)
185  Int_t nNumAMC13 = (Int_t)mapFEDIdToRe_.size();
186  h2AMC13Status_ = ibooker.book2D(
187  "amc13_status", "AMC13 Status;AMC13;", nNumAMC13, 0.5, nNumAMC13 + 0.5, nBitAMC13_, 0.5, nBitAMC13_ + 0.5);
189 
190  for (auto &[fedId, nIdx] : mapFEDIdToPosition_) {
191  auto st = mapFEDIdToSt_[fedId];
192  auto re = (mapFEDIdToRe_[fedId] > 0 ? 'P' : 'M');
193  auto strName = Form("amc_status_GE%i1-%c", st, re);
194  auto strTitle = Form("AMC Status GE%i1-%c;AMC slot;", st, re);
196  ibooker.book2D(strName, strTitle, nAMCSlots_, -0.5, nAMCSlots_ - 0.5, nBitAMC_, 0.5, nBitAMC_ + 0.5);
198  }
199 
200  bFillAMC_ = true;
201  }
202 
203  mapStatusOH_ =
204  MEMap4Inf(this, "oh_status", "OptoHybrid Status", 36, 0.5, 36.5, nBitOH_, 0.5, nBitOH_ + 0.5, "Chamber");
205 
207  this, "vfat_statusWarnSum", "VFAT reporting warnings", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
209  this, "vfat_statusErrSum", "VFAT reporting errors", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
211  MEMap5Inf(this, "vfat_status", "VFAT Status", 24, -0.5, 24 - 0.5, nBitVFAT_, 0.5, nBitVFAT_ + 0.5, "VFAT");
212 
218  }
219 
220  GenerateMEPerChamber(ibooker);
221 
223  h2SummaryStatusAll = CreateSummaryHist(ibooker, "chamberAllStatus");
224  h2SummaryStatusWarning = CreateSummaryHist(ibooker, "chamberWarnings");
225  h2SummaryStatusError = CreateSummaryHist(ibooker, "chamberErrors");
226  }
227 
229  h2SummaryStatusVFATWarning = CreateSummaryHist(ibooker, "chamberVFATWarnings");
230  h2SummaryStatusVFATError = CreateSummaryHist(ibooker, "chamberVFATErrors");
231  h2SummaryStatusOHWarning = CreateSummaryHist(ibooker, "chamberOHWarnings");
232  h2SummaryStatusOHError = CreateSummaryHist(ibooker, "chamberOHErrors");
233  h2SummaryStatusAMCWarning = CreateSummaryHist(ibooker, "chamberAMCWarnings");
234  h2SummaryStatusAMCError = CreateSummaryHist(ibooker, "chamberAMCErrors");
235  h2SummaryStatusAMC13Error = CreateSummaryHist(ibooker, "chamberAMC13Errors");
236 
237  h2SummaryStatusAll->setTitle("Summary of all number of OH or VFAT status of each chambers");
238  h2SummaryStatusWarning->setTitle("Summary of all warnings of each chambers");
239  h2SummaryStatusError->setTitle("Summary of all errors of each chambers");
240  h2SummaryStatusVFATWarning->setTitle("Summary of VFAT warnings of each chambers");
241  h2SummaryStatusVFATError->setTitle("Summary of VFAT errors of each chambers");
242  h2SummaryStatusOHWarning->setTitle("Summary of OH warnings of each chambers");
243  h2SummaryStatusOHError->setTitle("Summary of OH errors of each chambers");
244  h2SummaryStatusAMCWarning->setTitle("Summary of AMC warnings of each chambers");
245  h2SummaryStatusAMCError->setTitle("Summary of AMC errors of each chambers");
246  h2SummaryStatusAMC13Error->setTitle("Summary of AMC13 errors of each chambers");
247  }
248 }
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
Definition: GEMDQMBase.h:475
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
Definition: GEMDQMBase.cc:150
Int_t nRunType_
Definition: GEMDQMBase.h:545
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * h2SummaryStatusAMCWarning
MonitorElement * h2AMC13Status_
MonitorElement * h2SummaryStatusAMCError
int initGeometry(edm::EventSetup const &iSetup)
Definition: GEMDQMBase.cc:27
std::map< UInt_t, int > mapFEDIdToRe_
std::map< UInt_t, int > mapFEDIdToSt_
std::map< std::tuple< int, int >, std::vector< GEMDetId > > mapAMCToListChamber_
int loadChambers()
Definition: GEMDQMBase.cc:56
MEMap4Inf mapStatusErrVFATPerLayer_
MonitorElement * h2SummaryStatusVFATError
std::map< UInt_t, MonitorElement * > mapFEDIdToAMCStatus_
MonitorElement * h2SummaryStatusError
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)
Definition: GEMDQMBase.cc:195
void SetLabelAMCStatus(MonitorElement *h2Status)
void LoadROMap(edm::EventSetup const &iSetup)
std::map< UInt_t, int > mapFEDIdToPosition_
void SetLabelAMC13Status(MonitorElement *h2Status)
std::map< int, std::vector< GEMDetId > > mapAMC13ToListChamber_
MonitorElement * h2SummaryStatusVFATWarning
MonitorElement * h2SummaryStatusAll
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:618
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:212
MonitorElement * h2SummaryStatusOHWarning
MonitorElement * h2SummaryStatusAMC13Error
MEMapInfT< MEMap5Ids, ME5IdsKey > MEMap5Inf
Definition: GEMDQMBase.h:476
MEMap4Inf mapStatusWarnVFATPerLayer_
MonitorElement * h2SummaryStatusWarning
MonitorElement * h2SummaryStatusOHError

◆ dqmBeginRun()

void GEMDAQStatusSource::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineoverrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 42 of file GEMDAQStatusSource.h.

42 {};

◆ fillDescriptions()

void GEMDAQStatusSource::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 19 of file GEMDAQStatusSource.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

19  {
21  desc.add<edm::InputTag>("VFATInputLabel", edm::InputTag("muonGEMDigis", "VFATStatus"));
22  desc.add<edm::InputTag>("OHInputLabel", edm::InputTag("muonGEMDigis", "OHStatus"));
23  desc.add<edm::InputTag>("AMCInputLabel", edm::InputTag("muonGEMDigis", "AMCStatus"));
24  desc.add<edm::InputTag>("AMC13InputLabel", edm::InputTag("muonGEMDigis", "AMC13Status"));
25 
26  desc.add<Int_t>("AMCSlots", 13);
27  desc.addUntracked<std::string>("runType", "relval");
28  desc.addUntracked<std::string>("logCategory", "GEMDAQStatusSource");
29  desc.add<bool>("useDBEMap", true);
30 
31  descriptions.add("GEMDAQStatusSource", desc);
32 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ FillStatusSummaryPlot()

void GEMDAQStatusSource::FillStatusSummaryPlot ( std::map< ME5IdsKey, bool > &  mapChamber,
MonitorElement h2Plot,
std::map< ME5IdsKey, bool > *  pmapSummary = nullptr 
)
inlineprotected

Definition at line 51 of file GEMDAQStatusSource.h.

References dqm::impl::MonitorElement::Fill(), GEMDQMBase::key5Tokey4(), GEMDQMBase::keyToChamber(), and GEMDQMBase::mapStationToIdx_.

Referenced by analyze().

53  {
54  for (auto const &[key5, bFlag] : mapChamber) { // bFlag is not used
55  ME4IdsKey key4 = key5Tokey4(key5);
56  Int_t nChamber = keyToChamber(key5);
57  h2Plot->Fill(nChamber, mapStationToIdx_[key4]);
58  if (pmapSummary != nullptr)
59  (*pmapSummary)[key5] = true;
60  }
61  };
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
void Fill(long long x)
std::map< ME4IdsKey, int > mapStationToIdx_
Definition: GEMDQMBase.h:635
int keyToChamber(ME4IdsKey key)
Definition: GEMDQMBase.h:576
ME4IdsKey key5Tokey4(ME5IdsKey key)
Definition: GEMDQMBase.h:591

◆ FillWithRiseErr()

void GEMDAQStatusSource::FillWithRiseErr ( MonitorElement h,
Int_t  nX,
Int_t  nY,
Bool_t &  bErr 
)
inlineprotected

Definition at line 46 of file GEMDAQStatusSource.h.

References h.

Referenced by analyze().

46  {
47  h->Fill(nX, nY);
48  bErr = true;
49  };
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4

◆ LoadROMap()

void GEMDAQStatusSource::LoadROMap ( edm::EventSetup const &  iSetup)
protected

Definition at line 34 of file GEMDAQStatusSource.cc.

References l1tstage2_dqm_sourceclient-live_cfg::fedId, gemChMapToken_, edm::EventSetup::getData(), mapAMC13ToListChamber_, mapAMCToListChamber_, mapFEDIdToPosition_, mapFEDIdToRe_, mapFEDIdToSt_, GEMDetId::region(), GEMDetId::station(), and useDBEMap_.

Referenced by bookHistograms().

34  {
35  if (useDBEMap_) {
36  const auto &chMap = iSetup.getData(gemChMapToken_);
37  auto gemChMap = std::make_unique<GEMChMap>(chMap);
38 
39  std::vector<unsigned int> listFEDId;
40  for (auto const &[ec, dc] : gemChMap->chamberMap()) {
41  unsigned int fedId = ec.fedId;
42  uint8_t amcNum = ec.amcNum;
43  GEMDetId gemChId(dc.detId);
44 
45  if (mapFEDIdToRe_.find(fedId) == mapFEDIdToRe_.end()) {
46  listFEDId.push_back(fedId);
47  }
48  mapFEDIdToRe_[fedId] = gemChId.region();
49  mapFEDIdToSt_[fedId] = gemChId.station();
50  mapAMC13ToListChamber_[fedId].push_back(gemChId);
51  mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId);
52  }
53 
54  Int_t nIdx = 1;
55  for (auto fedId : listFEDId) {
56  mapFEDIdToPosition_[fedId] = nIdx++;
57  }
58 
59  } else {
60  // no EMap in DB, using dummy
61  auto gemChMap = std::make_unique<GEMChMap>();
62  gemChMap->setDummy();
63 
64  for (auto const &[ec, dc] : gemChMap->chamberMap()) {
65  unsigned int fedId = ec.fedId;
66  uint8_t amcNum = ec.amcNum;
67  GEMDetId gemChId(dc.detId);
68 
69  mapFEDIdToRe_[fedId] = gemChId.region();
70  mapAMC13ToListChamber_[fedId].push_back(gemChId);
71  mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId);
72  }
73  }
74 }
std::map< UInt_t, int > mapFEDIdToRe_
std::map< UInt_t, int > mapFEDIdToSt_
std::map< std::tuple< int, int >, std::vector< GEMDetId > > mapAMCToListChamber_
const edm::ESGetToken< GEMChMap, GEMChMapRcd > gemChMapToken_
std::map< UInt_t, int > mapFEDIdToPosition_
std::map< int, std::vector< GEMDetId > > mapAMC13ToListChamber_

◆ ProcessWithMEMap4()

int GEMDAQStatusSource::ProcessWithMEMap4 ( BookingHelper bh,
ME4IdsKey  key 
)
overrideprivatevirtual

Reimplemented from GEMDQMBase.

Definition at line 250 of file GEMDAQStatusSource.cc.

References GEMDQMBase::MEMapInfT< M, K >::bookND(), GEMDQMBase::MEMapInfT< M, K >::FindHist(), GEMDQMBase::MEMapInfT< M, K >::isOperating(), crabWrapper::key, GEMDQMBase::key4Tokey3(), GEMDQMBase::mapStationInfo_, mapStatusErrVFATPerLayer_, mapStatusOH_, mapStatusWarnVFATPerLayer_, GEMDQMBase::MEStationInfo::nMaxIdxChamber_, GEMDQMBase::MEStationInfo::nMaxVFAT_, GEMDQMBase::MEStationInfo::nMinIdxChamber_, GEMDQMBase::MEStationInfo::nNumEtaPartitions_, GEMDQMBase::MEStationInfo::nNumModules_, GEMDQMBase::MEMapInfT< M, K >::SetBinConfX(), GEMDQMBase::MEMapInfT< M, K >::SetBinConfY(), GEMDQMBase::MEMapInfT< M, K >::SetLabelForChambers(), GEMDQMBase::MEMapInfT< M, K >::SetLabelForVFATs(), and SetLabelOHStatus().

250  {
251  ME3IdsKey key3 = key4Tokey3(key);
252  MEStationInfo &stationInfo = mapStationInfo_[key3];
253 
254  Int_t nNewNumCh = stationInfo.nMaxIdxChamber_ - stationInfo.nMinIdxChamber_ + 1;
255  Int_t nNewMinIdxChamber = (stationInfo.nMinIdxChamber_ - 1) + 1;
256  Int_t nNewMaxIdxChamber = stationInfo.nMaxIdxChamber_;
257 
258  mapStatusOH_.SetBinConfX(nNewNumCh, nNewMinIdxChamber - 0.5, nNewMaxIdxChamber + 0.5);
259  mapStatusOH_.bookND(bh, key);
260  mapStatusOH_.SetLabelForChambers(key, 1, -1, nNewMinIdxChamber);
261 
262  if (mapStatusOH_.isOperating()) {
264  }
265 
266  Int_t nNumVFATPerModule = stationInfo.nMaxVFAT_ / stationInfo.nNumModules_;
267 
268  mapStatusWarnVFATPerLayer_.SetBinConfX(nNewNumCh, nNewMinIdxChamber - 0.5, nNewMaxIdxChamber + 0.5);
269  mapStatusWarnVFATPerLayer_.SetBinConfY(nNumVFATPerModule, -0.5);
271  mapStatusWarnVFATPerLayer_.SetLabelForChambers(key, 1, -1, nNewMinIdxChamber);
272  mapStatusWarnVFATPerLayer_.SetLabelForVFATs(key, stationInfo.nNumEtaPartitions_, 2);
273 
274  mapStatusErrVFATPerLayer_.SetBinConfX(nNewNumCh, nNewMinIdxChamber - 0.5, nNewMaxIdxChamber + 0.5);
275  mapStatusErrVFATPerLayer_.SetBinConfY(nNumVFATPerModule, -0.5);
277  mapStatusErrVFATPerLayer_.SetLabelForChambers(key, 1, -1, nNewMinIdxChamber);
278  mapStatusErrVFATPerLayer_.SetLabelForVFATs(key, stationInfo.nNumEtaPartitions_, 2);
279 
280  return 0;
281 }
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1, Int_t nIdxStart=1)
Definition: GEMDQMBase.h:337
int SetLabelForVFATs(K key, Int_t nNumEtaPartitions, Int_t nAxis, Int_t nNumBin=-1)
Definition: GEMDQMBase.h:359
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:634
MEMap4Inf mapStatusErrVFATPerLayer_
void SetLabelOHStatus(MonitorElement *h2Status)
int bookND(BookingHelper &bh, K key)
Definition: GEMDQMBase.h:307
ME3IdsKey key4Tokey3(ME4IdsKey key)
Definition: GEMDQMBase.h:586
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:281
MEMap4Inf mapStatusWarnVFATPerLayer_
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:289
dqm::impl::MonitorElement * FindHist(K key)
Definition: GEMDQMBase.h:328

◆ ProcessWithMEMap5WithChamber()

int GEMDAQStatusSource::ProcessWithMEMap5WithChamber ( BookingHelper bh,
ME5IdsKey  key 
)
overrideprivatevirtual

Reimplemented from GEMDQMBase.

Definition at line 283 of file GEMDAQStatusSource.cc.

References GEMDQMBase::MEMapInfT< M, K >::bookND(), GEMDQMBase::MEMapInfT< M, K >::FindHist(), GEMDQMBase::BookingHelper::getBooker(), GEMDQMBase::getNameDirLayer(), GEMDQMBase::MEMapInfT< M, K >::isOperating(), crabWrapper::key, GEMDQMBase::key4Tokey3(), GEMDQMBase::key5Tokey4(), GEMDQMBase::mapStationInfo_, mapStatusVFATPerCh_, GEMDQMBase::MEStationInfo::nMaxVFAT_, GEMDQMBase::MEStationInfo::nNumEtaPartitions_, GEMDQMBase::MEStationInfo::nNumModules_, GEMDQMBase::MEMapInfT< M, K >::SetBinConfX(), dqm::implementation::NavigatorBase::setCurrentFolder(), GEMDQMBase::MEMapInfT< M, K >::SetLabelForVFATs(), SetLabelVFATStatus(), and strFolderMain_.

283  {
284  ME4IdsKey key4 = key5Tokey4(key);
285  ME3IdsKey key3 = key4Tokey3(key4);
286  MEStationInfo &stationInfo = mapStationInfo_[key3];
287 
288  Int_t nNumVFATPerModule = stationInfo.nMaxVFAT_ / stationInfo.nNumModules_;
289 
290  bh.getBooker()->setCurrentFolder(strFolderMain_ + "/VFATStatus_" + getNameDirLayer(key4));
291 
292  mapStatusVFATPerCh_.SetBinConfX(nNumVFATPerModule, -0.5);
294  mapStatusVFATPerCh_.SetLabelForVFATs(key, stationInfo.nNumEtaPartitions_, 1);
297  }
298 
299  bh.getBooker()->setCurrentFolder(strFolderMain_);
300 
301  return 0;
302 }
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
int SetLabelForVFATs(K key, Int_t nNumEtaPartitions, Int_t nAxis, Int_t nNumBin=-1)
Definition: GEMDQMBase.h:359
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:634
void SetLabelVFATStatus(MonitorElement *h2Status)
std::string getNameDirLayer(ME3IdsKey key3)
Definition: GEMDQMBase.h:729
int bookND(BookingHelper &bh, K key)
Definition: GEMDQMBase.h:307
ME3IdsKey key4Tokey3(ME4IdsKey key)
Definition: GEMDQMBase.h:586
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:281
dqm::impl::MonitorElement * FindHist(K key)
Definition: GEMDQMBase.h:328
ME4IdsKey key5Tokey4(ME5IdsKey key)
Definition: GEMDQMBase.h:591

◆ SetLabelAMC13Status()

void GEMDAQStatusSource::SetLabelAMC13Status ( MonitorElement h2Status)
private

Definition at line 76 of file GEMDAQStatusSource.cc.

References l1tstage2_dqm_sourceclient-live_cfg::fedId, mapFEDIdToPosition_, mapFEDIdToRe_, mapFEDIdToSt_, and dqm::impl::MonitorElement::setBinLabel().

Referenced by bookHistograms().

76  {
77  if (h2Status == nullptr) {
78  return;
79  }
80 
81  unsigned int unBinPos = 1;
82  h2Status->setBinLabel(unBinPos++, "Good", 2);
83  h2Status->setBinLabel(unBinPos++, "Invalid AMC", 2);
84  h2Status->setBinLabel(unBinPos++, "Invalid size", 2);
85  h2Status->setBinLabel(unBinPos++, "Fail trailer check", 2);
86  h2Status->setBinLabel(unBinPos++, "Fail fragment length", 2);
87  h2Status->setBinLabel(unBinPos++, "Fail trailer match", 2);
88  h2Status->setBinLabel(unBinPos++, "More trailer", 2);
89  h2Status->setBinLabel(unBinPos++, "CRC modified", 2);
90  h2Status->setBinLabel(unBinPos++, "S-link error", 2);
91  h2Status->setBinLabel(unBinPos++, "Wrong FED ID", 2);
92 
93  for (auto const &[fedId, nPos] : mapFEDIdToPosition_) {
94  auto st = mapFEDIdToSt_[fedId];
95  auto re = (mapFEDIdToRe_[fedId] > 0 ? 'P' : 'M');
96  h2Status->setBinLabel(nPos, Form("GE%i1-%c", st, re), 1);
97  }
98 }
std::map< UInt_t, int > mapFEDIdToRe_
std::map< UInt_t, int > mapFEDIdToSt_
std::map< UInt_t, int > mapFEDIdToPosition_
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)

◆ SetLabelAMCStatus()

void GEMDAQStatusSource::SetLabelAMCStatus ( MonitorElement h2Status)
private

Definition at line 100 of file GEMDAQStatusSource.cc.

References dqm::impl::MonitorElement::setBinLabel().

Referenced by bookHistograms().

100  {
101  if (h2Status == nullptr) {
102  return;
103  }
104 
105  unsigned int unBinPos = 1;
106  h2Status->setBinLabel(unBinPos++, "Good", 2);
107  h2Status->setBinLabel(unBinPos++, "Invalid OH", 2);
108  h2Status->setBinLabel(unBinPos++, "Back pressure", 2);
109  h2Status->setBinLabel(unBinPos++, "Bad EC", 2);
110  h2Status->setBinLabel(unBinPos++, "Bad BC", 2);
111  h2Status->setBinLabel(unBinPos++, "Bad OC", 2);
112  h2Status->setBinLabel(unBinPos++, "Bad run type", 2);
113  h2Status->setBinLabel(unBinPos++, "Bad CRC", 2);
114  h2Status->setBinLabel(unBinPos++, "MMCM locked", 2);
115  h2Status->setBinLabel(unBinPos++, "DAQ clock locked", 2);
116  h2Status->setBinLabel(unBinPos++, "DAQ not ready", 2);
117  h2Status->setBinLabel(unBinPos++, "BC0 not locked", 2);
118 }
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)

◆ SetLabelOHStatus()

void GEMDAQStatusSource::SetLabelOHStatus ( MonitorElement h2Status)
private

Definition at line 120 of file GEMDAQStatusSource.cc.

References dqm::impl::MonitorElement::setBinLabel().

Referenced by ProcessWithMEMap4().

120  {
121  if (h2Status == nullptr) {
122  return;
123  }
124 
125  unsigned int unBinPos = 1;
126  h2Status->setBinLabel(unBinPos++, "Good", 2);
127  h2Status->setBinLabel(unBinPos++, "Event FIFO near full", 2);
128  h2Status->setBinLabel(unBinPos++, "Input FIFO near full", 2);
129  h2Status->setBinLabel(unBinPos++, "L1A FIFO near full", 2);
130  h2Status->setBinLabel(unBinPos++, "Event size warn", 2);
131  h2Status->setBinLabel(unBinPos++, "Invalid VFAT", 2);
132  h2Status->setBinLabel(unBinPos++, "missing VFATs", 2);
133  h2Status->setBinLabel(unBinPos++, "Event FIFO full", 2);
134  h2Status->setBinLabel(unBinPos++, "Input FIFO full", 2);
135  h2Status->setBinLabel(unBinPos++, "L1A FIFO full", 2);
136  h2Status->setBinLabel(unBinPos++, "Event size overflow", 2);
137  h2Status->setBinLabel(unBinPos++, "Invalid event", 2);
138  h2Status->setBinLabel(unBinPos++, "Out of Sync AMC vs VFAT", 2);
139  h2Status->setBinLabel(unBinPos++, "Out of Sync VFAT vs VFAT", 2);
140  h2Status->setBinLabel(unBinPos++, "BX mismatch AMC vs VFAT", 2);
141  h2Status->setBinLabel(unBinPos++, "BX mismatch VFAT vs VFAT", 2);
142  h2Status->setBinLabel(unBinPos++, "Input FIFO underflow", 2);
143  h2Status->setBinLabel(unBinPos++, "Bad VFAT count", 2);
144 }
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)

◆ SetLabelVFATStatus()

void GEMDAQStatusSource::SetLabelVFATStatus ( MonitorElement h2Status)
private

Definition at line 146 of file GEMDAQStatusSource.cc.

References dqm::impl::MonitorElement::setBinLabel().

Referenced by ProcessWithMEMap5WithChamber().

146  {
147  if (h2Status == nullptr) {
148  return;
149  }
150 
151  unsigned int unBinPos = 1;
152  h2Status->setBinLabel(unBinPos++, "Good", 2);
153  h2Status->setBinLabel(unBinPos++, "Basic overflow", 2);
154  h2Status->setBinLabel(unBinPos++, "Zero-sup overflow", 2);
155  h2Status->setBinLabel(unBinPos++, "VFAT CRC error", 2);
156  h2Status->setBinLabel(unBinPos++, "Invalid header", 2);
157  h2Status->setBinLabel(unBinPos++, "AMC EC mismatch", 2);
158  h2Status->setBinLabel(unBinPos++, "AMC BC mismatch", 2);
159  h2Status->setBinLabel(unBinPos++, "missing VFAT", 2);
160 }
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)

Member Data Documentation

◆ bFillAMC_

Bool_t GEMDAQStatusSource::bFillAMC_
private

Definition at line 103 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ bWarnedNotFound_

Bool_t GEMDAQStatusSource::bWarnedNotFound_
private

Definition at line 79 of file GEMDAQStatusSource.h.

Referenced by analyze(), and GEMDAQStatusSource().

◆ gemChMapToken_

const edm::ESGetToken<GEMChMap, GEMChMapRcd> GEMDAQStatusSource::gemChMapToken_
private

Definition at line 72 of file GEMDAQStatusSource.h.

Referenced by LoadROMap().

◆ h2AMC13Status_

MonitorElement* GEMDAQStatusSource::h2AMC13Status_
private

Definition at line 81 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusAll

MonitorElement* GEMDAQStatusSource::h2SummaryStatusAll
private

Definition at line 90 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusAMC13Error

MonitorElement* GEMDAQStatusSource::h2SummaryStatusAMC13Error
private

Definition at line 99 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusAMCError

MonitorElement* GEMDAQStatusSource::h2SummaryStatusAMCError
private

Definition at line 98 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusAMCWarning

MonitorElement* GEMDAQStatusSource::h2SummaryStatusAMCWarning
private

Definition at line 97 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusError

MonitorElement* GEMDAQStatusSource::h2SummaryStatusError
private

Definition at line 92 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusOHError

MonitorElement* GEMDAQStatusSource::h2SummaryStatusOHError
private

Definition at line 96 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusOHWarning

MonitorElement* GEMDAQStatusSource::h2SummaryStatusOHWarning
private

Definition at line 95 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusVFATError

MonitorElement* GEMDAQStatusSource::h2SummaryStatusVFATError
private

Definition at line 94 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusVFATWarning

MonitorElement* GEMDAQStatusSource::h2SummaryStatusVFATWarning
private

Definition at line 93 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ h2SummaryStatusWarning

MonitorElement* GEMDAQStatusSource::h2SummaryStatusWarning
private

Definition at line 91 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ mapAMC13ToListChamber_

std::map<int, std::vector<GEMDetId> > GEMDAQStatusSource::mapAMC13ToListChamber_
private

Definition at line 111 of file GEMDAQStatusSource.h.

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

◆ mapAMCToListChamber_

std::map<std::tuple<int, int>, std::vector<GEMDetId> > GEMDAQStatusSource::mapAMCToListChamber_
private

Definition at line 112 of file GEMDAQStatusSource.h.

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

◆ mapFEDIdToAMCStatus_

std::map<UInt_t, MonitorElement *> GEMDAQStatusSource::mapFEDIdToAMCStatus_
private

Definition at line 110 of file GEMDAQStatusSource.h.

Referenced by analyze(), and bookHistograms().

◆ mapFEDIdToPosition_

std::map<UInt_t, int> GEMDAQStatusSource::mapFEDIdToPosition_
private

Definition at line 109 of file GEMDAQStatusSource.h.

Referenced by analyze(), bookHistograms(), LoadROMap(), and SetLabelAMC13Status().

◆ mapFEDIdToRe_

std::map<UInt_t, int> GEMDAQStatusSource::mapFEDIdToRe_
private

Definition at line 107 of file GEMDAQStatusSource.h.

Referenced by bookHistograms(), LoadROMap(), and SetLabelAMC13Status().

◆ mapFEDIdToSt_

std::map<UInt_t, int> GEMDAQStatusSource::mapFEDIdToSt_
private

Definition at line 108 of file GEMDAQStatusSource.h.

Referenced by bookHistograms(), LoadROMap(), and SetLabelAMC13Status().

◆ mapStatusErrVFATPerLayer_

MEMap4Inf GEMDAQStatusSource::mapStatusErrVFATPerLayer_
private

Definition at line 87 of file GEMDAQStatusSource.h.

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

◆ mapStatusOH_

MEMap4Inf GEMDAQStatusSource::mapStatusOH_
private

Definition at line 83 of file GEMDAQStatusSource.h.

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

◆ mapStatusVFAT_

MEMap4Inf GEMDAQStatusSource::mapStatusVFAT_
private

Definition at line 84 of file GEMDAQStatusSource.h.

◆ mapStatusVFATPerCh_

MEMap5Inf GEMDAQStatusSource::mapStatusVFATPerCh_
private

Definition at line 88 of file GEMDAQStatusSource.h.

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

◆ mapStatusWarnVFATPerLayer_

MEMap4Inf GEMDAQStatusSource::mapStatusWarnVFATPerLayer_
private

Definition at line 86 of file GEMDAQStatusSource.h.

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

◆ nAMCSlots_

Int_t GEMDAQStatusSource::nAMCSlots_
private

Definition at line 113 of file GEMDAQStatusSource.h.

Referenced by bookHistograms(), and GEMDAQStatusSource().

◆ nBitAMC13_

int GEMDAQStatusSource::nBitAMC13_ = 10
private

Definition at line 116 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ nBitAMC_

int GEMDAQStatusSource::nBitAMC_ = 12
private

Definition at line 117 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ nBitOH_

int GEMDAQStatusSource::nBitOH_ = 18
private

Definition at line 118 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ nBitVFAT_

int GEMDAQStatusSource::nBitVFAT_ = 8
private

Definition at line 119 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ nBXMax_

Int_t GEMDAQStatusSource::nBXMax_
private

Definition at line 105 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ nBXMin_

Int_t GEMDAQStatusSource::nBXMin_
private

Definition at line 105 of file GEMDAQStatusSource.h.

Referenced by bookHistograms().

◆ strFolderMain_

std::string GEMDAQStatusSource::strFolderMain_
private

Definition at line 101 of file GEMDAQStatusSource.h.

Referenced by bookHistograms(), and ProcessWithMEMap5WithChamber().

◆ tagAMC13_

edm::EDGetToken GEMDAQStatusSource::tagAMC13_
private

Definition at line 77 of file GEMDAQStatusSource.h.

Referenced by analyze(), and GEMDAQStatusSource().

◆ tagAMC_

edm::EDGetToken GEMDAQStatusSource::tagAMC_
private

Definition at line 76 of file GEMDAQStatusSource.h.

Referenced by analyze(), and GEMDAQStatusSource().

◆ tagOH_

edm::EDGetToken GEMDAQStatusSource::tagOH_
private

Definition at line 75 of file GEMDAQStatusSource.h.

Referenced by analyze(), and GEMDAQStatusSource().

◆ tagVFAT_

edm::EDGetToken GEMDAQStatusSource::tagVFAT_
private

Definition at line 74 of file GEMDAQStatusSource.h.

Referenced by analyze(), and GEMDAQStatusSource().

◆ useDBEMap_

Bool_t GEMDAQStatusSource::useDBEMap_
private

Definition at line 114 of file GEMDAQStatusSource.h.

Referenced by GEMDAQStatusSource(), and LoadROMap().