@@ -41,11 +41,17 @@ class ElectronEfficiencyPlotter : public DQMEDHarvester {
4141 const std::string ID_;
4242 const std::string theFolder_;
4343 const std::string sourceFolder_;
44+ const std::vector<std::string> vtriggerSelection_;
4445
45- MonitorElement *h_eff_pt_EB_doubleEG_HLT;
46- MonitorElement *h_eff_pt_EE_doubleEG_HLT;
47- MonitorElement *h_eff_pt_EB_singlePhoton_HLT;
48- MonitorElement *h_eff_pt_EE_singlePhoton_HLT;
46+
47+ std::vector<MonitorElement*> h_eff_sctel_leading_pt_EB;
48+ std::vector<MonitorElement*> h_eff_sctel_leading_pt_EE;
49+ std::vector<MonitorElement*> h_eff_patel_leading_pt_EB;
50+ std::vector<MonitorElement*> h_eff_patel_leading_pt_EE;
51+ std::vector<MonitorElement*> h_eff_sctel_subleading_pt_EB;
52+ std::vector<MonitorElement*> h_eff_sctel_subleading_pt_EE;
53+ std::vector<MonitorElement*> h_eff_patel_subleading_pt_EB;
54+ std::vector<MonitorElement*> h_eff_patel_subleading_pt_EE;
4955
5056 void calculateEfficiency (MonitorElement *Numerator, MonitorElement *Denominator, MonitorElement *Efficiency);
5157};
@@ -60,66 +66,178 @@ ElectronEfficiencyPlotter::ElectronEfficiencyPlotter(const edm::ParameterSet &ps
6066 ptMax_{ps.getParameter <double >(" ptMax" )},
6167 ID_{ps.getParameter <string>(" sctElectronID" )},
6268 theFolder_{ps.getParameter <string>(" folder" )},
63- sourceFolder_{ps.getParameter <string>(" srcFolder" )} {}
69+ sourceFolder_{ps.getParameter <string>(" srcFolder" )},
70+ vtriggerSelection_{ps.getParameter <std::vector<string>>(" triggerSelection" )} {}
6471
6572void ElectronEfficiencyPlotter::fillDescriptions (edm::ConfigurationDescriptions &descriptions) {
6673 edm::ParameterSetDescription desc;
6774 desc.add <int >(" ptBin" , 5 );
6875 desc.add <double >(" ptMin" , 0 );
6976 desc.add <double >(" ptMax" , 100 );
70- desc.add <string>(" sctElectronID" , {});
71- desc.add <string>(" folder" , {});
72- desc.add <string>(" srcFolder" , {});
77+ desc.add <std::string>(" sctElectronID" , {});
78+ desc.add <std::string>(" folder" , {});
79+ desc.add <std::string>(" srcFolder" , {});
80+ desc.add <std::vector<std::string>>(" triggerSelection" , {});
7381 descriptions.addWithDefaultLabel (desc);
7482}
7583
7684void ElectronEfficiencyPlotter::dqmEndJob (DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) {
7785 ibooker.setCurrentFolder (theFolder_);
7886
79- h_eff_pt_EB_doubleEG_HLT =
80- ibooker.book1D (" Eff_pt_barrel_DSTdoubleEG" , " DSTdoubleEG Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_);
81- h_eff_pt_EE_doubleEG_HLT =
82- ibooker.book1D (" Eff_pt_endcap_DSTdoubleEG" , " DSTdoubleEG Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_);
83- h_eff_pt_EB_singlePhoton_HLT =
84- ibooker.book1D (" Eff_pt_barrel_DSTsinglePhoton" , " DSTsinglePhoton Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_);
85- h_eff_pt_EE_singlePhoton_HLT =
86- ibooker.book1D (" Eff_pt_endcap_DSTsinglePhoton" , " DSTsinglePhoton Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_);
87-
88- // Axis title
89- h_eff_pt_EB_singlePhoton_HLT->setAxisTitle (" p_{T} (GeV)" , 1 );
90- h_eff_pt_EE_singlePhoton_HLT->setAxisTitle (" p_{T} (GeV)" , 1 );
91- h_eff_pt_EB_doubleEG_HLT->setAxisTitle (" p_{T} (GeV)" , 1 );
92- h_eff_pt_EE_doubleEG_HLT->setAxisTitle (" p_{T} (GeV)" , 1 );
93-
94- MonitorElement *Numerator_pt_barrel_doubleEG_hlt =
95- igetter.get (sourceFolder_ +
96- " /resonanceZ_Tag_pat_Probe_sctElectron_passDoubleEG_DST_"
97- " fireTrigObj_Pt_Barrel" );
98- MonitorElement *Numerator_pt_endcap_doubleEG_hlt =
99- igetter.get (sourceFolder_ +
100- " /resonanceZ_Tag_pat_Probe_sctElectron_passDoubleEG_DST_"
101- " fireTrigObj_Pt_Endcap" );
102- MonitorElement *Numerator_pt_barrel_singlePhoton_hlt =
103- igetter.get (sourceFolder_ +
104- " /resonanceZ_Tag_pat_Probe_sctElectron_passSinglePhoton_DST_"
105- " fireTrigObj_Pt_Barrel" );
106- MonitorElement *Numerator_pt_endcap_singlePhoton_hlt =
107- igetter.get (sourceFolder_ +
108- " /resonanceZ_Tag_pat_Probe_sctElectron_passSinglePhoton_DST_"
109- " fireTrigObj_Pt_Endcap" );
110- MonitorElement *Denominator_pt_barrel =
111- igetter.get (sourceFolder_ + " /resonanceZ_Tag_pat_Probe_sctElectron_Pt_Barrel" );
112- MonitorElement *Denominator_pt_endcap =
113- igetter.get (sourceFolder_ + " /resonanceZ_Tag_pat_Probe_sctElectron_Pt_Endcap" );
114-
115- if (Numerator_pt_barrel_doubleEG_hlt && Denominator_pt_barrel)
116- calculateEfficiency (Numerator_pt_barrel_doubleEG_hlt, Denominator_pt_barrel, h_eff_pt_EB_doubleEG_HLT);
117- if (Numerator_pt_endcap_doubleEG_hlt && Denominator_pt_endcap)
118- calculateEfficiency (Numerator_pt_endcap_doubleEG_hlt, Denominator_pt_endcap, h_eff_pt_EE_doubleEG_HLT);
119- if (Numerator_pt_barrel_singlePhoton_hlt && Denominator_pt_barrel)
120- calculateEfficiency (Numerator_pt_barrel_singlePhoton_hlt, Denominator_pt_barrel, h_eff_pt_EB_singlePhoton_HLT);
121- if (Numerator_pt_endcap_singlePhoton_hlt && Denominator_pt_endcap)
122- calculateEfficiency (Numerator_pt_endcap_singlePhoton_hlt, Denominator_pt_endcap, h_eff_pt_EE_singlePhoton_HLT);
87+ int iPicture = 0 ;
88+ for (auto const &vt : vtriggerSelection_){
89+ std::string cleaned_vt = vt;
90+ cleaned_vt.erase (std::remove (cleaned_vt.begin (), cleaned_vt.end (), ' *' ), cleaned_vt.end ());
91+
92+ // Leading Electron
93+ h_eff_sctel_leading_pt_EB.push_back (
94+ ibooker.book1D (" Eff_sctElectron_leading_pt_barrel_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_)
95+ );
96+ h_eff_sctel_leading_pt_EE.push_back (
97+ ibooker.book1D (" Eff_sctElectron_leading_pt_endcap_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_)
98+ );
99+ h_eff_patel_leading_pt_EB.push_back (
100+ ibooker.book1D (" Eff_patElectron_leading_pt_barrel_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_)
101+ );
102+ h_eff_patel_leading_pt_EE.push_back (
103+ ibooker.book1D (" Eff_patElectron_leading_pt_endcap_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_)
104+ );
105+ h_eff_sctel_subleading_pt_EB.push_back (
106+ ibooker.book1D (" Eff_sctElectron_subleading_pt_barrel_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_)
107+ );
108+ h_eff_sctel_subleading_pt_EE.push_back (
109+ ibooker.book1D (" Eff_sctElectron_subleading_pt_endcap_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_)
110+ );
111+ h_eff_patel_subleading_pt_EB.push_back (
112+ ibooker.book1D (" Eff_patElectron_subleading_pt_barrel_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (barrel)" , ptBin_, ptMin_, ptMax_)
113+ );
114+ h_eff_patel_subleading_pt_EE.push_back (
115+ ibooker.book1D (" Eff_patElectron_subleading_pt_endcap_" + cleaned_vt, cleaned_vt + " Eff. vs Pt (endcap)" , ptBin_, ptMin_, ptMax_)
116+ );
117+
118+
119+ h_eff_sctel_leading_pt_EB.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
120+ h_eff_sctel_leading_pt_EE.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
121+ h_eff_patel_leading_pt_EB.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
122+ h_eff_patel_leading_pt_EE.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
123+ h_eff_sctel_subleading_pt_EB.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
124+ h_eff_sctel_subleading_pt_EE.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
125+ h_eff_patel_subleading_pt_EB.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
126+ h_eff_patel_subleading_pt_EE.at (iPicture)->setAxisTitle (" p_{T} (GeV)" , 1 );
127+
128+
129+
130+ MonitorElement *Numerator_sctel_leading_pt_barrel =
131+ igetter.get (sourceFolder_ +
132+ " /resonanceZ_Tag_pat_Probe_sctElectron_leading_Pt_Barrel_pass" +
133+ cleaned_vt +
134+ " _fireTrigObj"
135+ );
136+ MonitorElement *Denominator_sctel_leading_pt_barrel =
137+ igetter.get (sourceFolder_ +
138+ " /resonanceZ_Tag_pat_Probe_sctElectron_leading_Pt_Barrel_passBaseDST"
139+ );
140+ if (Numerator_sctel_leading_pt_barrel && Denominator_sctel_leading_pt_barrel)
141+ calculateEfficiency (Numerator_sctel_leading_pt_barrel, Denominator_sctel_leading_pt_barrel, h_eff_sctel_leading_pt_EB.at (iPicture));
142+
143+
144+ MonitorElement *Numerator_sctel_leading_pt_endcap =
145+ igetter.get (sourceFolder_ +
146+ " /resonanceZ_Tag_pat_Probe_sctElectron_leading_Pt_Endcap_pass" +
147+ cleaned_vt +
148+ " _fireTrigObj"
149+ );
150+ MonitorElement *Denominator_sctel_leading_pt_endcap =
151+ igetter.get (sourceFolder_ +
152+ " /resonanceZ_Tag_pat_Probe_sctElectron_leading_Pt_Endcap_passBaseDST"
153+ );
154+ if (Numerator_sctel_leading_pt_endcap && Denominator_sctel_leading_pt_endcap)
155+ calculateEfficiency (Numerator_sctel_leading_pt_endcap, Denominator_sctel_leading_pt_endcap, h_eff_sctel_leading_pt_EE.at (iPicture));
156+
157+ MonitorElement *Numerator_sctel_subleading_pt_barrel =
158+ igetter.get (sourceFolder_ +
159+ " /resonanceZ_Tag_pat_Probe_sctElectron_subleading_Pt_Barrel_pass" +
160+ cleaned_vt +
161+ " _fireTrigObj"
162+ );
163+ MonitorElement *Denominator_sctel_subleading_pt_barrel =
164+ igetter.get (sourceFolder_ +
165+ " /resonanceZ_Tag_pat_Probe_sctElectron_subleading_Pt_Barrel_passBaseDST"
166+ );
167+ if (Numerator_sctel_subleading_pt_barrel && Denominator_sctel_subleading_pt_barrel)
168+ calculateEfficiency (Numerator_sctel_subleading_pt_barrel, Denominator_sctel_subleading_pt_barrel, h_eff_sctel_subleading_pt_EB.at (iPicture));
169+
170+
171+ MonitorElement *Numerator_sctel_subleading_pt_endcap =
172+ igetter.get (sourceFolder_ +
173+ " /resonanceZ_Tag_pat_Probe_sctElectron_subleading_Pt_Endcap_pass" +
174+ cleaned_vt +
175+ " _fireTrigObj"
176+ );
177+ MonitorElement *Denominator_sctel_subleading_pt_endcap =
178+ igetter.get (sourceFolder_ +
179+ " /resonanceZ_Tag_pat_Probe_sctElectron_subleading_Pt_Endcap_passBaseDST"
180+ );
181+ if (Numerator_sctel_subleading_pt_endcap && Denominator_sctel_subleading_pt_endcap)
182+ calculateEfficiency (Numerator_sctel_subleading_pt_endcap, Denominator_sctel_subleading_pt_endcap, h_eff_sctel_subleading_pt_EE.at (iPicture));
183+
184+ MonitorElement *Numerator_patel_leading_pt_barrel =
185+ igetter.get (sourceFolder_ +
186+ " /resonanceZ_Tag_pat_Probe_patElectron_leading_Pt_Barrel_pass" +
187+ cleaned_vt +
188+ " _fireTrigObj"
189+ );
190+ MonitorElement *Denominator_patel_leading_pt_barrel =
191+ igetter.get (sourceFolder_ +
192+ " /resonanceZ_Tag_pat_Probe_patElectron_leading_Pt_Barrel_passBaseDST"
193+ );
194+ if (Numerator_patel_leading_pt_barrel && Denominator_patel_leading_pt_barrel)
195+ calculateEfficiency (Numerator_patel_leading_pt_barrel, Denominator_patel_leading_pt_barrel, h_eff_patel_leading_pt_EB.at (iPicture));
196+
197+
198+ MonitorElement *Numerator_patel_leading_pt_endcap =
199+ igetter.get (sourceFolder_ +
200+ " /resonanceZ_Tag_pat_Probe_patElectron_leading_Pt_Endcap_pass" +
201+ cleaned_vt +
202+ " _fireTrigObj"
203+ );
204+ MonitorElement *Denominator_patel_leading_pt_endcap =
205+ igetter.get (sourceFolder_ +
206+ " /resonanceZ_Tag_pat_Probe_patElectron_leading_Pt_Endcap_passBaseDST"
207+ );
208+ if (Numerator_patel_leading_pt_endcap && Denominator_patel_leading_pt_endcap)
209+ calculateEfficiency (Numerator_patel_leading_pt_endcap, Denominator_patel_leading_pt_endcap, h_eff_patel_leading_pt_EE.at (iPicture));
210+
211+ MonitorElement *Numerator_patel_subleading_pt_barrel =
212+ igetter.get (sourceFolder_ +
213+ " /resonanceZ_Tag_pat_Probe_patElectron_subleading_Pt_Barrel_pass" +
214+ cleaned_vt +
215+ " _fireTrigObj"
216+ );
217+ MonitorElement *Denominator_patel_subleading_pt_barrel =
218+ igetter.get (sourceFolder_ +
219+ " /resonanceZ_Tag_pat_Probe_patElectron_subleading_Pt_Barrel_passBaseDST"
220+ );
221+ if (Numerator_patel_subleading_pt_barrel && Denominator_patel_subleading_pt_barrel)
222+ calculateEfficiency (Numerator_patel_subleading_pt_barrel, Denominator_patel_subleading_pt_barrel, h_eff_patel_subleading_pt_EB.at (iPicture));
223+
224+
225+ MonitorElement *Numerator_patel_subleading_pt_endcap =
226+ igetter.get (sourceFolder_ +
227+ " /resonanceZ_Tag_pat_Probe_patElectron_subleading_Pt_Endcap_pass" +
228+ cleaned_vt +
229+ " _fireTrigObj"
230+ );
231+ MonitorElement *Denominator_patel_subleading_pt_endcap =
232+ igetter.get (sourceFolder_ +
233+ " /resonanceZ_Tag_pat_Probe_patElectron_subleading_Pt_Endcap_passBaseDST"
234+ );
235+ if (Numerator_patel_subleading_pt_endcap && Denominator_patel_subleading_pt_endcap)
236+ calculateEfficiency (Numerator_patel_subleading_pt_endcap, Denominator_patel_subleading_pt_endcap, h_eff_patel_subleading_pt_EE.at (iPicture));
237+
238+
239+ iPicture += 1 ;
240+ }
123241}
124242
125243void ElectronEfficiencyPlotter::calculateEfficiency (MonitorElement *Numerator,
0 commit comments