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 if(!MECountAll)
cout<<
"fucking ME is null"<<endl;
112 if(!(MECountAll->
getTH2F()))
cout<<
"fucking puntator is null!"<<endl;
113 TH2F* hCountAll = MECountAll->
getTH2F();
114 TH2F* hCountQual = MECountQual->
getTH2F();
115 TH2F* hExtrap = MEExtrap->
getTH2F();
122 for(
int j=1;
j<=nBinX;
j++){
123 for(
int k=1;
k<=nBinY;
k++){
127 const float numerAll = hCountAll->GetBinContent(
j,
k);
128 const float numerQual = hCountQual->GetBinContent(
j,
k);
129 const float denom = hExtrap->GetBinContent(
j,
k);
132 const float effAll= numerAll/denom;
133 const float eff_error_All =
sqrt((effAll+effAll*effAll)/denom);
135 const float effQual= numerQual/denom;
136 const float eff_error_Qual =
sqrt((effQual+effQual*effQual)/denom);
157 for(
int wheel=-2; wheel<=2; wheel++) {
160 if(segmentWheelSummary != 0) {
162 for(
int sector=1; sector<=12; sector++) {
163 float nFailingChambers = 0.;
166 double errorsum = 0.;
175 if(tmpefficiency < 0.2 || tmpvariance == 0){
180 meaneff += tmpefficiency/tmpvariance;
181 errorsum += 1./tmpvariance;
183 LogTrace(
"DTDQM|DTMonitorClient|DTChamberEfficiencyClient")
184 <<
"Wheel: " << wheel <<
" Stat: " <<
station
185 <<
" Sect: " << sector <<
" status: " << meaneff/errorsum << endl;
188 if(sector == 4 || sector == 10) {
189 int whichSector = (sector == 4) ? 13 : 14;
191 const double tmpefficiency = segmentWheelSummary->
getBinContent(whichSector, 4);
192 const double tmpvariance =
pow(segmentWheelSummary->
getBinError(whichSector, 4),2);
194 if(tmpefficiency > 0.2 && tmpvariance != 0) {
195 meaneff += tmpefficiency/tmpvariance;
196 errorsum += 1./tmpvariance;
198 else nFailingChambers++;
202 double eff_result = 0;
203 if(errorsum != 0) eff_result = meaneff/errorsum;
205 if(nFailingChambers != 0) {
206 if(sector != 4 && sector != 10) eff_result = eff_result*(4.-nFailingChambers)/4.;
207 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)