|
|
Go to the documentation of this file.
22 desc.add<Int_t>(
"AMCSlots", 13);
25 descriptions.
add(
"GEMDAQStatusSource",
desc);
29 unsigned int unBinPos = 1;
31 h2Status->
setBinLabel(unBinPos++,
"Invalid AMC", 2);
32 h2Status->
setBinLabel(unBinPos++,
"Invalid size", 2);
33 h2Status->
setBinLabel(unBinPos++,
"Fail trailer check", 2);
34 h2Status->
setBinLabel(unBinPos++,
"Fail fragment length", 2);
35 h2Status->
setBinLabel(unBinPos++,
"Fail trailer match", 2);
36 h2Status->
setBinLabel(unBinPos++,
"More trailer", 2);
37 h2Status->
setBinLabel(unBinPos++,
"CRC modified", 2);
38 h2Status->
setBinLabel(unBinPos++,
"S-link error", 2);
39 h2Status->
setBinLabel(unBinPos++,
"Wrong FED ID", 2);
46 unsigned int unBinPos = 1;
49 h2Status->
setBinLabel(unBinPos++,
"Back pressure", 2);
53 h2Status->
setBinLabel(unBinPos++,
"Bad run type", 2);
55 h2Status->
setBinLabel(unBinPos++,
"MMCM locked", 2);
56 h2Status->
setBinLabel(unBinPos++,
"DAQ clock locked", 2);
57 h2Status->
setBinLabel(unBinPos++,
"DAQ not ready", 2);
58 h2Status->
setBinLabel(unBinPos++,
"BC0 not locked", 2);
62 unsigned int unBinPos = 1;
64 h2Status->
setBinLabel(unBinPos++,
"Event FIFO near full", 2);
65 h2Status->
setBinLabel(unBinPos++,
"Input FIFO near full", 2);
66 h2Status->
setBinLabel(unBinPos++,
"L1A FIFO near full", 2);
67 h2Status->
setBinLabel(unBinPos++,
"Event size warn", 2);
68 h2Status->
setBinLabel(unBinPos++,
"Invalid VFAT", 2);
69 h2Status->
setBinLabel(unBinPos++,
"Event FIFO full", 2);
70 h2Status->
setBinLabel(unBinPos++,
"Input FIFO full", 2);
71 h2Status->
setBinLabel(unBinPos++,
"L1A FIFO full", 2);
72 h2Status->
setBinLabel(unBinPos++,
"Event size overflow", 2);
73 h2Status->
setBinLabel(unBinPos++,
"Invalid event", 2);
74 h2Status->
setBinLabel(unBinPos++,
"Out of Sync AMC vs VFAT", 2);
75 h2Status->
setBinLabel(unBinPos++,
"Out of Sync VFAT vs VFAT", 2);
76 h2Status->
setBinLabel(unBinPos++,
"BX mismatch AMC vs VFAT", 2);
77 h2Status->
setBinLabel(unBinPos++,
"BX mismatch VFAT vs VFAT", 2);
78 h2Status->
setBinLabel(unBinPos++,
"Input FIFO underflow", 2);
79 h2Status->
setBinLabel(unBinPos++,
"Bad VFAT count", 2);
83 unsigned int unBinPos = 1;
85 h2Status->
setBinLabel(unBinPos++,
"Basic overflow", 2);
86 h2Status->
setBinLabel(unBinPos++,
"Zero-sup overflow", 2);
87 h2Status->
setBinLabel(unBinPos++,
"VFAT CRC error", 2);
88 h2Status->
setBinLabel(unBinPos++,
"Invalid header", 2);
89 h2Status->
setBinLabel(unBinPos++,
"AMC EC mismatch", 2);
90 h2Status->
setBinLabel(unBinPos++,
"AMC BC mismatch", 2);
111 "AMC Status GE11-M;AMC slot;",
119 "AMC Status GE11-P;AMC slot;",
137 this,
"vfat_statusWarnSum",
"VFAT reporting warnings", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5,
"Chamber",
"VFAT");
139 this,
"vfat_statusErrSum",
"VFAT reporting errors", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5,
"Chamber",
"VFAT");
200 event.getByToken(
tagVFAT_, gemVFAT);
201 event.getByToken(
tagOH_, gemOH);
202 event.getByToken(
tagAMC_, gemAMC);
205 for (
auto amc13It = gemAMC13->
begin(); amc13It != gemAMC13->
end(); ++amc13It) {
206 int fedId = (*amc13It).first;
219 const auto &
range = (*amc13It).second;
221 Bool_t bWarn =
false;
231 if (
errors.failTrailerCheck)
233 if (
errors.failFragmentLength)
235 if (
errors.failTrailerMatch)
253 for (
auto amcIt = gemAMC->
begin(); amcIt != gemAMC->
end(); ++amcIt) {
254 int fedId = (*amcIt).first;
268 Bool_t bWarn =
false;
271 Int_t nAMCNum =
amc->amcNumber();
292 if (
errors.DAQclocklocked)
300 h2AMCStatus->
Fill(nAMCNum, 1);
305 std::map<ME4IdsKey, bool> mapChamberWarning;
306 std::map<ME4IdsKey, bool> mapChamberError;
308 for (
auto ohIt = gemOH->
begin(); ohIt != gemOH->
end(); ++ohIt) {
314 for (
auto OHStatus =
range.first; OHStatus !=
range.second; ++OHStatus) {
351 Bool_t bWarn =
warnings.wcodes != 0;
352 Bool_t bErr =
errors.codes != 0;
356 mapChamberWarning[key4] =
false;
358 mapChamberError[key4] =
false;
362 for (
auto vfatIt = gemVFAT->
begin(); vfatIt != gemVFAT->
end(); ++vfatIt) {
368 for (
auto vfatStat =
range.first; vfatStat !=
range.second; ++vfatStat) {
399 Bool_t bWarn =
warnings.wcodes != 0;
400 Bool_t bErr =
errors.codes != 0;
406 mapChamberWarning[key4Ch] =
false;
408 mapChamberError[key4Ch] =
false;
417 for (
auto const &[key4, bWarning] : mapChamberWarning) {
424 for (
auto const &[key4, bErr] : mapChamberError) {
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key) override
GEMDAQStatusSource(const edm::ParameterSet &cfg)
constexpr int layer() const
constexpr int region() const
const GEMGeometry * GEMGeometry_
void SetLabelAMC13Status(MonitorElement *h2Status)
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
virtual void setCurrentFolder(std::string const &fullpath)
void SetLabelAMCStatus(MonitorElement *h2Status)
int Fill(K key, Double_t x)
ME3IdsKey key4Tokey3(ME4IdsKey key)
int keyToChamber(ME4IdsKey key)
int SetLabelForVFATs(K key, Int_t nNumEtaPartitions, Int_t nAxis, Int_t nNumBin=-1)
void SetLabelVFATStatus(MonitorElement *h2Status)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key) override
DigiRangeIterator end() const
DigiRangeIterator begin() const
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
constexpr int chamber() const
int initGeometry(edm::EventSetup const &iSetup)
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
int getVFATNumber(const int, const int, const int)
void FillWithRiseErr(MonitorElement *h, Int_t nX, Int_t nY, Bool_t &bErr)
void SetLabelOHStatus(MonitorElement *h2Status)
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)
MEMap4Inf mapStatusVFATPerCh_
Log< level::Error, false > LogError
edm::EDGetToken tagAMC13_
MonitorElement * h2AMCStatusPos_
MonitorElement * h2SummaryStatusError
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
std::string log_category_
MonitorElement * h2SummaryStatusWarning
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
dqm::impl::MonitorElement * FindHist(K key)
std::map< UInt_t, int > mapFEDIdToRe_
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
std::pair< const_iterator, const_iterator > Range
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
MEMap3Inf mapStatusWarnVFATPerLayer_
std::map< ME3IdsKey, int > mapStationToIdx_
MonitorElement * h2AMC13Status_
constexpr int station() const
constexpr int ieta() const
MonitorElement * h2AMCStatusNeg_
int bookND(BookingHelper &bh, K key)
MEMap3Inf mapStatusErrVFATPerLayer_
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)