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";
104 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
105 <<
"[DTDataIntegrityTest]:FED Id: "<<dduId;
108 stringstream dduId_s; dduId_s << dduId;
113 string rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_ROSStatus";
117 string fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_ROSSummary";
121 string fedEvLenName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_EventLenght";
125 string fedIntegrityFolder =
"DT/FEDIntegrity/";
130 if(hFEDEntry && hFEDFatal && hFEDNonFatal) {
132 if(FED_ROSSummary && FED_ROSStatus && FED_EvLenght) {
133 TH2F * histoFEDSummary = FED_ROSSummary->
getTH2F();
134 TH2F * histoROSStatus = FED_ROSStatus->
getTH2F();
135 TH1F * histoEvLenght = FED_EvLenght->
getTH1F();
137 bool fedNotReadout = (hFEDEntry->
getBinContent(dduId-769) == 0 &&
140 int nFEDEvts = histoEvLenght->Integral();
141 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
145 float nErrors = histoFEDSummary->Integral(1,14,rosNumber,rosNumber);
146 nErrors += histoROSStatus->Integral(2,8,rosNumber,rosNumber);
154 float nTDCErrors = histoFEDSummary->Integral(15,15,rosNumber,rosNumber);
155 if(nTDCErrors == 0) {
162 float sectPerc =
max((
float)0., ((
float)nFEDEvts-nErrors)/(
float)nFEDEvts);
175 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
193 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest] endjob called!";
198 stringstream dduID_s; dduID_s << FEDId;
200 string folderName =
"DT/00-DataIntegrity/FED" + dduID_s.str();
202 string histoName = folderName +
"/FED" + dduID_s.str() +
"_" + histoType;
207 stringstream dduId_s; dduId_s << dduId;
218 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.
~DTDataIntegrityTest()
Destructor.
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)
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)