32 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Constructor";
43 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"DataIntegrityTest: analyzed " <<
nupdates <<
" updates";
50 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: BeginJob";
86 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Begin of LS transition";
99 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
100 <<
"[DTDataIntegrityTest]: "<<
nevents<<
" events";
109 stringstream nLumiSegs_s; nLumiSegs_s <<
nLumiSegs;
114 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
115 <<
"[DTDataIntegrityTest]: End of LS " << nLumiSegs <<
", performing client operations";
127 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
128 <<
"[DTDataIntegrityTest]:FED Id: "<<dduId;
131 stringstream dduId_s; dduId_s << dduId;
136 string rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_ROSStatus";
140 string fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_ROSSummary";
144 string fedEvLenName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_EventLenght";
148 string fedIntegrityFolder =
"DT/FEDIntegrity/";
153 if(hFEDEntry && hFEDFatal && hFEDNonFatal) {
155 if(FED_ROSSummary && FED_ROSStatus && FED_EvLenght) {
156 TH2F * histoFEDSummary = FED_ROSSummary->
getTH2F();
157 TH2F * histoROSStatus = FED_ROSStatus->
getTH2F();
158 TH1F * histoEvLenght = FED_EvLenght->
getTH1F();
160 bool fedNotReadout = (hFEDEntry->
getBinContent(dduId-769) == 0 &&
163 int nFEDEvts = histoEvLenght->Integral();
164 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
168 float nErrors = histoFEDSummary->Integral(1,14,rosNumber,rosNumber);
169 nErrors += histoROSStatus->Integral(2,8,rosNumber,rosNumber);
177 float nTDCErrors = histoFEDSummary->Integral(15,15,rosNumber,rosNumber);
178 if(nTDCErrors == 0) {
185 float sectPerc =
max((
float)0., ((
float)nFEDEvts-nErrors)/(
float)nFEDEvts);
198 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
218 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest] endjob called!";
227 stringstream dduID_s; dduID_s << FEDId;
229 string folderName =
"DT/00-DataIntegrity/FED" + dduID_s.str();
231 string histoName = folderName +
"/FED" + dduID_s.str() +
"_" + histoType;
238 stringstream dduId_s; dduId_s << dduId;
248 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)
MonitorElement * summaryTDCHisto
DTDataIntegrityTest(const edm::ParameterSet &ps)
Constructor.
~DTDataIntegrityTest()
Destructor.
MonitorElement * glbSummaryHisto
std::string getMEName(std::string histoType, int FEDId)
Get the ME name.
const T & max(const T &a, const T &b)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * summaryHisto
int readOutToGeometry(int dduId, int rosNumber, int &wheel, int §or)
edm::ESHandle< DTReadOutMapping > mapping
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
DQM Client Diagnostic.
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
void bookHistos(std::string histoType, int dduId)
Book the MEs.
TH1F * getTH1F(void) const
LuminosityBlockNumber_t luminosityBlock() const
double getBinContent(int binx) const
get content of bin (1-D)
void beginRun(const edm::Run &run, const edm::EventSetup &c)
BeginRun.
TH2F * getTH2F(void) const
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)