21 subDir_(pset.getUntrackedParameter<
std::
string>(
"subDir",
std::
string(
"HLT/SusyExo"))),
22 mcFlag(pset.getUntrackedParameter<
bool>(
"mc_flag",
true)),
23 reco_parametersets(pset.getParameter<
VParameterSet>(
"reco_parametersets")),
24 mc_parametersets(pset.getParameter<
VParameterSet>(
"mc_parametersets"))
35 LogDebug(
"HltSusyExoPostProcessor") <<
"Start dqmEndJob";
44 LogDebug(
"HltSusyExoPostProcessor") <<
"DQMStore cd";
55 int nL1bins = (iGetter_.
get(iBooker_.
pwd() + triggerBitsDir +
"/L1Bits")->getNbinsX());
56 int nHltbins = (iGetter_.
get(iBooker_.
pwd() + triggerBitsDir +
"/HltBits")->getNbinsX());
58 std::vector<int> L1placement;
for(
int i=0;
i<nL1bins-1*
mcFlag; ++
i) L1placement.push_back(6);
59 std::vector<int> Hltplacement;
for(
int i=0;
i<nHltbins-1*
mcFlag; ++
i) Hltplacement.push_back(7);
60 int L1bins[7];
for(
unsigned int i=0;
i<
sizeof(L1bins)/
sizeof(L1bins[0]); ++
i) L1bins[
i]=0;
61 int Hltbins[8];
for(
unsigned int i=0;
i<
sizeof(Hltbins)/
sizeof(Hltbins[0]); ++
i) Hltbins[
i]=0;
62 string L1search[8] = {
"Mu",
"EG",
"Jet",
"ET",
"TauJet",
"X",
""};
63 string L1search3 =
"HTT", L1search6 =
"Bias";
64 string Hltsearch[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET",
"Tau",
"X",
""};
65 string Hltsearch4 =
"HT", Hltsearch5 =
"BTag", Hltsearch6_1 =
"EG", Hltsearch6_2 =
"ET", Hltsearch7_1 =
"Bias", Hltsearch7_2 =
"AlCa";
67 LogDebug(
"HltSusyExoPostProcessor") <<
"number of L1 bins = " << nL1bins <<
" number of HLT bins = " << nHltbins;
75 TH1F* hHltPaths = iGetter_.
get(
subDir_ + triggerBitsDir +
"/HltPaths")->
getTH1F();
78 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements booked";
81 float nTotalBeforeCuts = -1;
82 int reference_bin = -1;
85 reference_bin = nL1bins;
88 for(
int i=0;
i<nHltbins; ++
i) {
89 string triggername = ((TProfile*)hHltEffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i+1);
90 string eff_search =
"HLT_ZeroBias";
91 if(triggername.find(eff_search)!=string::npos && triggername.size()==eff_search.size()) {
92 nTotalBeforeCuts = ((TProfile*)hHltEffBeforeCuts->
getTProfile())->GetBinContent(
i+1);
97 if(nTotalBeforeCuts == -1) {
99 reference_bin = nHltbins;
102 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalBeforeCuts;
106 value = (double) iGetter_.
get(
subDir_ + triggerBitsDir +
"/L1Paths")->
getBinContent(
i+1) / (double) nTotalBeforeCuts;
107 error =
sqrt(value*(1-value)/(
double)nTotalBeforeCuts);
113 string triggername = ((TProfile*)hL1EffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i+1);
114 if( triggername.find(L1search6)==string::npos ) {
115 for(
unsigned int j=0; j<
sizeof(L1search)/
sizeof(L1search[0])-2; ++j) {
116 if( triggername.find(L1search[j])!=string::npos || (j==3 && triggername.find(L1search3)!=string::npos) ) {
117 if(L1placement[
i]==6)
119 else if(L1placement[
i]==2 && j==4)
124 else if(triggername.empty() || triggername.find(
"Total")!=string::npos)
130 for(
unsigned int i=0;
i<L1placement.size(); ++
i)
131 if(L1placement[
i]!=-1)
132 ++L1bins[L1placement[
i]];
135 value = (double)iGetter_.
get(
subDir_ + triggerBitsDir +
"/HltPaths")->
getBinContent(
i+1) / (double)nTotalBeforeCuts; error =
sqrt(value*(1-value)/(
double)nTotalBeforeCuts);
141 string triggername = ((TProfile*)hHltEffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i+1);
142 if( triggername.find(Hltsearch7_1)==string::npos && triggername.find(Hltsearch7_2)==string::npos ) {
143 for(
unsigned int j=0; j<
sizeof(Hltsearch)/
sizeof(Hltsearch[0])-2; ++j) {
144 if( triggername.find(Hltsearch[j])!=string::npos || (j==4 && triggername.find(Hltsearch4)!=string::npos) || (j==5 && triggername.find(Hltsearch5)!=string::npos) ) {
145 if(Hltplacement[
i]==7)
147 else if( triggername.find(Hltsearch5)!=string::npos )
152 else if(triggername.empty() || triggername.find(
"Total")!=string::npos)
155 if(Hltplacement[
i]>=0 && Hltplacement[
i]<=5 && (triggername.find(Hltsearch6_1)!=string::npos || (triggername.find(Hltsearch6_2)!=string::npos && Hltplacement[
i]!=4) ))
160 for(
unsigned int i=0;
i<Hltplacement.size(); ++
i)
161 if(Hltplacement[
i]!=-1)
162 ++Hltbins[Hltplacement[
i]];
164 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled";
169 iBooker_.
bookProfile(
"L1_Mu",
new TProfile(
"L1_Mu",
"Efficiencies of L1 Muon Triggers",L1bins[0],0,L1bins[0])),
170 iBooker_.
bookProfile(
"L1_EG",
new TProfile(
"L1_EG",
"Efficiencies of L1 EG Triggers",L1bins[1],0,L1bins[1])),
171 iBooker_.
bookProfile(
"L1_Jet",
new TProfile(
"L1_Jet",
"Efficiencies of L1 Jet Triggers",L1bins[2],0,L1bins[2])),
172 iBooker_.
bookProfile(
"L1_ETM_ETT_HTT",
new TProfile(
"L1_ETM_ETT_HTT",
"Efficiencies of L1 ETM, ETT, and HTT Triggers",L1bins[3],0,L1bins[3])),
173 iBooker_.
bookProfile(
"L1_TauJet",
new TProfile(
"L1_TauJet",
"Efficiencies of L1 TauJet Triggers",L1bins[4],0,L1bins[4])),
174 iBooker_.
bookProfile(
"L1_XTrigger",
new TProfile(
"L1_XTrigger",
"Efficiencies of L1 Cross Triggers",L1bins[5],0,L1bins[5])),
175 iBooker_.
bookProfile(
"L1_Overflow",
new TProfile(
"L1_Overflow",
"Efficiencies of L1 Unsorted Triggers",L1bins[6],0,L1bins[6]))
179 iBooker_.
bookProfile(
"Hlt_Mu",
new TProfile(
"Hlt_Mu",
"Efficiencies of HL Muon Triggers",Hltbins[0],0,Hltbins[0])),
180 iBooker_.
bookProfile(
"Hlt_Ele",
new TProfile(
"Hlt_Ele",
"Efficiencies of HL Electron Triggers",Hltbins[1],0,Hltbins[1])),
181 iBooker_.
bookProfile(
"Hlt_Jet",
new TProfile(
"Hlt_Jet",
"Efficiencies of HL Jet Triggers",Hltbins[2],0,Hltbins[2],
"s")),
182 iBooker_.
bookProfile(
"Hlt_Photon",
new TProfile(
"Hlt_Photon",
"Efficiencies of HL Photon Triggers",Hltbins[3],0,Hltbins[3])),
183 iBooker_.
bookProfile(
"Hlt_MET_HT",
new TProfile(
"Hlt_MET_HT",
"Efficiencies of HL MET and HT Triggers",Hltbins[4],0,Hltbins[4])),
184 iBooker_.
bookProfile(
"Hlt_Tau_BTag",
new TProfile(
"Hlt_Tau_Btag",
"Efficiencies of HL Tau and BTag Triggers",Hltbins[5],0,Hltbins[5])),
185 iBooker_.
bookProfile(
"Hlt_XTrigger",
new TProfile(
"Hlt_XTrigger",
"Efficiencies of HL Cross Triggers",Hltbins[6],0,Hltbins[6])),
186 iBooker_.
bookProfile(
"Hlt_Overflow",
new TProfile(
"Hlt_Overflow",
"Efficiencies of HL Unsorted Triggers",Hltbins[7],0,Hltbins[7]))
189 int L1bincounter[8];
for(
unsigned int i=0;
i<
sizeof(L1bincounter)/
sizeof(L1bincounter[0]); ++
i) L1bincounter[
i]=0;
190 int Hltbincounter[8];
for(
unsigned int i=0;
i<
sizeof(Hltbincounter)/
sizeof(Hltbincounter[0]); ++
i) Hltbincounter[
i]=0;
191 TProfile* hL1_ = (TProfile*)hL1EffBeforeCuts->
getTProfile();
192 TProfile* hHlt_ = (TProfile*)hHltEffBeforeCuts->
getTProfile();
194 for(
unsigned int i=0;
i<L1placement.size(); ++
i) {
195 if(L1placement[
i]!=-1) {
196 hL1EffSorted[L1placement[
i]]->
setBinLabel(L1bincounter[L1placement[
i]]+1, hL1_->GetXaxis()->GetBinLabel(
i+1));
197 hL1EffSorted[L1placement[
i]]->
setBinContent(L1bincounter[L1placement[
i]]+1, hL1_->GetBinContent(
i+1));
198 hL1EffSorted[L1placement[
i]]->
setBinEntries(L1bincounter[L1placement[
i]]+1, 1);
199 hL1EffSorted[L1placement[
i]]->
setBinError(L1bincounter[L1placement[
i]]+1, hL1_->GetBinError(
i+1));
200 ++L1bincounter[L1placement[
i]];
203 for(
unsigned int i=0;
i<Hltplacement.size(); ++
i) {
204 if(Hltplacement[
i]!=-1) {
205 hHltEffSorted[Hltplacement[
i]]->
setBinLabel(Hltbincounter[Hltplacement[
i]]+1, hHlt_->GetXaxis()->GetBinLabel(
i+1));
206 hHltEffSorted[Hltplacement[
i]]->
setBinContent(Hltbincounter[Hltplacement[
i]]+1, hHlt_->GetBinContent(
i+1));
207 hHltEffSorted[Hltplacement[
i]]->
setBinEntries(Hltbincounter[Hltplacement[
i]]+1, 1);
208 hHltEffSorted[Hltplacement[
i]]->
setBinError(Hltbincounter[Hltplacement[
i]]+1, hHlt_->GetBinError(
i+1));
209 ++Hltbincounter[Hltplacement[
i]];
213 for(
unsigned int i=0;
i<
mc_dirs.size(); ++
i) {
217 char set_name_L1[256], set_name_Hlt[256];
218 sprintf(set_name_L1,
"L1Eff_%s",
mc_dirs[i].c_str());
219 sprintf(set_name_Hlt,
"HltEff_%s",
mc_dirs[i].c_str());
221 hL1EffAfterMcCuts->
setTitle(
"L1 Efficiencies for " +
mc_dirs[i] +
" selection");
223 hHltEffAfterMcCuts->
setTitle(
"HLT Efficiencies for " +
mc_dirs[i] +
" selection");
225 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements for " <<
mc_dirs[
i] <<
" selection booked";
228 float nTotalAfterMcCuts;
234 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalAfterMcCuts;
238 char buffer1[256], buffer2[256];
239 string L1_nametags[7] = {
"Mu",
"EG",
"Jet",
"ETM_ETT_HTT",
"TauJet",
"XTrigger",
"Overflow"};
240 string L1_titletags[7] = {
"Muon",
"EG",
"Jet",
"ETM, ETT, and HTT",
"TauJet",
"Cross",
"Unsorted"};
241 string Hlt_nametags[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET_HT",
"Tau_BTag",
"XTrigger",
"Overflow"};
242 string Hlt_titletags[8] = {
"Muon",
"Electron",
"Jet",
"Photon",
"MET and HT",
"Tau and BTag",
"Cross",
"Unsorted"};
243 for(
unsigned int j=0; j<
sizeof(hL1EffSorted_mc)/
sizeof(hL1EffSorted_mc[0]); ++j) {
244 sprintf(buffer1,
"L1_%s_%s",
mc_dirs[i].c_str(),L1_nametags[j].c_str());
245 sprintf(buffer2,
"Efficiencies of L1 %s Triggers for %s Selection",L1_titletags[j].c_str(),
mc_dirs[i].c_str());
246 hL1EffSorted_mc[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1,buffer2,L1bins[j],0,L1bins[j]));
248 for(
unsigned int j=0; j<
sizeof(hHltEffSorted_mc)/
sizeof(hHltEffSorted_mc[0]); ++j) {
249 sprintf(buffer1,
"Hlt_%s_%s",
mc_dirs[i].c_str(),Hlt_nametags[j].c_str());
250 sprintf(buffer2,
"Efficiencies of HL %s Triggers for %s Selection",Hlt_titletags[j].c_str(),
mc_dirs[i].c_str());
251 hHltEffSorted_mc[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1,buffer2,Hltbins[j],0,Hltbins[j]));
255 int L1bincounter_mc[8];
for(
unsigned int j=0; j<
sizeof(L1bincounter_mc)/
sizeof(L1bincounter_mc[0]); ++j) L1bincounter_mc[j]=0;
256 int Hltbincounter_mc[8];
for(
unsigned int j=0; j<
sizeof(Hltbincounter_mc)/
sizeof(Hltbincounter_mc[0]); ++j) Hltbincounter_mc[j]=0;
257 TProfile* hL1_mc = (TProfile*)hL1EffAfterMcCuts->
getTProfile();
258 TProfile* hHlt_mc = (TProfile*)hHltEffAfterMcCuts->
getTProfile();
259 for(
unsigned int j=0; j<L1placement.size(); j++) {
261 error = nTotalAfterMcCuts ?
sqrt(value*(1-value)/nTotalAfterMcCuts) : 0;
265 if(L1placement[j]!=-1) {
266 hL1EffSorted_mc[L1placement[j]]->
setBinLabel(L1bincounter_mc[L1placement[j]]+1, hL1_mc->GetXaxis()->GetBinLabel(j+1));
267 hL1EffSorted_mc[L1placement[j]]->
setBinContent(L1bincounter_mc[L1placement[j]]+1, hL1_mc->GetBinContent(j+1));
268 hL1EffSorted_mc[L1placement[j]]->
setBinEntries(L1bincounter_mc[L1placement[j]]+1, 1);
269 hL1EffSorted_mc[L1placement[j]]->
setBinError(L1bincounter_mc[L1placement[j]]+1, hL1_mc->GetBinError(j+1));
270 ++L1bincounter_mc[L1placement[j]];
273 if(nL1bins!=
int(L1placement.size())) {
275 error = nTotalAfterMcCuts ?
sqrt(value*(1-value)/nTotalAfterMcCuts) : 0;
280 for(
unsigned int j=0; j<Hltplacement.size(); j++) {
282 error = nTotalAfterMcCuts ?
sqrt(value*(1-value)/nTotalAfterMcCuts) : 0;
286 if(Hltplacement[j]!=-1) {
287 hHltEffSorted_mc[Hltplacement[j]]->
setBinLabel(Hltbincounter_mc[Hltplacement[j]]+1, hHlt_mc->GetXaxis()->GetBinLabel(j+1));
288 hHltEffSorted_mc[Hltplacement[j]]->
setBinContent(Hltbincounter_mc[Hltplacement[j]]+1, hHlt_mc->GetBinContent(j+1));
289 hHltEffSorted_mc[Hltplacement[j]]->
setBinEntries(Hltbincounter_mc[Hltplacement[j]]+1, 1);
290 hHltEffSorted_mc[Hltplacement[j]]->
setBinError(Hltbincounter_mc[Hltplacement[j]]+1, hHlt_mc->GetBinError(j+1));
291 ++Hltbincounter_mc[Hltplacement[j]];
294 if(nHltbins!=
int(Hltplacement.size())) {
296 error = nTotalAfterMcCuts ?
sqrt(value*(1-value)/nTotalAfterMcCuts) : 0;
301 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled for " <<
mc_dirs[
i] <<
" selection";
308 char set_name_L1[256], set_name_Hlt[256];
309 sprintf(set_name_L1,
"L1Eff_%s",
reco_dirs[i].c_str());
310 sprintf(set_name_Hlt,
"HltEff_%s",
reco_dirs[i].c_str());
312 hL1EffAfterRecoCuts->
setTitle(
"L1 Efficiencies for " +
reco_dirs[i] +
" selection");
314 hHltEffAfterRecoCuts->
setTitle(
"HLT Efficiencies for " +
reco_dirs[i] +
" selection");
316 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements for " <<
reco_dirs[
i] <<
" selection booked";
319 float nTotalAfterRecoCuts;
325 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalAfterRecoCuts;
329 char buffer1[256], buffer2[256];
330 string L1_nametags[7] = {
"Mu",
"EG",
"Jet",
"ETM_ETT_HTT",
"TauJet",
"XTrigger",
"Overflow"};
331 string L1_titletags[7] = {
"Muon",
"EG",
"Jet",
"ETM, ETT, and HTT",
"TauJet",
"Cross",
"Unsorted"};
332 string Hlt_nametags[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET_HT",
"Tau_BTag",
"XTrigger",
"Overflow"};
333 string Hlt_titletags[8] = {
"Muon",
"Electron",
"Jet",
"Photon",
"MET and HT",
"Tau and BTag",
"Cross",
"Unsorted"};
334 for(
unsigned int j=0; j<
sizeof(hL1EffSorted_reco)/
sizeof(hL1EffSorted_reco[0]); ++j)
336 sprintf(buffer1,
"L1_%s_%s",
reco_dirs[i].c_str(),L1_nametags[j].c_str());
337 sprintf(buffer2,
"Efficiencies of L1 %s Triggers for %s Selection",L1_titletags[j].c_str(),
reco_dirs[i].c_str());
338 hL1EffSorted_reco[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1,buffer2,L1bins[j],0,L1bins[j]));
340 for(
unsigned int j=0; j<
sizeof(hHltEffSorted_reco)/
sizeof(hHltEffSorted_reco[0]); ++j)
342 sprintf(buffer1,
"Hlt_%s_%s",
reco_dirs[i].c_str(),Hlt_nametags[j].c_str());
343 sprintf(buffer2,
"Efficiencies of HL %s Triggers for %s Selection",Hlt_titletags[j].c_str(),
reco_dirs[i].c_str());
344 hHltEffSorted_reco[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1,buffer2,Hltbins[j],0,Hltbins[j]));
348 int L1bincounter_reco[8];
for(
unsigned int j=0; j<
sizeof(L1bincounter_reco)/
sizeof(L1bincounter_reco[0]); ++j) L1bincounter_reco[j]=0;
349 int Hltbincounter_reco[8];
for(
unsigned int j=0; j<
sizeof(Hltbincounter_reco)/
sizeof(Hltbincounter_reco[0]); ++j) Hltbincounter_reco[j]=0;
350 TProfile* hL1_reco = (TProfile*)hL1EffAfterRecoCuts->
getTProfile();
351 TProfile* hHlt_reco = (TProfile*)hHltEffAfterRecoCuts->
getTProfile();
352 for(
unsigned int j=0; j<L1placement.size(); j++) {
354 error = nTotalAfterRecoCuts ?
sqrt(value*(1-value)/nTotalAfterRecoCuts) : 0;
358 if(L1placement[j]!=-1) {
359 hL1EffSorted_reco[L1placement[j]]->
setBinLabel(L1bincounter_reco[L1placement[j]]+1, hL1_reco->GetXaxis()->GetBinLabel(j+1));
360 hL1EffSorted_reco[L1placement[j]]->
setBinContent(L1bincounter_reco[L1placement[j]]+1, hL1_reco->GetBinContent(j+1));
361 hL1EffSorted_reco[L1placement[j]]->
setBinEntries(L1bincounter_reco[L1placement[j]]+1, 1);
362 hL1EffSorted_reco[L1placement[j]]->
setBinError(L1bincounter_reco[L1placement[j]]+1, hL1_reco->GetBinError(j+1));
363 ++L1bincounter_reco[L1placement[j]];
366 if(nL1bins!=
int(L1placement.size())) {
368 error = nTotalAfterRecoCuts ?
sqrt(value*(1-value)/nTotalAfterRecoCuts) : 0;
373 for(
unsigned int j=0; j<Hltplacement.size(); j++) {
375 error = nTotalAfterRecoCuts ?
sqrt(value*(1-value)/nTotalAfterRecoCuts) : 0;
379 if(Hltplacement[j]!=-1) {
380 hHltEffSorted_reco[Hltplacement[j]]->
setBinLabel(Hltbincounter_reco[Hltplacement[j]]+1, hHlt_reco->GetXaxis()->GetBinLabel(j+1));
381 hHltEffSorted_reco[Hltplacement[j]]->
setBinContent(Hltbincounter_reco[Hltplacement[j]]+1, hHlt_reco->GetBinContent(j+1));
382 hHltEffSorted_reco[Hltplacement[j]]->
setBinEntries(Hltbincounter_reco[Hltplacement[j]]+1, 1);
383 hHltEffSorted_reco[Hltplacement[j]]->
setBinError(Hltbincounter_reco[Hltplacement[j]]+1, hHlt_reco->GetBinError(j+1));
384 ++Hltbincounter_reco[Hltplacement[j]];
387 if(nHltbins!=
int(Hltplacement.size())) {
389 error = nTotalAfterRecoCuts ?
sqrt(value*(1-value)/nTotalAfterRecoCuts) : 0;
394 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled";
397 int pt_bins=100, eta_bins=100;
398 double pt_floor=0., pt_ceiling = 200., eta_floor=-3.5, eta_ceiling=3.5;
400 MonitorElement* hPt_1_ByEvent = iBooker_.
book1D(
"Pt_1_ByEvent",
"Turn on as a Function of P_{t}, |Eta|<1.2, By Event",pt_bins, pt_floor, pt_ceiling);
401 MonitorElement* hEta_1_ByEvent= iBooker_.
book1D(
"Eta_1_ByEvent",
"Efficiency as a Function of Eta, P_{t}>0, By Event", eta_bins, eta_floor,eta_ceiling);
402 MonitorElement* hPt_2_ByEvent = iBooker_.
book1D(
"Pt_2_ByEvent",
"Turn on as a Function of P_{t}, 1.2<|Eta|<2.1, By Event",pt_bins, pt_floor, pt_ceiling);
403 MonitorElement* hEta_2_ByEvent= iBooker_.
book1D(
"Eta_2_ByEvent",
"Efficiency as a Function of Eta, P_{t}>10, By Event", eta_bins, eta_floor,eta_ceiling);
404 MonitorElement* hPt_3_ByEvent = iBooker_.
book1D(
"Pt_3_ByEvent",
"Turn on as a Function of P_{t}, |Eta|>2.1, By Event",pt_bins, pt_floor, pt_ceiling);
405 MonitorElement* hEta_3_ByEvent= iBooker_.
book1D(
"Eta_3_ByEvent",
"Efficiency as a Function of Eta, P_{t}>20, By Event", eta_bins, eta_floor,eta_ceiling);
407 MonitorElement* hPt_1_ByMuon = iBooker_.
book1D(
"Pt_1_ByMuon",
"Turn on as a Function of P_{t}, |Eta|<1.2, By Muon",pt_bins, pt_floor, pt_ceiling);
408 MonitorElement* hEta_1_ByMuon= iBooker_.
book1D(
"Eta_1_ByMuon",
"Efficiency as a Function of Eta, P_{t}>0, By Muon", eta_bins, eta_floor,eta_ceiling);
409 MonitorElement* hPt_2_ByMuon = iBooker_.
book1D(
"Pt_2_ByMuon",
"Turn on as a Function of P_{t}, 1.2<|Eta|<2.1, By Muon",pt_bins, pt_floor, pt_ceiling);
410 MonitorElement* hEta_2_ByMuon= iBooker_.
book1D(
"Eta_2_ByMuon",
"Efficiency as a Function of Eta, P_{t}>10, By Muon", eta_bins, eta_floor,eta_ceiling);
411 MonitorElement* hPt_3_ByMuon = iBooker_.
book1D(
"Pt_3_ByMuon",
"Turn on as a Function of P_{t}, |Eta|>2.1, By Muon",pt_bins, pt_floor, pt_ceiling);
412 MonitorElement* hEta_3_ByMuon= iBooker_.
book1D(
"Eta_3_ByMuon",
"Efficiency as a Function of Eta, P_{t}>20, By Muon", eta_bins, eta_floor,eta_ceiling);
417 double value = (n2!=0 ? n1/n2 : 0);
418 double error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
424 value = (n2!=0 ? n1/n2 : 0);
425 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
431 value = (n2!=0 ? n1/n2 : 0);
432 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
438 value = (n2!=0 ? n1/n2 : 0);
439 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
445 value = (n2!=0 ? n1/n2 : 0);
446 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
452 value = (n2!=0 ? n1/n2 : 0);
453 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
461 double value = (n2!=0 ? n1/n2 : 0);
462 double error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
468 value = (n2!=0 ? n1/n2 : 0);
469 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
475 value = (n2!=0 ? n1/n2 : 0);
476 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
482 value = (n2!=0 ? n1/n2 : 0);
483 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
489 value = (n2!=0 ? n1/n2 : 0);
490 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
496 value = (n2!=0 ? n1/n2 : 0);
497 error = (n2!=0 ?
sqrt(value*(1-value)/n2) : 0);
506 myEffME = iBooker_.
bookProfile((
std::string) (
"Eff_"+((
std::string) histo->GetName())), ((
std::string) histo->GetTitle()), histo->GetXaxis()->GetNbins(), histo->GetXaxis()->GetXmin(), histo->GetXaxis()->GetXmax(), 100, 0, 1,
"");
509 myEffME = iBooker_.
bookProfile(name,
new TProfile(name.c_str(), histo->GetTitle(), histo->GetXaxis()->GetNbins(), histo->GetXaxis()->GetXmin(), histo->GetXaxis()->GetXmax()));
511 for(
int i=0;
i<histo->GetXaxis()->GetNbins();
i++) {
512 myEffME->
setBinLabel(
i+1, histo->GetXaxis()->GetBinLabel(
i+1),1);
TProfile * getTProfile() const
std::vector< std::string > mc_dirs
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * bookProfile(Args &&...args)
MonitorElement * get(const std::string &path)
#define DEFINE_FWK_MODULE(type)
std::vector< ParameterSet > VParameterSet
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::vector< edm::ParameterSet > mc_parametersets
MonitorElement * book1D(Args &&...args)
HltSusyExoPostProcessor(const edm::ParameterSet &pset)
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
std::vector< edm::ParameterSet > reco_parametersets
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
bool dirExists(const std::string &path)
void setCurrentFolder(const std::string &fullpath)
std::vector< std::string > reco_dirs
const std::string & pwd()
MonitorElement * bookEffMEProfileFromTH1(TH1F *, std::string, DQMStore::IBooker &)
void setCurrentFolder(const std::string &fullpath)
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX() const
get # of bins in X-axis
void setBinEntries(int bin, double nentries)
set # of bin entries (to be used for profiles)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override