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")) {
34 LogDebug(
"HltSusyExoPostProcessor") <<
"Start dqmEndJob";
44 LogDebug(
"HltSusyExoPostProcessor") <<
"DQMStore cd";
57 int nL1bins = (iGetter_.
get(iBooker_.
pwd() + triggerBitsDir +
"/L1Bits")->getNbinsX());
58 int nHltbins = (iGetter_.
get(iBooker_.
pwd() + triggerBitsDir +
"/HltBits")->getNbinsX());
60 std::vector<int> L1placement;
61 for (
int i = 0;
i < nL1bins - 1 *
mcFlag; ++
i)
62 L1placement.push_back(6);
63 std::vector<int> Hltplacement;
64 for (
int i = 0;
i < nHltbins - 1 *
mcFlag; ++
i)
65 Hltplacement.push_back(7);
67 for (
unsigned int i = 0;
i <
sizeof(L1bins) /
sizeof(L1bins[0]); ++
i)
70 for (
unsigned int i = 0;
i <
sizeof(Hltbins) /
sizeof(Hltbins[0]); ++
i)
72 string L1search[8] = {
"Mu",
"EG",
"Jet",
"ET",
"TauJet",
"X",
""};
73 string L1search3 =
"HTT", L1search6 =
"Bias";
74 string Hltsearch[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET",
"Tau",
"X",
""};
75 string Hltsearch4 =
"HT", Hltsearch5 =
"BTag", Hltsearch6_1 =
"EG", Hltsearch6_2 =
"ET", Hltsearch7_1 =
"Bias",
76 Hltsearch7_2 =
"AlCa";
78 LogDebug(
"HltSusyExoPostProcessor") <<
"number of L1 bins = " << nL1bins <<
" number of HLT bins = " << nHltbins;
86 TH1F *hHltPaths = iGetter_.
get(
subDir_ + triggerBitsDir +
"/HltPaths")->
getTH1F();
89 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements booked";
92 float nTotalBeforeCuts = -1;
93 int reference_bin = -1;
96 reference_bin = nL1bins;
98 for (
int i = 0;
i < nHltbins; ++
i) {
99 string triggername = ((TProfile *)hHltEffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i + 1);
100 string eff_search =
"HLT_ZeroBias";
101 if (triggername.find(eff_search) != string::npos && triggername.size() == eff_search.size()) {
102 nTotalBeforeCuts = ((TProfile *)hHltEffBeforeCuts->
getTProfile())->GetBinContent(
i + 1);
103 reference_bin =
i + 1;
107 if (nTotalBeforeCuts == -1) {
109 reference_bin = nHltbins;
112 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalBeforeCuts;
115 for (
int i = 0;
i < nL1bins - 1 *
mcFlag;
i++) {
118 error =
sqrt(value * (1 - value) / (
double)nTotalBeforeCuts);
124 string triggername = ((TProfile *)hL1EffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i + 1);
125 if (triggername.find(L1search6) == string::npos) {
126 for (
unsigned int j = 0; j <
sizeof(L1search) /
sizeof(L1search[0]) - 2; ++j) {
127 if (triggername.find(L1search[j]) != string::npos || (j == 3 && triggername.find(L1search3) != string::npos)) {
128 if (L1placement[
i] == 6)
130 else if (L1placement[
i] == 2 && j == 4)
134 }
else if (triggername.empty() || triggername.find(
"Total") != string::npos)
140 for (
unsigned int i = 0;
i < L1placement.size(); ++
i)
141 if (L1placement[
i] != -1)
142 ++L1bins[L1placement[
i]];
144 for (
int i = 0;
i < nHltbins - 1 *
mcFlag;
i++) {
147 error =
sqrt(value * (1 - value) / (
double)nTotalBeforeCuts);
153 string triggername = ((TProfile *)hHltEffBeforeCuts->
getTProfile())->GetXaxis()->GetBinLabel(
i + 1);
154 if (triggername.find(Hltsearch7_1) == string::npos && triggername.find(Hltsearch7_2) == string::npos) {
155 for (
unsigned int j = 0; j <
sizeof(Hltsearch) /
sizeof(Hltsearch[0]) - 2; ++j) {
156 if (triggername.find(Hltsearch[j]) != string::npos ||
157 (j == 4 && triggername.find(Hltsearch4) != string::npos) ||
158 (j == 5 && triggername.find(Hltsearch5) != string::npos)) {
159 if (Hltplacement[
i] == 7)
161 else if (triggername.find(Hltsearch5) != string::npos)
165 }
else if (triggername.empty() || triggername.find(
"Total") != string::npos)
166 Hltplacement[
i] = -1;
168 if (Hltplacement[
i] >= 0 && Hltplacement[
i] <= 5 &&
169 (triggername.find(Hltsearch6_1) != string::npos ||
170 (triggername.find(Hltsearch6_2) != string::npos && Hltplacement[
i] != 4)))
175 for (
unsigned int i = 0;
i < Hltplacement.size(); ++
i)
176 if (Hltplacement[
i] != -1)
177 ++Hltbins[Hltplacement[
i]];
179 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled";
184 iBooker_.
bookProfile(
"L1_Mu",
new TProfile(
"L1_Mu",
"Efficiencies of L1 Muon Triggers", L1bins[0], 0, L1bins[0])),
185 iBooker_.
bookProfile(
"L1_EG",
new TProfile(
"L1_EG",
"Efficiencies of L1 EG Triggers", L1bins[1], 0, L1bins[1])),
187 new TProfile(
"L1_Jet",
"Efficiencies of L1 Jet Triggers", L1bins[2], 0, L1bins[2])),
190 new TProfile(
"L1_ETM_ETT_HTT",
"Efficiencies of L1 ETM, ETT, and HTT Triggers", L1bins[3], 0, L1bins[3])),
192 new TProfile(
"L1_TauJet",
"Efficiencies of L1 TauJet Triggers", L1bins[4], 0, L1bins[4])),
194 new TProfile(
"L1_XTrigger",
"Efficiencies of L1 Cross Triggers", L1bins[5], 0, L1bins[5])),
196 "L1_Overflow",
new TProfile(
"L1_Overflow",
"Efficiencies of L1 Unsorted Triggers", L1bins[6], 0, L1bins[6]))};
200 new TProfile(
"Hlt_Mu",
"Efficiencies of HL Muon Triggers", Hltbins[0], 0, Hltbins[0])),
202 new TProfile(
"Hlt_Ele",
"Efficiencies of HL Electron Triggers", Hltbins[1], 0, Hltbins[1])),
204 new TProfile(
"Hlt_Jet",
"Efficiencies of HL Jet Triggers", Hltbins[2], 0, Hltbins[2],
"s")),
206 new TProfile(
"Hlt_Photon",
"Efficiencies of HL Photon Triggers", Hltbins[3], 0, Hltbins[3])),
209 new TProfile(
"Hlt_MET_HT",
"Efficiencies of HL MET and HT Triggers", Hltbins[4], 0, Hltbins[4])),
212 new TProfile(
"Hlt_Tau_Btag",
"Efficiencies of HL Tau and BTag Triggers", Hltbins[5], 0, Hltbins[5])),
214 "Hlt_XTrigger",
new TProfile(
"Hlt_XTrigger",
"Efficiencies of HL Cross Triggers", Hltbins[6], 0, Hltbins[6])),
217 new TProfile(
"Hlt_Overflow",
"Efficiencies of HL Unsorted Triggers", Hltbins[7], 0, Hltbins[7]))};
220 for (
unsigned int i = 0;
i <
sizeof(L1bincounter) /
sizeof(L1bincounter[0]); ++
i)
222 int Hltbincounter[8];
223 for (
unsigned int i = 0;
i <
sizeof(Hltbincounter) /
sizeof(Hltbincounter[0]); ++
i)
224 Hltbincounter[
i] = 0;
225 TProfile *hL1_ = (TProfile *)hL1EffBeforeCuts->
getTProfile();
226 TProfile *hHlt_ = (TProfile *)hHltEffBeforeCuts->
getTProfile();
229 for (
unsigned int i = 0;
i < L1placement.size(); ++
i) {
230 if (L1placement[
i] != -1) {
231 hL1EffSorted[L1placement[
i]]->
setBinLabel(L1bincounter[L1placement[
i]] + 1, hL1_->GetXaxis()->GetBinLabel(
i + 1));
232 hL1EffSorted[L1placement[
i]]->
setBinContent(L1bincounter[L1placement[
i]] + 1, hL1_->GetBinContent(
i + 1));
233 hL1EffSorted[L1placement[
i]]->
setBinEntries(L1bincounter[L1placement[
i]] + 1, 1);
234 hL1EffSorted[L1placement[
i]]->
setBinError(L1bincounter[L1placement[
i]] + 1, hL1_->GetBinError(
i + 1));
235 ++L1bincounter[L1placement[
i]];
238 for (
unsigned int i = 0;
i < Hltplacement.size(); ++
i) {
239 if (Hltplacement[
i] != -1) {
240 hHltEffSorted[Hltplacement[
i]]->
setBinLabel(Hltbincounter[Hltplacement[
i]] + 1,
241 hHlt_->GetXaxis()->GetBinLabel(
i + 1));
242 hHltEffSorted[Hltplacement[
i]]->
setBinContent(Hltbincounter[Hltplacement[
i]] + 1, hHlt_->GetBinContent(
i + 1));
243 hHltEffSorted[Hltplacement[
i]]->
setBinEntries(Hltbincounter[Hltplacement[
i]] + 1, 1);
244 hHltEffSorted[Hltplacement[
i]]->
setBinError(Hltbincounter[Hltplacement[
i]] + 1, hHlt_->GetBinError(
i + 1));
245 ++Hltbincounter[Hltplacement[
i]];
249 for (
unsigned int i = 0;
i <
mc_dirs.size(); ++
i) {
253 char set_name_L1[256], set_name_Hlt[256];
254 sprintf(set_name_L1,
"L1Eff_%s",
mc_dirs[i].c_str());
255 sprintf(set_name_Hlt,
"HltEff_%s",
mc_dirs[i].c_str());
260 hL1EffAfterMcCuts->
setTitle(
"L1 Efficiencies for " +
mc_dirs[i] +
" selection");
265 hHltEffAfterMcCuts->
setTitle(
"HLT Efficiencies for " +
mc_dirs[i] +
" selection");
267 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements for " <<
mc_dirs[
i] <<
" selection booked";
270 float nTotalAfterMcCuts;
278 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalAfterMcCuts;
282 char buffer1[256], buffer2[256];
283 string L1_nametags[7] = {
"Mu",
"EG",
"Jet",
"ETM_ETT_HTT",
"TauJet",
"XTrigger",
"Overflow"};
284 string L1_titletags[7] = {
"Muon",
"EG",
"Jet",
"ETM, ETT, and HTT",
"TauJet",
"Cross",
"Unsorted"};
285 string Hlt_nametags[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET_HT",
"Tau_BTag",
"XTrigger",
"Overflow"};
286 string Hlt_titletags[8] = {
"Muon",
"Electron",
"Jet",
"Photon",
"MET and HT",
"Tau and BTag",
"Cross",
"Unsorted"};
287 for (
unsigned int j = 0; j <
sizeof(hL1EffSorted_mc) /
sizeof(hL1EffSorted_mc[0]); ++j) {
288 sprintf(buffer1,
"L1_%s_%s",
mc_dirs[i].c_str(), L1_nametags[j].c_str());
289 sprintf(buffer2,
"Efficiencies of L1 %s Triggers for %s Selection", L1_titletags[j].c_str(),
mc_dirs[i].c_str());
290 hL1EffSorted_mc[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1, buffer2, L1bins[j], 0, L1bins[j]));
292 for (
unsigned int j = 0; j <
sizeof(hHltEffSorted_mc) /
sizeof(hHltEffSorted_mc[0]); ++j) {
293 sprintf(buffer1,
"Hlt_%s_%s",
mc_dirs[i].c_str(), Hlt_nametags[j].c_str());
294 sprintf(buffer2,
"Efficiencies of HL %s Triggers for %s Selection", Hlt_titletags[j].c_str(),
mc_dirs[i].c_str());
295 hHltEffSorted_mc[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1, buffer2, Hltbins[j], 0, Hltbins[j]));
299 int L1bincounter_mc[8];
300 for (
unsigned int j = 0; j <
sizeof(L1bincounter_mc) /
sizeof(L1bincounter_mc[0]); ++j)
301 L1bincounter_mc[j] = 0;
302 int Hltbincounter_mc[8];
303 for (
unsigned int j = 0; j <
sizeof(Hltbincounter_mc) /
sizeof(Hltbincounter_mc[0]); ++j)
304 Hltbincounter_mc[j] = 0;
305 TProfile *hL1_mc = (TProfile *)hL1EffAfterMcCuts->
getTProfile();
306 TProfile *hHlt_mc = (TProfile *)hHltEffAfterMcCuts->
getTProfile();
307 for (
unsigned int j = 0; j < L1placement.size(); j++) {
308 value = nTotalAfterMcCuts
313 error = nTotalAfterMcCuts ?
sqrt(value * (1 - value) / nTotalAfterMcCuts) : 0;
317 if (L1placement[j] != -1) {
318 hL1EffSorted_mc[L1placement[j]]->
setBinLabel(L1bincounter_mc[L1placement[j]] + 1,
319 hL1_mc->GetXaxis()->GetBinLabel(j + 1));
320 hL1EffSorted_mc[L1placement[j]]->
setBinContent(L1bincounter_mc[L1placement[j]] + 1,
321 hL1_mc->GetBinContent(j + 1));
322 hL1EffSorted_mc[L1placement[j]]->
setBinEntries(L1bincounter_mc[L1placement[j]] + 1, 1);
323 hL1EffSorted_mc[L1placement[j]]->
setBinError(L1bincounter_mc[L1placement[j]] + 1, hL1_mc->GetBinError(j + 1));
324 ++L1bincounter_mc[L1placement[j]];
327 if (nL1bins !=
int(L1placement.size())) {
328 value = nTotalAfterMcCuts
333 error = nTotalAfterMcCuts ?
sqrt(value * (1 - value) / nTotalAfterMcCuts) : 0;
338 for (
unsigned int j = 0; j < Hltplacement.size(); j++) {
339 value = nTotalAfterMcCuts
344 error = nTotalAfterMcCuts ?
sqrt(value * (1 - value) / nTotalAfterMcCuts) : 0;
348 if (Hltplacement[j] != -1) {
349 hHltEffSorted_mc[Hltplacement[j]]->
setBinLabel(Hltbincounter_mc[Hltplacement[j]] + 1,
350 hHlt_mc->GetXaxis()->GetBinLabel(j + 1));
351 hHltEffSorted_mc[Hltplacement[j]]->
setBinContent(Hltbincounter_mc[Hltplacement[j]] + 1,
352 hHlt_mc->GetBinContent(j + 1));
353 hHltEffSorted_mc[Hltplacement[j]]->
setBinEntries(Hltbincounter_mc[Hltplacement[j]] + 1, 1);
354 hHltEffSorted_mc[Hltplacement[j]]->
setBinError(Hltbincounter_mc[Hltplacement[j]] + 1,
355 hHlt_mc->GetBinError(j + 1));
356 ++Hltbincounter_mc[Hltplacement[j]];
359 if (nHltbins !=
int(Hltplacement.size())) {
360 value = nTotalAfterMcCuts
365 error = nTotalAfterMcCuts ?
sqrt(value * (1 - value) / nTotalAfterMcCuts) : 0;
370 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled for " <<
mc_dirs[
i] <<
" selection";
377 char set_name_L1[256], set_name_Hlt[256];
378 sprintf(set_name_L1,
"L1Eff_%s",
reco_dirs[i].c_str());
379 sprintf(set_name_Hlt,
"HltEff_%s",
reco_dirs[i].c_str());
384 hL1EffAfterRecoCuts->
setTitle(
"L1 Efficiencies for " +
reco_dirs[i] +
" selection");
389 hHltEffAfterRecoCuts->
setTitle(
"HLT Efficiencies for " +
reco_dirs[i] +
" selection");
391 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements for " <<
reco_dirs[
i] <<
" selection booked";
394 float nTotalAfterRecoCuts;
402 LogDebug(
"HltSusyExoPostProcessor") <<
"Total number of events = " << nTotalAfterRecoCuts;
406 char buffer1[256], buffer2[256];
407 string L1_nametags[7] = {
"Mu",
"EG",
"Jet",
"ETM_ETT_HTT",
"TauJet",
"XTrigger",
"Overflow"};
408 string L1_titletags[7] = {
"Muon",
"EG",
"Jet",
"ETM, ETT, and HTT",
"TauJet",
"Cross",
"Unsorted"};
409 string Hlt_nametags[8] = {
"Mu",
"Ele",
"Jet",
"Photon",
"MET_HT",
"Tau_BTag",
"XTrigger",
"Overflow"};
410 string Hlt_titletags[8] = {
"Muon",
"Electron",
"Jet",
"Photon",
"MET and HT",
"Tau and BTag",
"Cross",
"Unsorted"};
411 for (
unsigned int j = 0; j <
sizeof(hL1EffSorted_reco) /
sizeof(hL1EffSorted_reco[0]); ++j) {
412 sprintf(buffer1,
"L1_%s_%s",
reco_dirs[i].c_str(), L1_nametags[j].c_str());
414 buffer2,
"Efficiencies of L1 %s Triggers for %s Selection", L1_titletags[j].c_str(),
reco_dirs[i].c_str());
415 hL1EffSorted_reco[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1, buffer2, L1bins[j], 0, L1bins[j]));
417 for (
unsigned int j = 0; j <
sizeof(hHltEffSorted_reco) /
sizeof(hHltEffSorted_reco[0]); ++j) {
418 sprintf(buffer1,
"Hlt_%s_%s",
reco_dirs[i].c_str(), Hlt_nametags[j].c_str());
420 buffer2,
"Efficiencies of HL %s Triggers for %s Selection", Hlt_titletags[j].c_str(),
reco_dirs[i].c_str());
421 hHltEffSorted_reco[j] = iBooker_.
bookProfile(buffer1,
new TProfile(buffer1, buffer2, Hltbins[j], 0, Hltbins[j]));
425 int L1bincounter_reco[8];
426 for (
unsigned int j = 0; j <
sizeof(L1bincounter_reco) /
sizeof(L1bincounter_reco[0]); ++j)
427 L1bincounter_reco[j] = 0;
428 int Hltbincounter_reco[8];
429 for (
unsigned int j = 0; j <
sizeof(Hltbincounter_reco) /
sizeof(Hltbincounter_reco[0]); ++j)
430 Hltbincounter_reco[j] = 0;
431 TProfile *hL1_reco = (TProfile *)hL1EffAfterRecoCuts->
getTProfile();
432 TProfile *hHlt_reco = (TProfile *)hHltEffAfterRecoCuts->
getTProfile();
433 for (
unsigned int j = 0; j < L1placement.size(); j++) {
434 value = nTotalAfterRecoCuts
439 error = nTotalAfterRecoCuts ?
sqrt(value * (1 - value) / nTotalAfterRecoCuts) : 0;
443 if (L1placement[j] != -1) {
444 hL1EffSorted_reco[L1placement[j]]->
setBinLabel(L1bincounter_reco[L1placement[j]] + 1,
445 hL1_reco->GetXaxis()->GetBinLabel(j + 1));
446 hL1EffSorted_reco[L1placement[j]]->
setBinContent(L1bincounter_reco[L1placement[j]] + 1,
447 hL1_reco->GetBinContent(j + 1));
448 hL1EffSorted_reco[L1placement[j]]->
setBinEntries(L1bincounter_reco[L1placement[j]] + 1, 1);
449 hL1EffSorted_reco[L1placement[j]]->
setBinError(L1bincounter_reco[L1placement[j]] + 1,
450 hL1_reco->GetBinError(j + 1));
451 ++L1bincounter_reco[L1placement[j]];
454 if (nL1bins !=
int(L1placement.size())) {
455 value = nTotalAfterRecoCuts
460 error = nTotalAfterRecoCuts ?
sqrt(value * (1 - value) / nTotalAfterRecoCuts) : 0;
465 for (
unsigned int j = 0; j < Hltplacement.size(); j++) {
466 value = nTotalAfterRecoCuts
471 error = nTotalAfterRecoCuts ?
sqrt(value * (1 - value) / nTotalAfterRecoCuts) : 0;
475 if (Hltplacement[j] != -1) {
476 hHltEffSorted_reco[Hltplacement[j]]->
setBinLabel(Hltbincounter_reco[Hltplacement[j]] + 1,
477 hHlt_reco->GetXaxis()->GetBinLabel(j + 1));
478 hHltEffSorted_reco[Hltplacement[j]]->
setBinContent(Hltbincounter_reco[Hltplacement[j]] + 1,
479 hHlt_reco->GetBinContent(j + 1));
480 hHltEffSorted_reco[Hltplacement[j]]->
setBinEntries(Hltbincounter_reco[Hltplacement[j]] + 1, 1);
481 hHltEffSorted_reco[Hltplacement[j]]->
setBinError(Hltbincounter_reco[Hltplacement[j]] + 1,
482 hHlt_reco->GetBinError(j + 1));
483 ++Hltbincounter_reco[Hltplacement[j]];
486 if (nHltbins !=
int(Hltplacement.size())) {
487 value = nTotalAfterRecoCuts
492 error = nTotalAfterRecoCuts ?
sqrt(value * (1 - value) / nTotalAfterRecoCuts) : 0;
495 hHltEffAfterRecoCuts->
setBinError(nHltbins, error);
497 LogDebug(
"HltSusyExoPostProcessor") <<
"MonitorElements filled";
500 int pt_bins = 100, eta_bins = 100;
501 double pt_floor = 0., pt_ceiling = 200., eta_floor = -3.5, eta_ceiling = 3.5;
504 "Pt_1_ByEvent",
"Turn on as a Function of P_{t}, |Eta|<1.2, By Event", pt_bins, pt_floor, pt_ceiling);
506 "Eta_1_ByEvent",
"Efficiency as a Function of Eta, P_{t}>0, By Event", eta_bins, eta_floor, eta_ceiling);
508 "Pt_2_ByEvent",
"Turn on as a Function of P_{t}, 1.2<|Eta|<2.1, By Event", pt_bins, pt_floor, pt_ceiling);
510 "Eta_2_ByEvent",
"Efficiency as a Function of Eta, P_{t}>10, By Event", eta_bins, eta_floor, eta_ceiling);
512 "Pt_3_ByEvent",
"Turn on as a Function of P_{t}, |Eta|>2.1, By Event", pt_bins, pt_floor, pt_ceiling);
514 "Eta_3_ByEvent",
"Efficiency as a Function of Eta, P_{t}>20, By Event", eta_bins, eta_floor, eta_ceiling);
517 "Pt_1_ByMuon",
"Turn on as a Function of P_{t}, |Eta|<1.2, By Muon", pt_bins, pt_floor, pt_ceiling);
519 "Eta_1_ByMuon",
"Efficiency as a Function of Eta, P_{t}>0, By Muon", eta_bins, eta_floor, eta_ceiling);
521 "Pt_2_ByMuon",
"Turn on as a Function of P_{t}, 1.2<|Eta|<2.1, By Muon", pt_bins, pt_floor, pt_ceiling);
523 "Eta_2_ByMuon",
"Efficiency as a Function of Eta, P_{t}>10, By Muon", eta_bins, eta_floor, eta_ceiling);
525 "Pt_3_ByMuon",
"Turn on as a Function of P_{t}, |Eta|>2.1, By Muon", pt_bins, pt_floor, pt_ceiling);
527 "Eta_3_ByMuon",
"Efficiency as a Function of Eta, P_{t}>20, By Muon", eta_bins, eta_floor, eta_ceiling);
532 double value = (n2 != 0 ? n1 / n2 : 0);
533 double error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
539 value = (n2 != 0 ? n1 / n2 : 0);
540 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
546 value = (n2 != 0 ? n1 / n2 : 0);
547 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
553 value = (n2 != 0 ? n1 / n2 : 0);
554 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
560 value = (n2 != 0 ? n1 / n2 : 0);
561 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
567 value = (n2 != 0 ? n1 / n2 : 0);
568 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
573 for (
int i = 1;
i <= hEta_1_ByEvent->
getNbinsX(); ++
i) {
576 double value = (n2 != 0 ? n1 / n2 : 0);
577 double error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
583 value = (n2 != 0 ? n1 / n2 : 0);
584 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
590 value = (n2 != 0 ? n1 / n2 : 0);
591 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
597 value = (n2 != 0 ? n1 / n2 : 0);
598 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
604 value = (n2 != 0 ? n1 / n2 : 0);
605 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
611 value = (n2 != 0 ? n1 / n2 : 0);
612 error = (n2 != 0 ?
sqrt(value * (1 - value) / n2) : 0);
625 histo->GetXaxis()->GetNbins(),
626 histo->GetXaxis()->GetXmin(),
627 histo->GetXaxis()->GetXmax(),
634 new TProfile(name.c_str(),
636 histo->GetXaxis()->GetNbins(),
637 histo->GetXaxis()->GetXmin(),
638 histo->GetXaxis()->GetXmax()));
640 for (
int i = 0;
i < histo->GetXaxis()->GetNbins();
i++) {
641 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)
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)
void setCurrentFolder(std::string const &fullpath)
std::vector< edm::ParameterSet > mc_parametersets
#define DEFINE_FWK_MODULE(type)
void setCurrentFolder(std::string const &fullpath)
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
MonitorElement * get(std::string const &path)
void setTitle(const std::string &title)
set (ie. change) histogram/profile title
std::vector< std::string > reco_dirs
std::string const & pwd()
bool dirExists(std::string const &path)
MonitorElement * bookEffMEProfileFromTH1(TH1F *, std::string, DQMStore::IBooker &)
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