30 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Constructor";
41 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"DataIntegrityTest: analyzed " <<
nupdates <<
" updates";
48 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: BeginJob";
84 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest]: Begin of LS transition";
97 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
98 <<
"[DTDataIntegrityTest]: "<<
nevents<<
" events";
107 stringstream nLumiSegs_s; nLumiSegs_s <<
nLumiSegs;
112 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
113 <<
"[DTDataIntegrityTest]: End of LS " << nLumiSegs <<
", performing client operations";
125 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest")
126 <<
"[DTDataIntegrityTest]:FED Id: "<<dduId;
129 stringstream dduId_s; dduId_s << dduId;
134 string rosStatusName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_ROSStatus";
138 string fedSummaryName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"_ROSSummary";
142 string fedEvLenName =
"DT/00-DataIntegrity/FED" + dduId_s.str() +
"/FED" + dduId_s.str() +
"_EventLenght";
146 string fedIntegrityFolder =
"DT/FEDIntegrity/";
151 if(hFEDEntry && hFEDFatal && hFEDNonFatal) {
153 if(FED_ROSSummary && FED_ROSStatus && FED_EvLenght) {
154 TH2F * histoFEDSummary = FED_ROSSummary->
getTH2F();
155 TH2F * histoROSStatus = FED_ROSStatus->
getTH2F();
156 TH1F * histoEvLenght = FED_EvLenght->
getTH1F();
158 bool fedNotReadout = (hFEDEntry->
getBinContent(dduId-769) == 0 &&
161 int nFEDEvts = histoEvLenght->Integral();
162 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
166 float nErrors = histoFEDSummary->Integral(1,14,rosNumber,rosNumber);
167 nErrors += histoROSStatus->Integral(2,8,rosNumber,rosNumber);
175 float nTDCErrors = histoFEDSummary->Integral(15,15,rosNumber,rosNumber);
176 if(nTDCErrors == 0) {
183 float sectPerc =
max((
float)0., ((
float)nFEDEvts-nErrors)/(
float)nFEDEvts);
196 for(
int rosNumber = 1; rosNumber <= 12; ++rosNumber) {
216 LogTrace (
"DTDQM|DTRawToDigi|DTMonitorClient|DTDataIntegrityTest") <<
"[DTDataIntegrityTest] endjob called!";
225 stringstream dduID_s; dduID_s << FEDId;
227 string folderName =
"DT/00-DataIntegrity/FED" + dduID_s.str();
229 string histoName = folderName +
"/FED" + dduID_s.str() +
"_" + histoType;
236 stringstream dduId_s; dduId_s << dduId;
246 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)