29 edm::LogVerbatim(
"DTDQM|DTMonitorClient|DTChamberEfficiencyTest") <<
"[DTChamberEfficiencyTest]: Constructor";
42 <<
"DTChamberEfficiencyTest: analyzed " <<
nevents <<
" events";
54 vector<const DTChamber*>::const_iterator ch_it =
muonGeom->
chambers().begin();
55 vector<const DTChamber*>::const_iterator ch_end =
muonGeom->
chambers().end();
56 for (; ch_it != ch_end; ++ch_it) {
68 <<
"[DTChamberEfficiencyTest]: End of LS transition, performing the DQM client operation";
78 <<
"[DTChamberEfficiencyTest]: " <<
nLumiSegs <<
" updates";
80 vector<const DTChamber*>::const_iterator ch_it =
muonGeom->
chambers().begin();
81 vector<const DTChamber*>::const_iterator ch_end =
muonGeom->
chambers().end();
84 <<
"[DTChamberEfficiencyTest]: ChamberEfficiency tests results";
87 for (; ch_it != ch_end; ++ch_it) {
105 if (GoodSegDen_histo && GoodCloseSegNum_histo) {
106 TH2F* GoodSegDen_histo_root = GoodSegDen_histo->
getTH2F();
107 TH2F* GoodCloseSegNum_histo_root = GoodCloseSegNum_histo->
getTH2F();
109 int lastBinX = (*GoodSegDen_histo_root).GetNbinsX();
110 TH1D* proxN = GoodCloseSegNum_histo_root->ProjectionX();
111 TH1D* proxD = GoodSegDen_histo_root->ProjectionX();
113 int lastBinY = (*GoodSegDen_histo_root).GetNbinsY();
114 TH1D* proyN = GoodCloseSegNum_histo_root->ProjectionY();
115 TH1D* proyD = GoodSegDen_histo_root->ProjectionY();
118 if (proxD->GetBinContent(
xBin) != 0) {
119 float Xefficiency = proxN->GetBinContent(
xBin) / proxD->GetBinContent(
xBin);
124 if (GoodSegDen_histo_root->GetBinContent(
xBin,
yBin) != 0) {
125 float XvsYefficiency = GoodCloseSegNum_histo_root->GetBinContent(
xBin,
yBin) /
126 GoodSegDen_histo_root->GetBinContent(
xBin,
yBin);
133 if (proyD->GetBinContent(
yBin) != 0) {
134 float Yefficiency = proyN->GetBinContent(
yBin) / proyD->GetBinContent(
yBin);
142 string XEfficiencyCriterionName =
146 const QReport* theXEfficiencyQReport = (*hXEff).second->getQReport(XEfficiencyCriterionName);
147 if (theXEfficiencyQReport) {
148 vector<dqm::me_util::Channel> badChannels = theXEfficiencyQReport->
getBadChannels();
149 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
151 edm::LogError(
"DTDQM|DTMonitorClient|DTChamberEfficiencyTest")
152 <<
"Chamber : " << (*hXEff).first <<
" Bad XChamberEfficiency channels: " << (*channel).getBin()
153 <<
" Contents : " << (*channel).getContents();
159 string YEfficiencyCriterionName =
163 const QReport* theYEfficiencyQReport = (*hYEff).second->getQReport(YEfficiencyCriterionName);
164 if (theYEfficiencyQReport) {
165 vector<dqm::me_util::Channel> badChannels = theYEfficiencyQReport->
getBadChannels();
166 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
168 edm::LogError(
"DTDQM|DTMonitorClient|DTChamberEfficiencyTest")
169 <<
"Chamber : " << (*hYEff).first <<
" Bad YChamberEfficiency channels: " << (*channel).getBin()
170 <<
" Contents : " << (*channel).getContents();
176 for (
int wh = -2; wh <= 2; wh++) {
178 for (
int st = 1; st <= 4; st++) {
186 edm::LogVerbatim(
"DTDQM|DTMonitorClient|DTChamberEfficiencyTest") <<
"[DTChamberEfficiencyTest] endjob called!";
199 "/Station" +
station.str() +
"/";
215 string xEfficiencyHistoName =
"xEfficiency_" +
HistoName;
216 string yEfficiencyHistoName =
"yEfficiency_" +
HistoName;
217 string xVSyEffHistoName =
"xVSyEff_" +
HistoName;
219 ibooker.
setCurrentFolder(
"DT/01-DTChamberEfficiency/Wheel" +
wheel.str() +
"/Sector" + sector.str() +
"/Station" +
223 ibooker.
book1D(xEfficiencyHistoName.c_str(), xEfficiencyHistoName.c_str(), 25, -250., 250.);
225 ibooker.
book1D(yEfficiencyHistoName.c_str(), yEfficiencyHistoName.c_str(), 25, -250., 250.);
227 ibooker.
book2D(xVSyEffHistoName.c_str(), xVSyEffHistoName.c_str(), 25, -250., 250., 25, -250., 250.);
231 for (
int wh = -2; wh <= 2; wh++) {