32 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Constructor";
46 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"DataIntegrityTest: analyzed " <<
nupdates <<
" updates";
64 summaryHisto = ibooker.
book2D(
"DataIntegritySummary",
"Summary Data Integrity",12,1,13,5,-2,3);
70 summaryTDCHisto = ibooker.
book2D(
"DataIntegrityTDCSummary",
"TDC Summary Data Integrity",12,1,13,5,-2,3);
88 stringstream nLumiSegs_s; nLumiSegs_s <<
nLumiSegs;
93 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
94 <<
"[DTDataIntegrityTest]: End of LS " << nLumiSegs <<
", performing client operations";
112 for (
int dduId=FEDIDmin; dduId<=FEDIDmax; ++dduId){
113 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
114 <<
"[DTDataIntegrityTest]:FED Id: "<<dduId;
117 stringstream dduId_s; dduId_s << dduId;
122 string rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_ROSStatus";
123 if (
checkUros) rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_uROSStatus";
127 string fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_ROSSummary";
128 if (
checkUros) fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_uROSSummary";
132 string fedEvLenName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_EventLenght";
136 string fedIntegrityFolder =
"DT/00-DataIntegrity/";
141 if(hFEDEntry && hFEDFatal && hFEDNonFatal) {
143 if(FED_ROSSummary && FED_ROSStatus && FED_EvLenght) {
144 TH2F * histoFEDSummary = FED_ROSSummary->
getTH2F();
145 TH2F * histoROSStatus = FED_ROSStatus->
getTH2F();
146 TH1F * histoEvLenght = FED_EvLenght->
getTH1F();
148 bool fedNotReadout = (hFEDEntry->
getBinContent(dduId-769) == 0 &&
151 int nFEDEvts = histoEvLenght->Integral();
152 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
155 float nErrors = histoFEDSummary->Integral(1,14,rosNumber,rosNumber);
156 float nROBErrors = histoROSStatus->Integral(2,8,rosNumber,rosNumber);
157 nErrors += nROBErrors;
160 result =
max((
float)0., ((
float)nFEDEvts-nROBErrors)/(
float)nFEDEvts);
163 float nTDCErrors = histoFEDSummary->Integral(15,15,rosNumber,rosNumber);
164 if(nTDCErrors == 0) {
171 float sectPerc =
max((
float)0., ((
float)nFEDEvts-nErrors)/(
float)nFEDEvts);
184 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
202 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest] endjob called!";
207 stringstream dduID_s; dduID_s << FEDId;
209 string folderName =
"DT/00-DataIntegrity/FED" + dduID_s.str();
211 string histoName = folderName +
"/FED" + dduID_s.str() +
"_" + histoType;
216 stringstream dduId_s; dduId_s << dduId;
227 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)
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.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)