95 LogVerbatim (
"DTDQM|DTMonitorClient|DTChamberEfficiencyClient")
96 <<
"DTChamberEfficiencyClient: endRun";
101 for(
int wheel=-2;wheel<=2;wheel++){
102 stringstream wheel_str; wheel_str << wheel;
106 MonitorElement* MECountAll =
dbe->
get(
"DT/05-ChamberEff/Task/hCountSectVsChamb_All_W" + wheel_str.str());
107 MonitorElement* MECountQual =
dbe->
get(
"DT/05-ChamberEff/Task/hCountSectVsChamb_Qual_W" + wheel_str.str());
108 MonitorElement* MEExtrap =
dbe->
get(
"DT/05-ChamberEff/Task/hExtrapSectVsChamb_W" + wheel_str.str());
111 TH2F* hCountAll = MECountAll->
getTH2F();
112 TH2F* hCountQual = MECountQual->
getTH2F();
113 TH2F* hExtrap = MEExtrap->
getTH2F();
118 for(
int j=1;
j<=nBinX;
j++){
119 for(
int k=1;
k<=nBinY;
k++){
123 const float numerAll = hCountAll->GetBinContent(
j,
k);
124 const float numerQual = hCountQual->GetBinContent(
j,
k);
125 const float denom = hExtrap->GetBinContent(
j,
k);
128 const float effAll= numerAll/denom;
129 const float eff_error_All =
sqrt((effAll+effAll*effAll)/denom);
131 const float effQual= numerQual/denom;
132 const float eff_error_Qual =
sqrt((effQual+effQual*effQual)/denom);
148 for(
int wheel=-2; wheel<=2; wheel++) {
151 if(segmentWheelSummary != 0) {
153 for(
int sector=1; sector<=12; sector++) {
154 float nFailingChambers = 0.;
157 double errorsum = 0.;
166 if(tmpefficiency < 0.2 || tmpvariance == 0){
171 meaneff += tmpefficiency/tmpvariance;
172 errorsum += 1./tmpvariance;
174 LogTrace(
"DTDQM|DTMonitorClient|DTChamberEfficiencyClient")
175 <<
"Wheel: " << wheel <<
" Stat: " <<
station
176 <<
" Sect: " << sector <<
" status: " << meaneff/errorsum << endl;
179 if(sector == 4 || sector == 10) {
180 int whichSector = (sector == 4) ? 13 : 14;
182 const double tmpefficiency = segmentWheelSummary->
getBinContent(whichSector, 4);
183 const double tmpvariance =
pow(segmentWheelSummary->
getBinError(whichSector, 4),2);
185 if(tmpefficiency > 0.2 && tmpvariance != 0) {
186 meaneff += tmpefficiency/tmpvariance;
187 errorsum += 1./tmpvariance;
189 else nFailingChambers++;
193 double eff_result = 0;
194 if(errorsum != 0) eff_result = meaneff/errorsum;
196 if(nFailingChambers != 0) {
197 if(sector != 4 && sector != 10) eff_result = eff_result*(4.-nFailingChambers)/4.;
198 else eff_result = eff_result*(5.-nFailingChambers)/5.;
void setBinContent(int binx, double content)
set content of bin (1-D)
int getNbinsY(void) const
get # of bins in Y-axis
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
MonitorElement * summaryHistos[5][2]
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX(void) const
get # of bins in X-axis
MonitorElement * globalEffSummary
TH2F * getTH2F(void) const
void Reset(void)
reset ME (ie. contents, errors, etc)
Power< A, B >::type pow(const A &a, const B &b)