93 LogVerbatim (
"DTDQM|DTMonitorClient|DTChamberEfficiencyClient")
94 <<
"DTChamberEfficiencyClient: endRun";
99 for(
int wheel=-2;wheel<=2;wheel++){
100 stringstream wheel_str; wheel_str << wheel;
104 MonitorElement* MECountAll =
dbe->
get(
"DT/05-ChamberEff/Task/hCountSectVsChamb_All_W" + wheel_str.str());
105 MonitorElement* MECountQual =
dbe->
get(
"DT/05-ChamberEff/Task/hCountSectVsChamb_Qual_W" + wheel_str.str());
106 MonitorElement* MEExtrap =
dbe->
get(
"DT/05-ChamberEff/Task/hExtrapSectVsChamb_W" + wheel_str.str());
109 if(!MECountAll || !(MECountAll->
getTH2F())) {
110 edm::LogWarning(
"DTChamberEfficiencyClient") <<
"ME not available" << std::endl;
114 TH2F* hCountAll = MECountAll->
getTH2F();
115 TH2F* hCountQual = MECountQual->
getTH2F();
116 TH2F* hExtrap = MEExtrap->
getTH2F();
123 for(
int j=1;
j<=nBinX;
j++){
124 for(
int k=1;
k<=nBinY;
k++){
128 const float numerAll = hCountAll->GetBinContent(
j,
k);
129 const float numerQual = hCountQual->GetBinContent(
j,
k);
130 const float denom = hExtrap->GetBinContent(
j,
k);
133 const float effAll= numerAll/denom;
134 const float eff_error_All =
sqrt((effAll+effAll*effAll)/denom);
136 const float effQual= numerQual/denom;
137 const float eff_error_Qual =
sqrt((effQual+effQual*effQual)/denom);
158 for(
int wheel=-2; wheel<=2; wheel++) {
161 if(segmentWheelSummary != 0) {
163 for(
int sector=1; sector<=12; sector++) {
164 float nFailingChambers = 0.;
167 double errorsum = 0.;
176 if(tmpefficiency < 0.2 || tmpvariance == 0){
181 meaneff += tmpefficiency/tmpvariance;
182 errorsum += 1./tmpvariance;
184 LogTrace(
"DTDQM|DTMonitorClient|DTChamberEfficiencyClient")
185 <<
"Wheel: " << wheel <<
" Stat: " <<
station
186 <<
" Sect: " << sector <<
" status: " << meaneff/errorsum << endl;
189 if(sector == 4 || sector == 10) {
190 int whichSector = (sector == 4) ? 13 : 14;
192 const double tmpefficiency = segmentWheelSummary->
getBinContent(whichSector, 4);
193 const double tmpvariance =
pow(segmentWheelSummary->
getBinError(whichSector, 4),2);
195 if(tmpefficiency > 0.2 && tmpvariance != 0) {
196 meaneff += tmpefficiency/tmpvariance;
197 errorsum += 1./tmpvariance;
199 else nFailingChambers++;
203 double eff_result = 0;
204 if(errorsum != 0) eff_result = meaneff/errorsum;
206 if(nFailingChambers != 0) {
207 if(sector != 4 && sector != 10) eff_result = eff_result*(4.-nFailingChambers)/4.;
208 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 Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
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")
std::map< int, MonitorElement * > EffDistrPerWh
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)
MonitorElement * globalEffDistr
Power< A, B >::type pow(const A &a, const B &b)