CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElectronMcSignalValidator.cc
Go to the documentation of this file.
1 
2 // user include files
4 
6 
8 
18 
21 
24 
31 
32 #include "CLHEP/Units/GlobalPhysicalConstants.h"
33 #include "TMath.h"
34 #include "TFile.h"
35 #include "TH1F.h"
36 #include "TH1I.h"
37 #include "TH2F.h"
38 #include "TProfile.h"
39 #include "TTree.h"
40 #include <vector>
41 #include <iostream>
42 #include <typeinfo>
43 
44 using namespace reco;
45 
47  mcTruthCollection_ = consumes<reco::GenParticleCollection>(conf.getParameter<edm::InputTag>("mcTruthCollection"));
48  electronCollection_ = consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollection"));
50  consumes<reco::GsfElectronCoreCollection>(conf.getParameter<edm::InputTag>("electronCoreCollection"));
52  consumes<reco::GsfTrackCollection>(conf.getParameter<edm::InputTag>("electronTrackCollection"));
54  consumes<reco::ElectronSeedCollection>(conf.getParameter<edm::InputTag>("electronSeedCollection"));
55  /* new 03/02/2015 */
57  consumes<reco::VertexCollection>(conf.getParameter<edm::InputTag>("offlinePrimaryVertices"));
58  /* fin new */
59  beamSpotTag_ = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpot"));
60 
61  readAOD_ = conf.getParameter<bool>("readAOD");
62 
63  isoFromDepsTk03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk03"));
64  isoFromDepsTk04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk04"));
66  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull03"));
68  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull04"));
70  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced03"));
72  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced04"));
73  isoFromDepsHcal03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal03"));
74  isoFromDepsHcal04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal04"));
75 
76  maxPt_ = conf.getParameter<double>("MaxPt");
77  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
78  deltaR_ = conf.getParameter<double>("DeltaR");
79  deltaR2_ = deltaR_ * deltaR_;
80  matchingIDs_ = conf.getParameter<std::vector<int> >("MatchingID");
81  matchingMotherIDs_ = conf.getParameter<std::vector<int> >("MatchingMotherID");
82  inputFile_ = conf.getParameter<std::string>("InputFile");
83  outputFile_ = conf.getParameter<std::string>("OutputFile");
84  inputInternalPath_ = conf.getParameter<std::string>("InputFolderName");
85  outputInternalPath_ = conf.getParameter<std::string>("OutputFolderName");
86 
87  // histos bining and limits
88 
89  edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg");
90 
91  xyz_nbin = histosSet.getParameter<int>("Nbinxyz");
92 
93  p_nbin = histosSet.getParameter<int>("Nbinp");
94  p2D_nbin = histosSet.getParameter<int>("Nbinp2D");
95  p_max = histosSet.getParameter<double>("Pmax");
96 
97  pt_nbin = histosSet.getParameter<int>("Nbinpt");
98  pt2D_nbin = histosSet.getParameter<int>("Nbinpt2D");
99  pteff_nbin = histosSet.getParameter<int>("Nbinpteff");
100  pt_max = histosSet.getParameter<double>("Ptmax");
101 
102  fhits_nbin = histosSet.getParameter<int>("Nbinfhits");
103  fhits_max = histosSet.getParameter<double>("Fhitsmax");
104 
105  lhits_nbin = histosSet.getParameter<int>("Nbinlhits");
106  lhits_max = histosSet.getParameter<double>("Lhitsmax");
107 
108  eop_nbin = histosSet.getParameter<int>("Nbineop");
109  eop2D_nbin = histosSet.getParameter<int>("Nbineop2D");
110  eop_max = histosSet.getParameter<double>("Eopmax");
111  eopmaxsht = histosSet.getParameter<double>("Eopmaxsht");
112 
113  eta_nbin = histosSet.getParameter<int>("Nbineta");
114  eta2D_nbin = histosSet.getParameter<int>("Nbineta2D");
115  eta_min = histosSet.getParameter<double>("Etamin");
116  eta_max = histosSet.getParameter<double>("Etamax");
117 
118  deta_nbin = histosSet.getParameter<int>("Nbindeta");
119  deta_min = histosSet.getParameter<double>("Detamin");
120  deta_max = histosSet.getParameter<double>("Detamax");
121 
122  phi_nbin = histosSet.getParameter<int>("Nbinphi");
123  phi2D_nbin = histosSet.getParameter<int>("Nbinphi2D");
124  phi_min = histosSet.getParameter<double>("Phimin");
125  phi_max = histosSet.getParameter<double>("Phimax");
126 
127  detamatch_nbin = histosSet.getParameter<int>("Nbindetamatch");
128  detamatch2D_nbin = histosSet.getParameter<int>("Nbindetamatch2D");
129  detamatch_min = histosSet.getParameter<double>("Detamatchmin");
130  detamatch_max = histosSet.getParameter<double>("Detamatchmax");
131 
132  dphi_nbin = histosSet.getParameter<int>("Nbindphi");
133  dphi_min = histosSet.getParameter<double>("Dphimin");
134  dphi_max = histosSet.getParameter<double>("Dphimax");
135 
136  dphimatch_nbin = histosSet.getParameter<int>("Nbindphimatch");
137  dphimatch2D_nbin = histosSet.getParameter<int>("Nbindphimatch2D");
138  dphimatch_min = histosSet.getParameter<double>("Dphimatchmin");
139  dphimatch_max = histosSet.getParameter<double>("Dphimatchmax");
140 
141  poptrue_nbin = histosSet.getParameter<int>("Nbinpoptrue");
142  poptrue_min = histosSet.getParameter<double>("Poptruemin");
143  poptrue_max = histosSet.getParameter<double>("Poptruemax");
144 
145  mee_nbin = histosSet.getParameter<int>("Nbinmee");
146  mee_min = histosSet.getParameter<double>("Meemin");
147  mee_max = histosSet.getParameter<double>("Meemax");
148 
149  hoe_nbin = histosSet.getParameter<int>("Nbinhoe");
150  hoe_min = histosSet.getParameter<double>("Hoemin");
151  hoe_max = histosSet.getParameter<double>("Hoemax");
152 
153  error_nbin = histosSet.getParameter<int>("Nbinerror");
154  enerror_max = histosSet.getParameter<double>("Energyerrormax");
155 
156  set_EfficiencyFlag = histosSet.getParameter<bool>("EfficiencyFlag");
157  set_StatOverflowFlag = histosSet.getParameter<bool>("StatOverflowFlag");
158 
159  // so to please coverity...
160  h1_mcNum = nullptr;
161  h1_eleNum = nullptr;
162  h1_gamNum = nullptr;
163 
164  h1_recEleNum = nullptr;
165  h1_recCoreNum = nullptr;
166  h1_recTrackNum = nullptr;
167  h1_recSeedNum = nullptr;
168  h1_recOfflineVertices = nullptr;
169 
170  h1_mc_Eta = nullptr;
171  h1_mc_AbsEta = nullptr;
172  h1_mc_P = nullptr;
173  h1_mc_Pt = nullptr;
174  h1_mc_Phi = nullptr;
175  h1_mc_Z = nullptr;
176  h2_mc_PtEta = nullptr;
177 
178  h1_mc_Eta_matched = nullptr;
179  h1_mc_AbsEta_matched = nullptr;
180  h1_mc_Pt_matched = nullptr;
181  h1_mc_Phi_matched = nullptr;
182  h1_mc_Z_matched = nullptr;
183  h2_mc_PtEta_matched = nullptr;
184 
185  h1_mc_Eta_matched_qmisid = nullptr;
186  h1_mc_AbsEta_matched_qmisid = nullptr;
187  h1_mc_Pt_matched_qmisid = nullptr;
188  h1_mc_Phi_matched_qmisid = nullptr;
189  h1_mc_Z_matched_qmisid = nullptr;
190 
191  h1_ele_EoverP_all = nullptr;
192  h1_ele_EoverP_all_barrel = nullptr;
193  h1_ele_EoverP_all_endcaps = nullptr;
194  h1_ele_EseedOP_all = nullptr;
195  h1_ele_EseedOP_all_barrel = nullptr;
196  h1_ele_EseedOP_all_endcaps = nullptr;
197  h1_ele_EoPout_all = nullptr;
198  h1_ele_EoPout_all_barrel = nullptr;
199  h1_ele_EoPout_all_endcaps = nullptr;
200  h1_ele_EeleOPout_all = nullptr;
201  h1_ele_EeleOPout_all_barrel = nullptr;
203  h1_ele_dEtaSc_propVtx_all = nullptr;
206  h1_ele_dPhiSc_propVtx_all = nullptr;
209  h1_ele_dEtaCl_propOut_all = nullptr;
212  h1_ele_dPhiCl_propOut_all = nullptr;
215  h1_ele_TIP_all = nullptr;
216  h1_ele_TIP_all_barrel = nullptr;
217  h1_ele_TIP_all_endcaps = nullptr;
218  h1_ele_HoE_all = nullptr;
219  h1_ele_HoE_all_barrel = nullptr;
220  h1_ele_HoE_all_endcaps = nullptr;
221  h1_ele_vertexEta_all = nullptr;
222  h1_ele_vertexPt_all = nullptr;
223  h1_ele_Et_all = nullptr;
224  h1_ele_mee_all = nullptr;
225  h1_ele_mee_os = nullptr;
226  h1_ele_mee_os_ebeb = nullptr;
227  h1_ele_mee_os_ebee = nullptr;
228  h1_ele_mee_os_eeee = nullptr;
229  h1_ele_mee_os_gg = nullptr;
230  h1_ele_mee_os_gb = nullptr;
231  h1_ele_mee_os_bb = nullptr;
232 
233  h2_ele_E2mnE1vsMee_all = nullptr;
234  h2_ele_E2mnE1vsMee_egeg_all = nullptr;
235 
236  h1_ele_charge = nullptr;
237  h2_ele_chargeVsEta = nullptr;
238  h2_ele_chargeVsPhi = nullptr;
239  h2_ele_chargeVsPt = nullptr;
240  h1_ele_vertexP = nullptr;
241  h1_ele_vertexPt = nullptr;
242  h1_ele_vertexPt_nocut = nullptr;
243  h1_ele_Et = nullptr;
244  h2_ele_vertexPtVsEta = nullptr;
245  h2_ele_vertexPtVsPhi = nullptr;
246  h1_ele_vertexPt_5100 = nullptr;
247  h1_ele_vertexEta = nullptr;
248  h2_ele_vertexEtaVsPhi = nullptr;
249  h1_ele_vertexAbsEta = nullptr;
250  h1_ele_vertexPhi = nullptr;
251  h1_ele_vertexX = nullptr;
252  h1_ele_vertexY = nullptr;
253  h1_ele_vertexZ = nullptr;
254  h1_ele_vertexTIP = nullptr;
255  h2_ele_vertexTIPVsEta = nullptr;
256  h2_ele_vertexTIPVsPhi = nullptr;
257  h2_ele_vertexTIPVsPt = nullptr;
258 
259  h1_scl_En = nullptr;
260  h1_scl_EoEtrue_barrel = nullptr;
261  h1_scl_EoEtrue_endcaps = nullptr;
264  h1_scl_EoEtrue_ebeegap = nullptr;
267  h1_scl_EoEtrue_barrel_new = nullptr;
268  h1_scl_EoEtrue_endcaps_new = nullptr;
271  h1_scl_EoEtrue_ebeegap_new = nullptr;
273  h2_scl_EoEtrueVsrecOfflineVertices = nullptr; // new 2015.15.05
274  h2_scl_EoEtrueVsrecOfflineVertices_barrel = nullptr; // new 2015.15.05
275  h2_scl_EoEtrueVsrecOfflineVertices_endcaps = nullptr; // new 2015.15.05
277  h1_scl_Et = nullptr;
278  h2_scl_EtVsEta = nullptr;
279  h2_scl_EtVsPhi = nullptr;
280  h2_scl_EtaVsPhi = nullptr;
281  h1_scl_Eta = nullptr;
282  h1_scl_Phi = nullptr;
283  // h1_scl_ESFrac = 0 ;
284  h1_scl_ESFrac_endcaps = nullptr;
285 
286  h2_scl_EoEtruePfVsEg = nullptr;
287 
288  h1_scl_SigEtaEta = nullptr;
289  h1_scl_SigEtaEta_barrel = nullptr;
290  h1_scl_SigEtaEta_endcaps = nullptr;
291  h1_scl_SigIEtaIEta = nullptr;
292  h1_scl_SigIEtaIEta_barrel = nullptr;
293  h1_scl_SigIEtaIEta_endcaps = nullptr;
294  h1_scl_SigIEtaIEta_mAOD = nullptr;
300  h1_scl_E1x5 = nullptr;
301  h1_scl_E1x5_barrel = nullptr;
302  h1_scl_E1x5_endcaps = nullptr;
303  h1_scl_E2x5max = nullptr;
304  h1_scl_E2x5max_barrel = nullptr;
305  h1_scl_E2x5max_endcaps = nullptr;
306  h1_scl_E5x5 = nullptr;
307  h1_scl_E5x5_barrel = nullptr;
308  h1_scl_E5x5_endcaps = nullptr;
309  h1_scl_bcl_EtotoEtrue = nullptr;
312 
313  h1_ele_ambiguousTracks = nullptr;
314  h2_ele_ambiguousTracksVsEta = nullptr;
315  h2_ele_ambiguousTracksVsPhi = nullptr;
316  h2_ele_ambiguousTracksVsPt = nullptr;
317  h1_ele_foundHits = nullptr;
318  h1_ele_foundHits_barrel = nullptr;
319  h1_ele_foundHits_endcaps = nullptr;
320  h2_ele_foundHitsVsEta = nullptr;
321  h2_ele_foundHitsVsEta_mAOD = nullptr;
322  h2_ele_foundHitsVsPhi = nullptr;
323  h2_ele_foundHitsVsPt = nullptr;
324  h1_ele_lostHits = nullptr;
325  h1_ele_lostHits_barrel = nullptr;
326  h1_ele_lostHits_endcaps = nullptr;
327  h2_ele_lostHitsVsEta = nullptr;
328  h2_ele_lostHitsVsPhi = nullptr;
329  h2_ele_lostHitsVsPt = nullptr;
330  h1_ele_chi2 = nullptr;
331  h1_ele_chi2_barrel = nullptr;
332  h1_ele_chi2_endcaps = nullptr;
333  h2_ele_chi2VsEta = nullptr;
334  h2_ele_chi2VsPhi = nullptr;
335  h2_ele_chi2VsPt = nullptr;
336 
337  h1_ele_PoPtrue = nullptr;
338  h1_ele_PoPtrue_barrel = nullptr;
339  h1_ele_PoPtrue_endcaps = nullptr;
340 
341  h2_ele_PoPtrueVsEta = nullptr;
342  h2_ele_PoPtrueVsPhi = nullptr;
343  h2_ele_PoPtrueVsPt = nullptr;
344  h2_ele_sigmaIetaIetaVsPt = nullptr;
345 
350  h1_ele_PtoPttrue = nullptr;
351  h1_ele_PtoPttrue_barrel = nullptr;
352  h1_ele_PtoPttrue_endcaps = nullptr;
353  h1_ele_ChargeMnChargeTrue = nullptr;
354  h1_ele_EtaMnEtaTrue = nullptr;
355  h1_ele_EtaMnEtaTrue_barrel = nullptr;
356  h1_ele_EtaMnEtaTrue_endcaps = nullptr;
357  h2_ele_EtaMnEtaTrueVsEta = nullptr;
358  h2_ele_EtaMnEtaTrueVsPhi = nullptr;
359  h2_ele_EtaMnEtaTrueVsPt = nullptr;
360  h1_ele_PhiMnPhiTrue = nullptr;
361  h1_ele_PhiMnPhiTrue_barrel = nullptr;
362  h1_ele_PhiMnPhiTrue_endcaps = nullptr;
363  h1_ele_PhiMnPhiTrue2 = nullptr;
364  h2_ele_PhiMnPhiTrueVsEta = nullptr;
365  h2_ele_PhiMnPhiTrueVsPhi = nullptr;
366  h2_ele_PhiMnPhiTrueVsPt = nullptr;
367  h1_ele_PinMnPout = nullptr;
368  h1_ele_PinMnPout_mode = nullptr;
369  h2_ele_PinMnPoutVsEta_mode = nullptr;
370  h2_ele_PinMnPoutVsPhi_mode = nullptr;
371  h2_ele_PinMnPoutVsPt_mode = nullptr;
372  h2_ele_PinMnPoutVsE_mode = nullptr;
373  h2_ele_PinMnPoutVsChi2_mode = nullptr;
374 
375  h1_ele_outerP = nullptr;
376  h1_ele_outerP_mode = nullptr;
377  h2_ele_outerPVsEta_mode = nullptr;
378  h1_ele_outerPt = nullptr;
379  h1_ele_outerPt_mode = nullptr;
380  h2_ele_outerPtVsEta_mode = nullptr;
381  h2_ele_outerPtVsPhi_mode = nullptr;
382  h2_ele_outerPtVsPt_mode = nullptr;
383  h1_ele_EoP = nullptr;
384  h1_ele_EoP_barrel = nullptr;
385  h1_ele_EoP_endcaps = nullptr;
386  h2_ele_EoPVsEta = nullptr;
387  h2_ele_EoPVsPhi = nullptr;
388  h2_ele_EoPVsE = nullptr;
389  h1_ele_EseedOP = nullptr;
390  h1_ele_EseedOP_barrel = nullptr;
391  h1_ele_EseedOP_endcaps = nullptr;
392  h2_ele_EseedOPVsEta = nullptr;
393  h2_ele_EseedOPVsPhi = nullptr;
394  h2_ele_EseedOPVsE = nullptr;
395  h1_ele_EoPout = nullptr;
396  h1_ele_EoPout_barrel = nullptr;
397  h1_ele_EoPout_endcaps = nullptr;
398  h2_ele_EoPoutVsEta = nullptr;
399  h2_ele_EoPoutVsPhi = nullptr;
400  h2_ele_EoPoutVsE = nullptr;
401  h1_ele_EeleOPout = nullptr;
402  h1_ele_EeleOPout_barrel = nullptr;
403  h1_ele_EeleOPout_endcaps = nullptr;
404  h2_ele_EeleOPoutVsEta = nullptr;
405  h2_ele_EeleOPoutVsPhi = nullptr;
406  h2_ele_EeleOPoutVsE = nullptr;
407 
408  h1_ele_dEtaSc_propVtx = nullptr;
411  h1_ele_dEtaSc_propVtx_mAOD = nullptr;
414  h2_ele_dEtaScVsEta_propVtx = nullptr;
415  h2_ele_dEtaScVsPhi_propVtx = nullptr;
416  h2_ele_dEtaScVsPt_propVtx = nullptr;
417  h1_ele_dPhiSc_propVtx = nullptr;
420  h2_ele_dPhiScVsEta_propVtx = nullptr;
421  h2_ele_dPhiScVsPhi_propVtx = nullptr;
422  h2_ele_dPhiScVsPt_propVtx = nullptr;
423  h1_ele_dEtaCl_propOut = nullptr;
426  h2_ele_dEtaClVsEta_propOut = nullptr;
427  h2_ele_dEtaClVsPhi_propOut = nullptr;
428  h2_ele_dEtaClVsPt_propOut = nullptr;
429  h1_ele_dPhiCl_propOut = nullptr;
432  h1_ele_dPhiCl_propOut_mAOD = nullptr;
435  h2_ele_dPhiClVsEta_propOut = nullptr;
436  h2_ele_dPhiClVsPhi_propOut = nullptr;
437  h2_ele_dPhiClVsPt_propOut = nullptr;
438  h1_ele_dEtaEleCl_propOut = nullptr;
444  h1_ele_dPhiEleCl_propOut = nullptr;
450 
451  h1_ele_seed_subdet2 = nullptr;
452  h1_ele_seed_mask = nullptr;
453  h1_ele_seed_mask_bpix = nullptr;
454  h1_ele_seed_mask_fpix = nullptr;
455  h1_ele_seed_mask_tec = nullptr;
456  h1_ele_seed_dphi2 = nullptr;
457  h2_ele_seed_dphi2VsEta = nullptr;
458  h2_ele_seed_dphi2VsPt = nullptr;
459  h1_ele_seed_dphi2pos = nullptr;
460  h2_ele_seed_dphi2posVsEta = nullptr;
461  h2_ele_seed_dphi2posVsPt = nullptr;
462  h1_ele_seed_drz2 = nullptr;
463  h2_ele_seed_drz2VsEta = nullptr;
464  h2_ele_seed_drz2VsPt = nullptr;
465  h1_ele_seed_drz2pos = nullptr;
466  h2_ele_seed_drz2posVsEta = nullptr;
467  h2_ele_seed_drz2posVsPt = nullptr;
468 
469  h1_ele_classes = nullptr;
470  h1_ele_eta = nullptr;
471  h1_ele_eta_golden = nullptr;
472  h1_ele_eta_bbrem = nullptr;
473  h1_ele_eta_shower = nullptr;
474 
475  h1_ele_HoE = nullptr;
476  h1_ele_HoE_barrel = nullptr;
477  h1_ele_HoE_endcaps = nullptr;
478  h1_ele_HoE_fiducial = nullptr;
479  h2_ele_HoEVsEta = nullptr;
480  h2_ele_HoEVsPhi = nullptr;
481  h2_ele_HoEVsE = nullptr;
482  h1_ele_HoE_mAOD = nullptr;
483  h1_ele_HoE_mAOD_barrel = nullptr;
484  h1_ele_HoE_mAOD_endcaps = nullptr;
485 
486  h1_ele_fbrem = nullptr;
487  h1_ele_fbrem_barrel = nullptr;
488  h1_ele_fbrem_endcaps = nullptr;
489  p1_ele_fbremVsEta_mode = nullptr;
490  p1_ele_fbremVsEta_mean = nullptr;
491  h1_ele_fbrem_mAOD = nullptr;
492  h1_ele_fbrem_mAOD_barrel = nullptr;
493  h1_ele_fbrem_mAOD_endcaps = nullptr;
494  h1_ele_superclusterfbrem = nullptr;
495 
498  h2_ele_PinVsPoutGolden_mode = nullptr;
500  h2_ele_PinVsPoutGolden_mean = nullptr;
506  h1_scl_EoEtrueGolden_barrel = nullptr;
510 
511  h1_ele_mva = nullptr;
512  h1_ele_mva_isolated = nullptr;
513  h1_ele_provenance = nullptr;
514 
515  // isolation
516  h1_ele_tkSumPt_dr03 = nullptr;
517  h1_ele_tkSumPt_dr03_barrel = nullptr;
518  h1_ele_tkSumPt_dr03_endcaps = nullptr;
519  h1_ele_ecalRecHitSumEt_dr03 = nullptr;
526  h1_ele_tkSumPt_dr04 = nullptr;
527  h1_ele_tkSumPt_dr04_barrel = nullptr;
528  h1_ele_tkSumPt_dr04_endcaps = nullptr;
529  h1_ele_ecalRecHitSumEt_dr04 = nullptr;
536 
537  // conversions
538  h1_ele_convFlags = nullptr;
539  h1_ele_convFlags_all = nullptr;
540  h1_ele_convDist = nullptr;
541  h1_ele_convDist_all = nullptr;
542  h1_ele_convDcot = nullptr;
543  h1_ele_convDcot_all = nullptr;
544  h1_ele_convRadius = nullptr;
545  h1_ele_convRadius_all = nullptr;
546 
547  // PF
557 }
558 
561 
562  // prepareStore() ;
563  setBookIndex(-1);
564  setBookPrefix("h");
567 
568  // mc truth collections sizes
569  h1_mcNum = bookH1withSumw2(iBooker, "mcNum", "# mc particles", fhits_nbin, 0., fhits_max, "N_{gen}");
570  h1_eleNum = bookH1withSumw2(iBooker, "mcNum_ele", "# mc electrons", fhits_nbin, 0., fhits_max, "N_{gen ele}");
571  h1_gamNum = bookH1withSumw2(iBooker, "mcNum_gam", "# mc gammas", fhits_nbin, 0., fhits_max, "N_{gen #gamma}");
572 
573  // rec event collections sizes
574  h1_recEleNum = bookH1(iBooker, "recEleNum", "# rec electrons", 11, -0.5, 10.5, "N_{ele}");
575  h1_recCoreNum = bookH1(iBooker, "recCoreNum", "# rec electron cores", 21, -0.5, 20.5, "N_{core}");
576  h1_recTrackNum = bookH1(iBooker, "recTrackNum", "# rec gsf tracks", 41, -0.5, 40.5, "N_{track}");
577  h1_recSeedNum = bookH1(iBooker, "recSeedNum", "# rec electron seeds", 101, -0.5, 100.5, "N_{seed}");
579  bookH1(iBooker, "recOfflineVertices", "# rec Offline Primary Vertices", 81, -0.5, 161.5, "N_{Vertices}");
581  "scl_EoEtrueVsrecOfflineVertices",
582  "E/Etrue vs number of primary vertices",
583  10,
584  0.,
585  50.,
586  50,
587  0.,
588  2.5,
589  "N_{primary vertices}",
590  "E/E_{true}");
592  "scl_EoEtrueVsrecOfflineVertices_barrel",
593  "E/Etrue vs number of primary , barrel",
594  10,
595  0.,
596  50.,
597  50,
598  0.,
599  2.5,
600  "N_{primary vertices}",
601  "E/E_{true}");
603  "scl_EoEtrueVsrecOfflineVertices_endcaps",
604  "E/Etrue vs number of primary , endcaps",
605  10,
606  0.,
607  50.,
608  50,
609  0.,
610  2.5,
611  "N_{primary vertices}",
612  "E/E_{true}");
613 
614  // mc
615  setBookPrefix("h_mc");
616  h1_mc_Eta = bookH1withSumw2(iBooker, "Eta", "gen #eta", eta_nbin, eta_min, eta_max, "#eta");
617  h1_mc_AbsEta = bookH1withSumw2(iBooker, "AbsEta", "gen |#eta|", eta_nbin / 2, 0., eta_max);
618  h1_mc_P = bookH1withSumw2(iBooker, "P", "gen p", p_nbin, 0., p_max, "p (GeV/c)");
619  h1_mc_Pt = bookH1withSumw2(iBooker, "Pt", "gen pt", pteff_nbin, 5., pt_max);
620  h1_mc_Phi = bookH1withSumw2(iBooker, "Phi", "gen phi", phi_nbin, phi_min, phi_max);
621  h1_mc_Z = bookH1withSumw2(iBooker, "Z", "gen z ", xyz_nbin, -25, 25);
622  h2_mc_PtEta =
623  bookH2withSumw2(iBooker, "PtEta", "gen pt vs #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
624 
625  // all electrons
626  setBookPrefix("h_ele");
628  "EoverP_all",
629  "ele E/P_{vertex}, all reco electrons",
630  eop_nbin,
631  0.,
632  eop_max,
633  "E/P_{vertex}",
634  "Events",
635  "ELE_LOGY E1 P");
637  "EoverP_all_barrel",
638  "ele E/P_{vertex}, all reco electrons, barrel",
639  eop_nbin,
640  0.,
641  eop_max,
642  "E/P_{vertex}",
643  "Events",
644  "ELE_LOGY E1 P");
646  "EoverP_all_endcaps",
647  "ele E/P_{vertex}, all reco electrons, endcaps",
648  eop_nbin,
649  0.,
650  eop_max,
651  "E/P_{vertex}",
652  "Events",
653  "ELE_LOGY E1 P");
655  "EseedOP_all",
656  "ele E_{seed}/P_{vertex}, all reco electrons",
657  eop_nbin,
658  0.,
659  eop_max,
660  "E_{seed}/P_{vertex}",
661  "Events",
662  "ELE_LOGY E1 P");
664  "EseedOP_all_barrel",
665  "ele E_{seed}/P_{vertex}, all reco electrons, barrel",
666  eop_nbin,
667  0.,
668  eop_max,
669  "E_{seed}/P_{vertex}",
670  "Events",
671  "ELE_LOGY E1 P");
673  "EseedOP_all_endcaps",
674  "ele E_{seed}/P_{vertex}, all reco electrons, endcaps",
675  eop_nbin,
676  0.,
677  eop_max,
678  "E_{seed}/P_{vertex}",
679  "Events",
680  "ELE_LOGY E1 P");
682  "EoPout_all",
683  "ele E_{seed}/P_{out}, all reco electrons",
684  eop_nbin,
685  0.,
686  eop_max,
687  "E_{seed}/P_{out}",
688  "Events",
689  "ELE_LOGY E1 P");
691  "EoPout_all_barrel",
692  "ele E_{seed}/P_{out}, all reco electrons barrel",
693  eop_nbin,
694  0.,
695  eop_max,
696  "E_{seed}/P_{out}",
697  "Events",
698  "ELE_LOGY E1 P");
700  "EoPout_all_endcaps",
701  "ele E_{seed}/P_{out}, all reco electrons endcaps",
702  eop_nbin,
703  0.,
704  eop_max,
705  "E_{seed}/P_{out}",
706  "Events",
707  "ELE_LOGY E1 P");
709  "EeleOPout_all",
710  "ele E_{ele}/P_{out}, all reco electrons",
711  eop_nbin,
712  0.,
713  eop_max,
714  "E_{ele}/P_{out}",
715  "Events",
716  "ELE_LOGY E1 P");
718  "EeleOPout_all_barrel",
719  "ele E_{ele}/P_{out}, all reco electrons barrel",
720  eop_nbin,
721  0.,
722  eop_max,
723  "E_{ele}/P_{out}",
724  "Events",
725  "ELE_LOGY E1 P");
727  "EeleOPout_all_endcaps",
728  "ele E_{ele}/P_{out}, all reco electrons endcaps",
729  eop_nbin,
730  0.,
731  eop_max,
732  "E_{ele}/P_{out}",
733  "Events",
734  "ELE_LOGY E1 P");
736  "dEtaSc_propVtx_all",
737  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",
741  "#eta_{sc} - #eta_{tr}",
742  "Events",
743  "ELE_LOGY E1 P");
745  bookH1withSumw2(iBooker,
746  "dEtaSc_propVtx_all_barrel",
747  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel",
751  "#eta_{sc} - #eta_{tr}",
752  "Events",
753  "ELE_LOGY E1 P");
755  bookH1withSumw2(iBooker,
756  "dEtaSc_propVtx_all_endcaps",
757  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps",
761  "#eta_{sc} - #eta_{tr}",
762  "Events",
763  "ELE_LOGY E1 P");
765  "dPhiSc_propVtx_all",
766  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",
770  "#phi_{sc} - #phi_{tr} (rad)",
771  "Events",
772  "ELE_LOGY E1 P");
774  bookH1withSumw2(iBooker,
775  "dPhiSc_propVtx_all_barrel",
776  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel",
780  "#phi_{sc} - #phi_{tr} (rad)",
781  "Events",
782  "ELE_LOGY E1 P");
784  bookH1withSumw2(iBooker,
785  "dPhiSc_propVtx_all_endcaps",
786  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps",
790  "#phi_{sc} - #phi_{tr} (rad)",
791  "Events",
792  "ELE_LOGY E1 P");
794  "dEtaCl_propOut_all",
795  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",
799  "#eta_{sc} - #eta_{tr}",
800  "Events",
801  "ELE_LOGY E1 P");
803  bookH1withSumw2(iBooker,
804  "dEtaCl_propOut_all_barrel",
805  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel",
809  "#eta_{sc} - #eta_{tr}",
810  "Events",
811  "ELE_LOGY E1 P");
813  bookH1withSumw2(iBooker,
814  "dEtaCl_propOut_all_endcaps",
815  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps",
819  "#eta_{sc} - #eta_{tr}",
820  "Events",
821  "ELE_LOGY E1 P");
823  "dPhiCl_propOut_all",
824  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",
828  "#phi_{sc} - #phi_{tr} (rad)",
829  "Events",
830  "ELE_LOGY E1 P");
832  bookH1withSumw2(iBooker,
833  "dPhiCl_propOut_all_barrel",
834  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel",
838  "#phi_{sc} - #phi_{tr} (rad)",
839  "Events",
840  "ELE_LOGY E1 P");
842  bookH1withSumw2(iBooker,
843  "dPhiCl_propOut_all_endcaps",
844  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps",
848  "#phi_{sc} - #phi_{tr} (rad)",
849  "Events",
850  "ELE_LOGY E1 P");
852  "HoE_all",
853  "ele hadronic energy / em energy, all reco electrons",
854  hoe_nbin,
855  hoe_min,
856  hoe_max,
857  "H/E",
858  "Events",
859  "ELE_LOGY E1 P");
861  "HoE_all_barrel",
862  "ele hadronic energy / em energy, all reco electrons barrel",
863  hoe_nbin,
864  hoe_min,
865  hoe_max,
866  "H/E",
867  "Events",
868  "ELE_LOGY E1 P");
870  "HoE_all_endcaps",
871  "ele hadronic energy / em energy, all reco electrons endcaps",
872  hoe_nbin,
873  hoe_min,
874  hoe_max,
875  "H/E",
876  "Events",
877  "ELE_LOGY E1 P");
879  "HoE_bc_all",
880  "ele hadronic energy / em energy, all reco electrons, behind cluster",
881  hoe_nbin,
882  hoe_min,
883  hoe_max,
884  "H/E",
885  "Events",
886  "ELE_LOGY E1 P");
888  iBooker, "vertexPt_all", "ele p_{T}, all reco electrons", pteff_nbin, 5., pt_max, "", "Events", "ELE_LOGY E1 P");
889  h1_ele_Et_all = bookH1withSumw2(iBooker,
890  "Et_all",
891  "ele ecal E_{T}, all reco electrons",
892  pteff_nbin,
893  5.,
894  pt_max,
895  "E_{T} (GeV)",
896  "Events",
897  "ELE_LOGY E1 P");
899  "vertexEta_all",
900  "ele eta, all reco electrons",
901  eta_nbin,
902  eta_min,
903  eta_max,
904  "",
905  "Events",
906  "ELE_LOGY E1 P");
908  "TIP_all",
909  "ele vertex transverse radius, all reco electrons",
910  100,
911  0.,
912  0.2,
913  "r_{T} (cm)",
914  "Events",
915  "ELE_LOGY E1 P");
917  "TIP_all_barrel",
918  "ele vertex transverse radius, all reco electrons barrel",
919  100,
920  0.,
921  0.2,
922  "r_{T} (cm)",
923  "Events",
924  "ELE_LOGY E1 P");
926  "TIP_all_endcaps",
927  "ele vertex transverse radius, all reco electrons endcaps",
928  100,
929  0.,
930  0.2,
931  "r_{T} (cm)",
932  "Events",
933  "ELE_LOGY E1 P");
935  "mee_all",
936  "ele pairs invariant mass, all reco electrons",
937  mee_nbin,
938  mee_min,
939  mee_max,
940  "m_{ee} (GeV/c^{2})",
941  "Events",
942  "ELE_LOGY E1 P");
943  h1_ele_mee_os = bookH1withSumw2(iBooker,
944  "mee_os",
945  "ele pairs invariant mass, opp. sign",
946  mee_nbin,
947  mee_min,
948  mee_max,
949  "m_{e^{+}e^{-}} (GeV/c^{2})",
950  "Events",
951  "ELE_LOGY E1 P");
953  "mee_os_ebeb",
954  "ele pairs invariant mass, opp. sign, EB-EB",
955  mee_nbin,
956  mee_min,
957  mee_max,
958  "m_{e^{+}e^{-}} (GeV/c^{2})",
959  "Events",
960  "ELE_LOGY E1 P");
962  "mee_os_ebee",
963  "ele pairs invariant mass, opp. sign, EB-EE",
964  mee_nbin,
965  mee_min,
966  mee_max,
967  "m_{e^{+}e^{-}} (GeV/c^{2})",
968  "Events",
969  "ELE_LOGY E1 P");
971  "mee_os_eeee",
972  "ele pairs invariant mass, opp. sign, EE-EE",
973  mee_nbin,
974  mee_min,
975  mee_max,
976  "m_{e^{+}e^{-}} (GeV/c^{2})",
977  "Events",
978  "ELE_LOGY E1 P");
980  "mee_os_gg",
981  "ele pairs invariant mass, opp. sign, good-good",
982  mee_nbin,
983  mee_min,
984  mee_max,
985  "m_{e^{+}e^{-}} (GeV/c^{2})",
986  "Events",
987  "ELE_LOGY E1 P");
989  "mee_os_gb",
990  "ele pairs invariant mass, opp. sign, good-bad",
991  mee_nbin,
992  mee_min,
993  mee_max,
994  "m_{e^{+}e^{-}} (GeV/c^{2})",
995  "Events",
996  "ELE_LOGY E1 P");
998  "mee_os_bb",
999  "ele pairs invariant mass, opp. sign, bad-bad",
1000  mee_nbin,
1001  mee_min,
1002  mee_max,
1003  "m_{e^{+}e^{-}} (GeV/c^{2})",
1004  "Events",
1005  "ELE_LOGY E1 P");
1006 
1007  // duplicates
1008  h2_ele_E2mnE1vsMee_all = bookH2(iBooker,
1009  "E2mnE1vsMee_all",
1010  "E2 - E1 vs ele pairs invariant mass, all electrons",
1011  mee_nbin,
1012  mee_min,
1013  mee_max,
1014  100,
1015  -50.,
1016  50.,
1017  "m_{e^{+}e^{-}} (GeV/c^{2})",
1018  "E2 - E1 (GeV)");
1020  "E2mnE1vsMee_egeg_all",
1021  "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
1022  mee_nbin,
1023  mee_min,
1024  mee_max,
1025  100,
1026  -50.,
1027  50.,
1028  "m_{e^{+}e^{-}} (GeV/c^{2})",
1029  "E2 - E1 (GeV)");
1030 
1031  // charge ID
1033  bookH1withSumw2(iBooker, "ChargeMnChargeTrue", "ele charge - gen charge ", 5, -1., 4., "q_{rec} - q_{gen}");
1034  setBookPrefix("h_mc");
1036  bookH1withSumw2(iBooker, "Eta_matched_qmisid", "charge misid vs gen eta", eta_nbin, eta_min, eta_max);
1038  bookH1withSumw2(iBooker, "AbsEta_matched_qmisid", "charge misid vs gen |eta|", eta_nbin / 2, 0., eta_max);
1040  bookH1withSumw2(iBooker, "Pt_matched_qmisid", "charge misid vs gen transverse momentum", pteff_nbin, 5., pt_max);
1042  bookH1withSumw2(iBooker, "Phi_matched_qmisid", "charge misid vs gen phi", phi_nbin, phi_min, phi_max);
1043  h1_mc_Z_matched_qmisid = bookH1withSumw2(iBooker, "Z_matched_qmisid", "charge misid vs gen z", xyz_nbin, -25, 25);
1044 
1045  // matched electrons
1046  setBookPrefix("h_mc");
1047  h1_mc_Eta_matched = bookH1withSumw2(iBooker, "Eta_matched", "Efficiency vs gen eta", eta_nbin, eta_min, eta_max);
1049  bookH1withSumw2(iBooker, "AbsEta_matched", "Efficiency vs gen |eta|", eta_nbin / 2, 0., eta_max);
1050  h1_mc_Pt_matched = bookH1(iBooker, "Pt_matched", "Efficiency vs gen transverse momentum", pteff_nbin, 5., pt_max);
1051  h1_mc_Phi_matched = bookH1withSumw2(iBooker, "Phi_matched", "Efficiency vs gen phi", phi_nbin, phi_min, phi_max);
1052  h1_mc_Z_matched = bookH1withSumw2(iBooker, "Z_matched", "Efficiency vs gen vertex z", xyz_nbin, -25, 25);
1054  iBooker, "PtEta_matched", "Efficiency vs pt #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
1055  setBookPrefix("h_ele");
1056  h1_ele_charge = bookH1withSumw2(iBooker, "charge", "ele charge", 5, -2.5, 2.5, "charge");
1057  h2_ele_chargeVsEta = bookH2(iBooker, "chargeVsEta", "ele charge vs eta", eta2D_nbin, eta_min, eta_max, 5, -2., 2.);
1058  h2_ele_chargeVsPhi = bookH2(iBooker, "chargeVsPhi", "ele charge vs phi", phi2D_nbin, phi_min, phi_max, 5, -2., 2.);
1059  h2_ele_chargeVsPt = bookH2(iBooker, "chargeVsPt", "ele charge vs pt", pt_nbin, 0., 100., 5, -2., 2.);
1060  h1_ele_vertexP = bookH1withSumw2(iBooker, "vertexP", "ele momentum", p_nbin, 0., p_max, "p_{vertex} (GeV/c)");
1061  h1_ele_vertexPt =
1062  bookH1withSumw2(iBooker, "vertexPt", "ele transverse momentum", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1064  iBooker, "vertexPt_nocut", "pT of prunned electrons", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1065  h1_ele_Et = bookH1withSumw2(iBooker, "Et", "ele ecal E_{T}", pt_nbin, 0., pt_max, "E_{T} (GeV)");
1067  iBooker, "vertexPtVsEta", "ele transverse momentum vs eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 0., pt_max);
1069  iBooker, "vertexPtVsPhi", "ele transverse momentum vs phi", phi2D_nbin, phi_min, phi_max, pt2D_nbin, 0., pt_max);
1070  h1_ele_vertexEta = bookH1withSumw2(iBooker, "vertexEta", "ele momentum eta", eta_nbin, eta_min, eta_max, "#eta");
1072  iBooker, "vertexEtaVsPhi", "ele momentum eta vs phi", eta2D_nbin, eta_min, eta_max, phi2D_nbin, phi_min, phi_max);
1074  bookH1withSumw2(iBooker, "vertexPhi", "ele momentum #phi", phi_nbin, phi_min, phi_max, "#phi (rad)");
1075  h1_ele_vertexX = bookH1withSumw2(iBooker, "vertexX", "ele vertex x", xyz_nbin, -0.6, 0.6, "x (cm)");
1076  h1_ele_vertexY = bookH1withSumw2(iBooker, "vertexY", "ele vertex y", xyz_nbin, -0.6, 0.6, "y (cm)");
1077  h1_ele_vertexZ = bookH1withSumw2(iBooker, "vertexZ", "ele vertex z", xyz_nbin, -25, 25, "z (cm)");
1079  bookH1withSumw2(iBooker, "vertexTIP", "ele transverse impact parameter (wrt gen vtx)", 90, 0., 0.15, "TIP (cm)");
1080  h2_ele_vertexTIPVsEta = bookH2(iBooker,
1081  "vertexTIPVsEta",
1082  "ele transverse impact parameter (wrt gen vtx) vs eta",
1083  eta2D_nbin,
1084  eta_min,
1085  eta_max,
1086  45,
1087  0.,
1088  0.15,
1089  "#eta",
1090  "TIP (cm)");
1091  h2_ele_vertexTIPVsPhi = bookH2(iBooker,
1092  "vertexTIPVsPhi",
1093  "ele transverse impact parameter (wrt gen vtx) vs phi",
1094  phi2D_nbin,
1095  phi_min,
1096  phi_max,
1097  45,
1098  0.,
1099  0.15,
1100  "#phi (rad)",
1101  "TIP (cm)");
1102  h2_ele_vertexTIPVsPt = bookH2(iBooker,
1103  "vertexTIPVsPt",
1104  "ele transverse impact parameter (wrt gen vtx) vs transverse momentum",
1105  pt2D_nbin,
1106  0.,
1107  pt_max,
1108  45,
1109  0.,
1110  0.15,
1111  "p_{T} (GeV/c)",
1112  "TIP (cm)");
1114  iBooker, "PoPtrue", "ele momentum / gen momentum", poptrue_nbin, poptrue_min, poptrue_max, "P/P_{gen}");
1116  "PoPtrue_barrel",
1117  "ele momentum / gen momentum, barrel",
1118  poptrue_nbin,
1119  poptrue_min,
1120  poptrue_max,
1121  "P/P_{gen}");
1123  "PoPtrue_endcaps",
1124  "ele momentum / gen momentum, endcaps",
1125  poptrue_nbin,
1126  poptrue_min,
1127  poptrue_max,
1128  "P/P_{gen}");
1130  "PoPtrueVsEta",
1131  "ele momentum / gen momentum vs eta",
1132  eta2D_nbin,
1133  eta_min,
1134  eta_max,
1135  50,
1136  poptrue_min,
1137  poptrue_max);
1138  h2_ele_PoPtrueVsPhi = bookH2(iBooker,
1139  "PoPtrueVsPhi",
1140  "ele momentum / gen momentum vs phi",
1141  phi2D_nbin,
1142  phi_min,
1143  phi_max,
1144  50,
1145  poptrue_min,
1146  poptrue_max);
1148  iBooker, "PoPtrueVsPt", "ele momentum / gen momentum vs eta", pt2D_nbin, 0., pt_max, 50, poptrue_min, poptrue_max);
1149  // h2_ele_sigmaIetaIetaVsPt = bookH2(iBooker,"sigmaIetaIetaVsPt","SigmaIetaIeta vs pt",pt_nbin,0.,pt_max,100,0.,0.05);
1151  bookH2(iBooker, "sigmaIetaIetaVsPt", "SigmaIetaIeta vs pt", 100, 0., pt_max, 100, 0., 0.05);
1153  "PoPtrue_golden_barrel",
1154  "ele momentum / gen momentum, golden, barrel",
1155  poptrue_nbin,
1156  poptrue_min,
1157  poptrue_max,
1158  "P/P_{gen}");
1160  "PoPtrue_golden_endcaps",
1161  "ele momentum / gen momentum, golden, endcaps",
1162  poptrue_nbin,
1163  poptrue_min,
1164  poptrue_max,
1165  "P/P_{gen}");
1167  "PoPtrue_showering_barrel",
1168  "ele momentum / gen momentum, showering, barrel",
1169  poptrue_nbin,
1170  poptrue_min,
1171  poptrue_max,
1172  "P/P_{gen}");
1174  "PoPtrue_showering_endcaps",
1175  "ele momentum / gen momentum, showering, endcaps",
1176  poptrue_nbin,
1177  poptrue_min,
1178  poptrue_max,
1179  "P/P_{gen}");
1181  "PtoPttrue",
1182  "ele transverse momentum / gen transverse momentum",
1183  poptrue_nbin,
1184  poptrue_min,
1185  poptrue_max,
1186  "P_{T}/P_{T}^{gen}");
1188  "PtoPttrue_barrel",
1189  "ele transverse momentum / gen transverse momentum, barrel",
1190  poptrue_nbin,
1191  poptrue_min,
1192  poptrue_max,
1193  "P_{T}/P_{T}^{gen}");
1195  "PtoPttrue_endcaps",
1196  "ele transverse momentum / gen transverse momentum, endcaps",
1197  poptrue_nbin,
1198  poptrue_min,
1199  poptrue_max,
1200  "P_{T}/P_{T}^{gen}");
1202  iBooker, "EtaMnEtaTrue", "ele momentum eta - gen eta", deta_nbin, deta_min, deta_max, "#eta_{rec} - #eta_{gen}");
1204  "EtaMnEtaTrue_barrel",
1205  "ele momentum eta - gen eta barrel",
1206  deta_nbin,
1207  deta_min,
1208  deta_max,
1209  "#eta_{rec} - #eta_{gen}");
1211  "EtaMnEtaTrue_endcaps",
1212  "ele momentum eta - gen eta endcaps",
1213  deta_nbin,
1214  deta_min,
1215  deta_max,
1216  "#eta_{rec} - #eta_{gen}");
1217  h2_ele_EtaMnEtaTrueVsEta = bookH2(iBooker,
1218  "EtaMnEtaTrueVsEta",
1219  "ele momentum eta - gen eta vs eta",
1220  eta2D_nbin,
1221  eta_min,
1222  eta_max,
1223  deta_nbin / 2,
1224  deta_min,
1225  deta_max);
1226  h2_ele_EtaMnEtaTrueVsPhi = bookH2(iBooker,
1227  "EtaMnEtaTrueVsPhi",
1228  "ele momentum eta - gen eta vs phi",
1229  phi2D_nbin,
1230  phi_min,
1231  phi_max,
1232  deta_nbin / 2,
1233  deta_min,
1234  deta_max);
1235  h2_ele_EtaMnEtaTrueVsPt = bookH2(iBooker,
1236  "EtaMnEtaTrueVsPt",
1237  "ele momentum eta - gen eta vs pt",
1238  pt_nbin,
1239  0.,
1240  pt_max,
1241  deta_nbin / 2,
1242  deta_min,
1243  deta_max);
1245  "PhiMnPhiTrue",
1246  "ele momentum phi - gen phi",
1247  dphi_nbin,
1248  dphi_min,
1249  dphi_max,
1250  "#phi_{rec} - #phi_{gen} (rad)");
1252  "PhiMnPhiTrue_barrel",
1253  "ele momentum phi - gen phi barrel",
1254  dphi_nbin,
1255  dphi_min,
1256  dphi_max,
1257  "#phi_{rec} - #phi_{gen} (rad)");
1259  "PhiMnPhiTrue_endcaps",
1260  "ele momentum phi - gen phi endcaps",
1261  dphi_nbin,
1262  dphi_min,
1263  dphi_max,
1264  "#phi_{rec} - #phi_{gen} (rad)");
1266  bookH1(iBooker, "PhiMnPhiTrue2", "ele momentum phi - gen phi", dphimatch2D_nbin, dphimatch_min, dphimatch_max);
1267  h2_ele_PhiMnPhiTrueVsEta = bookH2(iBooker,
1268  "PhiMnPhiTrueVsEta",
1269  "ele momentum phi - gen phi vs eta",
1270  eta2D_nbin,
1271  eta_min,
1272  eta_max,
1273  dphi_nbin / 2,
1274  dphi_min,
1275  dphi_max);
1276  h2_ele_PhiMnPhiTrueVsPhi = bookH2(iBooker,
1277  "PhiMnPhiTrueVsPhi",
1278  "ele momentum phi - gen phi vs phi",
1279  phi2D_nbin,
1280  phi_min,
1281  phi_max,
1282  dphi_nbin / 2,
1283  dphi_min,
1284  dphi_max);
1285  h2_ele_PhiMnPhiTrueVsPt = bookH2(iBooker,
1286  "PhiMnPhiTrueVsPt",
1287  "ele momentum phi - gen phi vs pt",
1288  pt2D_nbin,
1289  0.,
1290  pt_max,
1291  dphi_nbin / 2,
1292  dphi_min,
1293  dphi_max);
1295  iBooker, "ecalEnergyError", "Regression estimate of the ECAL energy error", error_nbin, 0, enerror_max);
1297  iBooker, "ecalEnergyError_barrel", "Regression estimate of the ECAL energy error - barrel", 30, 0, 30);
1299  "ecalEnergyError_endcaps",
1300  "Regression estimate of the ECAL energy error - endcaps",
1301  error_nbin,
1302  0,
1303  enerror_max);
1305  iBooker, "combinedP4Error", "Estimated error on the combined momentum", error_nbin, 0, enerror_max);
1307  iBooker, "combinedP4Error_barrel", "Estimated error on the combined momentum - barrel", 30, 0, 30);
1309  "combinedP4Error_endcaps",
1310  "Estimated error on the combined momentum - endcaps",
1311  error_nbin,
1312  0,
1313  enerror_max);
1314 
1315  // matched electron, superclusters
1316  setBookPrefix("h_scl");
1317  h1_scl_En = bookH1withSumw2(iBooker, "energy", "ele ecal energy", p_nbin, 0., p_max);
1319  bookH1withSumw2(iBooker, "EoEtrue_barrel", "ele ecal energy / gen energy, barrel", 50, 0.2, 1.2, "E/E_{gen}");
1321  iBooker, "EoEtrue_barrel_etagap", "ele ecal energy / gen energy, barrel, etagap", 50, 0.2, 1.2, "E/E_{gen}");
1323  iBooker, "EoEtrue_barrel_phigap", "ele ecal energy / gen energy, barrel, phigap", 50, 0.2, 1.2, "E/E_{gen}");
1325  bookH1withSumw2(iBooker, "EoEtrue_ebeegap", "ele ecal energy / gen energy, ebeegap", 50, 0.2, 1.2, "E/E_{gen}");
1327  bookH1withSumw2(iBooker, "EoEtrue_endcaps", "ele ecal energy / gen energy, endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1329  iBooker, "EoEtrue_endcaps_deegap", "ele ecal energy / gen energy, endcaps, deegap", 50, 0.2, 1.2, "E/E_{gen}");
1331  iBooker, "EoEtrue_endcaps_ringgap", "ele ecal energy / gen energy, endcaps, ringgap", 50, 0.2, 1.2, "E/E_{gen}");
1333  "EoEtrue_barrel_new",
1334  "ele ecal energy / gen energy, barrel",
1335  poptrue_nbin,
1336  poptrue_min,
1337  poptrue_max,
1338  "E/E_{gen}");
1340  "EoEtrue_barrel_new_etagap",
1341  "ele ecal energy / gen energy, barrel, etagap",
1342  poptrue_nbin,
1343  poptrue_min,
1344  poptrue_max,
1345  "E/E_{gen}");
1347  "EoEtrue_barrel_new_phigap",
1348  "ele ecal energy / gen energy, barrel, phigap",
1349  poptrue_nbin,
1350  poptrue_min,
1351  poptrue_max,
1352  "E/E_{gen}");
1354  "EoEtrue_ebeegap_new",
1355  "ele ecal energy / gen energy, ebeegap",
1356  poptrue_nbin,
1357  poptrue_min,
1358  poptrue_max,
1359  "E/E_{gen}");
1361  "EoEtrue_endcaps_new",
1362  "ele ecal energy / gen energy, endcaps",
1363  poptrue_nbin,
1364  poptrue_min,
1365  poptrue_max,
1366  "E/E_{gen}");
1368  "EoEtrue_endcaps_new_deegap",
1369  "ele ecal energy / gen energy, endcaps, deegap",
1370  poptrue_nbin,
1371  poptrue_min,
1372  poptrue_max,
1373  "E/E_{gen}");
1375  "EoEtrue_endcaps_new_ringgap",
1376  "ele ecal energy / gen energy, endcaps, ringgap",
1377  poptrue_nbin,
1378  poptrue_min,
1379  poptrue_max,
1380  "E/E_{gen}");
1381  h1_scl_Et = bookH1withSumw2(iBooker, "et", "ele supercluster transverse energy", pt_nbin, 0., pt_max);
1382  h2_scl_EtVsEta = bookH2(iBooker,
1383  "etVsEta",
1384  "ele supercluster transverse energy vs eta",
1385  eta2D_nbin,
1386  eta_min,
1387  eta_max,
1388  pt_nbin,
1389  0.,
1390  pt_max);
1391  h2_scl_EtVsPhi = bookH2(iBooker,
1392  "etVsPhi",
1393  "ele supercluster transverse energy vs phi",
1394  phi2D_nbin,
1395  phi_min,
1396  phi_max,
1397  pt_nbin,
1398  0.,
1399  pt_max);
1401  iBooker, "etaVsPhi", "ele supercluster eta vs phi", phi2D_nbin, phi_min, phi_max, eta2D_nbin, eta_min, eta_max);
1402  h1_scl_Eta = bookH1withSumw2(iBooker, "eta", "ele supercluster eta", eta_nbin, eta_min, eta_max);
1403  h1_scl_Phi = bookH1withSumw2(iBooker, "phi", "ele supercluster phi", phi_nbin, phi_min, phi_max);
1405  "sigetaeta",
1406  "ele supercluster sigma eta eta",
1407  100,
1408  0.,
1409  0.05,
1410  "#sigma_{#eta #eta}",
1411  "Events",
1412  "ELE_LOGY E1 P");
1414  "sigetaeta_barrel",
1415  "ele supercluster sigma eta eta barrel",
1416  100,
1417  0.,
1418  0.05,
1419  "#sigma_{#eta #eta}",
1420  "Events",
1421  "ELE_LOGY E1 P");
1423  "sigetaeta_endcaps",
1424  "ele supercluster sigma eta eta endcaps",
1425  100,
1426  0.,
1427  0.05,
1428  "#sigma_{#eta #eta}",
1429  "Events",
1430  "ELE_LOGY E1 P");
1432  "sigietaieta",
1433  "ele supercluster sigma ieta ieta",
1434  100,
1435  0.,
1436  0.05,
1437  "#sigma_{i#eta i#eta}",
1438  "Events",
1439  "ELE_LOGY E1 P");
1441  "sigietaieta_barrel",
1442  "ele supercluster sigma ieta ieta, barrel",
1443  100,
1444  0.,
1445  0.05,
1446  "#sigma_{i#eta i#eta}",
1447  "Events",
1448  "ELE_LOGY E1 P");
1450  "sigietaieta_endcaps",
1451  "ele supercluster sigma ieta ieta, endcaps",
1452  100,
1453  0.,
1454  0.05,
1455  "#sigma_{i#eta i#eta}",
1456  "Events",
1457  "ELE_LOGY E1 P");
1459  "SigIEtaIEta_mAOD",
1460  "ele supercluster sigma ieta ieta",
1461  100,
1462  0.,
1463  0.05,
1464  "#sigma_{i#eta i#eta}",
1465  "Events",
1466  "ELE_LOGY E1 P");
1468  "SigIEtaIEta_mAOD_barrel",
1469  "ele supercluster sigma ieta ieta, barrel",
1470  100,
1471  0.,
1472  0.05,
1473  "#sigma_{i#eta i#eta}",
1474  "Events",
1475  "ELE_LOGY E1 P");
1477  "SigIEtaIEta_mAOD_endcaps",
1478  "ele supercluster sigma ieta ieta, endcaps",
1479  100,
1480  0.,
1481  0.05,
1482  "#sigma_{i#eta i#eta}",
1483  "Events",
1484  "ELE_LOGY E1 P");
1486  "full5x5_sigietaieta",
1487  "ele supercluster full5x5 sigma ieta ieta",
1488  100,
1489  0.,
1490  0.05,
1491  "#sigma_{i#eta i#eta}",
1492  "Events",
1493  "ELE_LOGY E1 P");
1495  "full5x5_sigietaieta_barrel",
1496  "ele supercluster full5x5 sigma ieta ieta, barrel",
1497  100,
1498  0.,
1499  0.05,
1500  "#sigma_{i#eta i#eta}",
1501  "Events",
1502  "ELE_LOGY E1 P");
1504  "full5x5_sigietaieta_endcaps",
1505  "ele supercluster full5x5 sigma ieta ieta, endcaps",
1506  100,
1507  0.,
1508  0.05,
1509  "#sigma_{i#eta i#eta}",
1510  "Events",
1511  "ELE_LOGY E1 P");
1513  iBooker, "E1x5", "ele supercluster energy in 1x5", p_nbin, 0., p_max, "E1x5 (GeV)", "Events", "ELE_LOGY E1 P");
1515  "E1x5_barrel",
1516  "ele supercluster energy in 1x5 barrel",
1517  p_nbin,
1518  0.,
1519  p_max,
1520  "E1x5 (GeV)",
1521  "Events",
1522  "ELE_LOGY E1 P");
1524  "E1x5_endcaps",
1525  "ele supercluster energy in 1x5 endcaps",
1526  p_nbin,
1527  0.,
1528  p_max,
1529  "E1x5 (GeV)",
1530  "Events",
1531  "ELE_LOGY E1 P");
1532  h1_scl_E2x5max = bookH1withSumw2(iBooker,
1533  "E2x5max",
1534  "ele supercluster energy in 2x5 max",
1535  p_nbin,
1536  0.,
1537  p_max,
1538  "E2x5 (GeV)",
1539  "Events",
1540  "ELE_LOGY E1 P");
1542  "E2x5max_barrel",
1543  "ele supercluster energy in 2x5 _max barrel",
1544  p_nbin,
1545  0.,
1546  p_max,
1547  "E2x5 (GeV)",
1548  "Events",
1549  "ELE_LOGY E1 P");
1551  "E2x5max_endcaps",
1552  "ele supercluster energy in 2x5 _max endcaps",
1553  p_nbin,
1554  0.,
1555  p_max,
1556  "E2x5 (GeV)",
1557  "Events",
1558  "ELE_LOGY E1 P");
1560  iBooker, "E5x5", "ele supercluster energy in 5x5", p_nbin, 0., p_max, "E5x5 (GeV)", "Events", "ELE_LOGY E1 P");
1562  "E5x5_barrel",
1563  "ele supercluster energy in 5x5 barrel",
1564  p_nbin,
1565  0.,
1566  p_max,
1567  "E5x5 (GeV)",
1568  "Events",
1569  "ELE_LOGY E1 P");
1571  "E5x5_endcaps",
1572  "ele supercluster energy in 5x5 endcaps",
1573  p_nbin,
1574  0.,
1575  p_max,
1576  "E5x5 (GeV)",
1577  "Events",
1578  "ELE_LOGY E1 P");
1579  h2_scl_EoEtruePfVsEg = bookH2(iBooker,
1580  "EoEtruePfVsEg",
1581  "mean mustache SC/true energy vs final SC/true energy",
1582  75,
1583  -0.1,
1584  1.4,
1585  75,
1586  -0.1,
1587  1.4,
1588  "E_{final SC}/E_{gen}",
1589  "E_{mustache}/E_{gen}");
1591  bookH1withSumw2(iBooker, "bcl_EtotoEtrue", "Total basicclusters energy", 50, 0.2, 1.2, "E/E_{gen}");
1593  iBooker, "bcl_EtotoEtrue_barrel", "Total basicclusters energy , barrel", 50, 0.2, 1.2, "E/E_{gen}");
1595  iBooker, "bcl_EtotoEtrue_endcaps", "Total basicclusters energy , endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1596  // h1_scl_ESFrac = bookH1withSumw2(iBooker, "ESFrac","Preshower over SC raw energy",100,0.,0.8,"E_{PS} / E^{raw}_{SC}","Events","ELE_LOGY E1 P");
1598  "ESFrac_endcaps",
1599  "Preshower over SC raw energy , endcaps",
1600  100,
1601  0.,
1602  0.8,
1603  "E_{PS} / E^{raw}_{SC}",
1604  "Events",
1605  "ELE_LOGY E1 P");
1606 
1607  // matched electron, gsf tracks
1608  setBookPrefix("h_ele");
1610  "ambiguousTracks",
1611  "ele # ambiguous tracks",
1612  5,
1613  0.,
1614  5.,
1615  "N_{ambiguous tracks}",
1616  "Events",
1617  "ELE_LOGY E1 P");
1619  bookH2(iBooker, "ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", eta2D_nbin, eta_min, eta_max, 5, 0., 5.);
1621  bookH2(iBooker, "ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", phi2D_nbin, phi_min, phi_max, 5, 0., 5.);
1623  bookH2(iBooker, "ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", pt2D_nbin, 0., pt_max, 5, 0., 5.);
1625  bookH1withSumw2(iBooker, "foundHits", "ele track # found hits", fhits_nbin, 0., fhits_max, "N_{hits}");
1627  iBooker, "foundHits_barrel", "ele track # found hits, barrel", fhits_nbin, 0., fhits_max, "N_{hits}");
1629  iBooker, "foundHits_endcaps", "ele track # found hits, endcaps", fhits_nbin, 0., fhits_max, "N_{hits}");
1630  h2_ele_foundHitsVsEta = bookH2(iBooker,
1631  "foundHitsVsEta",
1632  "ele track # found hits vs eta",
1633  eta2D_nbin,
1634  eta_min,
1635  eta_max,
1636  fhits_nbin,
1637  0.,
1638  fhits_max);
1640  "foundHitsVsEta_mAOD",
1641  "ele track # found hits vs eta",
1642  eta2D_nbin,
1643  eta_min,
1644  eta_max,
1645  fhits_nbin,
1646  0.,
1647  fhits_max);
1648  h2_ele_foundHitsVsPhi = bookH2(iBooker,
1649  "foundHitsVsPhi",
1650  "ele track # found hits vs phi",
1651  phi2D_nbin,
1652  phi_min,
1653  phi_max,
1654  fhits_nbin,
1655  0.,
1656  fhits_max);
1658  iBooker, "foundHitsVsPt", "ele track # found hits vs pt", pt2D_nbin, 0., pt_max, fhits_nbin, 0., fhits_max);
1659  h1_ele_lostHits = bookH1withSumw2(iBooker, "lostHits", "ele track # lost hits", 5, 0., 5., "N_{lost hits}");
1661  bookH1withSumw2(iBooker, "lostHits_barrel", "ele track # lost hits, barrel", 5, 0., 5., "N_{lost hits}");
1663  bookH1withSumw2(iBooker, "lostHits_endcaps", "ele track # lost hits, endcaps", 5, 0., 5., "N_{lost hits}");
1665  iBooker, "lostHitsVsEta", "ele track # lost hits vs eta", eta2D_nbin, eta_min, eta_max, lhits_nbin, 0., lhits_max);
1667  iBooker, "lostHitsVsPhi", "ele track # lost hits vs eta", phi2D_nbin, phi_min, phi_max, lhits_nbin, 0., lhits_max);
1669  bookH2(iBooker, "lostHitsVsPt", "ele track # lost hits vs eta", pt2D_nbin, 0., pt_max, lhits_nbin, 0., lhits_max);
1670  h1_ele_chi2 =
1671  bookH1withSumw2(iBooker, "chi2", "ele track #chi^{2}", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1673  iBooker, "chi2_barrel", "ele track #chi^{2}, barrel", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1675  iBooker, "chi2_endcaps", "ele track #chi^{2}, endcaps", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1677  bookH2(iBooker, "chi2VsEta", "ele track #chi^{2} vs eta", eta2D_nbin, eta_min, eta_max, 50, 0., 15.);
1679  bookH2(iBooker, "chi2VsPhi", "ele track #chi^{2} vs phi", phi2D_nbin, phi_min, phi_max, 50, 0., 15.);
1680  h2_ele_chi2VsPt = bookH2(iBooker, "chi2VsPt", "ele track #chi^{2} vs pt", pt2D_nbin, 0., pt_max, 50, 0., 15.);
1682  "PinMnPout",
1683  "ele track inner p - outer p, mean of GSF components",
1684  p_nbin,
1685  0.,
1686  200.,
1687  "P_{vertex} - P_{out} (GeV/c)");
1689  "PinMnPout_mode",
1690  "ele track inner p - outer p, mode of GSF components",
1691  p_nbin,
1692  0.,
1693  100.,
1694  "P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
1696  "PinMnPoutVsEta_mode",
1697  "ele track inner p - outer p vs eta, mode of GSF components",
1698  eta2D_nbin,
1699  eta_min,
1700  eta_max,
1701  p2D_nbin,
1702  0.,
1703  100.);
1705  "PinMnPoutVsPhi_mode",
1706  "ele track inner p - outer p vs phi, mode of GSF components",
1707  phi2D_nbin,
1708  phi_min,
1709  phi_max,
1710  p2D_nbin,
1711  0.,
1712  100.);
1714  "PinMnPoutVsPt_mode",
1715  "ele track inner p - outer p vs pt, mode of GSF components",
1716  pt2D_nbin,
1717  0.,
1718  pt_max,
1719  p2D_nbin,
1720  0.,
1721  100.);
1722  h2_ele_PinMnPoutVsE_mode = bookH2(iBooker,
1723  "PinMnPoutVsE_mode",
1724  "ele track inner p - outer p vs E, mode of GSF components",
1725  p2D_nbin,
1726  0.,
1727  200.,
1728  p2D_nbin,
1729  0.,
1730  100.);
1732  "PinMnPoutVsChi2_mode",
1733  "ele track inner p - outer p vs track chi2, mode of GSF components",
1734  50,
1735  0.,
1736  20.,
1737  p2D_nbin,
1738  0.,
1739  100.);
1741  iBooker, "outerP", "ele track outer p, mean of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1743  iBooker, "outerP_mode", "ele track outer p, mode of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1745  bookH2(iBooker, "outerPVsEta_mode", "ele track outer p vs eta mode", eta2D_nbin, eta_min, eta_max, 50, 0., p_max);
1747  iBooker, "outerPt", "ele track outer p_{T}, mean of GSF components", pt_nbin, 0., pt_max, "P_{T out} (GeV/c)");
1749  "outerPt_mode",
1750  "ele track outer p_{T}, mode of GSF components",
1751  pt_nbin,
1752  0.,
1753  pt_max,
1754  "P_{T out} (GeV/c)");
1755  h2_ele_outerPtVsEta_mode = bookH2(iBooker,
1756  "outerPtVsEta_mode",
1757  "ele track outer p_{T} vs eta, mode of GSF components",
1758  eta2D_nbin,
1759  eta_min,
1760  eta_max,
1761  pt2D_nbin,
1762  0.,
1763  pt_max);
1764  h2_ele_outerPtVsPhi_mode = bookH2(iBooker,
1765  "outerPtVsPhi_mode",
1766  "ele track outer p_{T} vs phi, mode of GSF components",
1767  phi2D_nbin,
1768  phi_min,
1769  phi_max,
1770  pt2D_nbin,
1771  0.,
1772  pt_max);
1773  h2_ele_outerPtVsPt_mode = bookH2(iBooker,
1774  "outerPtVsPt_mode",
1775  "ele track outer p_{T} vs pt, mode of GSF components",
1776  pt2D_nbin,
1777  0.,
1778  100.,
1779  pt2D_nbin,
1780  0.,
1781  pt_max);
1782 
1783  // matched electrons, matching
1785  iBooker, "EoP", "ele E/P_{vertex}", eop_nbin, 0., eop_max, "E/P_{vertex}", "Events", "ELE_LOGY E1 P");
1787  "EoP_barrel",
1788  "ele E/P_{vertex} barrel",
1789  eop_nbin,
1790  0.,
1791  eop_max,
1792  "E/P_{vertex}",
1793  "Events",
1794  "ELE_LOGY E1 P");
1796  "EoP_endcaps",
1797  "ele E/P_{vertex} endcaps",
1798  eop_nbin,
1799  0.,
1800  eop_max,
1801  "E/P_{vertex}",
1802  "Events",
1803  "ELE_LOGY E1 P");
1804  h2_ele_EoPVsEta =
1805  bookH2(iBooker, "EoPVsEta", "ele E/P_{vertex} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1806  h2_ele_EoPVsPhi =
1807  bookH2(iBooker, "EoPVsPhi", "ele E/P_{vertex} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1808  h2_ele_EoPVsE = bookH2(iBooker, "EoPVsE", "ele E/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1809  h1_ele_EseedOP = bookH1withSumw2(iBooker,
1810  "EseedOP",
1811  "ele E_{seed}/P_{vertex}",
1812  eop_nbin,
1813  0.,
1814  eop_max,
1815  "E_{seed}/P_{vertex}",
1816  "Events",
1817  "ELE_LOGY E1 P");
1819  "EseedOP_barrel",
1820  "ele E_{seed}/P_{vertex} barrel",
1821  eop_nbin,
1822  0.,
1823  eop_max,
1824  "E_{seed}/P_{vertex}",
1825  "Events",
1826  "ELE_LOGY E1 P");
1828  "EseedOP_endcaps",
1829  "ele E_{seed}/P_{vertex} endcaps",
1830  eop_nbin,
1831  0.,
1832  eop_max,
1833  "E_{seed}/P_{vertex}",
1834  "Events",
1835  "ELE_LOGY E1 P");
1836  h2_ele_EseedOPVsEta = bookH2(iBooker,
1837  "EseedOPVsEta",
1838  "ele E_{seed}/P_{vertex} vs eta",
1839  eta2D_nbin,
1840  eta_min,
1841  eta_max,
1842  eop2D_nbin,
1843  0.,
1844  eopmaxsht);
1845  h2_ele_EseedOPVsPhi = bookH2(iBooker,
1846  "EseedOPVsPhi",
1847  "ele E_{seed}/P_{vertex} vs phi",
1848  phi2D_nbin,
1849  phi_min,
1850  phi_max,
1851  eop2D_nbin,
1852  0.,
1853  eopmaxsht);
1854  h2_ele_EseedOPVsE = bookH2(iBooker, "EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1856  iBooker, "EoPout", "ele E_{seed}/P_{out}", eop_nbin, 0., eop_max, "E_{seed}/P_{out}", "Events", "ELE_LOGY E1 P");
1858  "EoPout_barrel",
1859  "ele E_{seed}/P_{out} barrel",
1860  eop_nbin,
1861  0.,
1862  eop_max,
1863  "E_{seed}/P_{out}",
1864  "Events",
1865  "ELE_LOGY E1 P");
1867  "EoPout_endcaps",
1868  "ele E_{seed}/P_{out} endcaps",
1869  eop_nbin,
1870  0.,
1871  eop_max,
1872  "E_{seed}/P_{out}",
1873  "Events",
1874  "ELE_LOGY E1 P");
1876  iBooker, "EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1878  iBooker, "EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1880  bookH2(iBooker, "EoPoutVsE", "ele E_{seed}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1882  iBooker, "EeleOPout", "ele E_{ele}/P_{out}", eop_nbin, 0., eop_max, "E_{ele}/P_{out}", "Events", "ELE_LOGY E1 P");
1884  "EeleOPout_barrel",
1885  "ele E_{ele}/P_{out} barrel",
1886  eop_nbin,
1887  0.,
1888  eop_max,
1889  "E_{ele}/P_{out}",
1890  "Events",
1891  "ELE_LOGY E1 P");
1893  "EeleOPout_endcaps",
1894  "ele E_{ele}/P_{out} endcaps",
1895  eop_nbin,
1896  0.,
1897  eop_max,
1898  "E_{ele}/P_{out}",
1899  "Events",
1900  "ELE_LOGY E1 P");
1902  iBooker, "EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1904  iBooker, "EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1906  bookH2(iBooker, "EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1908  "dEtaSc_propVtx",
1909  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
1911  detamatch_min,
1912  detamatch_max,
1913  "#eta_{sc} - #eta_{tr}",
1914  "Events",
1915  "ELE_LOGY E1 P");
1917  "dEtaSc_propVtx_barrel",
1918  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1920  detamatch_min,
1921  detamatch_max,
1922  "#eta_{sc} - #eta_{tr}",
1923  "Events",
1924  "ELE_LOGY E1 P");
1926  "dEtaSc_propVtx_endcaps",
1927  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
1929  detamatch_min,
1930  detamatch_max,
1931  "#eta_{sc} - #eta_{tr}",
1932  "Events",
1933  "ELE_LOGY E1 P");
1935  "dEtaSc_propVtx_mAOD",
1936  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
1938  detamatch_min,
1939  detamatch_max,
1940  "#eta_{sc} - #eta_{tr}",
1941  "Events",
1942  "ELE_LOGY E1 P");
1944  "dEtaSc_propVtx_mAOD_barrel",
1945  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1947  detamatch_min,
1948  detamatch_max,
1949  "#eta_{sc} - #eta_{tr}",
1950  "Events",
1951  "ELE_LOGY E1 P");
1953  "dEtaSc_propVtx_mAOD_endcaps",
1954  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
1956  detamatch_min,
1957  detamatch_max,
1958  "#eta_{sc} - #eta_{tr}",
1959  "Events",
1960  "ELE_LOGY E1 P");
1962  "dEtaScVsEta_propVtx",
1963  "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
1964  eta2D_nbin,
1965  eta_min,
1966  eta_max,
1968  detamatch_min,
1969  detamatch_max);
1971  "dEtaScVsPhi_propVtx",
1972  "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
1973  phi2D_nbin,
1974  phi_min,
1975  phi_max,
1977  detamatch_min,
1978  detamatch_max);
1980  "dEtaScVsPt_propVtx",
1981  "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
1982  pt2D_nbin,
1983  0.,
1984  pt_max,
1986  detamatch_min,
1987  detamatch_max);
1989  "dPhiSc_propVtx",
1990  "ele #phi_{sc} - #phi_{tr}, prop from vertex",
1992  dphimatch_min,
1993  dphimatch_max,
1994  "#phi_{sc} - #phi_{tr} (rad)",
1995  "Events",
1996  "ELE_LOGY E1 P");
1998  "dPhiSc_propVtx_barrel",
1999  "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",
2001  dphimatch_min,
2002  dphimatch_max,
2003  "#phi_{sc} - #phi_{tr} (rad)",
2004  "Events",
2005  "ELE_LOGY E1 P");
2007  "dPhiSc_propVtx_endcaps",
2008  "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",
2010  dphimatch_min,
2011  dphimatch_max,
2012  "#phi_{sc} - #phi_{tr} (rad)",
2013  "Events",
2014  "ELE_LOGY E1 P");
2016  "dPhiScVsEta_propVtx",
2017  "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
2018  eta2D_nbin,
2019  eta_min,
2020  eta_max,
2022  dphimatch_min,
2023  dphimatch_max);
2025  "dPhiScVsPhi_propVtx",
2026  "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
2027  phi2D_nbin,
2028  phi_min,
2029  phi_max,
2031  dphimatch_min,
2032  dphimatch_max);
2034  "dPhiScVsPt_propVtx",
2035  "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
2036  pt2D_nbin,
2037  0.,
2038  pt_max,
2040  dphimatch_min,
2041  dphimatch_max);
2043  "dEtaCl_propOut",
2044  "ele #eta_{cl} - #eta_{tr}, prop from outermost",
2046  detamatch_min,
2047  detamatch_max,
2048  "#eta_{seedcl} - #eta_{tr}",
2049  "Events",
2050  "ELE_LOGY E1 P");
2052  "dEtaCl_propOut_barrel",
2053  "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",
2055  detamatch_min,
2056  detamatch_max,
2057  "#eta_{seedcl} - #eta_{tr}",
2058  "Events",
2059  "ELE_LOGY E1 P");
2061  "dEtaCl_propOut_endcaps",
2062  "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",
2064  detamatch_min,
2065  detamatch_max,
2066  "#eta_{seedcl} - #eta_{tr}",
2067  "Events",
2068  "ELE_LOGY E1 P");
2070  "dEtaClVsEta_propOut",
2071  "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
2072  eta2D_nbin,
2073  eta_min,
2074  eta_max,
2076  detamatch_min,
2077  detamatch_max);
2079  "dEtaClVsPhi_propOut",
2080  "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
2081  phi2D_nbin,
2082  phi_min,
2083  phi_max,
2085  detamatch_min,
2086  detamatch_max);
2088  "dEtaScVsPt_propOut",
2089  "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
2090  pt2D_nbin,
2091  0.,
2092  pt_max,
2094  detamatch_min,
2095  detamatch_max);
2097  "dPhiCl_propOut",
2098  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2100  dphimatch_min,
2101  dphimatch_max,
2102  "#phi_{seedcl} - #phi_{tr} (rad)",
2103  "Events",
2104  "ELE_LOGY E1 P");
2106  "dPhiCl_propOut_barrel",
2107  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2109  dphimatch_min,
2110  dphimatch_max,
2111  "#phi_{seedcl} - #phi_{tr} (rad)",
2112  "Events",
2113  "ELE_LOGY E1 P");
2115  "dPhiCl_propOut_endcaps",
2116  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2118  dphimatch_min,
2119  dphimatch_max,
2120  "#phi_{seedcl} - #phi_{tr} (rad)",
2121  "Events",
2122  "ELE_LOGY E1 P");
2124  "dPhiCl_propOut_mAOD",
2125  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2127  dphimatch_min,
2128  dphimatch_max,
2129  "#phi_{seedcl} - #phi_{tr} (rad)",
2130  "Events",
2131  "ELE_LOGY E1 P");
2133  "dPhiCl_propOut_mAOD_barrel",
2134  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2136  dphimatch_min,
2137  dphimatch_max,
2138  "#phi_{seedcl} - #phi_{tr} (rad)",
2139  "Events",
2140  "ELE_LOGY E1 P");
2142  "dPhiCl_propOut_mAOD_endcaps",
2143  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2145  dphimatch_min,
2146  dphimatch_max,
2147  "#phi_{seedcl} - #phi_{tr} (rad)",
2148  "Events",
2149  "ELE_LOGY E1 P");
2151  "dPhiClVsEta_propOut",
2152  "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
2153  eta2D_nbin,
2154  eta_min,
2155  eta_max,
2157  dphimatch_min,
2158  dphimatch_max);
2160  "dPhiClVsPhi_propOut",
2161  "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
2162  phi2D_nbin,
2163  phi_min,
2164  phi_max,
2166  dphimatch_min,
2167  dphimatch_max);
2169  "dPhiSClsPt_propOut",
2170  "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
2171  pt2D_nbin,
2172  0.,
2173  pt_max,
2175  dphimatch_min,
2176  dphimatch_max);
2178  "dEtaEleCl_propOut",
2179  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
2181  detamatch_min,
2182  detamatch_max,
2183  "#eta_{elecl} - #eta_{tr}",
2184  "Events",
2185  "ELE_LOGY E1 P");
2187  "dEtaEleCl_propOut_barrel",
2188  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",
2190  detamatch_min,
2191  detamatch_max,
2192  "#eta_{elecl} - #eta_{tr}",
2193  "Events",
2194  "ELE_LOGY E1 P");
2196  "dEtaEleCl_propOut_endcaps",
2197  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",
2199  detamatch_min,
2200  detamatch_max,
2201  "#eta_{elecl} - #eta_{tr}",
2202  "Events",
2203  "ELE_LOGY E1 P");
2205  "dEtaEleClVsEta_propOut",
2206  "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
2207  eta2D_nbin,
2208  eta_min,
2209  eta_max,
2211  detamatch_min,
2212  detamatch_max);
2214  "dEtaEleClVsPhi_propOut",
2215  "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
2216  phi2D_nbin,
2217  phi_min,
2218  phi_max,
2220  detamatch_min,
2221  detamatch_max);
2223  "dEtaScVsPt_propOut",
2224  "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
2225  pt2D_nbin,
2226  0.,
2227  pt_max,
2229  detamatch_min,
2230  detamatch_max);
2232  "dPhiEleCl_propOut",
2233  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
2235  dphimatch_min,
2236  dphimatch_max,
2237  "#phi_{elecl} - #phi_{tr} (rad)",
2238  "Events",
2239  "ELE_LOGY E1 P");
2241  "dPhiEleCl_propOut_barrel",
2242  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",
2244  dphimatch_min,
2245  dphimatch_max,
2246  "#phi_{elecl} - #phi_{tr} (rad)",
2247  "Events",
2248  "ELE_LOGY E1 P");
2250  "dPhiEleCl_propOut_endcaps",
2251  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",
2253  dphimatch_min,
2254  dphimatch_max,
2255  "#phi_{elecl} - #phi_{tr} (rad)",
2256  "Events",
2257  "ELE_LOGY E1 P");
2259  "dPhiEleClVsEta_propOut",
2260  "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
2261  eta2D_nbin,
2262  eta_min,
2263  eta_max,
2265  dphimatch_min,
2266  dphimatch_max);
2268  "dPhiEleClVsPhi_propOut",
2269  "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
2270  phi2D_nbin,
2271  phi_min,
2272  phi_max,
2274  dphimatch_min,
2275  dphimatch_max);
2277  "dPhiSEleClsPt_propOut",
2278  "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
2279  pt2D_nbin,
2280  0.,
2281  pt_max,
2283  dphimatch_min,
2284  dphimatch_max);
2286  iBooker, "HoE", "ele hadronic energy / em energy", hoe_nbin, hoe_min, hoe_max, "H/E", "Events", "ELE_LOGY E1 P");
2288  "HoE_barrel",
2289  "ele hadronic energy / em energy, barrel",
2290  hoe_nbin,
2291  hoe_min,
2292  hoe_max,
2293  "H/E",
2294  "Events",
2295  "ELE_LOGY E1 P");
2297  "HoE_endcaps",
2298  "ele hadronic energy / em energy, endcaps",
2299  hoe_nbin,
2300  hoe_min,
2301  hoe_max,
2302  "H/E",
2303  "Events",
2304  "ELE_LOGY E1 P");
2305  h1_ele_HoE_mAOD = bookH1withSumw2(iBooker,
2306  "HoE_mAOD",
2307  "ele hadronic energy / em energy",
2308  hoe_nbin,
2309  hoe_min,
2310  hoe_max,
2311  "H/E",
2312  "Events",
2313  "ELE_LOGY E1 P");
2315  "HoE_mAOD_barrel",
2316  "ele hadronic energy / em energy, barrel",
2317  hoe_nbin,
2318  hoe_min,
2319  hoe_max,
2320  "H/E",
2321  "Events",
2322  "ELE_LOGY E1 P");
2324  "HoE_mAOD_endcaps",
2325  "ele hadronic energy / em energy, endcaps",
2326  hoe_nbin,
2327  hoe_min,
2328  hoe_max,
2329  "H/E",
2330  "Events",
2331  "ELE_LOGY E1 P");
2332  h1_ele_HoE_bc = bookH1withSumw2(iBooker,
2333  "HoE_bc",
2334  "ele hadronic energy / em energy behind cluster",
2335  hoe_nbin,
2336  hoe_min,
2337  hoe_max,
2338  "H/E",
2339  "Events",
2340  "ELE_LOGY E1 P");
2342  "HoE_bc_barrel",
2343  "ele hadronic energy / em energy, behind cluster barrel",
2344  hoe_nbin,
2345  hoe_min,
2346  hoe_max,
2347  "H/E",
2348  "Events",
2349  "ELE_LOGY E1 P");
2351  "HoE_bc_endcaps",
2352  "ele hadronic energy / em energy, behind cluster, endcaps",
2353  hoe_nbin,
2354  hoe_min,
2355  hoe_max,
2356  "H/E",
2357  "Events",
2358  "ELE_LOGY E1 P");
2360  "hcalDepth1OverEcalBc",
2361  "hcalDepth1OverEcalBc",
2362  hoe_nbin,
2363  hoe_min,
2364  hoe_max,
2365  "H/E",
2366  "Events",
2367  "ELE_LOGY E1 P");
2369  "hcalDepth1OverEcalBc_barrel",
2370  "hcalDepth1OverEcalBc_barrel",
2371  hoe_nbin,
2372  hoe_min,
2373  hoe_max,
2374  "H/E",
2375  "Events",
2376  "ELE_LOGY E1 P");
2378  "hcalDepth1OverEcalBc_endcaps",
2379  "hcalDepth1OverEcalBc_endcaps",
2380  hoe_nbin,
2381  hoe_min,
2382  hoe_max,
2383  "H/E",
2384  "Events",
2385  "ELE_LOGY E1 P");
2387  "hcalDepth2OverEcalBc",
2388  "hcalDepth2OverEcalBc",
2389  hoe_nbin,
2390  hoe_min,
2391  hoe_max,
2392  "H/E",
2393  "Events",
2394  "ELE_LOGY E1 P");
2396  "hcalDepth2OverEcalBc_barrel",
2397  "hcalDepth2OverEcalBc_barrel",
2398  hoe_nbin,
2399  hoe_min,
2400  hoe_max,
2401  "H/E",
2402  "Events",
2403  "ELE_LOGY E1 P");
2405  "hcalDepth2OverEcalBc_endcaps",
2406  "hcalDepth2OverEcalBc_endcaps",
2407  hoe_nbin,
2408  hoe_min,
2409  hoe_max,
2410  "H/E",
2411  "Events",
2412  "ELE_LOGY E1 P");
2413 
2415  "HoE_fiducial",
2416  "ele hadronic energy / em energy, fiducial region",
2417  hoe_nbin,
2418  hoe_min,
2419  hoe_max,
2420  "H/E",
2421  "Events",
2422  "ELE_LOGY E1 P");
2423  h2_ele_HoEVsEta = bookH2(iBooker,
2424  "HoEVsEta",
2425  "ele hadronic energy / em energy vs eta",
2426  eta_nbin,
2427  eta_min,
2428  eta_max,
2429  hoe_nbin,
2430  hoe_min,
2431  hoe_max);
2432  h2_ele_HoEVsPhi = bookH2(iBooker,
2433  "HoEVsPhi",
2434  "ele hadronic energy / em energy vs phi",
2435  phi2D_nbin,
2436  phi_min,
2437  phi_max,
2438  hoe_nbin,
2439  hoe_min,
2440  hoe_max);
2441  h2_ele_HoEVsE =
2442  bookH2(iBooker, "HoEVsE", "ele hadronic energy / em energy vs E", p_nbin, 0., 300., hoe_nbin, hoe_min, hoe_max);
2443 
2444  // seeds
2446  bookH1withSumw2(iBooker, "seedSubdet2", "ele seed subdet 2nd layer", 11, -0.5, 10.5, "2nd hit subdet Id");
2447  h1_ele_seed_mask = bookH1withSumw2(iBooker, "seedMask", "ele seed hits mask", 13, -0.5, 12.5);
2449  bookH1withSumw2(iBooker, "seedMask_Bpix", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
2451  bookH1withSumw2(iBooker, "seedMask_Fpix", "ele seed hits mask when subdet2 is fpix", 13, -0.5, 12.5);
2453  bookH1withSumw2(iBooker, "seedMask_Tec", "ele seed hits mask when subdet2 is tec", 13, -0.5, 12.5);
2455  iBooker, "seedDphi2", "ele seed dphi 2nd layer", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2457  iBooker, "seedDphi2_VsEta", "ele seed dphi 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.003, +0.003);
2459  bookH2(iBooker, "seedDphi2_VsPt", "ele seed dphi 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2461  iBooker, "seedDphi2Pos", "ele seed dphi 2nd layer positron", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2463  "seedDphi2Pos_VsEta",
2464  "ele seed dphi 2nd layer positron vs eta",
2465  eta2D_nbin,
2466  eta_min,
2467  eta_max,
2468  50,
2469  -0.003,
2470  +0.003);
2472  iBooker, "seedDphi2Pos_VsPt", "ele seed dphi 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2474  iBooker, "seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2476  iBooker, "seedDrz2_VsEta", "ele seed dr/dz 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.03, +0.03);
2478  bookH2(iBooker, "seedDrz2_VsPt", "ele seed dr/dz 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2480  iBooker, "seedDrz2Pos", "ele seed dr (dz) 2nd layer positron", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2481  h2_ele_seed_drz2posVsEta = bookH2(iBooker,
2482  "seedDrz2Pos_VsEta",
2483  "ele seed dr/dz 2nd layer positron vs eta",
2484  eta2D_nbin,
2485  eta_min,
2486  eta_max,
2487  50,
2488  -0.03,
2489  +0.03);
2491  iBooker, "seedDrz2Pos_VsPt", "ele seed dr/dz 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2492 
2493  // classes
2494  h1_ele_classes = bookH1withSumw2(iBooker, "classes", "ele classes", 20, 0.0, 20., "class Id");
2495  h1_ele_eta = bookH1withSumw2(iBooker, "eta", "ele electron eta", eta_nbin / 2, 0.0, eta_max);
2496  h1_ele_eta_golden = bookH1withSumw2(iBooker, "eta_golden", "ele electron eta golden", eta_nbin / 2, 0.0, eta_max);
2497  h1_ele_eta_bbrem = bookH1withSumw2(iBooker, "eta_bbrem", "ele electron eta bbrem", eta_nbin / 2, 0.0, eta_max);
2498  h1_ele_eta_shower = bookH1withSumw2(iBooker, "eta_shower", "ele electron eta showering", eta_nbin / 2, 0.0, eta_max);
2500  "PinVsPoutGolden_mode",
2501  "ele track inner p vs outer p vs eta, golden, mode of GSF components",
2502  p2D_nbin,
2503  0.,
2504  p_max,
2505  50,
2506  0.,
2507  p_max);
2509  "PinVsPoutShowering_mode",
2510  "ele track inner p vs outer p vs eta, showering, mode of GSF components",
2511  p2D_nbin,
2512  0.,
2513  p_max,
2514  50,
2515  0.,
2516  p_max);
2518  "PinVsPoutGolden_mean",
2519  "ele track inner p vs outer p vs eta, golden, mean of GSF components",
2520  p2D_nbin,
2521  0.,
2522  p_max,
2523  50,
2524  0.,
2525  p_max);
2527  "PinVsPoutShowering_mean",
2528  "ele track inner p vs outer p vs eta, showering, mean of GSF components",
2529  p2D_nbin,
2530  0.,
2531  p_max,
2532  50,
2533  0.,
2534  p_max);
2536  "PtinVsPtoutGolden_mode",
2537  "ele track inner pt vs outer pt vs eta, golden, mode of GSF components",
2538  pt2D_nbin,
2539  0.,
2540  pt_max,
2541  50,
2542  0.,
2543  pt_max);
2545  "PtinVsPtoutShowering_mode",
2546  "ele track inner pt vs outer pt vs eta, showering, mode of GSF components",
2547  pt2D_nbin,
2548  0.,
2549  pt_max,
2550  50,
2551  0.,
2552  pt_max);
2554  "PtinVsPtoutGolden_mean",
2555  "ele track inner pt vs outer pt vs eta, golden, mean of GSF components",
2556  pt2D_nbin,
2557  0.,
2558  pt_max,
2559  50,
2560  0.,
2561  pt_max);
2563  "PtinVsPtoutShowering_mean",
2564  "ele track inner pt vs outer pt vs eta, showering, mean of GSF components",
2565  pt2D_nbin,
2566  0.,
2567  pt_max,
2568  50,
2569  0.,
2570  pt_max);
2571  setBookPrefix("h_scl");
2573  "EoEtrue_golden_barrel",
2574  "ele supercluster energy / gen energy, golden, barrel",
2575  poptrue_nbin,
2576  poptrue_min,
2577  poptrue_max);
2579  "EoEtrue_golden_endcaps",
2580  "ele supercluster energy / gen energy, golden, endcaps",
2581  poptrue_nbin,
2582  poptrue_min,
2583  poptrue_max);
2585  "EoEtrue_showering_barrel",
2586  "ele supercluster energy / gen energy, showering, barrel",
2587  poptrue_nbin,
2588  poptrue_min,
2589  poptrue_max);
2591  "EoEtrue_showering_endcaps",
2592  "ele supercluster energy / gen energy, showering, endcaps",
2593  poptrue_nbin,
2594  poptrue_min,
2595  poptrue_max);
2596 
2597  // isolation
2598  setBookPrefix("h_ele");
2600  "tkSumPt_dr03",
2601  "tk isolation sum, dR=0.3",
2602  100,
2603  0.0,
2604  20.,
2605  "TkIsoSum, cone 0.3 (GeV/c)",
2606  "Events",
2607  "ELE_LOGY E1 P");
2609  "tkSumPt_dr03_barrel",
2610  "tk isolation sum, dR=0.3, barrel",
2611  100,
2612  0.0,
2613  20.,
2614  "TkIsoSum, cone 0.3 (GeV/c)",
2615  "Events",
2616  "ELE_LOGY E1 P");
2618  "tkSumPt_dr03_endcaps",
2619  "tk isolation sum, dR=0.3, endcaps",
2620  100,
2621  0.0,
2622  20.,
2623  "TkIsoSum, cone 0.3 (GeV/c)",
2624  "Events",
2625  "ELE_LOGY E1 P");
2627  "ecalRecHitSumEt_dr03",
2628  "ecal isolation sum, dR=0.3",
2629  100,
2630  0.0,
2631  20.,
2632  "EcalIsoSum, cone 0.3 (GeV)",
2633  "Events",
2634  "ELE_LOGY E1 P");
2636  "ecalRecHitSumEt_dr03_barrel",
2637  "ecal isolation sum, dR=0.3, barrel",
2638  100,
2639  0.0,
2640  20.,
2641  "EcalIsoSum, cone 0.3 (GeV)",
2642  "Events",
2643  "ELE_LOGY E1 P");
2645  "ecalRecHitSumEt_dr03_endcaps",
2646  "ecal isolation sum, dR=0.3, endcaps",
2647  100,
2648  0.0,
2649  20.,
2650  "EcalIsoSum, cone 0.3 (GeV)",
2651  "Events",
2652  "ELE_LOGY E1 P");
2654  "hcalTowerSumEt_dr03_depth1",
2655  "hcal depth1 isolation sum, dR=0.3",
2656  100,
2657  0.0,
2658  20.,
2659  "Hcal1IsoSum, cone 0.3 (GeV)",
2660  "Events",
2661  "ELE_LOGY E1 P");
2663  "hcalTowerSumEt_dr03_depth1_barrel",
2664  "hcal depth1 isolation sum, dR=0.3, barrel",
2665  100,
2666  0.0,
2667  20.,
2668  "Hcal1IsoSum, cone 0.3 (GeV)",
2669  "Events",
2670  "ELE_LOGY E1 P");
2672  "hcalTowerSumEt_dr03_depth1_endcaps",
2673  "hcal depth1 isolation sum, dR=0.3, endcaps",
2674  100,
2675  0.0,
2676  20.,
2677  "Hcal1IsoSum, cone 0.3 (GeV)",
2678  "Events",
2679  "ELE_LOGY E1 P");
2681  "hcalTowerSumEt_dr03_depth2",
2682  "hcal depth2 isolation sum, dR=0.3",
2683  100,
2684  0.0,
2685  20.,
2686  "Hcal2IsoSum, cone 0.3 (GeV)",
2687  "Events",
2688  "ELE_LOGY E1 P");
2690  "hcalTowerSumEt_dr03_depth2_barrel",
2691  "hcal depth2 isolation sum, dR=0.3",
2692  100,
2693  0.0,
2694  20.,
2695  "Hcal2IsoSum, cone 0.3 (GeV)",
2696  "Events",
2697  "ELE_LOGY E1 P");
2699  "hcalTowerSumEt_dr03_depth2_endcaps",
2700  "hcal depth2 isolation sum, dR=0.3",
2701  100,
2702  0.0,
2703  20.,
2704  "Hcal2IsoSum, cone 0.3 (GeV)",
2705  "Events",
2706  "ELE_LOGY E1 P");
2708  "tkSumPt_dr04",
2709  "tk isolation sum, dR=0.4",
2710  100,
2711  0.0,
2712  20.,
2713  "TkIsoSum, cone 0.4 (GeV/c)",
2714  "Events",
2715  "ELE_LOGY E1 P");
2717  "tkSumPt_dr04_barrel",
2718  "tk isolation sum, dR=0.4, barrel",
2719  100,
2720  0.0,
2721  20.,
2722  "TkIsoSum, cone 0.4 (GeV/c)",
2723  "Events",
2724  "ELE_LOGY E1 P");
2726  "tkSumPt_dr04_endcaps",
2727  "tk isolation sum, dR=0.4, endcaps",
2728  100,
2729  0.0,
2730  20.,
2731  "TkIsoSum, cone 0.4 (GeV/c)",
2732  "Events",
2733  "ELE_LOGY E1 P");
2735  "ecalRecHitSumEt_dr04",
2736  "ecal isolation sum, dR=0.4",
2737  100,
2738  0.0,
2739  20.,
2740  "EcalIsoSum, cone 0.4 (GeV)",
2741  "Events",
2742  "ELE_LOGY E1 P");
2744  "ecalRecHitSumEt_dr04_barrel",
2745  "ecal isolation sum, dR=0.4, barrel",
2746  100,
2747  0.0,
2748  20.,
2749  "EcalIsoSum, cone 0.4 (GeV)",
2750  "Events",
2751  "ELE_LOGY E1 P");
2753  "ecalRecHitSumEt_dr04_endcaps",
2754  "ecal isolation sum, dR=0.4, endcaps",
2755  100,
2756  0.0,
2757  20.,
2758  "EcalIsoSum, cone 0.4 (GeV)",
2759  "Events",
2760  "ELE_LOGY E1 P");
2762  "hcalTowerSumEt_dr04_depth1",
2763  "hcal depth1 isolation sum, dR=0.4",
2764  100,
2765  0.0,
2766  20.,
2767  "Hcal1IsoSum, cone 0.4 (GeV)",
2768  "Events",
2769  "ELE_LOGY E1 P");
2771  "hcalTowerSumEt_dr04_depth1_barrel",
2772  "hcal depth1 isolation sum, dR=0.4, barrel",
2773  100,
2774  0.0,
2775  20.,
2776  "Hcal1IsoSum, cone 0.4 (GeV)",
2777  "Events",
2778  "ELE_LOGY E1 P");
2780  "hcalTowerSumEt_dr04_depth1_endcaps",
2781  "hcal depth1 isolation sum, dR=0.4, endcaps",
2782  100,
2783  0.0,
2784  20.,
2785  "Hcal1IsoSum, cone 0.4 (GeV)",
2786  "Events",
2787  "ELE_LOGY E1 P");
2789  "hcalTowerSumEt_dr04_depth2",
2790  "hcal depth2 isolation sum, dR=0.4",
2791  100,
2792  0.0,
2793  20.,
2794  "Hcal2IsoSum, cone 0.4 (GeV)",
2795  "Events",
2796  "ELE_LOGY E1 P");
2798  "hcalTowerSumEt_dr04_depth2_barrel",
2799  "hcal depth2 isolation sum, dR=0.4",
2800  100,
2801  0.0,
2802  20.,
2803  "Hcal2IsoSum, cone 0.4 (GeV)",
2804  "Events",
2805  "ELE_LOGY E1 P");
2807  "hcalTowerSumEt_dr04_depth2_endcaps",
2808  "hcal depth2 isolation sum, dR=0.4",
2809  100,
2810  0.0,
2811  20.,
2812  "Hcal2IsoSum, cone 0.4 (GeV)",
2813  "Events",
2814  "ELE_LOGY E1 P");
2815 
2816  // newHCAL
2817  // isolation new hcal
2819  "hcalTowerSumEtBc_dr03_depth1",
2820  "hcal depth1 isolation sum behind cluster, dR=0.3",
2821  100,
2822  0.0,
2823  20.,
2824  "Hcal1IsoSum, cone 0.3 (GeV)",
2825  "Events",
2826  "ELE_LOGY E1 P");
2828  bookH1withSumw2(iBooker,
2829  "hcalTowerSumEtBc_dr03_depth1_barrel",
2830  "hcal depth1 isolation sum behind cluster, dR=0.3, barrel",
2831  100,
2832  0.0,
2833  20.,
2834  "Hcal1IsoSum, cone 0.3 (GeV)",
2835  "Events",
2836  "ELE_LOGY E1 P");
2838  bookH1withSumw2(iBooker,
2839  "hcalTowerSumEtBc_dr03_depth1_endcaps",
2840  "hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",
2841  100,
2842  0.0,
2843  20.,
2844  "Hcal1IsoSum, cone 0.3 (GeV)",
2845  "Events",
2846  "ELE_LOGY E1 P");
2847 
2849  "hcalTowerSumEtBc_dr04_depth1",
2850  "hcal depth1 isolation sum behind cluster, dR=0.4",
2851  100,
2852  0.0,
2853  20.,
2854  "Hcal1IsoSum, cone 0.4 (GeV)",
2855  "Events",
2856  "ELE_LOGY E1 P");
2858  bookH1withSumw2(iBooker,
2859  "hcalTowerSumEtBc_dr04_depth1_barrel",
2860  "hcal depth1 isolation sum behind cluster, dR=0.4, barrel",
2861  100,
2862  0.0,
2863  20.,
2864  "Hcal1IsoSum, cone 0.4 (GeV)",
2865  "Events",
2866  "ELE_LOGY E1 P");
2868  bookH1withSumw2(iBooker,
2869  "hcalTowerSumEtBc_dr04_depth1_endcaps",
2870  "hcal depth1 isolation sum behind cluster, dR=0.4, endcaps",
2871  100,
2872  0.0,
2873  20.,
2874  "Hcal1IsoSum, cone 0.4 (GeV)",
2875  "Events",
2876  "ELE_LOGY E1 P");
2877 
2879  "hcalTowerSumEtBc_dr03_depth2",
2880  "hcal depth2 isolation sum behind cluster, dR=0.3",
2881  100,
2882  0.0,
2883  20.,
2884  "Hcal1IsoSum, cone 0.3 (GeV)",
2885  "Events",
2886  "ELE_LOGY E1 P");
2888  bookH1withSumw2(iBooker,
2889  "hcalTowerSumEtBc_dr03_depth2_barrel",
2890  "hcal depth2 isolation sum behind cluster, dR=0.3, barrel",
2891  100,
2892  0.0,
2893  20.,
2894  "Hcal1IsoSum, cone 0.3 (GeV)",
2895  "Events",
2896  "ELE_LOGY E1 P");
2898  bookH1withSumw2(iBooker,
2899  "hcalTowerSumEtBc_dr03_depth2_endcaps",
2900  "hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",
2901  100,
2902  0.0,
2903  20.,
2904  "Hcal1IsoSum, cone 0.3 (GeV)",
2905  "Events",
2906  "ELE_LOGY E1 P");
2907 
2909  "hcalTowerSumEtBc_dr04_depth2",
2910  "hcal depth2 isolation sum behind cluster, dR=0.4",
2911  100,
2912  0.0,
2913  20.,
2914  "Hcal1IsoSum, cone 0.4 (GeV)",
2915  "Events",
2916  "ELE_LOGY E1 P");
2918  bookH1withSumw2(iBooker,
2919  "hcalTowerSumEtBc_dr04_depth2_barrel",
2920  "hcal depth2 isolation sum behind cluster, dR=0.4, barrel",
2921  100,
2922  0.0,
2923  20.,
2924  "Hcal1IsoSum, cone 0.4 (GeV)",
2925  "Events",
2926  "ELE_LOGY E1 P");
2928  bookH1withSumw2(iBooker,
2929  "hcalTowerSumEtBc_dr04_depth2_endcaps",
2930  "hcal depth2 isolation sum behind cluster, dR=0.4, endcaps",
2931  100,
2932  0.0,
2933  20.,
2934  "Hcal1IsoSum, cone 0.4 (GeV)",
2935  "Events",
2936  "ELE_LOGY E1 P");
2937 
2938  // fbrem
2940  iBooker, "fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2942  "fbrem_barrel",
2943  "ele brem fraction for barrel, mode of GSF components",
2944  100,
2945  0.,
2946  1.,
2947  "P_{in} - P_{out} / P_{in}");
2949  "fbrem_endcaps",
2950  "ele brem franction for endcaps, mode of GSF components",
2951  100,
2952  0.,
2953  1.,
2954  "P_{in} - P_{out} / P_{in}");
2956  iBooker, "fbrem_mAOD", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2958  "fbrem_mAOD_barrel",
2959  "ele brem fraction for barrel, mode of GSF components",
2960  100,
2961  0.,
2962  1.,
2963  "P_{in} - P_{out} / P_{in}");
2965  "fbrem_mAOD_endcaps",
2966  "ele brem franction for endcaps, mode of GSF components",
2967  100,
2968  0.,
2969  1.,
2970  "P_{in} - P_{out} / P_{in}");
2972  bookH1withSumw2(iBooker, "superclusterfbrem", "supercluster brem fraction", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2974  iBooker, "superclusterfbrem_barrel", "supercluster brem fraction for barrel", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2976  "superclusterfbrem_endcaps",
2977  "supercluster brem franction for endcaps",
2978  100,
2979  0.,
2980  1.,
2981  "1 - E_{ele} / E_{SC}");
2982  p1_ele_fbremVsEta_mode = bookP1(iBooker,
2983  "fbremvsEtamode",
2984  "mean ele brem fraction vs eta, mode of GSF components",
2985  eta2D_nbin,
2986  eta_min,
2987  eta_max,
2988  0.,
2989  1.,
2990  "#eta",
2991  "<P_{in} - P_{out} / P_{in}>");
2992  p1_ele_fbremVsEta_mean = bookP1(iBooker,
2993  "fbremvsEtamean",
2994  "mean ele brem fraction vs eta, mean of GSF components",
2995  eta2D_nbin,
2996  eta_min,
2997  eta_max,
2998  0.,
2999  1.,
3000  "#eta",
3001  "<P_{in} - P_{out} / P_{in}>");
3002  h1_ele_chargeInfo = bookH1withSumw2(iBooker, "chargeInfo", "chargeInfo", 5, -2., 3.);
3003 
3004  // e/g et pflow electrons
3005  h1_ele_mva = bookH1withSumw2(iBooker, "mva", "ele identification mva", 100, -1., 1.);
3006  h1_ele_mva_barrel = bookH1withSumw2(iBooker, "mva_barrel", "ele identification mva barrel", 100, -1., 1.);
3007  h1_ele_mva_endcaps = bookH1withSumw2(iBooker, "mva_endcaps", "ele identification mva endcaps", 100, -1., 1.);
3008  h1_ele_mva_isolated = bookH1withSumw2(iBooker, "mva_isolated", "ele identification mva isolated", 100, -1., 1.);
3010  bookH1withSumw2(iBooker, "mva_isolated_barrel", "ele identification mva isolated barrel", 100, -1., 1.);
3012  bookH1withSumw2(iBooker, "mva_isolated_endcaps", "ele identification mva isolated endcaps", 100, -1., 1.);
3013  h1_ele_provenance = bookH1withSumw2(iBooker, "provenance", "ele provenance", 5, -2., 3.);
3014  h1_ele_provenance_barrel = bookH1withSumw2(iBooker, "provenance_barrel", "ele provenance barrel", 5, -2., 3.);
3015  h1_ele_provenance_endcaps = bookH1withSumw2(iBooker, "provenance_endcaps", "ele provenance endcaps", 5, -2., 3.);
3016 
3017  // pflow isolation variables
3019  iBooker, "chargedHadronIso", "chargedHadronIso", 100, 0.0, 20., "chargedHadronIso", "Events", "ELE_LOGY E1 P");
3021  "chargedHadronIso_barrel",
3022  "chargedHadronIso for barrel",
3023  100,
3024  0.0,
3025  20.,
3026  "chargedHadronIso_barrel",
3027  "Events",
3028  "ELE_LOGY E1 P");
3030  "chargedHadronIso_endcaps",
3031  "chargedHadronIso for endcaps",
3032  100,
3033  0.0,
3034  20.,
3035  "chargedHadronIso_endcaps",
3036  "Events",
3037  "ELE_LOGY E1 P");
3039  iBooker, "neutralHadronIso", "neutralHadronIso", 21, 0.0, 20., "neutralHadronIso", "Events", "ELE_LOGY E1 P");
3041  "neutralHadronIso_barrel",
3042  "neutralHadronIso for barrel",
3043  21,
3044  0.0,
3045  20.,
3046  "neutralHadronIso_barrel",
3047  "Events",
3048  "ELE_LOGY E1 P");
3050  "neutralHadronIso_endcaps",
3051  "neutralHadronIso for endcaps",
3052  21,
3053  0.0,
3054  20.,
3055  "neutralHadronIso_endcaps",
3056  "Events",
3057  "ELE_LOGY E1 P");
3059  bookH1withSumw2(iBooker, "photonIso", "photonIso", 100, 0.0, 20., "photonIso", "Events", "ELE_LOGY E1 P");
3061  iBooker, "photonIso_barrel", "photonIso for barrel", 100, 0.0, 20., "photonIso_barrel", "Events", "ELE_LOGY E1 P");
3063  "photonIso_endcaps",
3064  "photonIso for endcaps",
3065  100,
3066  0.0,
3067  20.,
3068  "photonIso_endcaps",
3069  "Events",
3070  "ELE_LOGY E1 P");
3071  // -- pflow over pT
3073  "chargedHadronRelativeIso",
3074  "chargedHadronRelativeIso",
3075  100,
3076  0.0,
3077  2.,
3078  "chargedHadronRelativeIso",
3079  "Events",
3080  "ELE_LOGY E1 P");
3082  "chargedHadronRelativeIso_barrel",
3083  "chargedHadronRelativeIso for barrel",
3084  100,
3085  0.0,
3086  2.,
3087  "chargedHadronRelativeIso_barrel",
3088  "Events",
3089  "ELE_LOGY E1 P");
3091  "chargedHadronRelativeIso_endcaps",
3092  "chargedHadronRelativeIso for endcaps",
3093  100,
3094  0.0,
3095  2.,
3096  "chargedHadronRelativeIso_endcaps",
3097  "Events",
3098  "ELE_LOGY E1 P");
3100  "neutralHadronRelativeIso",
3101  "neutralHadronRelativeIso",
3102  100,
3103  0.0,
3104  2.,
3105  "neutralHadronRelativeIso",
3106  "Events",
3107  "ELE_LOGY E1 P");
3109  "neutralHadronRelativeIso_barrel",
3110  "neutralHadronRelativeIso for barrel",
3111  100,
3112  0.0,
3113  2.,
3114  "neutralHadronRelativeIso_barrel",
3115  "Events",
3116  "ELE_LOGY E1 P");
3118  "neutralHadronRelativeIso_endcaps",
3119  "neutralHadronRelativeIso for endcaps",
3120  100,
3121  0.0,
3122  2.,
3123  "neutralHadronRelativeIso_endcaps",
3124  "Events",
3125  "ELE_LOGY E1 P");
3127  iBooker, "photonRelativeIso", "photonRelativeIso", 100, 0.0, 2., "photonRelativeIso", "Events", "ELE_LOGY E1 P");
3129  "photonRelativeIso_barrel",
3130  "photonRelativeIso for barrel",
3131  100,
3132  0.0,
3133  2.,
3134  "photonRelativeIso_barrel",
3135  "Events",
3136  "ELE_LOGY E1 P");
3138  "photonRelativeIso_endcaps",
3139  "photonRelativeIso for endcaps",
3140  100,
3141  0.0,
3142  2.,
3143  "photonRelativeIso_endcaps",
3144  "Events",
3145  "ELE_LOGY E1 P");
3147  "chargedHadronRelativeIso_mAOD",
3148  "chargedHadronRelativeIso",
3149  100,
3150  0.0,
3151  2.,
3152  "chargedHadronRelativeIso",
3153  "Events",
3154  "ELE_LOGY E1 P");
3156  "chargedHadronRelativeIso_mAOD_barrel",
3157  "chargedHadronRelativeIso for barrel",
3158  100,
3159  0.0,
3160  2.,
3161  "chargedHadronRelativeIso_barrel",
3162  "Events",
3163  "ELE_LOGY E1 P");
3165  "chargedHadronRelativeIso_mAOD_endcaps",
3166  "chargedHadronRelativeIso for endcaps",
3167  100,
3168  0.0,
3169  2.,
3170  "chargedHadronRelativeIso_endcaps",
3171  "Events",
3172  "ELE_LOGY E1 P");
3174  "neutralHadronRelativeIso_mAOD",
3175  "neutralHadronRelativeIso",
3176  100,
3177  0.0,
3178  2.,
3179  "neutralHadronRelativeIso",
3180  "Events",
3181  "ELE_LOGY E1 P");
3183  "neutralHadronRelativeIso_mAOD_barrel",
3184  "neutralHadronRelativeIso for barrel",
3185  100,
3186  0.0,
3187  2.,
3188  "neutralHadronRelativeIso_barrel",
3189  "Events",
3190  "ELE_LOGY E1 P");
3192  "neutralHadronRelativeIso_mAOD_endcaps",
3193  "neutralHadronRelativeIso for endcaps",
3194  100,
3195  0.0,
3196  2.,
3197  "neutralHadronRelativeIso_endcaps",
3198  "Events",
3199  "ELE_LOGY E1 P");
3201  "photonRelativeIso_mAOD",
3202  "photonRelativeIso",
3203  100,
3204  0.0,
3205  2.,
3206  "photonRelativeIso",
3207  "Events",
3208  "ELE_LOGY E1 P");
3210  "photonRelativeIso_mAOD_barrel",
3211  "photonRelativeIso for barrel",
3212  100,
3213  0.0,
3214  2.,
3215  "photonRelativeIso_barrel",
3216  "Events",
3217  "ELE_LOGY E1 P");
3219  "photonRelativeIso_mAOD_endcaps",
3220  "photonRelativeIso for endcaps",
3221  100,
3222  0.0,
3223  2.,
3224  "photonRelativeIso_endcaps",
3225  "Events",
3226  "ELE_LOGY E1 P");
3227 
3228  // conversion rejection information
3229  h1_ele_convFlags = bookH1withSumw2(iBooker, "convFlags", "conversion rejection flag", 5, -1.5, 3.5);
3231  bookH1withSumw2(iBooker, "convFlags_all", "conversion rejection flag, all electrons", 5, -1.5, 3.5);
3232  h1_ele_convDist = bookH1withSumw2(iBooker, "convDist", "distance to the conversion partner", 100, -15., 15.);
3234  bookH1withSumw2(iBooker, "convDist_all", "distance to the conversion partner, all electrons", 100, -15., 15.);
3236  iBooker, "convDcot", "difference of cot(angle) with the conversion partner", 100, -CLHEP::pi / 2., CLHEP::pi / 2.);
3238  "convDcot_all",
3239  "difference of cot(angle) with the conversion partner, all electrons",
3240  100,
3241  -CLHEP::pi / 2.,
3242  CLHEP::pi / 2.);
3243  h1_ele_convRadius = bookH1withSumw2(iBooker, "convRadius", "signed conversion radius", 100, 0., 130.);
3245  bookH1withSumw2(iBooker, "convRadius_all", "signed conversion radius, all electrons", 100, 0., 130.);
3246 }
3247 
3249 
3251  // get collections
3253  iEvent.getByToken(electronCollection_, gsfElectrons);
3254  edm::Handle<GsfElectronCoreCollection> gsfElectronCores;
3255  iEvent.getByToken(electronCoreCollection_, gsfElectronCores);
3256  edm::Handle<GsfTrackCollection> gsfElectronTracks;
3257  iEvent.getByToken(electronTrackCollection_, gsfElectronTracks);
3258  edm::Handle<ElectronSeedCollection> gsfElectronSeeds;
3259  iEvent.getByToken(electronSeedCollection_, gsfElectronSeeds);
3261  iEvent.getByToken(mcTruthCollection_, genParticles);
3262  edm::Handle<reco::BeamSpot> theBeamSpot;
3263  iEvent.getByToken(beamSpotTag_, theBeamSpot);
3264 
3265  edm::Handle<edm::ValueMap<double> > isoFromDepsTk03Handle;
3266  iEvent.getByToken(isoFromDepsTk03Tag_, isoFromDepsTk03Handle);
3267 
3268  edm::Handle<edm::ValueMap<double> > isoFromDepsTk04Handle;
3269  iEvent.getByToken(isoFromDepsTk04Tag_, isoFromDepsTk04Handle);
3270 
3271  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull03Handle;
3272  iEvent.getByToken(isoFromDepsEcalFull03Tag_, isoFromDepsEcalFull03Handle);
3273 
3274  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull04Handle;
3275  iEvent.getByToken(isoFromDepsEcalFull04Tag_, isoFromDepsEcalFull04Handle);
3276 
3277  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced03Handle;
3278  iEvent.getByToken(isoFromDepsEcalReduced03Tag_, isoFromDepsEcalReduced03Handle);
3279 
3280  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced04Handle;
3281  iEvent.getByToken(isoFromDepsEcalReduced04Tag_, isoFromDepsEcalReduced04Handle);
3282 
3283  edm::Handle<edm::ValueMap<double> > isoFromDepsHcal03Handle;
3284  iEvent.getByToken(isoFromDepsHcal03Tag_, isoFromDepsHcal03Handle);
3285 
3286  edm::Handle<edm::ValueMap<double> > isoFromDepsHcal04Handle;
3287  iEvent.getByToken(isoFromDepsHcal04Tag_, isoFromDepsHcal04Handle);
3288 
3289  edm::Handle<reco::VertexCollection> vertexCollectionHandle;
3290  iEvent.getByToken(offlineVerticesCollection_, vertexCollectionHandle);
3291  if (!vertexCollectionHandle.isValid()) {
3292  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle KO";
3293  } else {
3294  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle OK";
3295  }
3296 
3297  edm::LogInfo("ElectronMcSignalValidator::analyze")
3298  << "Treating event " << iEvent.id() << " with " << gsfElectrons.product()->size() << " electrons";
3299  h1_recEleNum->Fill((*gsfElectrons).size());
3300  h1_recCoreNum->Fill((*gsfElectronCores).size());
3301  h1_recTrackNum->Fill((*gsfElectronTracks).size());
3302  h1_recSeedNum->Fill((*gsfElectronSeeds).size());
3303  h1_recOfflineVertices->Fill((*vertexCollectionHandle).size());
3304 
3305  //===============================================
3306  // all rec electrons
3307  //===============================================
3308 
3309  reco::GsfElectronCollection::const_iterator gsfIter;
3310  // mee only
3311  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
3312  // preselect electrons
3313  // if (gsfIter->pt()>maxPt_ || std::abs(gsfIter->eta())>maxAbsEta_) continue ;
3314 
3315  //
3316  float enrj1 = gsfIter->ecalEnergy();
3317 
3318  reco::GsfElectronCollection::const_iterator gsfIter2;
3319  for (gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); gsfIter2++) {
3320  math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4();
3321  float mee2 = p12.Dot(p12);
3322  float enrj2 = gsfIter2->ecalEnergy();
3323  h1_ele_mee_all->Fill(sqrt(mee2));
3324  h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1);
3325  if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed()) {
3326  h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1);
3327  }
3328  if (gsfIter->charge() * gsfIter2->charge() < 0.) {
3329  h1_ele_mee_os->Fill(sqrt(mee2));
3330  if (gsfIter->isEB() && gsfIter2->isEB()) {
3331  h1_ele_mee_os_ebeb->Fill(sqrt(mee2));
3332  }
3333  if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB()))
3334  h1_ele_mee_os_ebee->Fill(sqrt(mee2));
3335  if (gsfIter->isEE() && gsfIter2->isEE()) {
3336  h1_ele_mee_os_eeee->Fill(sqrt(mee2));
3337  }
3338  if ((gsfIter->classification() == GsfElectron::GOLDEN && gsfIter2->classification() == GsfElectron::GOLDEN) ||
3339  (gsfIter->classification() == GsfElectron::GOLDEN && gsfIter2->classification() == GsfElectron::BIGBREM) ||
3340  (gsfIter->classification() == GsfElectron::BIGBREM && gsfIter2->classification() == GsfElectron::GOLDEN) ||
3341  (gsfIter->classification() == GsfElectron::BIGBREM && gsfIter2->classification() == GsfElectron::BIGBREM)) {
3342  h1_ele_mee_os_gg->Fill(sqrt(mee2));
3343  } else if ((gsfIter->classification() == GsfElectron::SHOWERING &&
3344  gsfIter2->classification() == GsfElectron::SHOWERING) ||
3345  (gsfIter->classification() == GsfElectron::SHOWERING && gsfIter2->isGap()) ||
3346  (gsfIter->isGap() && gsfIter2->classification() == GsfElectron::SHOWERING) ||
3347  (gsfIter->isGap() && gsfIter2->isGap())) {
3348  h1_ele_mee_os_bb->Fill(sqrt(mee2));
3349  } else {
3350  h1_ele_mee_os_gb->Fill(sqrt(mee2));
3351  }
3352  }
3353  }
3354  }
3355 
3356  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
3357  // preselect electrons
3358  if (gsfIter->pt() > maxPt_ || std::abs(gsfIter->eta()) > maxAbsEta_)
3359  continue;
3360 
3361  //
3362  h1_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP());
3363  h1_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP());
3364  h1_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout());
3365  h1_ele_EeleOPout_all->Fill(gsfIter->eEleClusterOverPout());
3366  h1_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
3367  h1_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
3368  h1_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo());
3369  h1_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo());
3370  h1_ele_HoE_all->Fill(gsfIter->hcalOverEcal());
3371  h1_ele_HoE_bc_all->Fill(gsfIter->hcalOverEcalBc());
3372  h1_ele_TIP_all->Fill(EleRelPoint(gsfIter->vertex(), theBeamSpot->position()).perp());
3373  h1_ele_vertexEta_all->Fill(gsfIter->eta());
3374  h1_ele_vertexPt_all->Fill(gsfIter->pt());
3375  h1_ele_Et_all->Fill(gsfIter->ecalEnergy() / cosh(gsfIter->superCluster()->eta()));
3376 
3377  // conversion rejection
3378  int flags = gsfIter->convFlags();
3379  if (flags == -9999) {
3380  flags = -1;
3381  }
3382  h1_ele_convFlags_all->Fill(flags);
3383  if (flags >= 0.) {
3384  h1_ele_convDist_all->Fill(gsfIter->convDist());
3385  h1_ele_convDcot_all->Fill(gsfIter->convDcot());
3386  h1_ele_convRadius_all->Fill(gsfIter->convRadius());
3387  }
3388  }
3389 
3390  //===============================================
3391  // charge mis-ID
3392  //===============================================
3393 
3394  int mcNum = 0, gamNum = 0, eleNum = 0;
3395  bool matchingID, matchingMotherID;
3396 
3397  reco::GenParticleCollection::const_iterator mcIter;
3398  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3399  /* // DEBUG LINES - KEEP IT !
3400  std::cout << "\nevt ID = " << iEvent.id() ;
3401  std::cout << ", mcIter position : " << mcIter - genParticles->begin() << std::endl ;
3402  std::cout << "pdgID : " << mcIter->pdgId() << ", Pt : " << mcIter->pt() << ", eta : " << mcIter->eta() << ", phi : " << mcIter->phi() << std::endl;
3403  // DEBUG LINES - KEEP IT ! */
3404 
3405  // select requested matching gen particle
3406  matchingID = false;
3407  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3408  if (mcIter->pdgId() == matchingIDs_[i]) {
3409  matchingID = true;
3410  /* // DEBUG LINES - KEEP IT !
3411  std::cout << "\nMatching mis-reco : matchingIDs_.size() = " << matchingIDs_.size() << ", evt ID = " << iEvent.id() ;
3412  std::cout << ", mcIter pdgID : " << mcIter->pdgId() << ", matchingID : " << matchingID << std::endl ;
3413  // DEBUG LINES - KEEP IT ! */
3414  }
3415  }
3416  if (matchingID) {
3417  // select requested mother matching gen particle
3418  // always include single particle with no mother
3419  const Candidate *mother = mcIter->mother();
3420  matchingMotherID = false;
3421  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3422  /* // DEBUG LINES - KEEP IT !
3423  std::cout << "Matching : matchingMotherID[" << ii << "] : "<< matchingMotherIDs_[ii] << ", evt ID = " << iEvent.id() << ", mother : " << mother ;
3424  if (mother != 0) {
3425  std::cout << "mother : " << mother << ", mother pdgID : " << mother->pdgId() << std::endl ;
3426  std::cout << "mother pdgID : " << mother->pdgId() << ", Pt : " << mother->pt() << ", eta : " << mother->eta() << ", phi : " << mother->phi() << std::endl;
3427  }
3428  else {
3429  std::cout << std::endl;
3430  }
3431  // DEBUG LINES - KEEP IT ! */
3432 
3433  if (mother == nullptr) {
3434  matchingMotherID = true;
3435  } else if (mother->pdgId() == matchingMotherIDs_[i]) {
3436  if (mother->numberOfDaughters() <= 2) {
3437  matchingMotherID = true;
3438  /* // DEBUG LINES - KEEP IT !
3439  std::cout << "Matching mis-reco : matchingMotherID[" << i << "] : " << matchingMotherIDs_[i] << ", evt ID = " << iEvent.id() << ", mother : " << mother ; // debug lines
3440  std::cout << "evt ID = " << iEvent.id() ; // debug lines
3441  std::cout << " - nb of Daughters : " << mother->numberOfDaughters() << " - pdgId() : " << mother->pdgId() << std::endl; // debug lines
3442  // DEBUG LINES - KEEP IT ! */
3443  }
3444  } // end of mother if test
3445  }
3446  if (matchingMotherID) {
3447  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) {
3448  continue;
3449  }
3450  // suppress the endcaps
3451  //if (std::abs(mcIter->eta()) > 1.5) continue;
3452  // select central z
3453  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
3454 
3455  // looking for the best matching gsf electron
3456  bool okGsfFound = false;
3457  double gsfOkRatio = 999999.;
3458 
3459  // find best matched electron
3460  reco::GsfElectron bestGsfElectron;
3461  reco::GsfElectronCollection::const_iterator gsfIter;
3462  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
3463  double dphi = gsfIter->phi() - mcIter->phi();
3464  if (std::abs(dphi) > CLHEP::pi) {
3465  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3466  }
3467  double deltaR2 = (gsfIter->eta() - mcIter->eta()) * (gsfIter->eta() - mcIter->eta()) + dphi * dphi;
3468  if (deltaR2 < deltaR2_) {
3469  double mc_charge = mcIter->pdgId() == 11 ? -1. : 1.;
3470  h1_ele_ChargeMnChargeTrue->Fill(std::abs(gsfIter->charge() - mc_charge));
3471  // require here a charge mismatch
3472  if (((mcIter->pdgId() == 11) && (gsfIter->charge() > 0.)) ||
3473  ((mcIter->pdgId() == -11) && (gsfIter->charge() < 0.))) {
3474  double tmpGsfRatio = gsfIter->p() / mcIter->p();
3475  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3476  gsfOkRatio = tmpGsfRatio;
3477  bestGsfElectron = *gsfIter;
3478  okGsfFound = true;
3479  }
3480  }
3481  }
3482  } // loop over rec ele to look for the best one
3483 
3484  // analysis when the mc track is found
3485  if (okGsfFound) {
3486  // generated distributions for matched electrons
3487  h1_mc_Pt_matched_qmisid->Fill(mcIter->pt());
3488  h1_mc_Phi_matched_qmisid->Fill(mcIter->phi());
3489  h1_mc_AbsEta_matched_qmisid->Fill(std::abs(mcIter->eta()));
3490  h1_mc_Eta_matched_qmisid->Fill(mcIter->eta());
3491  h1_mc_Z_matched_qmisid->Fill(mcIter->vz());
3492  }
3493  }
3494  }
3495  }
3496 
3497  //===============================================
3498  // association mc-reco
3499  //===============================================
3500 
3501  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3502  // number of mc particles
3503  mcNum++;
3504 
3505  // counts photons
3506  if (mcIter->pdgId() == 22) {
3507  gamNum++;
3508  }
3509 
3510  // select requested matching gen particle
3511  matchingID = false;
3512  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3513  if (mcIter->pdgId() == matchingIDs_[i]) {
3514  matchingID = true;
3515  }
3516  }
3517  if (!matchingID)
3518  continue;
3519 
3520  // select requested mother matching gen particle
3521  // always include single particle with no mother
3522  const Candidate *mother = mcIter->mother();
3523  matchingMotherID = false;
3524  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3525  if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i])) {
3526  matchingMotherID = true;
3527  /* // DEBUG LINES - KEEP IT !
3528  std::cout << "Matching mc-reco : matchingMotherID[" << i << "] : " << matchingMotherIDs_[i] << ", evt ID = " << iEvent.id() << ", mother : " << mother ;
3529  if (mother != 0) {
3530  std::cout << ", mother pdgID : " << mother->pdgId() << std::endl ;
3531  }
3532  else {
3533  std::cout << std::endl ;
3534  }
3535  // DEBUG LINES - KEEP IT ! */
3536  }
3537  }
3538  if (!matchingMotherID)
3539  continue;
3540 
3541  // electron preselection
3542  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) {
3543  continue;
3544  }
3545 
3546  // suppress the endcaps
3547  //if (std::abs(mcIter->eta()) > 1.5) continue;
3548  // select central z
3549  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
3550 
3551  eleNum++;
3552  h1_mc_Eta->Fill(mcIter->eta());
3553  h1_mc_AbsEta->Fill(std::abs(mcIter->eta()));
3554  h1_mc_P->Fill(mcIter->p());
3555  h1_mc_Pt->Fill(mcIter->pt());
3556  h1_mc_Phi->Fill(mcIter->phi());
3557  h1_mc_Z->Fill(mcIter->vz());
3558  h2_mc_PtEta->Fill(mcIter->eta(), mcIter->pt());
3559 
3560  // find best matched electron
3561  bool okGsfFound = false;
3562  bool passMiniAODSelection = true;
3563  double gsfOkRatio = 999999.;
3564  reco::GsfElectron bestGsfElectron;
3565  reco::GsfElectronRef bestGsfElectronRef;
3566  reco::GsfElectronCollection::const_iterator gsfIter;
3568  for (gsfIter = gsfElectrons->begin(), iElectron = 0; gsfIter != gsfElectrons->end(); gsfIter++, iElectron++) {
3569  // temporary cut for pt < 5.
3570  double dphi = gsfIter->phi() - mcIter->phi();
3571  if (std::abs(dphi) > CLHEP::pi) {
3572  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3573  }
3574  double deltaR2 = (gsfIter->eta() - mcIter->eta()) * (gsfIter->eta() - mcIter->eta()) + dphi * dphi;
3575  if (deltaR2 < deltaR2_) {
3576  if (((mcIter->pdgId() == 11) && (gsfIter->charge() < 0.)) ||
3577  ((mcIter->pdgId() == -11) && (gsfIter->charge() > 0.))) {
3578  double tmpGsfRatio = gsfIter->p() / mcIter->p();
3579  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3580  gsfOkRatio = tmpGsfRatio;
3581  bestGsfElectron = *gsfIter;
3582  bestGsfElectronRef = reco::GsfElectronRef(gsfElectrons, iElectron);
3583  okGsfFound = true;
3584 
3585  //std::cout << "evt ID : " << iEvent.id() << " - Pt : " << bestGsfElectron.pt() << " - eta : " << bestGsfElectron.eta() << " - phi : " << bestGsfElectron.phi() << std::endl; // debug lines
3586  }
3587  }
3588  }
3589  } // loop over rec ele to look for the best one
3590  if (!okGsfFound)
3591  continue;
3592 
3593  //------------------------------------
3594  // analysis when the mc track is found
3595  //------------------------------------
3596  passMiniAODSelection = bestGsfElectron.pt() >= 5.;
3597 
3598  // electron related distributions
3599  h1_ele_charge->Fill(bestGsfElectron.charge());
3600  h2_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge());
3601  h2_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge());
3602  h2_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge());
3603  h1_ele_vertexP->Fill(bestGsfElectron.p());
3604  h1_ele_vertexPt->Fill(bestGsfElectron.pt());
3605  if (bestGsfElectron.scSigmaIEtaIEta() == 0.)
3606  h1_ele_vertexPt_nocut->Fill(bestGsfElectron.pt());
3607  h1_ele_Et->Fill(bestGsfElectron.ecalEnergy() / cosh(bestGsfElectron.superCluster()->eta()));
3608  h2_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt());
3609  h2_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt());
3610  h1_ele_vertexEta->Fill(bestGsfElectron.eta());
3611 
3612  h2_scl_EoEtrueVsrecOfflineVertices->Fill((*vertexCollectionHandle).size(),
3613  bestGsfElectron.ecalEnergy() / mcIter->p());
3614  if (bestGsfElectron.isEB())
3615  h2_scl_EoEtrueVsrecOfflineVertices_barrel->Fill((*vertexCollectionHandle).size(),
3616  bestGsfElectron.ecalEnergy() / mcIter->p());
3617  if (bestGsfElectron.isEE())
3618  h2_scl_EoEtrueVsrecOfflineVertices_endcaps->Fill((*vertexCollectionHandle).size(),
3619  bestGsfElectron.ecalEnergy() / mcIter->p());
3620 
3621  // generated distributions for matched electrons
3622  h1_mc_Pt_matched->Fill(mcIter->pt());
3623  h1_mc_Phi_matched->Fill(mcIter->phi());
3624  h1_mc_AbsEta_matched->Fill(std::abs(mcIter->eta()));
3625  h1_mc_Eta_matched->Fill(mcIter->eta());
3626  h2_mc_PtEta_matched->Fill(mcIter->eta(), mcIter->pt());
3627  h2_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta());
3628  h1_ele_vertexPhi->Fill(bestGsfElectron.phi());
3629  h1_ele_vertexX->Fill(bestGsfElectron.vertex().x());
3630  h1_ele_vertexY->Fill(bestGsfElectron.vertex().y());
3631  h1_ele_vertexZ->Fill(bestGsfElectron.vertex().z());
3632  h1_mc_Z_matched->Fill(mcIter->vz());
3633  double d = (bestGsfElectron.vertex().x() - mcIter->vx()) * (bestGsfElectron.vertex().x() - mcIter->vx()) +
3634  (bestGsfElectron.vertex().y() - mcIter->vy()) * (bestGsfElectron.vertex().y() - mcIter->vy());
3635  d = sqrt(d);
3636  h1_ele_vertexTIP->Fill(d);
3637  h2_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d);
3638  h2_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d);
3639  h2_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d);
3640  h1_ele_EtaMnEtaTrue->Fill(bestGsfElectron.eta() - mcIter->eta());
3641  if (bestGsfElectron.isEB())
3642  h1_ele_EtaMnEtaTrue_barrel->Fill(bestGsfElectron.eta() - mcIter->eta());
3643  if (bestGsfElectron.isEE())
3644  h1_ele_EtaMnEtaTrue_endcaps->Fill(bestGsfElectron.eta() - mcIter->eta());
3645  h2_ele_EtaMnEtaTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - mcIter->eta());
3646  h2_ele_EtaMnEtaTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - mcIter->eta());
3647  h2_ele_EtaMnEtaTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - mcIter->eta());
3648  h1_ele_PhiMnPhiTrue->Fill(bestGsfElectron.phi() - mcIter->phi());
3649  if (bestGsfElectron.isEB())
3650  h1_ele_PhiMnPhiTrue_barrel->Fill(bestGsfElectron.phi() - mcIter->phi());
3651  if (bestGsfElectron.isEE())
3652  h1_ele_PhiMnPhiTrue_endcaps->Fill(bestGsfElectron.phi() - mcIter->phi());
3653  h1_ele_PhiMnPhiTrue2->Fill(bestGsfElectron.phi() - mcIter->phi());
3654  h2_ele_PhiMnPhiTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - mcIter->phi());
3655  h2_ele_PhiMnPhiTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - mcIter->phi());
3656  h2_ele_PhiMnPhiTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - mcIter->phi());
3657  h1_ele_PoPtrue->Fill(bestGsfElectron.p() / mcIter->p());
3658  h1_ele_PtoPttrue->Fill(bestGsfElectron.pt() / mcIter->pt());
3659  h2_ele_PoPtrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3660  h2_ele_PoPtrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / mcIter->p());
3661  h2_ele_PoPtrueVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / mcIter->p());
3662  // if (passMiniAODSelection) { // Pt > 5.
3663  h2_ele_sigmaIetaIetaVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.scSigmaIEtaIEta());
3664  // }
3665  if (bestGsfElectron.isEB())
3666  h1_ele_PoPtrue_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3667  if (bestGsfElectron.isEE())
3668  h1_ele_PoPtrue_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3669  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3670  h1_ele_PoPtrue_golden_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3671  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3672  h1_ele_PoPtrue_golden_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3673  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3674  h1_ele_PoPtrue_showering_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3675  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3676  h1_ele_PoPtrue_showering_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3677  if (bestGsfElectron.isEB())
3678  h1_ele_PtoPttrue_barrel->Fill(bestGsfElectron.pt() / mcIter->pt());
3679  if (bestGsfElectron.isEE())
3680  h1_ele_PtoPttrue_endcaps->Fill(bestGsfElectron.pt() / mcIter->pt());
3682  if (bestGsfElectron.isEB())
3684  if (bestGsfElectron.isEE())
3686  h1_ele_combinedP4Error->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3687  if (bestGsfElectron.isEB())
3688  h1_ele_combinedP4Error_barrel->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3689  if (bestGsfElectron.isEE())
3690  h1_ele_combinedP4Error_endcaps->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3691 
3692  // supercluster related distributions
3693  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
3694 
3695  h1_scl_En->Fill(bestGsfElectron.ecalEnergy());
3696  if (bestGsfElectron.isEB())
3697  h1_scl_EoEtrue_barrel->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3698  if (bestGsfElectron.isEE())
3699  h1_scl_EoEtrue_endcaps->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3700  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap())
3701  h1_scl_EoEtrue_barrel_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3702  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap())
3703  h1_scl_EoEtrue_barrel_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3704  if (bestGsfElectron.isEBEEGap())
3705  h1_scl_EoEtrue_ebeegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3706  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap())
3707  h1_scl_EoEtrue_endcaps_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3708  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap())
3709  h1_scl_EoEtrue_endcaps_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3710  if (bestGsfElectron.isEB())
3711  h1_scl_EoEtrue_barrel_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3712  if (bestGsfElectron.isEE())
3713  h1_scl_EoEtrue_endcaps_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3714  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap())
3715  h1_scl_EoEtrue_barrel_new_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3716  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap())
3717  h1_scl_EoEtrue_barrel_new_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3718  if (bestGsfElectron.isEBEEGap())
3719  h1_scl_EoEtrue_ebeegap_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3720  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap())
3721  h1_scl_EoEtrue_endcaps_new_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3722  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap())
3723  h1_scl_EoEtrue_endcaps_new_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3724 
3725  double R = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
3726  double Rt = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
3727  h1_scl_Et->Fill(sclRef->energy() * (Rt / R));
3728  h2_scl_EtVsEta->Fill(sclRef->eta(), sclRef->energy() * (Rt / R));
3729  h2_scl_EtVsPhi->Fill(sclRef->phi(), sclRef->energy() * (Rt / R));
3730  h1_scl_Eta->Fill(sclRef->eta());
3731  h2_scl_EtaVsPhi->Fill(sclRef->phi(), sclRef->eta());
3732  h1_scl_Phi->Fill(sclRef->phi());
3733  h1_scl_SigEtaEta->Fill(bestGsfElectron.scSigmaEtaEta());
3734  if (bestGsfElectron.isEB())
3735  h1_scl_SigEtaEta_barrel->Fill(bestGsfElectron.scSigmaEtaEta());
3736  if (bestGsfElectron.isEE())
3737  h1_scl_SigEtaEta_endcaps->Fill(bestGsfElectron.scSigmaEtaEta());
3738  h1_scl_SigIEtaIEta->Fill(bestGsfElectron.scSigmaIEtaIEta());
3739  if (bestGsfElectron.isEB())
3740  h1_scl_SigIEtaIEta_barrel->Fill(bestGsfElectron.scSigmaIEtaIEta());
3741  if (bestGsfElectron.isEE())
3742  h1_scl_SigIEtaIEta_endcaps->Fill(bestGsfElectron.scSigmaIEtaIEta());
3743  if (passMiniAODSelection) { // Pt > 5.
3744  h1_scl_SigIEtaIEta_mAOD->Fill(bestGsfElectron.scSigmaIEtaIEta());
3745  if (bestGsfElectron.isEB())
3747  if (bestGsfElectron.isEE())
3749  }
3751  if (bestGsfElectron.isEB())
3753  if (bestGsfElectron.isEE())
3755  h1_scl_E1x5->Fill(bestGsfElectron.scE1x5());
3756  if (bestGsfElectron.isEB())
3757  h1_scl_E1x5_barrel->Fill(bestGsfElectron.scE1x5());
3758  if (bestGsfElectron.isEE())
3759  h1_scl_E1x5_endcaps->Fill(bestGsfElectron.scE1x5());
3760  h1_scl_E2x5max->Fill(bestGsfElectron.scE2x5Max());
3761  if (bestGsfElectron.isEB())
3762  h1_scl_E2x5max_barrel->Fill(bestGsfElectron.scE2x5Max());
3763  if (bestGsfElectron.isEE())
3764  h1_scl_E2x5max_endcaps->Fill(bestGsfElectron.scE2x5Max());
3765  h1_scl_E5x5->Fill(bestGsfElectron.scE5x5());
3766  if (bestGsfElectron.isEB())
3767  h1_scl_E5x5_barrel->Fill(bestGsfElectron.scE5x5());
3768  if (bestGsfElectron.isEE())
3769  h1_scl_E5x5_endcaps->Fill(bestGsfElectron.scE5x5());
3770  float pfEnergy = 0.;
3771  if (!bestGsfElectron.parentSuperCluster().isNull())
3772  pfEnergy = bestGsfElectron.parentSuperCluster()->energy();
3773  h2_scl_EoEtruePfVsEg->Fill(bestGsfElectron.ecalEnergy() / mcIter->p(), pfEnergy / mcIter->p());
3774  /*New from 06 05 2016*/
3775  // h1_scl_ESFrac->Fill( sclRef->preshowerEnergy() / sclRef->rawEnergy() );
3776  if (bestGsfElectron.isEE())
3777  h1_scl_ESFrac_endcaps->Fill(sclRef->preshowerEnergy() / sclRef->rawEnergy());
3778 
3779  float Etot = 0.;
3780  CaloCluster_iterator it = bestGsfElectron.superCluster()->clustersBegin();
3781  CaloCluster_iterator itend = bestGsfElectron.superCluster()->clustersEnd();
3782  for (; it != itend; ++it) {
3783  Etot += (*it)->energy();
3784  }
3785  h1_scl_bcl_EtotoEtrue->Fill(Etot / mcIter->p());
3786  if (bestGsfElectron.isEB())
3787  h1_scl_bcl_EtotoEtrue_barrel->Fill(Etot / mcIter->p());
3788  if (bestGsfElectron.isEE())
3789  h1_scl_bcl_EtotoEtrue_endcaps->Fill(Etot / mcIter->p());
3790 
3791  // track related distributions
3793  h2_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize());
3794  h2_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize());
3795  h2_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize());
3796  if (!readAOD_) // track extra does not exist in AOD
3797  {
3798  h1_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3799  if (bestGsfElectron.isEB())
3800  h1_ele_foundHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3801  if (bestGsfElectron.isEE())
3802  h1_ele_foundHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3803  h2_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3804  if (passMiniAODSelection) { // Pt > 5.
3805  h2_ele_foundHitsVsEta_mAOD->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3806  }
3807  h2_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3808  h2_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3809  h1_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3810  if (bestGsfElectron.isEB())
3811  h1_ele_lostHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3812  if (bestGsfElectron.isEE())
3813  h1_ele_lostHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3814  h2_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3815  h2_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3816  h2_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3817  h1_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3818  if (bestGsfElectron.isEB())
3819  h1_ele_chi2_barrel->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3820  if (bestGsfElectron.isEE())
3821  h1_ele_chi2_endcaps->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3822  h2_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2());
3823  h2_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2());
3824  h2_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2());
3825  }
3826  // from gsf track interface, hence using mean
3827  if (!readAOD_) // track extra does not exist in AOD
3828  {
3829  h1_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() -
3830  bestGsfElectron.gsfTrack()->outerMomentum().R());
3831  h1_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R());
3832  h1_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho());
3833  }
3834  // from electron interface, hence using mode
3835  h1_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3836  h2_ele_PinMnPoutVsEta_mode->Fill(bestGsfElectron.eta(),
3837  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3838  h2_ele_PinMnPoutVsPhi_mode->Fill(bestGsfElectron.phi(),
3839  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3840  h2_ele_PinMnPoutVsPt_mode->Fill(bestGsfElectron.pt(),
3841  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3842  h2_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(),
3843  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3844  if (!readAOD_) // track extra does not exist in AOD
3845  {
3847  bestGsfElectron.gsfTrack()->normalizedChi2(),
3848  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3849  }
3850  h1_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R());
3851  h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R());
3852  h1_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho());
3853  h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho());
3854  h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho());
3855  h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho());
3856 
3857  if (!readAOD_) // track extra does not exist in AOD
3858  {
3859  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
3860  ElectronSeedRef elseed = seed.castTo<ElectronSeedRef>();
3861  h1_ele_seed_subdet2->Fill(elseed->subDet(1));
3862  h1_ele_seed_mask->Fill(elseed->hitsMask());
3863  if (elseed->subDet(1) == 1) {
3864  h1_ele_seed_mask_bpix->Fill(elseed->hitsMask());
3865  } else if (elseed->subDet(1) == 2) {
3866  h1_ele_seed_mask_fpix->Fill(elseed->hitsMask());
3867  } else if (elseed->subDet(1) == 6) {
3868  h1_ele_seed_mask_tec->Fill(elseed->hitsMask());
3869  }
3870 
3871  if (elseed->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
3872  h1_ele_seed_dphi2->Fill(elseed->dPhiNeg(1));
3873  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1));
3874  h2_ele_seed_dphi2VsPt->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1));
3875  } else {
3876  }
3877  if (elseed->dPhiPos(1) != std::numeric_limits<float>::infinity()) {
3878  h1_ele_seed_dphi2pos->Fill(elseed->dPhiPos(1));
3879  h2_ele_seed_dphi2posVsEta->Fill(bestGsfElectron.eta(), elseed->dPhiPos(1));
3880  h2_ele_seed_dphi2posVsPt->Fill(bestGsfElectron.pt(), elseed->dPhiPos(1));
3881  }
3882  if (elseed->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
3883  h1_ele_seed_drz2->Fill(elseed->dRZNeg(1));
3884  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1));
3885  h2_ele_seed_drz2VsPt->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1));
3886  }
3887  if (elseed->dRZPos(1) != std::numeric_limits<float>::infinity()) {
3888  h1_ele_seed_drz2pos->Fill(elseed->dRZPos(1));
3889  h2_ele_seed_drz2posVsEta->Fill(bestGsfElectron.eta(), elseed->dRZPos(1));
3890  h2_ele_seed_drz2posVsPt->Fill(bestGsfElectron.pt(), elseed->dRZPos(1));
3891  }
3892  }
3893 
3894  // match distributions
3895  h1_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP());
3896  if (bestGsfElectron.isEB())
3897  h1_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
3898  if (bestGsfElectron.isEE())
3899  h1_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
3900  h2_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3901  h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP());
3902  h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP());
3903  h1_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP());
3904  if (bestGsfElectron.isEB())
3905  h1_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
3906  if (bestGsfElectron.isEE())
3907  h1_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
3908  h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP());
3909  h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP());
3910  h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP());
3911  h1_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout());
3912  if (bestGsfElectron.isEB())
3913  h1_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
3914  if (bestGsfElectron.isEE())
3915  h1_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
3916  h2_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout());
3917  h2_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout());
3918  h2_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout());
3919  h1_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout());
3920  if (bestGsfElectron.isEB())
3921  h1_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
3922  if (bestGsfElectron.isEE())
3924  h2_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout());
3925  h2_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout());
3926  h2_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout());
3928  if (passMiniAODSelection) { // Pt > 5.
3930  }
3931  if (bestGsfElectron.isEB())
3933  if (bestGsfElectron.isEE())
3935  if (passMiniAODSelection) { // Pt > 5.
3936  if (bestGsfElectron.isEB())
3938  if (bestGsfElectron.isEE())
3940  }
3941  h2_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3942  h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3943  h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3945  if (bestGsfElectron.isEB())
3947  if (bestGsfElectron.isEE())
3949  h2_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3950  h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3951  h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3953  if (bestGsfElectron.isEB())
3955  if (bestGsfElectron.isEE())
3957  h2_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3958  h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3959  h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3961  if (passMiniAODSelection) { // Pt > 5.
3963  }
3964  if (bestGsfElectron.isEB())
3966  if (bestGsfElectron.isEE())
3968  if (passMiniAODSelection) { // Pt > 5.
3969  if (bestGsfElectron.isEB())
3971  if (bestGsfElectron.isEE())
3973  }
3974  h2_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3975  h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3976  h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3978  if (bestGsfElectron.isEB())
3980  if (bestGsfElectron.isEE())
3982  h2_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3983  h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3984  h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3986  if (bestGsfElectron.isEB())
3988  if (bestGsfElectron.isEE())
3990  h2_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3991  h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3992  h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3993  h1_ele_HoE->Fill(bestGsfElectron.hcalOverEcal());
3994  if (passMiniAODSelection) { // Pt > 5.
3995  h1_ele_HoE_mAOD->Fill(bestGsfElectron.hcalOverEcal());
3996  }
3997  h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
3998  if (bestGsfElectron.isEB())
3999  h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
4000  if (bestGsfElectron.isEE())
4001  h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
4002  if (bestGsfElectron.isEB())
4003  h1_ele_HoE_barrel->Fill(bestGsfElectron.hcalOverEcal());
4004  if (bestGsfElectron.isEE())
4005  h1_ele_HoE_endcaps->Fill(bestGsfElectron.hcalOverEcal());
4006  if (passMiniAODSelection) { // Pt > 5.
4007  if (bestGsfElectron.isEB())
4008  h1_ele_HoE_mAOD_barrel->Fill(bestGsfElectron.hcalOverEcal());
4009  if (bestGsfElectron.isEE())
4010  h1_ele_HoE_mAOD_endcaps->Fill(bestGsfElectron.hcalOverEcal());
4011  }
4012  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() &&
4013  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap())
4014  h1_ele_HoE_fiducial->Fill(bestGsfElectron.hcalOverEcal());
4015  h2_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hcalOverEcal());
4016  h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hcalOverEcal());
4017  h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hcalOverEcal());
4018 
4019  //classes
4020  int eleClass = bestGsfElectron.classification();
4021  if (bestGsfElectron.isEE())
4022  eleClass += 10;
4023  h1_ele_classes->Fill(eleClass);
4024 
4025  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEB())
4026  h1_scl_EoEtrueGolden_barrel->Fill(sclRef->energy() / mcIter->p());
4027  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEE())
4028  h1_scl_EoEtrueGolden_endcaps->Fill(sclRef->energy() / mcIter->p());
4029  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEB())
4030  h1_scl_EoEtrueShowering_barrel->Fill(sclRef->energy() / mcIter->p());
4031  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEE())
4032  h1_scl_EoEtrueShowering_endcaps->Fill(sclRef->energy() / mcIter->p());
4033 
4034  //eleClass = eleClass%100; // get rid of barrel/endcap distinction
4035  h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
4036  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4037  h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
4038  if (bestGsfElectron.classification() == GsfElectron::BIGBREM)
4039  h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
4040  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4041  h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
4042 
4043  // fbrem
4044 
4045  double fbrem_mode = bestGsfElectron.fbrem();
4046  h1_ele_fbrem->Fill(fbrem_mode);
4047  if (passMiniAODSelection) { // Pt > 5.
4048  h1_ele_fbrem_mAOD->Fill(fbrem_mode);
4049  }
4050  if (bestGsfElectron.isEB()) {
4051  double fbrem_mode_barrel = bestGsfElectron.fbrem();
4052  h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
4053  if (passMiniAODSelection) { // Pt > 5.
4054  h1_ele_fbrem_mAOD_barrel->Fill(fbrem_mode_barrel);
4055  }
4056  }
4057 
4058  if (bestGsfElectron.isEE()) {
4059  double fbrem_mode_endcaps = bestGsfElectron.fbrem();
4060  h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
4061  if (passMiniAODSelection) { // Pt > 5.
4062  h1_ele_fbrem_mAOD_endcaps->Fill(fbrem_mode_endcaps);
4063  }
4064  }
4065 
4066  double superclusterfbrem_mode = bestGsfElectron.superClusterFbrem();
4067  h1_ele_superclusterfbrem->Fill(superclusterfbrem_mode);
4068 
4069  if (bestGsfElectron.isEB()) {
4070  double superclusterfbrem_mode_barrel = bestGsfElectron.superClusterFbrem();
4071  h1_ele_superclusterfbrem_barrel->Fill(superclusterfbrem_mode_barrel);
4072  }
4073 
4074  if (bestGsfElectron.isEE()) {
4075  double superclusterfbrem_mode_endcaps = bestGsfElectron.superClusterFbrem();
4076  h1_ele_superclusterfbrem_endcaps->Fill(superclusterfbrem_mode_endcaps);
4077  }
4078 
4079  p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode);
4080 
4081  if (!readAOD_) // track extra does not exist in AOD
4082  {
4083  double fbrem_mean =
4084  1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R();
4085  p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean);
4086  }
4087 
4088  //
4089 
4090  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4091  h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4092  bestGsfElectron.trackMomentumAtVtx().R());
4093  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4094  h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4095  bestGsfElectron.trackMomentumAtVtx().R());
4096  if (!readAOD_) // track extra not available in AOD
4097  {
4098  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4099  h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4100  bestGsfElectron.gsfTrack()->innerMomentum().R());
4101  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4102  h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4103  bestGsfElectron.gsfTrack()->innerMomentum().R());
4104  }
4105  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4106  h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4107  bestGsfElectron.trackMomentumAtVtx().Rho());
4108  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4109  h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4110  bestGsfElectron.trackMomentumAtVtx().Rho());
4111  if (!readAOD_) // track extra not available in AOD
4112  {
4113  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4114  h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4115  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4116  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4117  h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4118  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4119  }
4120 
4121  // provenance and pflow data
4122  h1_ele_mva->Fill(bestGsfElectron.mva_e_pi());
4123  if (bestGsfElectron.isEB())
4124  h1_ele_mva_barrel->Fill(bestGsfElectron.mva_e_pi());
4125  if (bestGsfElectron.isEE())
4126  h1_ele_mva_endcaps->Fill(bestGsfElectron.mva_e_pi());
4127  h1_ele_mva_isolated->Fill(bestGsfElectron.mva_Isolated());
4128  if (bestGsfElectron.isEB())
4129  h1_ele_mva_barrel_isolated->Fill(bestGsfElectron.mva_Isolated());
4130  if (bestGsfElectron.isEE())
4131  h1_ele_mva_endcaps_isolated->Fill(bestGsfElectron.mva_Isolated());
4132  if (bestGsfElectron.ecalDrivenSeed())
4133  h1_ele_provenance->Fill(1.);
4134  if (bestGsfElectron.trackerDrivenSeed())
4135  h1_ele_provenance->Fill(-1.);
4136  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed())
4137  h1_ele_provenance->Fill(0.);
4138  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed())
4139  h1_ele_provenance->Fill(-2.);
4140  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed())
4141  h1_ele_provenance->Fill(2.);
4142 
4143  if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB())
4145  if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEB())
4147  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEB())
4149  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB())
4151  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB())
4153  if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE())
4155  if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEE())
4157  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEE())
4159  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE())
4161  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE())
4163 
4164  if (bestGsfElectron.isGsfCtfScPixChargeConsistent())
4165  h1_ele_chargeInfo->Fill(-1.0);
4166  if (bestGsfElectron.isGsfScPixChargeConsistent())
4167  h1_ele_chargeInfo->Fill(0.);
4168  if (bestGsfElectron.isGsfCtfChargeConsistent())
4169  h1_ele_chargeInfo->Fill(1.0);
4170 
4171  // Pflow isolation
4173  if (bestGsfElectron.isEB())
4175  if (bestGsfElectron.isEE())
4177 
4179  if (bestGsfElectron.isEB())
4181  if (bestGsfElectron.isEE())
4183 
4185  if (bestGsfElectron.isEB())
4187  if (bestGsfElectron.isEE())
4189 
4190  // -- pflow over pT
4192  bestGsfElectron.pt());
4193  if (bestGsfElectron.isEB())
4195  bestGsfElectron.pt());
4196  if (bestGsfElectron.isEE())
4198  bestGsfElectron.pt());
4199  if (passMiniAODSelection) { // Pt > 5.
4201  bestGsfElectron.pt());
4202  if (bestGsfElectron.isEB())
4204  bestGsfElectron.pt());
4205  if (bestGsfElectron.isEE())
4207  bestGsfElectron.pt());
4208  }
4209 
4211  bestGsfElectron.pt());
4212  if (bestGsfElectron.isEB())
4214  bestGsfElectron.pt());
4215  if (bestGsfElectron.isEE())
4217  bestGsfElectron.pt());
4218  if (passMiniAODSelection) { // Pt > 5.
4220  bestGsfElectron.pt());
4221  if (bestGsfElectron.isEB())
4223  bestGsfElectron.pt());
4224  if (bestGsfElectron.isEE())
4226  bestGsfElectron.pt());
4227  }
4228 
4229  h1_ele_photonRelativeIso->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4230  if (bestGsfElectron.isEB())
4231  h1_ele_photonRelativeIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4232  if (bestGsfElectron.isEE())
4233  h1_ele_photonRelativeIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4234  if (passMiniAODSelection) { // Pt > 5.
4235  h1_ele_photonRelativeIso_mAOD->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4236  if (bestGsfElectron.isEB())
4238  bestGsfElectron.pt());
4239  if (bestGsfElectron.isEE())
4241  bestGsfElectron.pt());
4242  }
4243 
4244  // isolation
4245  h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
4246  if (bestGsfElectron.isEB())
4247  h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
4248  if (bestGsfElectron.isEE())
4249  h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
4251  if (bestGsfElectron.isEB())
4253  if (bestGsfElectron.isEE())
4256  if (bestGsfElectron.isEB())
4258  if (bestGsfElectron.isEE())
4261  if (bestGsfElectron.isEB())
4263  if (bestGsfElectron.isEE())
4266  if (bestGsfElectron.isEB())
4268  if (bestGsfElectron.isEE())
4271  if (bestGsfElectron.isEB())
4273  if (bestGsfElectron.isEE())
4275  h1_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt());
4276  if (bestGsfElectron.isEB())
4277  h1_ele_tkSumPt_dr04_barrel->Fill(bestGsfElectron.dr04TkSumPt());
4278  if (bestGsfElectron.isEE())
4279  h1_ele_tkSumPt_dr04_endcaps->Fill(bestGsfElectron.dr04TkSumPt());
4281  if (bestGsfElectron.isEB())
4283  if (bestGsfElectron.isEE())
4286  if (bestGsfElectron.isEB())
4288  if (bestGsfElectron.isEE())
4291  if (bestGsfElectron.isEB())
4293  if (bestGsfElectron.isEE())
4295 
4297  if (bestGsfElectron.isEB())
4299  if (bestGsfElectron.isEE())
4302  if (bestGsfElectron.isEB())
4304  if (bestGsfElectron.isEE())
4306 
4308  if (bestGsfElectron.isEB())
4310  if (bestGsfElectron.isEE())
4313  if (bestGsfElectron.isEB())
4315  if (bestGsfElectron.isEE())
4317 
4318  // conversion rejection
4319  int flags = bestGsfElectron.convFlags();
4320  if (flags == -9999) {
4321  flags = -1;
4322  }
4323  h1_ele_convFlags->Fill(flags);
4324  if (flags >= 0.) {
4325  h1_ele_convDist->Fill(bestGsfElectron.convDist());
4326  h1_ele_convDcot->Fill(bestGsfElectron.convDcot());
4327  h1_ele_convRadius->Fill(bestGsfElectron.convRadius());
4328  }
4329 
4330  } // loop over mc particle
4331  h1_mcNum->Fill(mcNum);
4332  h1_eleNum->Fill(eleNum);
4333 }
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:650
MonitorElement * h1_ele_ecalEnergyError_endcaps
MonitorElement * h1_scl_EoEtrue_endcaps_ringgap
T getParameter(std::string const &) const
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:156
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_endcaps
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_barrel
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_endcaps
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull04Tag_
double eta() const final
momentum pseudorapidity
float scSigmaEtaEta() const
Definition: GsfElectron.h:463
bool isEBEtaGap() const
Definition: GsfElectron.h:333
float dr03HcalDepth1TowerSumEtBc() const
Definition: GsfElectron.h:527
virtual SuperClusterRef parentSuperCluster() const
Definition: GsfElectron.h:160
edm::EDGetTokenT< reco::GsfElectronCollection > electronCollection_
MonitorElement * h1_ele_photonRelativeIso_mAOD
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2
float eSuperClusterOverP() const
Definition: GsfElectron.h:221
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk03Tag_
bool isEBEEGap() const
Definition: GsfElectron.h:331
float dr04HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:536
MonitorElement * h1_scl_bcl_EtotoEtrue_endcaps
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
MonitorElement * h1_ele_hcalDepth1OverEcalBc_barrel
MonitorElement * h1_ele_photonRelativeIso_mAOD_barrel
MonitorElement * h1_ele_neutralHadronRelativeIso_endcaps
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
MonitorElement * h1_ele_neutralHadronRelativeIso_barrel
MonitorElement * h1_ele_dPhiEleCl_propOut_endcaps
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:268
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_endcaps
MonitorElement * h2_ele_dEtaEleClVsEta_propOut
edm::EDGetTokenT< reco::GenParticleCollection > mcTruthCollection_
MonitorElement * h1_ele_chargedHadronRelativeIso_mAOD_endcaps
MonitorElement * h1_ele_dEtaSc_propVtx_endcaps
float p4Error(P4Kind kind) const
Definition: GsfElectron.cc:224
MonitorElement * h1_ele_dEtaSc_propVtx_all_endcaps
MonitorElement * h1_ele_dPhiCl_propOut_all_endcaps
float dr04TkSumPt() const
Definition: GsfElectron.h:533
MonitorElement * h1_ele_chargedHadronRelativeIso
double pt() const final
transverse momentum
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
int charge() const final
electric charge
bool isEERingGap() const
Definition: GsfElectron.h:337
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal04Tag_
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalReduced03Tag_
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1
MonitorElement * h2_ele_PtinVsPtoutShowering_mode
MonitorElement * h1_ele_PoPtrue_showering_barrel
float dr03HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:525
float fbrem() const
Definition: GsfElectron.h:726
MonitorElement * h1_ele_hcalDepth2OverEcalBc_barrel
float scE2x5Max() const
Definition: GsfElectron.h:466
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices_endcaps
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1_endcaps
float convDist() const
Definition: GsfElectron.h:582
float convRadius() const
Definition: GsfElectron.h:584
uint16_t size_type
bool isEEDeeGap() const
Definition: GsfElectron.h:336
MonitorElement * h1_ele_chargedHadronIso_endcaps
float superClusterFbrem() const
Definition: GsfElectron.h:720
MonitorElement * h2_ele_dPhiEleClVsPhi_propOut
bool isEE() const
Definition: GsfElectron.h:329
bool isEB() const
Definition: GsfElectron.h:328
MonitorElement * h1_ele_neutralHadronIso_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mean
MonitorElement * h2_ele_dEtaEleClVsPhi_propOut
MonitorElement * h1_ele_dPhiSc_propVtx_all_endcaps
const Double_t pi
float convDcot() const
Definition: GsfElectron.h:583
float full5x5_sigmaIetaIeta() const
Definition: GsfElectron.h:435
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1
edm::EDGetTokenT< reco::GsfElectronCoreCollection > electronCoreCollection_
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD_endcaps
void Fill(long long x)
bool isGsfScPixChargeConsistent() const
Definition: GsfElectron.h:129
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MonitorElement * bookH1(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, const std::string &titleX="", const std::string &titleY="Events", Option_t *option="E1 P")
float dr04HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:537
MonitorElement * h1_ele_PoPtrue_showering_endcaps
MonitorElement * h1_ele_hcalDepth2OverEcalBc_endcaps
MonitorElement * h1_ele_chargedHadronRelativeIso_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mode
MonitorElement * h1_ele_neutralHadronIso_barrel
edm::EDGetTokenT< reco::VertexCollection > offlineVerticesCollection_
bool isGsfCtfChargeConsistent() const
Definition: GsfElectron.h:130
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:225
int iEvent
Definition: GenABIO.cc:224
MonitorElement * h1_ele_dEtaEleCl_propOut_endcaps
float dr03HcalDepth2TowerSumEtBc() const
Definition: GsfElectron.h:528
float eSeedClusterOverP() const
Definition: GsfElectron.h:222
MonitorElement * h1_ele_dPhiCl_propOut_mAOD_endcaps
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * h1_ele_dPhiSc_propVtx_endcaps
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:535
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:229
virtual int pdgId() const =0
PDG identifier.
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * bookP1(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="E1 P")
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:270
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:602
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:228
MonitorElement * h2_ele_dPhiEleClVsEta_propOut
const Point & vertex() const override
vertex position (overwritten by PF...)
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
float hcalOverEcal() const
Definition: GsfElectron.h:419
const double infinity
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps
float dr04HcalDepth1TowerSumEtBc() const
Definition: GsfElectron.h:539
float dr03TkSumPt() const
Definition: GsfElectron.h:521
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * h1_scl_EoEtrueShowering_endcaps
float dr03HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:524
MonitorElement * h1_ele_hcalDepth1OverEcalBc_endcaps
float eEleClusterOverPout() const
Definition: GsfElectron.h:224
MonitorElement * h1_ele_chargedHadronIso_barrel
MonitorElement * h1_ele_dEtaSc_propVtx_all_barrel
void setBookPrefix(const std::string &)
float sumNeutralHadronEt
sum pt of neutral hadrons // old float neutralHadronIso ;
Definition: GsfElectron.h:601
MonitorElement * h1_ele_dPhiCl_propOut_mAOD_barrel
MonitorElement * h1_scl_SigIEtaIEta_mAOD_endcaps
float eSeedClusterOverPout() const
Definition: GsfElectron.h:223
MonitorElement * h1_ele_ecalEnergyError_barrel
bool isValid() const
Definition: HandleBase.h:70
float hcalOverEcalBc() const
Definition: GsfElectron.h:425
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:464
edm::EDGetTokenT< reco::GsfTrackCollection > electronTrackCollection_
MonitorElement * h1_ele_neutralHadronRelativeIso
d
Definition: ztail.py:151
bool isNull() const
Checks for null.
Definition: Ref.h:235
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1
MonitorElement * h1_ele_combinedP4Error_barrel
edm::Ref< GsfElectronCollection > GsfElectronRef
reference to an object in a collection of GsfElectron objects
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:230
MonitorElement * h1_ele_dPhiSc_propVtx_all_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1
MonitorElement * h1_scl_EoEtrueShowering_barrel
void setBookEfficiencyFlag(const bool &)
MonitorElement * h1_ele_chargedHadronRelativeIso_mAOD_barrel
MonitorElement * h1_ele_superclusterfbrem_endcaps
MonitorElement * h1_ele_dPhiEleCl_propOut_barrel
double p() const final
magnitude of momentum vector
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk04Tag_
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel
MonitorElement * h1_scl_EoEtrue_barrel_new_etagap
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2
T const * product() const
Definition: Handle.h:69
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:227
MonitorElement * h1_ele_photonRelativeIso_endcaps
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_endcaps
Classification classification() const
Definition: GsfElectron.h:722
float hcalDepth2OverEcalBc() const
Definition: GsfElectron.h:424
MonitorElement * bookH2withSumw2(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
REF castTo() const
Definition: RefToBase.h:257
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD_barrel
MonitorElement * h1_ele_photonRelativeIso_mAOD_endcaps
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:682
float dr04HcalDepth2TowerSumEtBc() const
Definition: GsfElectron.h:540
MonitorElement * h1_ele_dEtaCl_propOut_endcaps
ElectronMcSignalValidator(const edm::ParameterSet &conf)
double py() const final
y coordinate of momentum vector
MonitorElement * h2_ele_PinVsPoutShowering_mean
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel
float ecalEnergy() const
Definition: GsfElectron.h:812
float mva_Isolated() const
Definition: GsfElectron.h:664
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:523
float mva_e_pi() const
Definition: GsfElectron.h:665
MonitorElement * h1_ele_dPhiCl_propOut_all_barrel
MonitorElement * h1_ele_dEtaCl_propOut_all_barrel
float correctedEcalEnergyError() const
Definition: GsfElectron.h:799
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull03Tag_
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2_barrel
edm::EventID id() const
Definition: EventBase.h:59
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:226
T perp() const
Magnitude of transverse component.
fixed size matrix
MonitorElement * h1_ele_superclusterfbrem_barrel
MonitorElement * h1_ele_combinedP4Error_endcaps
MonitorElement * bookH2(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
MonitorElement * bookH1withSumw2(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, const std::string &titleX="", const std::string &titleY="Events", Option_t *option="E1 P")
int convFlags() const
Definition: GsfElectron.h:580
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_barrel
bool isEBPhiGap() const
Definition: GsfElectron.h:334
MonitorElement * h1_scl_EoEtrue_endcaps_new_deegap
MonitorElement * h1_ele_dEtaSc_propVtx_mAOD_barrel
bool isGsfCtfScPixChargeConsistent() const
Definition: GsfElectron.h:128
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
bool trackerDrivenSeed() const
Definition: GsfElectron.h:159
MonitorElement * h2_ele_PinVsPoutShowering_mode
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2_endcaps
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_barrel
const Point & position() const
position
Definition: BeamSpot.h:59
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_endcaps
MonitorElement * h1_ele_dEtaCl_propOut_all_endcaps
float scE5x5() const
Definition: GsfElectron.h:467
float hcalDepth1OverEcalBc() const
Definition: GsfElectron.h:423
MonitorElement * h1_ele_chargedHadronRelativeIso_barrel
MonitorElement * h1_ele_photonRelativeIso_barrel
MonitorElement * h1_scl_SigIEtaIEta_mAOD_barrel
virtual size_type numberOfDaughters() const =0
number of daughters
void setBookStatOverflowFlag(const bool &)
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:600
float caloEnergy() const
Definition: GsfElectron.h:815
double phi() const final
momentum azimuthal angle
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps
MonitorElement * h1_scl_EoEtrue_barrel_new_phigap
MonitorElement * h2_ele_PtinVsPtoutShowering_mean
MonitorElement * h1_scl_EoEtrue_endcaps_new_ringgap
MonitorElement * h1_scl_EoEtrue_endcaps_deegap
MonitorElement * h1_ele_chargedHadronRelativeIso_mAOD
MonitorElement * h1_ele_dEtaEleCl_propOut_barrel
edm::EDGetTokenT< reco::ElectronSeedCollection > electronSeedCollection_
MonitorElement * h1_ele_dEtaSc_propVtx_mAOD_endcaps
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices_barrel
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalReduced04Tag_
MonitorElement * h1_ele_dPhiCl_propOut_endcaps
MonitorElement * h1_ele_PoPtrue_golden_endcaps
Definition: Run.h:45
float scE1x5() const
Definition: GsfElectron.h:465
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal03Tag_
bool ecalDrivenSeed() const
Definition: GsfElectron.h:158
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_barrel