32 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Constructor";
44 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"DataIntegrityTest: analyzed " <<
nupdates <<
" updates";
62 summaryHisto = ibooker.
book2D(
"DataIntegritySummary",
"Summary Data Integrity",12,1,13,5,-2,3);
68 summaryTDCHisto = ibooker.
book2D(
"DataIntegrityTDCSummary",
"TDC Summary Data Integrity",12,1,13,5,-2,3);
86 stringstream nLumiSegs_s; nLumiSegs_s <<
nLumiSegs;
91 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
92 <<
"[DTDataIntegrityTest]: End of LS " << nLumiSegs <<
", performing client operations";
105 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
106 <<
"[DTDataIntegrityTest]:FED Id: "<<dduId;
109 stringstream dduId_s; dduId_s << dduId;
114 string rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_ROSStatus";
118 string fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_ROSSummary";
122 string fedEvLenName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_EventLenght";
126 string fedIntegrityFolder =
"DT/00-DataIntegrity/";
131 if(hFEDEntry && hFEDFatal && hFEDNonFatal) {
133 if(FED_ROSSummary && FED_ROSStatus && FED_EvLenght) {
134 TH2F * histoFEDSummary = FED_ROSSummary->
getTH2F();
135 TH2F * histoROSStatus = FED_ROSStatus->
getTH2F();
136 TH1F * histoEvLenght = FED_EvLenght->
getTH1F();
138 bool fedNotReadout = (hFEDEntry->
getBinContent(dduId-769) == 0 &&
141 int nFEDEvts = histoEvLenght->Integral();
142 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
145 float nErrors = histoFEDSummary->Integral(1,14,rosNumber,rosNumber);
146 float nROBErrors = histoROSStatus->Integral(2,8,rosNumber,rosNumber);
147 nErrors += nROBErrors;
150 result =
max((
float)0., ((
float)nFEDEvts-nROBErrors)/(
float)nFEDEvts);
153 float nTDCErrors = histoFEDSummary->Integral(15,15,rosNumber,rosNumber);
154 if(nTDCErrors == 0) {
161 float sectPerc =
max((
float)0., ((
float)nFEDEvts-nErrors)/(
float)nFEDEvts);
174 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
192 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest] endjob called!";
197 stringstream dduID_s; dduID_s << FEDId;
199 string folderName =
"DT/00-DataIntegrity/FED" + dduID_s.str();
201 string histoName = folderName +
"/FED" + dduID_s.str() +
"_" + histoType;
206 stringstream dduId_s; dduId_s << dduId;
217 return mapping->
readOutToGeometry(dduId,ros,2,2,2,wheel,dummy,sector,dummy,dummy,dummy);
LuminosityBlockID id() const
T getUntrackedParameter(std::string const &, T const &) const
void setBinContent(int binx, double content)
set content of bin (1-D)
int readOutToGeometry(int dduId, int rosId, int robId, int tdcId, int channelId, DTWireId &wireId) const
transform identifiers
MonitorElement * get(const std::string &path)
MonitorElement * summaryTDCHisto
DTDataIntegrityTest(const edm::ParameterSet &ps)
Constructor.
MonitorElement * glbSummaryHisto
std::string getMEName(std::string histoType, int FEDId)
Get the ME name.
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
DQM Client Diagnostic.
MonitorElement * summaryHisto
int readOutToGeometry(int dduId, int rosNumber, int &wheel, int §or)
edm::ESHandle< DTReadOutMapping > mapping
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
TH1F * getTH1F(void) const
LuminosityBlockNumber_t luminosityBlock() const
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
double getBinContent(int binx) const
get content of bin (1-D)
~DTDataIntegrityTest() override
Destructor.
void bookHistos(DQMStore::IBooker &, std::string histoType, int dduId)
Book the MEs.
TH2F * getTH2F(void) const
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)