34 cout <<
"TriggerMatchEfficiencyPlotter(): Constructor " << endl;
38 triggerhistName1_ =
parameters.getParameter<
string>(
"triggerhistName1");
39 triggerhistName2_ =
parameters.getParameter<
string>(
"triggerhistName2");
40 theFolder =
parameters.getParameter<
string>(
"folder");
48 h_eff_Path1_eta_tight = ibooker.
book1D(
49 "matchingEff_eta_" + triggerhistName1_ +
"_tight", triggerhistName1_ +
":matching Eff. vs #eta", 8, -2.5, 2.5);
50 h_eff_Path1_pt_tight = ibooker.
book1D(
51 "matchingEff_pt_" + triggerhistName1_ +
"_tight", triggerhistName1_ +
":matching Eff. vs pt", 10, 20, 220);
52 h_eff_Path1_phi_tight = ibooker.
book1D(
53 "matchingEff_phi_" + triggerhistName1_ +
"_tight", triggerhistName1_ +
":matching Eff. vs #phi", 8, -3.0, 3.0);
54 h_eff_Path2_eta_tight = ibooker.
book1D(
55 "matchingEff_eta_" + triggerhistName2_ +
"_tight", triggerhistName2_ +
":matching Eff. vs #eta", 8, -2.5, 2.5);
56 h_eff_Path2_pt_tight = ibooker.
book1D(
57 "matchingEff_pt_" + triggerhistName2_ +
"_tight", triggerhistName2_ +
":matching Eff. vs pt", 10, 20, 220);
58 h_eff_Path2_phi_tight = ibooker.
book1D(
59 "matchingEff_phi_" + triggerhistName2_ +
"_tight", triggerhistName2_ +
":matching Eff. vs #phi", 8, -3.0, 3.0);
63 h_eff_Path1_pt_tight->setEfficiencyFlag();
64 h_eff_Path1_phi_tight->setEfficiencyFlag();
65 h_eff_Path2_eta_tight->setEfficiencyFlag();
66 h_eff_Path2_pt_tight->setEfficiencyFlag();
67 h_eff_Path2_phi_tight->setEfficiencyFlag();
70 h_eff_Path1_eta_tight->setAxisTitle(
"#eta", 1);
71 h_eff_Path1_pt_tight->setAxisTitle(
"pt", 1);
72 h_eff_Path1_phi_tight->setAxisTitle(
"#phi", 1);
73 h_eff_Path2_eta_tight->setAxisTitle(
"#eta", 1);
74 h_eff_Path2_pt_tight->setAxisTitle(
"pt", 1);
75 h_eff_Path2_phi_tight->setAxisTitle(
"#phi", 1);
78 string inputdir =
"Muons_miniAOD/TriggerMatchMonitor/EfficiencyInput";
79 string numpath_eta_path1 = inputdir +
"/passHLT" + triggerhistName1_ +
"_eta_Tight";
80 string denpath_eta_path1 = inputdir +
"/totalHLT" + triggerhistName1_ +
"_eta_Tight";
82 string numpath_pt_path1 = inputdir +
"/passHLT" + triggerhistName1_ +
"_pt_Tight";
83 string denpath_pt_path1 = inputdir +
"/totalHLT" + triggerhistName1_ +
"_pt_Tight";
85 string numpath_phi_path1 = inputdir +
"/passHLT" + triggerhistName1_ +
"_phi_Tight";
86 string denpath_phi_path1 = inputdir +
"/totalHLT" + triggerhistName1_ +
"_phi_Tight";
88 string numpath_eta_path2 = inputdir +
"/passHLT" + triggerhistName2_ +
"_eta_Tight";
89 string denpath_eta_path2 = inputdir +
"/totalHLT" + triggerhistName2_ +
"_eta_Tight";
91 string numpath_pt_path2 = inputdir +
"/passHLT" + triggerhistName2_ +
"_pt_Tight";
92 string denpath_pt_path2 = inputdir +
"/totalHLT" + triggerhistName2_ +
"_pt_Tight";
94 string numpath_phi_path2 = inputdir +
"/passHLT" + triggerhistName2_ +
"_phi_Tight";
95 string denpath_phi_path2 = inputdir +
"/totalHLT" + triggerhistName2_ +
"_phi_Tight";
115 if (Numerator_eta_path1 && Denominator_eta_path1) {
116 TH1F *h_numerator_eta_path1 = Numerator_eta_path1->
getTH1F();
117 TH1F *h_denominator_eta_path1 = Denominator_eta_path1->
getTH1F();
118 TH1F *h_eff_eta_path1 = h_eff_Path1_eta_tight->getTH1F();
120 if (h_eff_eta_path1->GetSumw2N() == 0)
121 h_eff_eta_path1->Sumw2();
122 h_eff_eta_path1->Divide(h_numerator_eta_path1, h_denominator_eta_path1, 1., 1.,
"B");
125 if (Numerator_pt_path1 && Denominator_pt_path1) {
126 TH1F *h_numerator_pt_path1 = Numerator_pt_path1->
getTH1F();
127 TH1F *h_denominator_pt_path1 = Denominator_pt_path1->
getTH1F();
128 TH1F *h_eff_pt_path1 = h_eff_Path1_pt_tight->getTH1F();
130 if (h_eff_pt_path1->GetSumw2N() == 0)
131 h_eff_pt_path1->Sumw2();
132 h_eff_pt_path1->Divide(h_numerator_pt_path1, h_denominator_pt_path1, 1., 1.,
"B");
135 if (Numerator_phi_path1 && Denominator_phi_path1) {
136 TH1F *h_numerator_phi_path1 = Numerator_phi_path1->
getTH1F();
137 TH1F *h_denominator_phi_path1 = Denominator_phi_path1->
getTH1F();
138 TH1F *h_eff_phi_path1 = h_eff_Path1_phi_tight->getTH1F();
140 if (h_eff_phi_path1->GetSumw2N() == 0)
141 h_eff_phi_path1->Sumw2();
142 h_eff_phi_path1->Divide(h_numerator_phi_path1, h_denominator_phi_path1, 1., 1.,
"B");
146 if (Numerator_eta_path2 && Denominator_eta_path2) {
147 TH1F *h_numerator_eta_path2 = Numerator_eta_path2->
getTH1F();
148 TH1F *h_denominator_eta_path2 = Denominator_eta_path2->
getTH1F();
149 TH1F *h_eff_eta_path2 = h_eff_Path2_eta_tight->getTH1F();
151 if (h_eff_eta_path2->GetSumw2N() == 0)
152 h_eff_eta_path2->Sumw2();
153 h_eff_eta_path2->Divide(h_numerator_eta_path2, h_denominator_eta_path2, 1., 1.,
"B");
156 if (Numerator_pt_path2 && Denominator_pt_path2) {
157 TH1F *h_numerator_pt_path2 = Numerator_pt_path2->
getTH1F();
158 TH1F *h_denominator_pt_path2 = Denominator_pt_path2->
getTH1F();
159 TH1F *h_eff_pt_path2 = h_eff_Path2_pt_tight->getTH1F();
161 if (h_eff_pt_path2->GetSumw2N() == 0)
162 h_eff_pt_path2->Sumw2();
163 h_eff_pt_path2->Divide(h_numerator_pt_path2, h_denominator_pt_path2, 1., 1.,
"B");
166 if (Numerator_phi_path2 && Denominator_phi_path2) {
167 TH1F *h_numerator_phi_path2 = Numerator_phi_path2->
getTH1F();
168 TH1F *h_denominator_phi_path2 = Denominator_phi_path2->
getTH1F();
169 TH1F *h_eff_phi_path2 = h_eff_Path2_phi_tight->getTH1F();
171 if (h_eff_phi_path2->GetSumw2N() == 0)
172 h_eff_phi_path2->Sumw2();
173 h_eff_phi_path2->Divide(h_numerator_phi_path2, h_denominator_phi_path2, 1., 1.,
"B");
virtual void setCurrentFolder(std::string const &fullpath)
~TriggerMatchEfficiencyPlotter() override
Destructor.
virtual TH1F * getTH1F() const
TriggerMatchEfficiencyPlotter(const edm::ParameterSet &ps)
Constructor.
virtual MonitorElement * get(std::string const &fullpath) const
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
DQM Client Diagnostic.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())