CMS 3D CMS Logo

ElectronMcSignalValidator.cc
Go to the documentation of this file.
1 
2 // user include files
4 
6 
8 
18 
21 
24 
26 
33 
39 
40 #include "CLHEP/Units/GlobalPhysicalConstants.h"
41 #include "TMath.h"
42 #include "TFile.h"
43 #include "TH1F.h"
44 #include "TH1I.h"
45 #include "TH2F.h"
46 #include "TProfile.h"
47 #include "TTree.h"
48 #include <vector>
49 #include <iostream>
50 #include <typeinfo>
51 
52 using namespace reco;
53 
55  mcTruthCollection_ = consumes<reco::GenParticleCollection>(conf.getParameter<edm::InputTag>("mcTruthCollection"));
56  electronCollection_ = consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollection"));
58  consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollectionEndcaps"));
60  consumes<reco::GsfElectronCoreCollection>(conf.getParameter<edm::InputTag>("electronCoreCollection"));
62  consumes<reco::GsfElectronCoreCollection>(conf.getParameter<edm::InputTag>("electronCoreCollectionEndcaps"));
64  consumes<reco::GsfTrackCollection>(conf.getParameter<edm::InputTag>("electronTrackCollection"));
66  consumes<reco::ElectronSeedCollection>(conf.getParameter<edm::InputTag>("electronSeedCollection"));
68  consumes<reco::VertexCollection>(conf.getParameter<edm::InputTag>("offlinePrimaryVertices"));
69  beamSpotTag_ = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpot"));
70 
71  readAOD_ = conf.getParameter<bool>("readAOD");
72 
73  isoFromDepsTk03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk03"));
74  isoFromDepsTk04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk04"));
76  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull03"));
78  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull04"));
80  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced03"));
82  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced04"));
83  isoFromDepsHcal03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal03"));
84  isoFromDepsHcal04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal04"));
85 
86  maxPt_ = conf.getParameter<double>("MaxPt");
87  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
88  maxAbsEtaExtended_ = conf.getParameter<double>("MaxAbsEtaExtended");
89  deltaR2_ = conf.getParameter<double>("DeltaR") * conf.getParameter<double>("DeltaR");
90  matchingIDs_ = conf.getParameter<std::vector<int> >("MatchingID");
91  matchingMotherIDs_ = conf.getParameter<std::vector<int> >("MatchingMotherID");
92  inputFile_ = conf.getParameter<std::string>("InputFile");
93  outputFile_ = conf.getParameter<std::string>("OutputFile");
94  inputInternalPath_ = conf.getParameter<std::string>("InputFolderName");
95  outputInternalPath_ = conf.getParameter<std::string>("OutputFolderName");
96 
97  // histos bining and limits
98 
99  edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg");
100 
101  xyz_nbin = histosSet.getParameter<int>("Nbinxyz");
102 
103  p_nbin = histosSet.getParameter<int>("Nbinp");
104  p2D_nbin = histosSet.getParameter<int>("Nbinp2D");
105  p_max = histosSet.getParameter<double>("Pmax");
106 
107  pt_nbin = histosSet.getParameter<int>("Nbinpt");
108  pt2D_nbin = histosSet.getParameter<int>("Nbinpt2D");
109  pteff_nbin = histosSet.getParameter<int>("Nbinpteff");
110  pt_max = histosSet.getParameter<double>("Ptmax");
111 
112  fhits_nbin = histosSet.getParameter<int>("Nbinfhits");
113  fhits_max = histosSet.getParameter<double>("Fhitsmax");
114 
115  lhits_nbin = histosSet.getParameter<int>("Nbinlhits");
116  lhits_max = histosSet.getParameter<double>("Lhitsmax");
117 
118  eop_nbin = histosSet.getParameter<int>("Nbineop");
119  eop2D_nbin = histosSet.getParameter<int>("Nbineop2D");
120  eop_max = histosSet.getParameter<double>("Eopmax");
121  eopmaxsht = histosSet.getParameter<double>("Eopmaxsht");
122 
123  eta_nbin = histosSet.getParameter<int>("Nbineta");
124  eta2D_nbin = histosSet.getParameter<int>("Nbineta2D");
125  eta_min = histosSet.getParameter<double>("Etamin");
126  eta_max = histosSet.getParameter<double>("Etamax");
127 
128  eta_nbin_extended = histosSet.getParameter<int>("NbinetaExtended");
129  eta2D_nbin_extended = histosSet.getParameter<int>("Nbineta2DExtended");
130  eta_min_extended = histosSet.getParameter<double>("EtaminExtended");
131  eta_max_extended = histosSet.getParameter<double>("EtamaxExtended");
132 
133  deta_nbin = histosSet.getParameter<int>("Nbindeta");
134  deta_min = histosSet.getParameter<double>("Detamin");
135  deta_max = histosSet.getParameter<double>("Detamax");
136 
137  phi_nbin = histosSet.getParameter<int>("Nbinphi");
138  phi2D_nbin = histosSet.getParameter<int>("Nbinphi2D");
139  phi_min = histosSet.getParameter<double>("Phimin");
140  phi_max = histosSet.getParameter<double>("Phimax");
141 
142  detamatch_nbin = histosSet.getParameter<int>("Nbindetamatch");
143  detamatch2D_nbin = histosSet.getParameter<int>("Nbindetamatch2D");
144  detamatch_min = histosSet.getParameter<double>("Detamatchmin");
145  detamatch_max = histosSet.getParameter<double>("Detamatchmax");
146 
147  dphi_nbin = histosSet.getParameter<int>("Nbindphi");
148  dphi_min = histosSet.getParameter<double>("Dphimin");
149  dphi_max = histosSet.getParameter<double>("Dphimax");
150 
151  dphimatch_nbin = histosSet.getParameter<int>("Nbindphimatch");
152  dphimatch2D_nbin = histosSet.getParameter<int>("Nbindphimatch2D");
153  dphimatch_min = histosSet.getParameter<double>("Dphimatchmin");
154  dphimatch_max = histosSet.getParameter<double>("Dphimatchmax");
155 
156  poptrue_nbin = histosSet.getParameter<int>("Nbinpoptrue");
157  poptrue_min = histosSet.getParameter<double>("Poptruemin");
158  poptrue_max = histosSet.getParameter<double>("Poptruemax");
159 
160  mee_nbin = histosSet.getParameter<int>("Nbinmee");
161  mee_min = histosSet.getParameter<double>("Meemin");
162  mee_max = histosSet.getParameter<double>("Meemax");
163 
164  hoe_nbin = histosSet.getParameter<int>("Nbinhoe");
165  hoe_min = histosSet.getParameter<double>("Hoemin");
166  hoe_max = histosSet.getParameter<double>("Hoemax");
167 
168  error_nbin = histosSet.getParameter<int>("Nbinerror");
169  enerror_max = histosSet.getParameter<double>("Energyerrormax");
170 
171  set_EfficiencyFlag = histosSet.getParameter<bool>("EfficiencyFlag");
172  set_StatOverflowFlag = histosSet.getParameter<bool>("StatOverflowFlag");
173 
174  opv_nbin = histosSet.getParameter<int>("NbinOPV");
175  opv_min = histosSet.getParameter<double>("OPV_min");
176  opv_max = histosSet.getParameter<double>("OPV_max");
177 
178  ele_nbin = histosSet.getParameter<int>("NbinELE");
179  ele_min = histosSet.getParameter<double>("ELE_min");
180  ele_max = histosSet.getParameter<double>("ELE_max");
181 
182  core_nbin = histosSet.getParameter<int>("NbinCORE");
183  core_min = histosSet.getParameter<double>("CORE_min");
184  core_max = histosSet.getParameter<double>("CORE_max");
185 
186  track_nbin = histosSet.getParameter<int>("NbinTRACK");
187  track_min = histosSet.getParameter<double>("TRACK_min");
188  track_max = histosSet.getParameter<double>("TRACK_max");
189 
190  seed_nbin = histosSet.getParameter<int>("NbinSEED");
191  seed_min = histosSet.getParameter<double>("SEED_min");
192  seed_max = histosSet.getParameter<double>("SEED_max");
193 
194  // so to please coverity...
195  h1_mcNum = nullptr;
196  h1_eleNum = nullptr;
197  h1_gamNum = nullptr;
198 
199  h1_recEleNum = nullptr;
200  h1_recCoreNum = nullptr;
201  h1_recTrackNum = nullptr;
202  h1_recSeedNum = nullptr;
203  h1_recOfflineVertices = nullptr;
204 
205  h1_mc_Eta = nullptr;
206  h1_mc_Eta_Extended = nullptr;
207  h1_mc_AbsEta = nullptr;
208  h1_mc_AbsEta_Extended = nullptr;
209  h1_mc_P = nullptr;
210  h1_mc_Pt = nullptr;
211  h1_mc_Phi = nullptr;
212  h1_mc_Z = nullptr;
213  h2_mc_PtEta = nullptr;
214 
215  h1_mc_Eta_Extended_matched = nullptr;
216  h1_mc_AbsEta_matched = nullptr;
218  h1_mc_Pt_matched = nullptr;
219  h1_mc_Phi_matched = nullptr;
220  h1_mc_Z_matched = nullptr;
221  h2_mc_PtEta_matched = nullptr;
222 
223  h1_mc_Eta_matched_qmisid = nullptr;
224  h1_mc_AbsEta_matched_qmisid = nullptr;
225  h1_mc_Pt_matched_qmisid = nullptr;
226  h1_mc_Phi_matched_qmisid = nullptr;
227  h1_mc_Z_matched_qmisid = nullptr;
228 
229  h1_ele_EoverP_all = nullptr;
230  h1_ele_EoverP_all_barrel = nullptr;
231  h1_ele_EoverP_all_endcaps = nullptr;
232  h1_ele_EseedOP_all = nullptr;
233  h1_ele_EseedOP_all_barrel = nullptr;
234  h1_ele_EseedOP_all_endcaps = nullptr;
235  h1_ele_EoPout_all = nullptr;
236  h1_ele_EeleOPout_all = nullptr;
237  h1_ele_dEtaSc_propVtx_all = nullptr;
240  h1_ele_dPhiSc_propVtx_all = nullptr;
243  h1_ele_dEtaCl_propOut_all = nullptr;
246  h1_ele_dPhiCl_propOut_all = nullptr;
249  h1_ele_TIP_all = nullptr;
250  h1_ele_TIP_all_barrel = nullptr;
251  h1_ele_TIP_all_endcaps = nullptr;
252  h1_ele_HoE_all = nullptr;
253  h1_ele_HoE_all_barrel = nullptr;
254  h1_ele_HoE_all_endcaps = nullptr;
255  h1_ele_vertexEta_all = nullptr;
256  h1_ele_vertexPt_all = nullptr;
257  h1_ele_Et_all = nullptr;
258  h1_ele_mee_all = nullptr;
259  h1_ele_mee_os = nullptr;
260  h1_ele_mee_os_ebeb = nullptr;
261  h1_ele_mee_os_ebee = nullptr;
262  h1_ele_mee_os_eeee = nullptr;
263  h1_ele_mee_os_gg = nullptr;
264  h1_ele_mee_os_gb = nullptr;
265  h1_ele_mee_os_bb = nullptr;
266 
267  h2_ele_E2mnE1vsMee_all = nullptr;
268  h2_ele_E2mnE1vsMee_egeg_all = nullptr;
269 
270  h1_ele_charge = nullptr;
271  h2_ele_chargeVsEta = nullptr;
272  h2_ele_chargeVsPhi = nullptr;
273  h2_ele_chargeVsPt = nullptr;
274  h1_ele_vertexP = nullptr;
275  h1_ele_vertexPt = nullptr;
276  h1_ele_vertexPt_nocut = nullptr;
277  h1_ele_Et = nullptr;
278  h2_ele_vertexPtVsEta = nullptr;
279  h2_ele_vertexPtVsPhi = nullptr;
280  h1_ele_vertexPt_5100 = nullptr;
281  h1_ele_vertexEta = nullptr;
282  h2_ele_vertexEtaVsPhi = nullptr;
283  h1_ele_vertexAbsEta = nullptr;
284  h1_ele_vertexPhi = nullptr;
285  h1_ele_vertexX = nullptr;
286  h1_ele_vertexY = nullptr;
287  h1_ele_vertexZ = nullptr;
288  h1_ele_vertexTIP = nullptr;
289  h2_ele_vertexTIPVsEta = nullptr;
290  h2_ele_vertexTIPVsPhi = nullptr;
291  h2_ele_vertexTIPVsPt = nullptr;
292 
293  h1_scl_En = nullptr;
294  h1_scl_EoEtrue_barrel = nullptr;
295  h1_scl_EoEtrue_endcaps = nullptr;
298  h1_scl_EoEtrue_ebeegap = nullptr;
301  h1_scl_EoEtrue_barrel_new = nullptr;
302  h1_scl_EoEtrue_endcaps_new = nullptr;
306  h1_scl_EoEtrue_ebeegap_new = nullptr;
313  h1_scl_Et = nullptr;
314  h2_scl_EtVsEta = nullptr;
315  h2_scl_EtVsPhi = nullptr;
316  h2_scl_EtaVsPhi = nullptr;
317  h1_scl_Eta = nullptr;
318  h1_scl_Phi = nullptr;
319  h1_scl_ESFrac_endcaps = nullptr;
320 
321  h2_scl_EoEtruePfVsEg = nullptr;
322 
323  h1_scl_SigEtaEta = nullptr;
324  h1_scl_SigEtaEta_barrel = nullptr;
325  h1_scl_SigEtaEta_endcaps = nullptr;
326  h1_scl_SigIEtaIEta = nullptr;
327  h1_scl_SigIEtaIEta_barrel = nullptr;
328  h1_scl_SigIEtaIEta_endcaps = nullptr;
329  h1_scl_SigIEtaIEta_mAOD = nullptr;
336  h1_scl_E1x5 = nullptr;
337  h1_scl_E1x5_barrel = nullptr;
338  h1_scl_E1x5_endcaps = nullptr;
339  h1_scl_E2x5max = nullptr;
340  h1_scl_E2x5max_barrel = nullptr;
341  h1_scl_E2x5max_endcaps = nullptr;
342  h1_scl_E5x5 = nullptr;
343  h1_scl_E5x5_barrel = nullptr;
344  h1_scl_E5x5_endcaps = nullptr;
345  h1_scl_bcl_EtotoEtrue = nullptr;
349 
350  h1_ele_ambiguousTracks = nullptr;
351  h2_ele_ambiguousTracksVsEta = nullptr;
352  h2_ele_ambiguousTracksVsPhi = nullptr;
353  h2_ele_ambiguousTracksVsPt = nullptr;
354  h1_ele_foundHits = nullptr;
355  h1_ele_foundHits_barrel = nullptr;
356  h1_ele_foundHits_endcaps = nullptr;
358  h2_ele_foundHitsVsEta_mAOD = nullptr;
359  h2_ele_foundHitsVsPhi = nullptr;
360  h2_ele_foundHitsVsPt = nullptr;
361  h1_ele_lostHits = nullptr;
362  h1_ele_lostHits_barrel = nullptr;
363  h1_ele_lostHits_endcaps = nullptr;
364  h2_ele_lostHitsVsEta = nullptr;
365  h2_ele_lostHitsVsPhi = nullptr;
366  h2_ele_lostHitsVsPt = nullptr;
367  h1_ele_chi2 = nullptr;
368  h1_ele_chi2_barrel = nullptr;
369  h1_ele_chi2_endcaps = nullptr;
370  h2_ele_chi2VsEta = nullptr;
371  h2_ele_chi2VsPhi = nullptr;
372  h2_ele_chi2VsPt = nullptr;
373 
374  h1_ele_PoPtrue = nullptr;
375  h1_ele_PoPtrue_barrel = nullptr;
376  h1_ele_PoPtrue_endcaps = nullptr;
377 
379  h2_ele_PoPtrueVsPhi = nullptr;
380  h2_ele_PoPtrueVsPt = nullptr;
381  h2_ele_sigmaIetaIetaVsPt = nullptr;
382 
387  h1_ele_PtoPttrue = nullptr;
388  h1_ele_PtoPttrue_barrel = nullptr;
389  h1_ele_PtoPttrue_endcaps = nullptr;
390  h1_ele_ChargeMnChargeTrue = nullptr;
391  h1_ele_EtaMnEtaTrue = nullptr;
392  h1_ele_EtaMnEtaTrue_barrel = nullptr;
393  h1_ele_EtaMnEtaTrue_endcaps = nullptr;
394  h2_ele_EtaMnEtaTrueVsEta = nullptr;
395  h2_ele_EtaMnEtaTrueVsPhi = nullptr;
396  h2_ele_EtaMnEtaTrueVsPt = nullptr;
397  h1_ele_PhiMnPhiTrue = nullptr;
398  h1_ele_PhiMnPhiTrue_barrel = nullptr;
399  h1_ele_PhiMnPhiTrue_endcaps = nullptr;
400  h1_ele_PhiMnPhiTrue2 = nullptr;
401  h2_ele_PhiMnPhiTrueVsEta = nullptr;
402  h2_ele_PhiMnPhiTrueVsPhi = nullptr;
403  h2_ele_PhiMnPhiTrueVsPt = nullptr;
404  h1_ele_PinMnPout = nullptr;
405  h1_ele_PinMnPout_mode = nullptr;
406  h2_ele_PinMnPoutVsEta_mode = nullptr;
407  h2_ele_PinMnPoutVsPhi_mode = nullptr;
408  h2_ele_PinMnPoutVsPt_mode = nullptr;
409  h2_ele_PinMnPoutVsE_mode = nullptr;
410  h2_ele_PinMnPoutVsChi2_mode = nullptr;
411 
412  h1_ele_outerP = nullptr;
413  h1_ele_outerP_mode = nullptr;
414  h2_ele_outerPVsEta_mode = nullptr;
415  h1_ele_outerPt = nullptr;
416  h1_ele_outerPt_mode = nullptr;
417  h2_ele_outerPtVsEta_mode = nullptr;
418  h2_ele_outerPtVsPhi_mode = nullptr;
419  h2_ele_outerPtVsPt_mode = nullptr;
420  h1_ele_EoP = nullptr;
421  h1_ele_EoP_barrel = nullptr;
422  h1_ele_EoP_endcaps = nullptr;
423  h2_ele_EoPVsEta_Extended = nullptr;
424  h2_ele_EoPVsPhi = nullptr;
425  h2_ele_EoPVsE = nullptr;
426  h1_ele_EseedOP = nullptr;
427  h1_ele_EseedOP_barrel = nullptr;
428  h1_ele_EseedOP_endcaps = nullptr;
429  h2_ele_EseedOPVsEta = nullptr;
430  h2_ele_EseedOPVsPhi = nullptr;
431  h2_ele_EseedOPVsE = nullptr;
432  h1_ele_EoPout = nullptr;
433  h1_ele_EoPout_barrel = nullptr;
434  h1_ele_EoPout_endcaps = nullptr;
435  h2_ele_EoPoutVsEta = nullptr;
436  h2_ele_EoPoutVsPhi = nullptr;
437  h2_ele_EoPoutVsE = nullptr;
438  h1_ele_EeleOPout = nullptr;
439  h1_ele_EeleOPout_barrel = nullptr;
440  h1_ele_EeleOPout_endcaps = nullptr;
441  h2_ele_EeleOPoutVsEta = nullptr;
442  h2_ele_EeleOPoutVsPhi = nullptr;
443  h2_ele_EeleOPoutVsE = nullptr;
444 
445  h1_ele_dEtaSc_propVtx = nullptr;
449  h1_ele_dEtaSc_propVtx_mAOD = nullptr;
452  h2_ele_dEtaScVsEta_propVtx = nullptr;
453  h2_ele_dEtaScVsPhi_propVtx = nullptr;
454  h2_ele_dEtaScVsPt_propVtx = nullptr;
455  h1_ele_dPhiSc_propVtx = nullptr;
459  h2_ele_dPhiScVsEta_propVtx = nullptr;
460  h2_ele_dPhiScVsPhi_propVtx = nullptr;
461  h2_ele_dPhiScVsPt_propVtx = nullptr;
462  h1_ele_dEtaCl_propOut = nullptr;
465  h2_ele_dEtaClVsEta_propOut = nullptr;
466  h2_ele_dEtaClVsPhi_propOut = nullptr;
467  h2_ele_dEtaClVsPt_propOut = nullptr;
468  h1_ele_dPhiCl_propOut = nullptr;
471  h1_ele_dPhiCl_propOut_mAOD = nullptr;
474  h2_ele_dPhiClVsEta_propOut = nullptr;
475  h2_ele_dPhiClVsPhi_propOut = nullptr;
476  h2_ele_dPhiClVsPt_propOut = nullptr;
477  h1_ele_dEtaEleCl_propOut = nullptr;
483  h1_ele_dPhiEleCl_propOut = nullptr;
489 
490  h1_ele_seed_subdet2 = nullptr;
491  h1_ele_seed_mask = nullptr;
492  h1_ele_seed_mask_bpix = nullptr;
493  h1_ele_seed_mask_fpix = nullptr;
494  h1_ele_seed_mask_tec = nullptr;
495  h1_ele_seed_dphi2 = nullptr;
496  h2_ele_seed_dphi2VsEta = nullptr;
497  h2_ele_seed_dphi2VsPt = nullptr;
498  h1_ele_seed_dphi2pos = nullptr;
499  h2_ele_seed_dphi2posVsEta = nullptr;
500  h2_ele_seed_dphi2posVsPt = nullptr;
501  h1_ele_seed_drz2 = nullptr;
502  h2_ele_seed_drz2VsEta = nullptr;
503  h2_ele_seed_drz2VsPt = nullptr;
504  h1_ele_seed_drz2pos = nullptr;
505  h2_ele_seed_drz2posVsEta = nullptr;
506  h2_ele_seed_drz2posVsPt = nullptr;
507 
508  h1_ele_classes = nullptr;
509  h1_ele_eta = nullptr;
510  h1_ele_eta_golden = nullptr;
511  h1_ele_eta_bbrem = nullptr;
512  h1_ele_eta_shower = nullptr;
513 
514  h1_ele_HoE = nullptr;
515  h1_ele_HoE_Extended = nullptr;
516  h1_ele_HoE_barrel = nullptr;
517  h1_ele_HoE_endcaps = nullptr;
518  h1_ele_HoE_fiducial = nullptr;
519  h2_ele_HoEVsEta = nullptr;
520  h2_ele_HoEVsPhi = nullptr;
521  h2_ele_HoEVsE = nullptr;
522  h1_ele_HoE_mAOD = nullptr;
523  h1_ele_HoE_mAOD_barrel = nullptr;
524  h1_ele_HoE_mAOD_endcaps = nullptr;
525 
526  h1_ele_fbrem = nullptr;
527  h1_ele_fbrem_Extended = nullptr;
528  h1_ele_fbrem_barrel = nullptr;
529  h1_ele_fbrem_endcaps = nullptr;
530  p1_ele_fbremVsEta_mode = nullptr;
531  p1_ele_fbremVsEta_mean = nullptr;
532  h1_ele_fbrem_mAOD = nullptr;
533  h1_ele_fbrem_mAOD_barrel = nullptr;
534  h1_ele_fbrem_mAOD_endcaps = nullptr;
535  h1_ele_superclusterfbrem = nullptr;
536 
539  h2_ele_PinVsPoutGolden_mode = nullptr;
541  h2_ele_PinVsPoutGolden_mean = nullptr;
547  h1_scl_EoEtrueGolden_barrel = nullptr;
551 
552  h1_ele_mva = nullptr;
553  h1_ele_mva_isolated = nullptr;
554  h1_ele_provenance = nullptr;
555  h1_ele_provenance_Extended = nullptr;
556 
557  // isolation
558  h1_ele_tkSumPt_dr03 = nullptr;
559  h1_ele_tkSumPt_dr03_barrel = nullptr;
560  h1_ele_tkSumPt_dr03_endcaps = nullptr;
561  h1_ele_ecalRecHitSumEt_dr03 = nullptr;
568 
569  h1_ele_ecalPFClusterIso = nullptr;
570  h1_ele_hcalPFClusterIso = nullptr;
577 
578  // conversions
579  h1_ele_convFlags = nullptr;
580  h1_ele_convFlags_all = nullptr;
581  h1_ele_convDist = nullptr;
582  h1_ele_convDist_all = nullptr;
583  h1_ele_convDcot = nullptr;
584  h1_ele_convDcot_all = nullptr;
585  h1_ele_convRadius = nullptr;
586  h1_ele_convRadius_all = nullptr;
587 
588  // PF
597  h1_ele_photonRelativeIso = nullptr;
610 }
611 
614 
615  // prepareStore() ;
616  setBookIndex(-1);
617  setBookPrefix("h");
620 
621  // mc truth collections sizes
622  h1_mcNum = bookH1withSumw2(iBooker, "mcNum", "# mc particles", fhits_nbin, 0., fhits_max, "N_{gen}");
623  h1_eleNum = bookH1withSumw2(iBooker, "mcNum_ele", "# mc electrons", fhits_nbin, 0., fhits_max, "N_{gen ele}");
624  h1_gamNum = bookH1withSumw2(iBooker, "mcNum_gam", "# mc gammas", fhits_nbin, 0., fhits_max, "N_{gen #gamma}");
625 
626  // rec event collections sizes
627  h1_recEleNum = bookH1(iBooker, "recEleNum", "# rec electrons", ele_nbin, ele_min, ele_max, "N_{ele}");
628  h1_recCoreNum = bookH1(iBooker, "recCoreNum", "# rec electron cores", core_nbin, core_min, core_max, "N_{core}");
629  h1_recTrackNum = bookH1(iBooker, "recTrackNum", "# rec gsf tracks", track_nbin, track_min, track_max, "N_{track}");
630  h1_recSeedNum = bookH1(iBooker, "recSeedNum", "# rec electron seeds", seed_nbin, seed_min, seed_max, "N_{seed}");
632  iBooker, "recOfflineVertices", "# rec Offline Primary Vertices", opv_nbin, opv_min, opv_max, "N_{Vertices}");
633 
635  "scl_EoEtrueVsrecOfflineVertices",
636  "E/Etrue vs number of primary vertices",
637  opv_nbin, // 10,
638  opv_min, // 0.,
639  opv_max, // 50.,
640  50,
641  0.,
642  2.5,
643  "N_{primary vertices}",
644  "E/E_{true}");
646  "scl_EoEtrueVsrecOfflineVertices_Extended",
647  "E/Etrue vs number of primary vertices, 2.5<|eta|<3",
648  opv_nbin, // 10,
649  opv_min, // 0.,
650  opv_max, // 50.,
651  50,
652  0.,
653  2.5,
654  "N_{primary vertices}",
655  "E/E_{true}");
657  "scl_EoEtrueVsrecOfflineVertices_barrel",
658  "E/Etrue vs number of primary , barrel",
659  opv_nbin, // 10,
660  opv_min, // 0.,
661  opv_max, // 50.,
662  50,
663  0.,
664  2.5,
665  "N_{primary vertices}",
666  "E/E_{true}");
668  "scl_EoEtrueVsrecOfflineVertices_endcaps",
669  "E/Etrue vs number of primary , endcaps",
670  opv_nbin, // 10,
671  opv_min, // 0.,
672  opv_max, // 50.,
673  50,
674  0.,
675  2.5,
676  "N_{primary vertices}",
677  "E/E_{true}");
678 
679  // mc
680  setBookPrefix("h_mc");
681  h1_mc_Eta = bookH1withSumw2(iBooker, "Eta", "gen #eta", eta_nbin, eta_min, eta_max, "#eta");
683  iBooker, "Eta_Extended", "gen #eta", eta_nbin_extended, eta_min_extended, eta_max_extended, "#eta");
684  h1_mc_AbsEta = bookH1withSumw2(iBooker, "AbsEta", "gen |#eta|", eta_nbin / 2, 0., eta_max);
686  bookH1withSumw2(iBooker, "AbsEta_Extended", "gen |#eta|", eta_nbin_extended / 2, 0., eta_max_extended);
687  h1_mc_P = bookH1withSumw2(iBooker, "P", "gen p", p_nbin, 0., p_max, "p (GeV/c)");
688  h1_mc_Pt = bookH1withSumw2(iBooker, "Pt", "gen pt", pteff_nbin, 5., pt_max);
689  h1_mc_Phi = bookH1withSumw2(iBooker, "Phi", "gen phi", phi_nbin, phi_min, phi_max);
690  h1_mc_Z = bookH1withSumw2(iBooker, "Z", "gen z ", xyz_nbin, -25, 25);
691  h2_mc_PtEta =
692  bookH2withSumw2(iBooker, "PtEta", "gen pt vs #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
693 
694  // all electrons
695  setBookPrefix("h_ele");
697  "EoverP_all",
698  "ele E/P_{vertex}, all reco electrons",
699  eop_nbin,
700  0.,
701  eop_max,
702  "E/P_{vertex}",
703  "Events",
704  "ELE_LOGY E1 P");
706  "EoverP_all_barrel",
707  "ele E/P_{vertex}, all reco electrons, barrel",
708  eop_nbin,
709  0.,
710  eop_max,
711  "E/P_{vertex}",
712  "Events",
713  "ELE_LOGY E1 P");
715  "EoverP_all_endcaps",
716  "ele E/P_{vertex}, all reco electrons, endcaps",
717  eop_nbin,
718  0.,
719  eop_max,
720  "E/P_{vertex}",
721  "Events",
722  "ELE_LOGY E1 P");
724  "EseedOP_all",
725  "ele E_{seed}/P_{vertex}, all reco electrons",
726  eop_nbin,
727  0.,
728  eop_max,
729  "E_{seed}/P_{vertex}",
730  "Events",
731  "ELE_LOGY E1 P");
733  "EseedOP_all_barrel",
734  "ele E_{seed}/P_{vertex}, all reco electrons, barrel",
735  eop_nbin,
736  0.,
737  eop_max,
738  "E_{seed}/P_{vertex}",
739  "Events",
740  "ELE_LOGY E1 P");
742  "EseedOP_all_endcaps",
743  "ele E_{seed}/P_{vertex}, all reco electrons, endcaps",
744  eop_nbin,
745  0.,
746  eop_max,
747  "E_{seed}/P_{vertex}",
748  "Events",
749  "ELE_LOGY E1 P");
751  "EoPout_all",
752  "ele E_{seed}/P_{out}, all reco electrons",
753  eop_nbin,
754  0.,
755  eop_max,
756  "E_{seed}/P_{out}",
757  "Events",
758  "ELE_LOGY E1 P");
760  "EeleOPout_all",
761  "ele E_{ele}/P_{out}, all reco electrons",
762  eop_nbin,
763  0.,
764  eop_max,
765  "E_{ele}/P_{out}",
766  "Events",
767  "ELE_LOGY E1 P");
769  "dEtaSc_propVtx_all",
770  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",
774  "#eta_{sc} - #eta_{tr}",
775  "Events",
776  "ELE_LOGY E1 P");
778  bookH1withSumw2(iBooker,
779  "dEtaSc_propVtx_all_barrel",
780  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel",
784  "#eta_{sc} - #eta_{tr}",
785  "Events",
786  "ELE_LOGY E1 P");
788  bookH1withSumw2(iBooker,
789  "dEtaSc_propVtx_all_endcaps",
790  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps",
794  "#eta_{sc} - #eta_{tr}",
795  "Events",
796  "ELE_LOGY E1 P");
798  "dPhiSc_propVtx_all",
799  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",
803  "#phi_{sc} - #phi_{tr} (rad)",
804  "Events",
805  "ELE_LOGY E1 P");
807  bookH1withSumw2(iBooker,
808  "dPhiSc_propVtx_all_barrel",
809  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel",
813  "#phi_{sc} - #phi_{tr} (rad)",
814  "Events",
815  "ELE_LOGY E1 P");
817  bookH1withSumw2(iBooker,
818  "dPhiSc_propVtx_all_endcaps",
819  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps",
823  "#phi_{sc} - #phi_{tr} (rad)",
824  "Events",
825  "ELE_LOGY E1 P");
827  "dEtaCl_propOut_all",
828  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",
832  "#eta_{sc} - #eta_{tr}",
833  "Events",
834  "ELE_LOGY E1 P");
836  bookH1withSumw2(iBooker,
837  "dEtaCl_propOut_all_barrel",
838  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel",
842  "#eta_{sc} - #eta_{tr}",
843  "Events",
844  "ELE_LOGY E1 P");
846  bookH1withSumw2(iBooker,
847  "dEtaCl_propOut_all_endcaps",
848  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps",
852  "#eta_{sc} - #eta_{tr}",
853  "Events",
854  "ELE_LOGY E1 P");
856  "dPhiCl_propOut_all",
857  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",
861  "#phi_{sc} - #phi_{tr} (rad)",
862  "Events",
863  "ELE_LOGY E1 P");
865  bookH1withSumw2(iBooker,
866  "dPhiCl_propOut_all_barrel",
867  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel",
871  "#phi_{sc} - #phi_{tr} (rad)",
872  "Events",
873  "ELE_LOGY E1 P");
875  bookH1withSumw2(iBooker,
876  "dPhiCl_propOut_all_endcaps",
877  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps",
881  "#phi_{sc} - #phi_{tr} (rad)",
882  "Events",
883  "ELE_LOGY E1 P");
885  "HoE_all",
886  "ele hadronic energy / em energy, all reco electrons",
887  hoe_nbin,
888  hoe_min,
889  hoe_max,
890  "H/E",
891  "Events",
892  "ELE_LOGY E1 P");
894  "HoE_all_barrel",
895  "ele hadronic energy / em energy, all reco electrons barrel",
896  hoe_nbin,
897  hoe_min,
898  hoe_max,
899  "H/E",
900  "Events",
901  "ELE_LOGY E1 P");
903  "HoE_all_endcaps",
904  "ele hadronic energy / em energy, all reco electrons endcaps",
905  hoe_nbin,
906  hoe_min,
907  hoe_max,
908  "H/E",
909  "Events",
910  "ELE_LOGY E1 P");
912  "HoE_bc_all",
913  "ele hadronic energy / em energy, all reco electrons, behind cluster",
914  hoe_nbin,
915  hoe_min,
916  hoe_max,
917  "H/E",
918  "Events",
919  "ELE_LOGY E1 P");
921  bookH1withSumw2(iBooker, "vertexPt_all", "ele p_{T}, all reco electrons", pteff_nbin, 5., pt_max, "", "Events");
922  h1_ele_Et_all = bookH1withSumw2(iBooker,
923  "Et_all",
924  "ele ecal E_{T}, all reco electrons",
925  pteff_nbin,
926  5.,
927  pt_max,
928  "E_{T} (GeV)",
929  "Events",
930  "ELE_LOGY E1 P");
932  iBooker, "vertexEta_all", "ele eta, all reco electrons", eta_nbin, eta_min, eta_max, "", "Events");
934  "TIP_all",
935  "ele vertex transverse radius, all reco electrons",
936  100,
937  0.,
938  0.2,
939  "r_{T} (cm)",
940  "Events",
941  "ELE_LOGY E1 P");
943  "TIP_all_barrel",
944  "ele vertex transverse radius, all reco electrons barrel",
945  100,
946  0.,
947  0.2,
948  "r_{T} (cm)",
949  "Events",
950  "ELE_LOGY E1 P");
952  "TIP_all_endcaps",
953  "ele vertex transverse radius, all reco electrons endcaps",
954  100,
955  0.,
956  0.2,
957  "r_{T} (cm)",
958  "Events",
959  "ELE_LOGY E1 P");
961  "mee_all",
962  "ele pairs invariant mass, all reco electrons",
963  mee_nbin,
964  mee_min,
965  mee_max,
966  "m_{ee} (GeV/c^{2})",
967  "Events",
968  "ELE_LOGY E1 P");
969  h1_ele_mee_os = bookH1withSumw2(iBooker,
970  "mee_os",
971  "ele pairs invariant mass, opp. sign",
972  mee_nbin,
973  mee_min,
974  mee_max,
975  "m_{e^{+}e^{-}} (GeV/c^{2})",
976  "Events",
977  "ELE_LOGY E1 P");
979  "mee_os_ebeb",
980  "ele pairs invariant mass, opp. sign, EB-EB",
981  mee_nbin,
982  mee_min,
983  mee_max,
984  "m_{e^{+}e^{-}} (GeV/c^{2})",
985  "Events",
986  "ELE_LOGY E1 P");
988  "mee_os_ebee",
989  "ele pairs invariant mass, opp. sign, EB-EE",
990  mee_nbin,
991  mee_min,
992  mee_max,
993  "m_{e^{+}e^{-}} (GeV/c^{2})",
994  "Events",
995  "ELE_LOGY E1 P");
997  "mee_os_eeee",
998  "ele pairs invariant mass, opp. sign, EE-EE",
999  mee_nbin,
1000  mee_min,
1001  mee_max,
1002  "m_{e^{+}e^{-}} (GeV/c^{2})",
1003  "Events",
1004  "ELE_LOGY E1 P");
1006  "mee_os_gg",
1007  "ele pairs invariant mass, opp. sign, good-good",
1008  mee_nbin,
1009  mee_min,
1010  mee_max,
1011  "m_{e^{+}e^{-}} (GeV/c^{2})",
1012  "Events",
1013  "ELE_LOGY E1 P");
1015  "mee_os_gb",
1016  "ele pairs invariant mass, opp. sign, good-bad",
1017  mee_nbin,
1018  mee_min,
1019  mee_max,
1020  "m_{e^{+}e^{-}} (GeV/c^{2})",
1021  "Events",
1022  "ELE_LOGY E1 P");
1024  "mee_os_bb",
1025  "ele pairs invariant mass, opp. sign, bad-bad",
1026  mee_nbin,
1027  mee_min,
1028  mee_max,
1029  "m_{e^{+}e^{-}} (GeV/c^{2})",
1030  "Events",
1031  "ELE_LOGY E1 P");
1032 
1033  // duplicates
1034  h2_ele_E2mnE1vsMee_all = bookH2(iBooker,
1035  "E2mnE1vsMee_all",
1036  "E2 - E1 vs ele pairs invariant mass, all electrons",
1037  mee_nbin,
1038  mee_min,
1039  mee_max,
1040  100,
1041  -50.,
1042  50.,
1043  "m_{e^{+}e^{-}} (GeV/c^{2})",
1044  "E2 - E1 (GeV)");
1046  "E2mnE1vsMee_egeg_all",
1047  "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
1048  mee_nbin,
1049  mee_min,
1050  mee_max,
1051  100,
1052  -50.,
1053  50.,
1054  "m_{e^{+}e^{-}} (GeV/c^{2})",
1055  "E2 - E1 (GeV)");
1056 
1057  // charge ID
1059  bookH1withSumw2(iBooker, "ChargeMnChargeTrue", "ele charge - gen charge ", 5, -1., 4., "q_{rec} - q_{gen}");
1060  setBookPrefix("h_mc");
1062  bookH1withSumw2(iBooker, "Eta_matched_qmisid", "charge misid vs gen eta", eta_nbin, eta_min, eta_max);
1064  bookH1withSumw2(iBooker, "AbsEta_matched_qmisid", "charge misid vs gen |eta|", eta_nbin / 2, 0., eta_max);
1066  bookH1withSumw2(iBooker, "Pt_matched_qmisid", "charge misid vs gen transverse momentum", pteff_nbin, 5., pt_max);
1068  bookH1withSumw2(iBooker, "Phi_matched_qmisid", "charge misid vs gen phi", phi_nbin, phi_min, phi_max);
1069  h1_mc_Z_matched_qmisid = bookH1withSumw2(iBooker, "Z_matched_qmisid", "charge misid vs gen z", xyz_nbin, -25, 25);
1070 
1071  // matched electrons
1072  setBookPrefix("h_mc");
1074  "Eta_Extended_matched",
1075  "Eta of matched electrons",
1080  bookH1withSumw2(iBooker, "AbsEta_matched", "Efficiency vs gen |eta|", eta_nbin / 2, 0., eta_max);
1082  iBooker, "AbsEta_Extended_matched", "Efficiency vs gen |eta|", eta_nbin_extended / 2, 0., eta_max_extended);
1083  h1_mc_Pt_matched = bookH1(iBooker, "Pt_matched", "Efficiency vs gen transverse momentum", pteff_nbin, 5., pt_max);
1084  h1_mc_Phi_matched = bookH1withSumw2(iBooker, "Phi_matched", "Efficiency vs gen phi", phi_nbin, phi_min, phi_max);
1085  h1_mc_Z_matched = bookH1withSumw2(iBooker, "Z_matched", "Efficiency vs gen vertex z", xyz_nbin, -25, 25);
1087  iBooker, "PtEta_matched", "Efficiency vs pt #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
1088  setBookPrefix("h_ele");
1089  h1_ele_charge = bookH1withSumw2(iBooker, "charge", "ele charge", 5, -2.5, 2.5, "charge");
1090  h2_ele_chargeVsEta = bookH2(iBooker, "chargeVsEta", "ele charge vs eta", eta2D_nbin, eta_min, eta_max, 5, -2., 2.);
1091  h2_ele_chargeVsPhi = bookH2(iBooker, "chargeVsPhi", "ele charge vs phi", phi2D_nbin, phi_min, phi_max, 5, -2., 2.);
1092  h2_ele_chargeVsPt = bookH2(iBooker, "chargeVsPt", "ele charge vs pt", pt_nbin, 0., 100., 5, -2., 2.);
1093  h1_ele_vertexP = bookH1withSumw2(iBooker, "vertexP", "ele momentum", p_nbin, 0., p_max, "p_{vertex} (GeV/c)");
1094  h1_ele_vertexPt =
1095  bookH1withSumw2(iBooker, "vertexPt", "ele transverse momentum", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1097  iBooker, "vertexPt_nocut", "pT of prunned electrons", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1098  h1_ele_Et = bookH1withSumw2(iBooker, "Et", "ele ecal E_{T}", pt_nbin, 0., pt_max, "E_{T} (GeV)");
1100  iBooker, "vertexPtVsEta", "ele transverse momentum vs eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 0., pt_max);
1102  iBooker, "vertexPtVsPhi", "ele transverse momentum vs phi", phi2D_nbin, phi_min, phi_max, pt2D_nbin, 0., pt_max);
1103  h1_ele_vertexEta = bookH1withSumw2(iBooker, "vertexEta", "ele momentum eta", eta_nbin, eta_min, eta_max, "#eta");
1105  iBooker, "vertexEtaVsPhi", "ele momentum eta vs phi", eta2D_nbin, eta_min, eta_max, phi2D_nbin, phi_min, phi_max);
1107  bookH1withSumw2(iBooker, "vertexPhi", "ele momentum #phi", phi_nbin, phi_min, phi_max, "#phi (rad)");
1108  h1_ele_vertexX = bookH1withSumw2(iBooker, "vertexX", "ele vertex x", xyz_nbin, -0.6, 0.6, "x (cm)");
1109  h1_ele_vertexY = bookH1withSumw2(iBooker, "vertexY", "ele vertex y", xyz_nbin, -0.6, 0.6, "y (cm)");
1110  h1_ele_vertexZ = bookH1withSumw2(iBooker, "vertexZ", "ele vertex z", xyz_nbin, -25, 25, "z (cm)");
1112  bookH1withSumw2(iBooker, "vertexTIP", "ele transverse impact parameter (wrt gen vtx)", 90, 0., 0.15, "TIP (cm)");
1113  h2_ele_vertexTIPVsEta = bookH2(iBooker,
1114  "vertexTIPVsEta",
1115  "ele transverse impact parameter (wrt gen vtx) vs eta",
1116  eta2D_nbin,
1117  eta_min,
1118  eta_max,
1119  45,
1120  0.,
1121  0.15,
1122  "#eta",
1123  "TIP (cm)");
1124  h2_ele_vertexTIPVsPhi = bookH2(iBooker,
1125  "vertexTIPVsPhi",
1126  "ele transverse impact parameter (wrt gen vtx) vs phi",
1127  phi2D_nbin,
1128  phi_min,
1129  phi_max,
1130  45,
1131  0.,
1132  0.15,
1133  "#phi (rad)",
1134  "TIP (cm)");
1135  h2_ele_vertexTIPVsPt = bookH2(iBooker,
1136  "vertexTIPVsPt",
1137  "ele transverse impact parameter (wrt gen vtx) vs transverse momentum",
1138  pt2D_nbin,
1139  0.,
1140  pt_max,
1141  45,
1142  0.,
1143  0.15,
1144  "p_{T} (GeV/c)",
1145  "TIP (cm)");
1147  iBooker, "PoPtrue", "ele momentum / gen momentum", poptrue_nbin, poptrue_min, poptrue_max, "P/P_{gen}");
1149  "PoPtrue_barrel",
1150  "ele momentum / gen momentum, barrel",
1151  poptrue_nbin,
1152  poptrue_min,
1153  poptrue_max,
1154  "P/P_{gen}");
1156  "PoPtrue_endcaps",
1157  "ele momentum / gen momentum, endcaps",
1158  poptrue_nbin,
1159  poptrue_min,
1160  poptrue_max,
1161  "P/P_{gen}");
1163  "PoPtrueVsEta_Extended",
1164  "ele momentum / gen momentum vs eta",
1168  50,
1169  poptrue_min,
1170  poptrue_max);
1171  h2_ele_PoPtrueVsPhi = bookH2(iBooker,
1172  "PoPtrueVsPhi",
1173  "ele momentum / gen momentum vs phi",
1174  phi2D_nbin,
1175  phi_min,
1176  phi_max,
1177  50,
1178  poptrue_min,
1179  poptrue_max);
1181  iBooker, "PoPtrueVsPt", "ele momentum / gen momentum vs eta", pt2D_nbin, 0., pt_max, 50, poptrue_min, poptrue_max);
1183  bookH2(iBooker, "sigmaIetaIetaVsPt", "SigmaIetaIeta vs pt", 100, 0., pt_max, 100, 0., 0.05);
1185  "PoPtrue_golden_barrel",
1186  "ele momentum / gen momentum, golden, barrel",
1187  poptrue_nbin,
1188  poptrue_min,
1189  poptrue_max,
1190  "P/P_{gen}");
1192  "PoPtrue_golden_endcaps",
1193  "ele momentum / gen momentum, golden, endcaps",
1194  poptrue_nbin,
1195  poptrue_min,
1196  poptrue_max,
1197  "P/P_{gen}");
1199  "PoPtrue_showering_barrel",
1200  "ele momentum / gen momentum, showering, barrel",
1201  poptrue_nbin,
1202  poptrue_min,
1203  poptrue_max,
1204  "P/P_{gen}");
1206  "PoPtrue_showering_endcaps",
1207  "ele momentum / gen momentum, showering, endcaps",
1208  poptrue_nbin,
1209  poptrue_min,
1210  poptrue_max,
1211  "P/P_{gen}");
1213  "PtoPttrue",
1214  "ele transverse momentum / gen transverse momentum",
1215  poptrue_nbin,
1216  poptrue_min,
1217  poptrue_max,
1218  "P_{T}/P_{T}^{gen}");
1220  "PtoPttrue_barrel",
1221  "ele transverse momentum / gen transverse momentum, barrel",
1222  poptrue_nbin,
1223  poptrue_min,
1224  poptrue_max,
1225  "P_{T}/P_{T}^{gen}");
1227  "PtoPttrue_endcaps",
1228  "ele transverse momentum / gen transverse momentum, endcaps",
1229  poptrue_nbin,
1230  poptrue_min,
1231  poptrue_max,
1232  "P_{T}/P_{T}^{gen}");
1234  iBooker, "EtaMnEtaTrue", "ele momentum eta - gen eta", deta_nbin, deta_min, deta_max, "#eta_{rec} - #eta_{gen}");
1236  "EtaMnEtaTrue_barrel",
1237  "ele momentum eta - gen eta barrel",
1238  deta_nbin,
1239  deta_min,
1240  deta_max,
1241  "#eta_{rec} - #eta_{gen}");
1243  "EtaMnEtaTrue_endcaps",
1244  "ele momentum eta - gen eta endcaps",
1245  deta_nbin,
1246  deta_min,
1247  deta_max,
1248  "#eta_{rec} - #eta_{gen}");
1249  h2_ele_EtaMnEtaTrueVsEta = bookH2(iBooker,
1250  "EtaMnEtaTrueVsEta",
1251  "ele momentum eta - gen eta vs eta",
1252  eta2D_nbin,
1253  eta_min,
1254  eta_max,
1255  deta_nbin / 2,
1256  deta_min,
1257  deta_max);
1258  h2_ele_EtaMnEtaTrueVsPhi = bookH2(iBooker,
1259  "EtaMnEtaTrueVsPhi",
1260  "ele momentum eta - gen eta vs phi",
1261  phi2D_nbin,
1262  phi_min,
1263  phi_max,
1264  deta_nbin / 2,
1265  deta_min,
1266  deta_max);
1267  h2_ele_EtaMnEtaTrueVsPt = bookH2(iBooker,
1268  "EtaMnEtaTrueVsPt",
1269  "ele momentum eta - gen eta vs pt",
1270  pt_nbin,
1271  0.,
1272  pt_max,
1273  deta_nbin / 2,
1274  deta_min,
1275  deta_max);
1277  "PhiMnPhiTrue",
1278  "ele momentum phi - gen phi",
1279  dphi_nbin,
1280  dphi_min,
1281  dphi_max,
1282  "#phi_{rec} - #phi_{gen} (rad)");
1284  "PhiMnPhiTrue_barrel",
1285  "ele momentum phi - gen phi barrel",
1286  dphi_nbin,
1287  dphi_min,
1288  dphi_max,
1289  "#phi_{rec} - #phi_{gen} (rad)");
1291  "PhiMnPhiTrue_endcaps",
1292  "ele momentum phi - gen phi endcaps",
1293  dphi_nbin,
1294  dphi_min,
1295  dphi_max,
1296  "#phi_{rec} - #phi_{gen} (rad)");
1298  bookH1(iBooker, "PhiMnPhiTrue2", "ele momentum phi - gen phi", dphimatch2D_nbin, dphimatch_min, dphimatch_max);
1299  h2_ele_PhiMnPhiTrueVsEta = bookH2(iBooker,
1300  "PhiMnPhiTrueVsEta",
1301  "ele momentum phi - gen phi vs eta",
1302  eta2D_nbin,
1303  eta_min,
1304  eta_max,
1305  dphi_nbin / 2,
1306  dphi_min,
1307  dphi_max);
1308  h2_ele_PhiMnPhiTrueVsPhi = bookH2(iBooker,
1309  "PhiMnPhiTrueVsPhi",
1310  "ele momentum phi - gen phi vs phi",
1311  phi2D_nbin,
1312  phi_min,
1313  phi_max,
1314  dphi_nbin / 2,
1315  dphi_min,
1316  dphi_max);
1317  h2_ele_PhiMnPhiTrueVsPt = bookH2(iBooker,
1318  "PhiMnPhiTrueVsPt",
1319  "ele momentum phi - gen phi vs pt",
1320  pt2D_nbin,
1321  0.,
1322  pt_max,
1323  dphi_nbin / 2,
1324  dphi_min,
1325  dphi_max);
1327  iBooker, "ecalEnergyError", "Regression estimate of the ECAL energy error", error_nbin, 0, enerror_max);
1329  iBooker, "ecalEnergyError_barrel", "Regression estimate of the ECAL energy error - barrel", 30, 0, 30);
1331  "ecalEnergyError_endcaps",
1332  "Regression estimate of the ECAL energy error - endcaps",
1333  error_nbin,
1334  0,
1335  enerror_max);
1337  iBooker, "combinedP4Error", "Estimated error on the combined momentum", error_nbin, 0, enerror_max);
1339  iBooker, "combinedP4Error_barrel", "Estimated error on the combined momentum - barrel", 30, 0, 30);
1341  "combinedP4Error_endcaps",
1342  "Estimated error on the combined momentum - endcaps",
1343  error_nbin,
1344  0,
1345  enerror_max);
1346 
1347  // matched electron, superclusters
1348  setBookPrefix("h_scl");
1349  h1_scl_En = bookH1withSumw2(iBooker, "energy", "ele ecal energy", p_nbin, 0., p_max);
1351  bookH1withSumw2(iBooker, "EoEtrue_barrel", "ele ecal energy / gen energy, barrel", 50, 0.2, 1.2, "E/E_{gen}");
1353  iBooker, "EoEtrue_barrel_etagap", "ele ecal energy / gen energy, barrel, etagap", 50, 0.2, 1.2, "E/E_{gen}");
1355  iBooker, "EoEtrue_barrel_phigap", "ele ecal energy / gen energy, barrel, phigap", 50, 0.2, 1.2, "E/E_{gen}");
1357  bookH1withSumw2(iBooker, "EoEtrue_ebeegap", "ele ecal energy / gen energy, ebeegap", 50, 0.2, 1.2, "E/E_{gen}");
1359  bookH1withSumw2(iBooker, "EoEtrue_endcaps", "ele ecal energy / gen energy, endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1361  iBooker, "EoEtrue_endcaps_deegap", "ele ecal energy / gen energy, endcaps, deegap", 50, 0.2, 1.2, "E/E_{gen}");
1363  iBooker, "EoEtrue_endcaps_ringgap", "ele ecal energy / gen energy, endcaps, ringgap", 50, 0.2, 1.2, "E/E_{gen}");
1365  "EoEtrue_barrel_new",
1366  "ele ecal energy / gen energy, barrel",
1367  poptrue_nbin,
1368  poptrue_min,
1369  poptrue_max,
1370  "E/E_{gen}");
1372  "EoEtrue_barrel_new_etagap",
1373  "ele ecal energy / gen energy, barrel, etagap",
1374  poptrue_nbin,
1375  poptrue_min,
1376  poptrue_max,
1377  "E/E_{gen}");
1379  "EoEtrue_barrel_new_phigap",
1380  "ele ecal energy / gen energy, barrel, phigap",
1381  poptrue_nbin,
1382  poptrue_min,
1383  poptrue_max,
1384  "E/E_{gen}");
1386  "EoEtrue_ebeegap_new",
1387  "ele ecal energy / gen energy, ebeegap",
1388  poptrue_nbin,
1389  poptrue_min,
1390  poptrue_max,
1391  "E/E_{gen}");
1393  "EoEtrue_endcaps_new",
1394  "ele ecal energy / gen energy, endcaps",
1395  poptrue_nbin,
1396  poptrue_min,
1397  poptrue_max,
1398  "E/E_{gen}");
1400  "EoEtrue_endcaps_new_Extended",
1401  "ele ecal energy / gen energy, endcaps, extended",
1402  poptrue_nbin,
1403  poptrue_min,
1404  poptrue_max,
1405  "E/E_{gen}");
1407  "EoEtrue_endcaps_new_deegap",
1408  "ele ecal energy / gen energy, endcaps, deegap",
1409  poptrue_nbin,
1410  poptrue_min,
1411  poptrue_max,
1412  "E/E_{gen}");
1414  "EoEtrue_endcaps_new_ringgap",
1415  "ele ecal energy / gen energy, endcaps, ringgap",
1416  poptrue_nbin,
1417  poptrue_min,
1418  poptrue_max,
1419  "E/E_{gen}");
1420  h1_scl_Et = bookH1withSumw2(iBooker, "et", "ele supercluster transverse energy", pt_nbin, 0., pt_max);
1421  h2_scl_EtVsEta = bookH2(iBooker,
1422  "etVsEta",
1423  "ele supercluster transverse energy vs eta",
1424  eta2D_nbin,
1425  eta_min,
1426  eta_max,
1427  pt_nbin,
1428  0.,
1429  pt_max);
1430  h2_scl_EtVsPhi = bookH2(iBooker,
1431  "etVsPhi",
1432  "ele supercluster transverse energy vs phi",
1433  phi2D_nbin,
1434  phi_min,
1435  phi_max,
1436  pt_nbin,
1437  0.,
1438  pt_max);
1440  iBooker, "etaVsPhi", "ele supercluster eta vs phi", phi2D_nbin, phi_min, phi_max, eta2D_nbin, eta_min, eta_max);
1441  h1_scl_Eta = bookH1withSumw2(iBooker, "eta", "ele supercluster eta", eta_nbin, eta_min, eta_max);
1442  h1_scl_Phi = bookH1withSumw2(iBooker, "phi", "ele supercluster phi", phi_nbin, phi_min, phi_max);
1444  "sigetaeta",
1445  "ele supercluster sigma eta eta",
1446  100,
1447  0.,
1448  0.05,
1449  "#sigma_{#eta #eta}",
1450  "Events",
1451  "ELE_LOGY E1 P");
1453  "sigetaeta_barrel",
1454  "ele supercluster sigma eta eta barrel",
1455  100,
1456  0.,
1457  0.05,
1458  "#sigma_{#eta #eta}",
1459  "Events",
1460  "ELE_LOGY E1 P");
1462  "sigetaeta_endcaps",
1463  "ele supercluster sigma eta eta endcaps",
1464  100,
1465  0.,
1466  0.05,
1467  "#sigma_{#eta #eta}",
1468  "Events",
1469  "ELE_LOGY E1 P");
1471  "sigietaieta",
1472  "ele supercluster sigma ieta ieta",
1473  100,
1474  0.,
1475  0.05,
1476  "#sigma_{i#eta i#eta}",
1477  "Events",
1478  "ELE_LOGY E1 P");
1480  "sigietaieta_barrel",
1481  "ele supercluster sigma ieta ieta, barrel",
1482  100,
1483  0.,
1484  0.05,
1485  "#sigma_{i#eta i#eta}",
1486  "Events",
1487  "ELE_LOGY E1 P");
1489  "sigietaieta_endcaps",
1490  "ele supercluster sigma ieta ieta, endcaps",
1491  100,
1492  0.,
1493  0.05,
1494  "#sigma_{i#eta i#eta}",
1495  "Events",
1496  "ELE_LOGY E1 P");
1498  "SigIEtaIEta_mAOD",
1499  "ele supercluster sigma ieta ieta",
1500  100,
1501  0.,
1502  0.05,
1503  "#sigma_{i#eta i#eta}",
1504  "Events",
1505  "ELE_LOGY E1 P");
1507  "SigIEtaIEta_mAOD_barrel",
1508  "ele supercluster sigma ieta ieta, barrel",
1509  100,
1510  0.,
1511  0.05,
1512  "#sigma_{i#eta i#eta}",
1513  "Events",
1514  "ELE_LOGY E1 P");
1516  "SigIEtaIEta_mAOD_endcaps",
1517  "ele supercluster sigma ieta ieta, endcaps",
1518  100,
1519  0.,
1520  0.05,
1521  "#sigma_{i#eta i#eta}",
1522  "Events",
1523  "ELE_LOGY E1 P");
1525  "full5x5_sigietaieta",
1526  "ele supercluster full5x5 sigma ieta ieta",
1527  100,
1528  0.,
1529  0.05,
1530  "#sigma_{i#eta i#eta}",
1531  "Events",
1532  "ELE_LOGY E1 P");
1534  "full5x5_sigietaieta_Extended",
1535  "ele supercluster full5x5 sigma ieta ieta, 2.5<|eta|<3",
1536  100,
1537  0.,
1538  0.05,
1539  "#sigma_{i#eta i#eta}",
1540  "Events",
1541  "ELE_LOGY E1 P");
1543  "full5x5_sigietaieta_barrel",
1544  "ele supercluster full5x5 sigma ieta ieta, barrel",
1545  100,
1546  0.,
1547  0.05,
1548  "#sigma_{i#eta i#eta}",
1549  "Events",
1550  "ELE_LOGY E1 P");
1552  "full5x5_sigietaieta_endcaps",
1553  "ele supercluster full5x5 sigma ieta ieta, endcaps",
1554  100,
1555  0.,
1556  0.05,
1557  "#sigma_{i#eta i#eta}",
1558  "Events",
1559  "ELE_LOGY E1 P");
1561  iBooker, "E1x5", "ele supercluster energy in 1x5", p_nbin, 0., p_max, "E1x5 (GeV)", "Events", "ELE_LOGY E1 P");
1563  "E1x5_barrel",
1564  "ele supercluster energy in 1x5 barrel",
1565  p_nbin,
1566  0.,
1567  p_max,
1568  "E1x5 (GeV)",
1569  "Events",
1570  "ELE_LOGY E1 P");
1572  "E1x5_endcaps",
1573  "ele supercluster energy in 1x5 endcaps",
1574  p_nbin,
1575  0.,
1576  p_max,
1577  "E1x5 (GeV)",
1578  "Events",
1579  "ELE_LOGY E1 P");
1580  h1_scl_E2x5max = bookH1withSumw2(iBooker,
1581  "E2x5max",
1582  "ele supercluster energy in 2x5 max",
1583  p_nbin,
1584  0.,
1585  p_max,
1586  "E2x5 (GeV)",
1587  "Events",
1588  "ELE_LOGY E1 P");
1590  "E2x5max_barrel",
1591  "ele supercluster energy in 2x5 _max barrel",
1592  p_nbin,
1593  0.,
1594  p_max,
1595  "E2x5 (GeV)",
1596  "Events",
1597  "ELE_LOGY E1 P");
1599  "E2x5max_endcaps",
1600  "ele supercluster energy in 2x5 _max endcaps",
1601  p_nbin,
1602  0.,
1603  p_max,
1604  "E2x5 (GeV)",
1605  "Events",
1606  "ELE_LOGY E1 P");
1608  iBooker, "E5x5", "ele supercluster energy in 5x5", p_nbin, 0., p_max, "E5x5 (GeV)", "Events", "ELE_LOGY E1 P");
1610  "E5x5_barrel",
1611  "ele supercluster energy in 5x5 barrel",
1612  p_nbin,
1613  0.,
1614  p_max,
1615  "E5x5 (GeV)",
1616  "Events",
1617  "ELE_LOGY E1 P");
1619  "E5x5_endcaps",
1620  "ele supercluster energy in 5x5 endcaps",
1621  p_nbin,
1622  0.,
1623  p_max,
1624  "E5x5 (GeV)",
1625  "Events",
1626  "ELE_LOGY E1 P");
1627  h2_scl_EoEtruePfVsEg = bookH2(iBooker,
1628  "EoEtruePfVsEg",
1629  "mean mustache SC/true energy vs final SC/true energy",
1630  75,
1631  -0.1,
1632  1.4,
1633  75,
1634  -0.1,
1635  1.4,
1636  "E_{final SC}/E_{gen}",
1637  "E_{mustache}/E_{gen}");
1639  bookH1withSumw2(iBooker, "bcl_EtotoEtrue", "Total basicclusters energy", 50, 0.2, 1.2, "E/E_{gen}");
1641  iBooker, "bcl_EtotoEtrue_Extended", "Total basicclusters energy, 2.5<|eta|<3", 50, 0.2, 1.2, "E/E_{gen}");
1643  iBooker, "bcl_EtotoEtrue_barrel", "Total basicclusters energy , barrel", 50, 0.2, 1.2, "E/E_{gen}");
1645  iBooker, "bcl_EtotoEtrue_endcaps", "Total basicclusters energy , endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1647  "ESFrac_endcaps",
1648  "Preshower over SC raw energy , endcaps",
1649  100,
1650  0.,
1651  0.8,
1652  "E_{PS} / E^{raw}_{SC}",
1653  "Events",
1654  "ELE_LOGY E1 P");
1655 
1656  // matched electron, gsf tracks
1657  setBookPrefix("h_ele");
1659  "ambiguousTracks",
1660  "ele # ambiguous tracks",
1661  5,
1662  0.,
1663  5.,
1664  "N_{ambiguous tracks}",
1665  "Events",
1666  "ELE_LOGY E1 P");
1668  bookH2(iBooker, "ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", eta2D_nbin, eta_min, eta_max, 5, 0., 5.);
1670  bookH2(iBooker, "ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", phi2D_nbin, phi_min, phi_max, 5, 0., 5.);
1672  bookH2(iBooker, "ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", pt2D_nbin, 0., pt_max, 5, 0., 5.);
1674  bookH1withSumw2(iBooker, "foundHits", "ele track # found hits", fhits_nbin, 0., fhits_max, "N_{hits}");
1676  iBooker, "foundHits_barrel", "ele track # found hits, barrel", fhits_nbin, 0., fhits_max, "N_{hits}");
1678  iBooker, "foundHits_endcaps", "ele track # found hits, endcaps", fhits_nbin, 0., fhits_max, "N_{hits}");
1680  "foundHitsVsEta_Extended",
1681  "ele track # found hits vs eta",
1685  fhits_nbin,
1686  0.,
1687  fhits_max);
1689  "foundHitsVsEta_mAOD",
1690  "ele track # found hits vs eta",
1691  eta2D_nbin,
1692  eta_min,
1693  eta_max,
1694  fhits_nbin,
1695  0.,
1696  fhits_max);
1697  h2_ele_foundHitsVsPhi = bookH2(iBooker,
1698  "foundHitsVsPhi",
1699  "ele track # found hits vs phi",
1700  phi2D_nbin,
1701  phi_min,
1702  phi_max,
1703  fhits_nbin,
1704  0.,
1705  fhits_max);
1707  iBooker, "foundHitsVsPt", "ele track # found hits vs pt", pt2D_nbin, 0., pt_max, fhits_nbin, 0., fhits_max);
1708  h1_ele_lostHits = bookH1withSumw2(iBooker, "lostHits", "ele track # lost hits", 5, 0., 5., "N_{lost hits}");
1710  bookH1withSumw2(iBooker, "lostHits_barrel", "ele track # lost hits, barrel", 5, 0., 5., "N_{lost hits}");
1712  bookH1withSumw2(iBooker, "lostHits_endcaps", "ele track # lost hits, endcaps", 5, 0., 5., "N_{lost hits}");
1714  iBooker, "lostHitsVsEta", "ele track # lost hits vs eta", eta2D_nbin, eta_min, eta_max, lhits_nbin, 0., lhits_max);
1716  iBooker, "lostHitsVsPhi", "ele track # lost hits vs eta", phi2D_nbin, phi_min, phi_max, lhits_nbin, 0., lhits_max);
1718  bookH2(iBooker, "lostHitsVsPt", "ele track # lost hits vs eta", pt2D_nbin, 0., pt_max, lhits_nbin, 0., lhits_max);
1719  h1_ele_chi2 =
1720  bookH1withSumw2(iBooker, "chi2", "ele track #chi^{2}", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1722  iBooker, "chi2_barrel", "ele track #chi^{2}, barrel", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1724  iBooker, "chi2_endcaps", "ele track #chi^{2}, endcaps", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1726  bookH2(iBooker, "chi2VsEta", "ele track #chi^{2} vs eta", eta2D_nbin, eta_min, eta_max, 50, 0., 15.);
1728  bookH2(iBooker, "chi2VsPhi", "ele track #chi^{2} vs phi", phi2D_nbin, phi_min, phi_max, 50, 0., 15.);
1729  h2_ele_chi2VsPt = bookH2(iBooker, "chi2VsPt", "ele track #chi^{2} vs pt", pt2D_nbin, 0., pt_max, 50, 0., 15.);
1731  "PinMnPout",
1732  "ele track inner p - outer p, mean of GSF components",
1733  p_nbin,
1734  0.,
1735  200.,
1736  "P_{vertex} - P_{out} (GeV/c)");
1738  "PinMnPout_mode",
1739  "ele track inner p - outer p, mode of GSF components",
1740  p_nbin,
1741  0.,
1742  100.,
1743  "P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
1745  "PinMnPoutVsEta_mode",
1746  "ele track inner p - outer p vs eta, mode of GSF components",
1747  eta2D_nbin,
1748  eta_min,
1749  eta_max,
1750  p2D_nbin,
1751  0.,
1752  100.);
1754  "PinMnPoutVsPhi_mode",
1755  "ele track inner p - outer p vs phi, mode of GSF components",
1756  phi2D_nbin,
1757  phi_min,
1758  phi_max,
1759  p2D_nbin,
1760  0.,
1761  100.);
1763  "PinMnPoutVsPt_mode",
1764  "ele track inner p - outer p vs pt, mode of GSF components",
1765  pt2D_nbin,
1766  0.,
1767  pt_max,
1768  p2D_nbin,
1769  0.,
1770  100.);
1771  h2_ele_PinMnPoutVsE_mode = bookH2(iBooker,
1772  "PinMnPoutVsE_mode",
1773  "ele track inner p - outer p vs E, mode of GSF components",
1774  p2D_nbin,
1775  0.,
1776  200.,
1777  p2D_nbin,
1778  0.,
1779  100.);
1781  "PinMnPoutVsChi2_mode",
1782  "ele track inner p - outer p vs track chi2, mode of GSF components",
1783  50,
1784  0.,
1785  20.,
1786  p2D_nbin,
1787  0.,
1788  100.);
1790  iBooker, "outerP", "ele track outer p, mean of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1792  iBooker, "outerP_mode", "ele track outer p, mode of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1794  bookH2(iBooker, "outerPVsEta_mode", "ele track outer p vs eta mode", eta2D_nbin, eta_min, eta_max, 50, 0., p_max);
1796  iBooker, "outerPt", "ele track outer p_{T}, mean of GSF components", pt_nbin, 0., pt_max, "P_{T out} (GeV/c)");
1798  "outerPt_mode",
1799  "ele track outer p_{T}, mode of GSF components",
1800  pt_nbin,
1801  0.,
1802  pt_max,
1803  "P_{T out} (GeV/c)");
1804  h2_ele_outerPtVsEta_mode = bookH2(iBooker,
1805  "outerPtVsEta_mode",
1806  "ele track outer p_{T} vs eta, mode of GSF components",
1807  eta2D_nbin,
1808  eta_min,
1809  eta_max,
1810  pt2D_nbin,
1811  0.,
1812  pt_max);
1813  h2_ele_outerPtVsPhi_mode = bookH2(iBooker,
1814  "outerPtVsPhi_mode",
1815  "ele track outer p_{T} vs phi, mode of GSF components",
1816  phi2D_nbin,
1817  phi_min,
1818  phi_max,
1819  pt2D_nbin,
1820  0.,
1821  pt_max);
1822  h2_ele_outerPtVsPt_mode = bookH2(iBooker,
1823  "outerPtVsPt_mode",
1824  "ele track outer p_{T} vs pt, mode of GSF components",
1825  pt2D_nbin,
1826  0.,
1827  100.,
1828  pt2D_nbin,
1829  0.,
1830  pt_max);
1831 
1832  // matched electrons, matching
1834  iBooker, "EoP", "ele E/P_{vertex}", eop_nbin, 0., eop_max, "E/P_{vertex}", "Events", "ELE_LOGY E1 P");
1836  "EoP_barrel",
1837  "ele E/P_{vertex} barrel",
1838  eop_nbin,
1839  0.,
1840  eop_max,
1841  "E/P_{vertex}",
1842  "Events",
1843  "ELE_LOGY E1 P");
1845  "EoP_endcaps",
1846  "ele E/P_{vertex} endcaps",
1847  eop_nbin,
1848  0.,
1849  eop_max,
1850  "E/P_{vertex}",
1851  "Events",
1852  "ELE_LOGY E1 P");
1853  h2_ele_EoPVsEta_Extended = bookH2(iBooker,
1854  "EoPVsEta_Extended",
1855  "ele E/P_{vertex} vs eta",
1859  eop2D_nbin,
1860  0.,
1861  eopmaxsht);
1862  h2_ele_EoPVsPhi =
1863  bookH2(iBooker, "EoPVsPhi", "ele E/P_{vertex} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1864  h2_ele_EoPVsE = bookH2(iBooker, "EoPVsE", "ele E/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1865  h1_ele_EseedOP = bookH1withSumw2(iBooker,
1866  "EseedOP",
1867  "ele E_{seed}/P_{vertex}",
1868  eop_nbin,
1869  0.,
1870  eop_max,
1871  "E_{seed}/P_{vertex}",
1872  "Events",
1873  "ELE_LOGY E1 P");
1875  "EseedOP_barrel",
1876  "ele E_{seed}/P_{vertex} barrel",
1877  eop_nbin,
1878  0.,
1879  eop_max,
1880  "E_{seed}/P_{vertex}",
1881  "Events",
1882  "ELE_LOGY E1 P");
1884  "EseedOP_endcaps",
1885  "ele E_{seed}/P_{vertex} endcaps",
1886  eop_nbin,
1887  0.,
1888  eop_max,
1889  "E_{seed}/P_{vertex}",
1890  "Events",
1891  "ELE_LOGY E1 P");
1892  h2_ele_EseedOPVsEta = bookH2(iBooker,
1893  "EseedOPVsEta",
1894  "ele E_{seed}/P_{vertex} vs eta",
1895  eta2D_nbin,
1896  eta_min,
1897  eta_max,
1898  eop2D_nbin,
1899  0.,
1900  eopmaxsht);
1901  h2_ele_EseedOPVsPhi = bookH2(iBooker,
1902  "EseedOPVsPhi",
1903  "ele E_{seed}/P_{vertex} vs phi",
1904  phi2D_nbin,
1905  phi_min,
1906  phi_max,
1907  eop2D_nbin,
1908  0.,
1909  eopmaxsht);
1910  h2_ele_EseedOPVsE = bookH2(iBooker, "EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1912  iBooker, "EoPout", "ele E_{seed}/P_{out}", eop_nbin, 0., eop_max, "E_{seed}/P_{out}", "Events", "ELE_LOGY E1 P");
1914  "EoPout_barrel",
1915  "ele E_{seed}/P_{out} barrel",
1916  eop_nbin,
1917  0.,
1918  eop_max,
1919  "E_{seed}/P_{out}",
1920  "Events",
1921  "ELE_LOGY E1 P");
1923  "EoPout_endcaps",
1924  "ele E_{seed}/P_{out} endcaps",
1925  eop_nbin,
1926  0.,
1927  eop_max,
1928  "E_{seed}/P_{out}",
1929  "Events",
1930  "ELE_LOGY E1 P");
1932  iBooker, "EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1934  iBooker, "EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1936  bookH2(iBooker, "EoPoutVsE", "ele E_{seed}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1938  iBooker, "EeleOPout", "ele E_{ele}/P_{out}", eop_nbin, 0., eop_max, "E_{ele}/P_{out}", "Events", "ELE_LOGY E1 P");
1940  "EeleOPout_barrel",
1941  "ele E_{ele}/P_{out} barrel",
1942  eop_nbin,
1943  0.,
1944  eop_max,
1945  "E_{ele}/P_{out}",
1946  "Events",
1947  "ELE_LOGY E1 P");
1949  "EeleOPout_endcaps",
1950  "ele E_{ele}/P_{out} endcaps",
1951  eop_nbin,
1952  0.,
1953  eop_max,
1954  "E_{ele}/P_{out}",
1955  "Events",
1956  "ELE_LOGY E1 P");
1958  iBooker, "EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1960  iBooker, "EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1962  bookH2(iBooker, "EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1964  "dEtaSc_propVtx",
1965  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
1967  detamatch_min,
1968  detamatch_max,
1969  "#eta_{sc} - #eta_{tr}",
1970  "Events",
1971  "ELE_LOGY E1 P");
1973  "dEtaSc_propVtx_Extended",
1974  "ele #eta_{sc} - #eta_{tr}, prop from vertex, 2.5<|eta|<3",
1976  detamatch_min,
1977  detamatch_max,
1978  "#eta_{sc} - #eta_{tr}",
1979  "Events",
1980  "ELE_LOGY E1 P");
1982  "dEtaSc_propVtx_barrel",
1983  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1985  detamatch_min,
1986  detamatch_max,
1987  "#eta_{sc} - #eta_{tr}",
1988  "Events",
1989  "ELE_LOGY E1 P");
1991  "dEtaSc_propVtx_endcaps",
1992  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
1994  detamatch_min,
1995  detamatch_max,
1996  "#eta_{sc} - #eta_{tr}",
1997  "Events",
1998  "ELE_LOGY E1 P");
2000  "dEtaSc_propVtx_mAOD",
2001  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
2003  detamatch_min,
2004  detamatch_max,
2005  "#eta_{sc} - #eta_{tr}",
2006  "Events",
2007  "ELE_LOGY E1 P");
2009  "dEtaSc_propVtx_mAOD_barrel",
2010  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
2012  detamatch_min,
2013  detamatch_max,
2014  "#eta_{sc} - #eta_{tr}",
2015  "Events",
2016  "ELE_LOGY E1 P");
2018  "dEtaSc_propVtx_mAOD_endcaps",
2019  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
2021  detamatch_min,
2022  detamatch_max,
2023  "#eta_{sc} - #eta_{tr}",
2024  "Events",
2025  "ELE_LOGY E1 P");
2027  "dEtaScVsEta_propVtx",
2028  "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
2029  eta2D_nbin,
2030  eta_min,
2031  eta_max,
2033  detamatch_min,
2034  detamatch_max);
2036  "dEtaScVsPhi_propVtx",
2037  "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
2038  phi2D_nbin,
2039  phi_min,
2040  phi_max,
2042  detamatch_min,
2043  detamatch_max);
2045  "dEtaScVsPt_propVtx",
2046  "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
2047  pt2D_nbin,
2048  0.,
2049  pt_max,
2051  detamatch_min,
2052  detamatch_max);
2054  "dPhiSc_propVtx",
2055  "ele #phi_{sc} - #phi_{tr}, prop from vertex",
2057  dphimatch_min,
2058  dphimatch_max,
2059  "#phi_{sc} - #phi_{tr} (rad)",
2060  "Events",
2061  "ELE_LOGY E1 P");
2063  "dPhiSc_propVtx_Extended",
2064  "ele #phi_{sc} - #phi_{tr}, prop from vertex, 2.5<|eta|<3",
2066  dphimatch_min,
2067  dphimatch_max,
2068  "#phi_{sc} - #phi_{tr} (rad)",
2069  "Events",
2070  "ELE_LOGY E1 P");
2072  "dPhiSc_propVtx_barrel",
2073  "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",
2075  dphimatch_min,
2076  dphimatch_max,
2077  "#phi_{sc} - #phi_{tr} (rad)",
2078  "Events",
2079  "ELE_LOGY E1 P");
2081  "dPhiSc_propVtx_endcaps",
2082  "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",
2084  dphimatch_min,
2085  dphimatch_max,
2086  "#phi_{sc} - #phi_{tr} (rad)",
2087  "Events",
2088  "ELE_LOGY E1 P");
2090  "dPhiScVsEta_propVtx",
2091  "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
2092  eta2D_nbin,
2093  eta_min,
2094  eta_max,
2096  dphimatch_min,
2097  dphimatch_max);
2099  "dPhiScVsPhi_propVtx",
2100  "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
2101  phi2D_nbin,
2102  phi_min,
2103  phi_max,
2105  dphimatch_min,
2106  dphimatch_max);
2108  "dPhiScVsPt_propVtx",
2109  "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
2110  pt2D_nbin,
2111  0.,
2112  pt_max,
2114  dphimatch_min,
2115  dphimatch_max);
2117  "dEtaCl_propOut",
2118  "ele #eta_{cl} - #eta_{tr}, prop from outermost",
2120  detamatch_min,
2121  detamatch_max,
2122  "#eta_{seedcl} - #eta_{tr}",
2123  "Events",
2124  "ELE_LOGY E1 P");
2126  "dEtaCl_propOut_barrel",
2127  "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",
2129  detamatch_min,
2130  detamatch_max,
2131  "#eta_{seedcl} - #eta_{tr}",
2132  "Events",
2133  "ELE_LOGY E1 P");
2135  "dEtaCl_propOut_endcaps",
2136  "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",
2138  detamatch_min,
2139  detamatch_max,
2140  "#eta_{seedcl} - #eta_{tr}",
2141  "Events",
2142  "ELE_LOGY E1 P");
2144  "dEtaClVsEta_propOut",
2145  "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
2146  eta2D_nbin,
2147  eta_min,
2148  eta_max,
2150  detamatch_min,
2151  detamatch_max);
2153  "dEtaClVsPhi_propOut",
2154  "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
2155  phi2D_nbin,
2156  phi_min,
2157  phi_max,
2159  detamatch_min,
2160  detamatch_max);
2162  "dEtaScVsPt_propOut",
2163  "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
2164  pt2D_nbin,
2165  0.,
2166  pt_max,
2168  detamatch_min,
2169  detamatch_max);
2171  "dPhiCl_propOut",
2172  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2174  dphimatch_min,
2175  dphimatch_max,
2176  "#phi_{seedcl} - #phi_{tr} (rad)",
2177  "Events",
2178  "ELE_LOGY E1 P");
2180  "dPhiCl_propOut_barrel",
2181  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2183  dphimatch_min,
2184  dphimatch_max,
2185  "#phi_{seedcl} - #phi_{tr} (rad)",
2186  "Events",
2187  "ELE_LOGY E1 P");
2189  "dPhiCl_propOut_endcaps",
2190  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2192  dphimatch_min,
2193  dphimatch_max,
2194  "#phi_{seedcl} - #phi_{tr} (rad)",
2195  "Events",
2196  "ELE_LOGY E1 P");
2198  "dPhiCl_propOut_mAOD",
2199  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2201  dphimatch_min,
2202  dphimatch_max,
2203  "#phi_{seedcl} - #phi_{tr} (rad)",
2204  "Events",
2205  "ELE_LOGY E1 P");
2207  "dPhiCl_propOut_mAOD_barrel",
2208  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2210  dphimatch_min,
2211  dphimatch_max,
2212  "#phi_{seedcl} - #phi_{tr} (rad)",
2213  "Events",
2214  "ELE_LOGY E1 P");
2216  "dPhiCl_propOut_mAOD_endcaps",
2217  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2219  dphimatch_min,
2220  dphimatch_max,
2221  "#phi_{seedcl} - #phi_{tr} (rad)",
2222  "Events",
2223  "ELE_LOGY E1 P");
2225  "dPhiClVsEta_propOut",
2226  "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
2227  eta2D_nbin,
2228  eta_min,
2229  eta_max,
2231  dphimatch_min,
2232  dphimatch_max);
2234  "dPhiClVsPhi_propOut",
2235  "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
2236  phi2D_nbin,
2237  phi_min,
2238  phi_max,
2240  dphimatch_min,
2241  dphimatch_max);
2243  "dPhiSClsPt_propOut",
2244  "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
2245  pt2D_nbin,
2246  0.,
2247  pt_max,
2249  dphimatch_min,
2250  dphimatch_max);
2252  "dEtaEleCl_propOut",
2253  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
2255  detamatch_min,
2256  detamatch_max,
2257  "#eta_{elecl} - #eta_{tr}",
2258  "Events",
2259  "ELE_LOGY E1 P");
2261  "dEtaEleCl_propOut_barrel",
2262  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",
2264  detamatch_min,
2265  detamatch_max,
2266  "#eta_{elecl} - #eta_{tr}",
2267  "Events",
2268  "ELE_LOGY E1 P");
2270  "dEtaEleCl_propOut_endcaps",
2271  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",
2273  detamatch_min,
2274  detamatch_max,
2275  "#eta_{elecl} - #eta_{tr}",
2276  "Events",
2277  "ELE_LOGY E1 P");
2279  "dEtaEleClVsEta_propOut",
2280  "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
2281  eta2D_nbin,
2282  eta_min,
2283  eta_max,
2285  detamatch_min,
2286  detamatch_max);
2288  "dEtaEleClVsPhi_propOut",
2289  "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
2290  phi2D_nbin,
2291  phi_min,
2292  phi_max,
2294  detamatch_min,
2295  detamatch_max);
2297  "dEtaScVsPt_propOut",
2298  "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
2299  pt2D_nbin,
2300  0.,
2301  pt_max,
2303  detamatch_min,
2304  detamatch_max);
2306  "dPhiEleCl_propOut",
2307  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
2309  dphimatch_min,
2310  dphimatch_max,
2311  "#phi_{elecl} - #phi_{tr} (rad)",
2312  "Events",
2313  "ELE_LOGY E1 P");
2315  "dPhiEleCl_propOut_barrel",
2316  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",
2318  dphimatch_min,
2319  dphimatch_max,
2320  "#phi_{elecl} - #phi_{tr} (rad)",
2321  "Events",
2322  "ELE_LOGY E1 P");
2324  "dPhiEleCl_propOut_endcaps",
2325  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",
2327  dphimatch_min,
2328  dphimatch_max,
2329  "#phi_{elecl} - #phi_{tr} (rad)",
2330  "Events",
2331  "ELE_LOGY E1 P");
2333  "dPhiEleClVsEta_propOut",
2334  "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
2335  eta2D_nbin,
2336  eta_min,
2337  eta_max,
2339  dphimatch_min,
2340  dphimatch_max);
2342  "dPhiEleClVsPhi_propOut",
2343  "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
2344  phi2D_nbin,
2345  phi_min,
2346  phi_max,
2348  dphimatch_min,
2349  dphimatch_max);
2351  "dPhiSEleClsPt_propOut",
2352  "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
2353  pt2D_nbin,
2354  0.,
2355  pt_max,
2357  dphimatch_min,
2358  dphimatch_max);
2360  iBooker, "HoE", "ele hadronic energy / em energy", hoe_nbin, hoe_min, hoe_max, "H/E", "Events", "ELE_LOGY E1 P");
2362  "HoE_Extended",
2363  "ele hadronic energy / em energy, 2.5<|eta|<3",
2364  hoe_nbin,
2365  hoe_min,
2366  hoe_max,
2367  "H/E",
2368  "Events",
2369  "ELE_LOGY E1 P");
2371  "HoE_barrel",
2372  "ele hadronic energy / em energy, barrel",
2373  hoe_nbin,
2374  hoe_min,
2375  hoe_max,
2376  "H/E",
2377  "Events",
2378  "ELE_LOGY E1 P");
2380  "HoE_endcaps",
2381  "ele hadronic energy / em energy, endcaps",
2382  hoe_nbin,
2383  hoe_min,
2384  hoe_max,
2385  "H/E",
2386  "Events",
2387  "ELE_LOGY E1 P");
2388  h1_ele_HoE_mAOD = bookH1withSumw2(iBooker,
2389  "HoE_mAOD",
2390  "ele hadronic energy / em energy",
2391  hoe_nbin,
2392  hoe_min,
2393  hoe_max,
2394  "H/E",
2395  "Events",
2396  "ELE_LOGY E1 P");
2398  "HoE_mAOD_barrel",
2399  "ele hadronic energy / em energy, barrel",
2400  hoe_nbin,
2401  hoe_min,
2402  hoe_max,
2403  "H/E",
2404  "Events",
2405  "ELE_LOGY E1 P");
2407  "HoE_mAOD_endcaps",
2408  "ele hadronic energy / em energy, endcaps",
2409  hoe_nbin,
2410  hoe_min,
2411  hoe_max,
2412  "H/E",
2413  "Events",
2414  "ELE_LOGY E1 P");
2415  h1_ele_HoE_bc = bookH1withSumw2(iBooker,
2416  "HoE_bc",
2417  "ele hadronic energy / em energy behind cluster",
2418  hoe_nbin,
2419  hoe_min,
2420  hoe_max,
2421  "H/E",
2422  "Events",
2423  "ELE_LOGY E1 P");
2425  "HoE_bc_barrel",
2426  "ele hadronic energy / em energy, behind cluster barrel",
2427  hoe_nbin,
2428  hoe_min,
2429  hoe_max,
2430  "H/E",
2431  "Events",
2432  "ELE_LOGY E1 P");
2434  "HoE_bc_endcaps",
2435  "ele hadronic energy / em energy, behind cluster, endcaps",
2436  hoe_nbin,
2437  hoe_min,
2438  hoe_max,
2439  "H/E",
2440  "Events",
2441  "ELE_LOGY E1 P");
2443  "hcalDepth1OverEcalBc",
2444  "hcalDepth1OverEcalBc",
2445  hoe_nbin,
2446  hoe_min,
2447  hoe_max,
2448  "H/E",
2449  "Events",
2450  "ELE_LOGY E1 P");
2452  "hcalDepth1OverEcalBc_barrel",
2453  "hcalDepth1OverEcalBc_barrel",
2454  hoe_nbin,
2455  hoe_min,
2456  hoe_max,
2457  "H/E",
2458  "Events",
2459  "ELE_LOGY E1 P");
2461  "hcalDepth1OverEcalBc_endcaps",
2462  "hcalDepth1OverEcalBc_endcaps",
2463  hoe_nbin,
2464  hoe_min,
2465  hoe_max,
2466  "H/E",
2467  "Events",
2468  "ELE_LOGY E1 P");
2470  "hcalDepth2OverEcalBc",
2471  "hcalDepth2OverEcalBc",
2472  hoe_nbin,
2473  hoe_min,
2474  hoe_max,
2475  "H/E",
2476  "Events",
2477  "ELE_LOGY E1 P");
2479  "hcalDepth2OverEcalBc_barrel",
2480  "hcalDepth2OverEcalBc_barrel",
2481  hoe_nbin,
2482  hoe_min,
2483  hoe_max,
2484  "H/E",
2485  "Events",
2486  "ELE_LOGY E1 P");
2488  "hcalDepth2OverEcalBc_endcaps",
2489  "hcalDepth2OverEcalBc_endcaps",
2490  hoe_nbin,
2491  hoe_min,
2492  hoe_max,
2493  "H/E",
2494  "Events",
2495  "ELE_LOGY E1 P");
2496 
2498  "HoE_fiducial",
2499  "ele hadronic energy / em energy, fiducial region",
2500  hoe_nbin,
2501  hoe_min,
2502  hoe_max,
2503  "H/E",
2504  "Events",
2505  "ELE_LOGY E1 P");
2506  h2_ele_HoEVsEta = bookH2(iBooker,
2507  "HoEVsEta",
2508  "ele hadronic energy / em energy vs eta",
2509  eta_nbin,
2510  eta_min,
2511  eta_max,
2512  hoe_nbin,
2513  hoe_min,
2514  hoe_max);
2515  h2_ele_HoEVsPhi = bookH2(iBooker,
2516  "HoEVsPhi",
2517  "ele hadronic energy / em energy vs phi",
2518  phi2D_nbin,
2519  phi_min,
2520  phi_max,
2521  hoe_nbin,
2522  hoe_min,
2523  hoe_max);
2524  h2_ele_HoEVsE =
2525  bookH2(iBooker, "HoEVsE", "ele hadronic energy / em energy vs E", p_nbin, 0., 300., hoe_nbin, hoe_min, hoe_max);
2526 
2527  // seeds
2529  bookH1withSumw2(iBooker, "seedSubdet2", "ele seed subdet 2nd layer", 11, -0.5, 10.5, "2nd hit subdet Id");
2530  h1_ele_seed_mask = bookH1withSumw2(iBooker, "seedMask", "ele seed hits mask", 13, -0.5, 12.5);
2532  bookH1withSumw2(iBooker, "seedMask_Bpix", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
2534  bookH1withSumw2(iBooker, "seedMask_Fpix", "ele seed hits mask when subdet2 is fpix", 13, -0.5, 12.5);
2536  bookH1withSumw2(iBooker, "seedMask_Tec", "ele seed hits mask when subdet2 is tec", 13, -0.5, 12.5);
2538  iBooker, "seedDphi2", "ele seed dphi 2nd layer", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2540  iBooker, "seedDphi2_VsEta", "ele seed dphi 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.003, +0.003);
2542  bookH2(iBooker, "seedDphi2_VsPt", "ele seed dphi 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2544  iBooker, "seedDphi2Pos", "ele seed dphi 2nd layer positron", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2546  "seedDphi2Pos_VsEta",
2547  "ele seed dphi 2nd layer positron vs eta",
2548  eta2D_nbin,
2549  eta_min,
2550  eta_max,
2551  50,
2552  -0.003,
2553  +0.003);
2555  iBooker, "seedDphi2Pos_VsPt", "ele seed dphi 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2557  iBooker, "seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2559  iBooker, "seedDrz2_VsEta", "ele seed dr/dz 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.03, +0.03);
2561  bookH2(iBooker, "seedDrz2_VsPt", "ele seed dr/dz 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2563  iBooker, "seedDrz2Pos", "ele seed dr (dz) 2nd layer positron", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2564  h2_ele_seed_drz2posVsEta = bookH2(iBooker,
2565  "seedDrz2Pos_VsEta",
2566  "ele seed dr/dz 2nd layer positron vs eta",
2567  eta2D_nbin,
2568  eta_min,
2569  eta_max,
2570  50,
2571  -0.03,
2572  +0.03);
2574  iBooker, "seedDrz2Pos_VsPt", "ele seed dr/dz 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2575 
2576  // classes
2577  h1_ele_classes = bookH1withSumw2(iBooker, "classes", "ele classes", 20, 0.0, 20., "class Id");
2578  h1_ele_eta = bookH1withSumw2(iBooker, "eta", "ele electron eta", eta_nbin / 2, 0.0, eta_max);
2579  h1_ele_eta_golden = bookH1withSumw2(iBooker, "eta_golden", "ele electron eta golden", eta_nbin / 2, 0.0, eta_max);
2580  h1_ele_eta_bbrem = bookH1withSumw2(iBooker, "eta_bbrem", "ele electron eta bbrem", eta_nbin / 2, 0.0, eta_max);
2581  h1_ele_eta_shower = bookH1withSumw2(iBooker, "eta_shower", "ele electron eta showering", eta_nbin / 2, 0.0, eta_max);
2583  "PinVsPoutGolden_mode",
2584  "ele track inner p vs outer p vs eta, golden, mode of GSF components",
2585  p2D_nbin,
2586  0.,
2587  p_max,
2588  50,
2589  0.,
2590  p_max);
2592  "PinVsPoutShowering_mode",
2593  "ele track inner p vs outer p vs eta, showering, mode of GSF components",
2594  p2D_nbin,
2595  0.,
2596  p_max,
2597  50,
2598  0.,
2599  p_max);
2601  "PinVsPoutGolden_mean",
2602  "ele track inner p vs outer p vs eta, golden, mean of GSF components",
2603  p2D_nbin,
2604  0.,
2605  p_max,
2606  50,
2607  0.,
2608  p_max);
2610  "PinVsPoutShowering_mean",
2611  "ele track inner p vs outer p vs eta, showering, mean of GSF components",
2612  p2D_nbin,
2613  0.,
2614  p_max,
2615  50,
2616  0.,
2617  p_max);
2619  "PtinVsPtoutGolden_mode",
2620  "ele track inner pt vs outer pt vs eta, golden, mode of GSF components",
2621  pt2D_nbin,
2622  0.,
2623  pt_max,
2624  50,
2625  0.,
2626  pt_max);
2628  "PtinVsPtoutShowering_mode",
2629  "ele track inner pt vs outer pt vs eta, showering, mode of GSF components",
2630  pt2D_nbin,
2631  0.,
2632  pt_max,
2633  50,
2634  0.,
2635  pt_max);
2637  "PtinVsPtoutGolden_mean",
2638  "ele track inner pt vs outer pt vs eta, golden, mean of GSF components",
2639  pt2D_nbin,
2640  0.,
2641  pt_max,
2642  50,
2643  0.,
2644  pt_max);
2646  "PtinVsPtoutShowering_mean",
2647  "ele track inner pt vs outer pt vs eta, showering, mean of GSF components",
2648  pt2D_nbin,
2649  0.,
2650  pt_max,
2651  50,
2652  0.,
2653  pt_max);
2654  setBookPrefix("h_scl");
2656  "EoEtrue_golden_barrel",
2657  "ele supercluster energy / gen energy, golden, barrel",
2658  poptrue_nbin,
2659  poptrue_min,
2660  poptrue_max);
2662  "EoEtrue_golden_endcaps",
2663  "ele supercluster energy / gen energy, golden, endcaps",
2664  poptrue_nbin,
2665  poptrue_min,
2666  poptrue_max);
2668  "EoEtrue_showering_barrel",
2669  "ele supercluster energy / gen energy, showering, barrel",
2670  poptrue_nbin,
2671  poptrue_min,
2672  poptrue_max);
2674  "EoEtrue_showering_endcaps",
2675  "ele supercluster energy / gen energy, showering, endcaps",
2676  poptrue_nbin,
2677  poptrue_min,
2678  poptrue_max);
2679 
2680  // isolation
2681  setBookPrefix("h_ele");
2683  "tkSumPt_dr03",
2684  "tk isolation sum, dR=0.3",
2685  100,
2686  0.0,
2687  20.,
2688  "TkIsoSum, cone 0.3 (GeV/c)",
2689  "Events",
2690  "ELE_LOGY E1 P");
2692  "tkSumPt_dr03_barrel",
2693  "tk isolation sum, dR=0.3, barrel",
2694  100,
2695  0.0,
2696  20.,
2697  "TkIsoSum, cone 0.3 (GeV/c)",
2698  "Events",
2699  "ELE_LOGY E1 P");
2701  "tkSumPt_dr03_endcaps",
2702  "tk isolation sum, dR=0.3, endcaps",
2703  100,
2704  0.0,
2705  20.,
2706  "TkIsoSum, cone 0.3 (GeV/c)",
2707  "Events",
2708  "ELE_LOGY E1 P");
2710  "ecalRecHitSumEt_dr03",
2711  "ecal isolation sum, dR=0.3",
2712  100,
2713  0.0,
2714  20.,
2715  "EcalIsoSum, cone 0.3 (GeV)",
2716  "Events",
2717  "ELE_LOGY E1 P");
2719  "ecalRecHitSumEt_dr03_barrel",
2720  "ecal isolation sum, dR=0.3, barrel",
2721  100,
2722  0.0,
2723  20.,
2724  "EcalIsoSum, cone 0.3 (GeV)",
2725  "Events",
2726  "ELE_LOGY E1 P");
2728  "ecalRecHitSumEt_dr03_endcaps",
2729  "ecal isolation sum, dR=0.3, endcaps",
2730  100,
2731  0.0,
2732  20.,
2733  "EcalIsoSum, cone 0.3 (GeV)",
2734  "Events",
2735  "ELE_LOGY E1 P");
2737  "hcalTowerSumEt_dr03_depth1",
2738  "hcal depth1 isolation sum, dR=0.3",
2739  100,
2740  0.0,
2741  20.,
2742  "Hcal1IsoSum, cone 0.3 (GeV)",
2743  "Events",
2744  "ELE_LOGY E1 P");
2746  "hcalTowerSumEt_dr03_depth1_barrel",
2747  "hcal depth1 isolation sum, dR=0.3, barrel",
2748  100,
2749  0.0,
2750  20.,
2751  "Hcal1IsoSum, cone 0.3 (GeV)",
2752  "Events",
2753  "ELE_LOGY E1 P");
2755  "hcalTowerSumEt_dr03_depth1_endcaps",
2756  "hcal depth1 isolation sum, dR=0.3, endcaps",
2757  100,
2758  0.0,
2759  20.,
2760  "Hcal1IsoSum, cone 0.3 (GeV)",
2761  "Events",
2762  "ELE_LOGY E1 P");
2764  "hcalTowerSumEt_dr03_depth2",
2765  "hcal depth2 isolation sum, dR=0.3",
2766  100,
2767  0.0,
2768  20.,
2769  "Hcal2IsoSum, cone 0.3 (GeV)",
2770  "Events",
2771  "ELE_LOGY E1 P");
2773  "hcalTowerSumEt_dr03_depth2_barrel",
2774  "hcal depth2 isolation sum, dR=0.3",
2775  100,
2776  0.0,
2777  20.,
2778  "Hcal2IsoSum, cone 0.3 (GeV)",
2779  "Events",
2780  "ELE_LOGY E1 P");
2782  "hcalTowerSumEt_dr03_depth2_endcaps",
2783  "hcal depth2 isolation sum, dR=0.3",
2784  100,
2785  0.0,
2786  20.,
2787  "Hcal2IsoSum, cone 0.3 (GeV)",
2788  "Events",
2789  "ELE_LOGY E1 P");
2790 
2791  // newHCAL
2792  // isolation new hcal
2794  "hcalTowerSumEtBc_dr03_depth1",
2795  "hcal depth1 isolation sum behind cluster, dR=0.3",
2796  100,
2797  0.0,
2798  20.,
2799  "Hcal1IsoSum, cone 0.3 (GeV)",
2800  "Events",
2801  "ELE_LOGY E1 P");
2803  bookH1withSumw2(iBooker,
2804  "hcalTowerSumEtBc_dr03_depth1_barrel",
2805  "hcal depth1 isolation sum behind cluster, dR=0.3, barrel",
2806  100,
2807  0.0,
2808  20.,
2809  "Hcal1IsoSum, cone 0.3 (GeV)",
2810  "Events",
2811  "ELE_LOGY E1 P");
2813  bookH1withSumw2(iBooker,
2814  "hcalTowerSumEtBc_dr03_depth1_endcaps",
2815  "hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",
2816  100,
2817  0.0,
2818  20.,
2819  "Hcal1IsoSum, cone 0.3 (GeV)",
2820  "Events",
2821  "ELE_LOGY E1 P");
2822 
2824  "hcalTowerSumEtBc_dr03_depth2",
2825  "hcal depth2 isolation sum behind cluster, dR=0.3",
2826  100,
2827  0.0,
2828  20.,
2829  "Hcal1IsoSum, cone 0.3 (GeV)",
2830  "Events",
2831  "ELE_LOGY E1 P");
2833  bookH1withSumw2(iBooker,
2834  "hcalTowerSumEtBc_dr03_depth2_barrel",
2835  "hcal depth2 isolation sum behind cluster, dR=0.3, barrel",
2836  100,
2837  0.0,
2838  20.,
2839  "Hcal1IsoSum, cone 0.3 (GeV)",
2840  "Events",
2841  "ELE_LOGY E1 P");
2843  bookH1withSumw2(iBooker,
2844  "hcalTowerSumEtBc_dr03_depth2_endcaps",
2845  "hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",
2846  100,
2847  0.0,
2848  20.,
2849  "Hcal1IsoSum, cone 0.3 (GeV)",
2850  "Events",
2851  "ELE_LOGY E1 P");
2852 
2854  "ecalPFClusterIso",
2855  "ecal PF Cluster Iso",
2856  100,
2857  0.0,
2858  100.,
2859  "hcal PF Cluser Iso",
2860  "Events",
2861  "ELE_LOGY E1 P");
2863  "ecalPFClusterIso_barrel",
2864  "ecal PF Cluster Iso barrel",
2865  100,
2866  0.0,
2867  100.,
2868  "hcal PF Cluser Iso",
2869  "Events",
2870  "ELE_LOGY E1 P");
2872  "ecalPFClusterIso_endcaps",
2873  "ecal PF Cluster Iso endcaps",
2874  100,
2875  0.0,
2876  100.,
2877  "hcal PF Cluser Iso",
2878  "Events",
2879  "ELE_LOGY E1 P");
2881  "hcalPFClusterIso",
2882  "hcal PF Cluster Iso",
2883  100,
2884  0.0,
2885  100.,
2886  "hcal PF Cluser Iso",
2887  "Events",
2888  "ELE_LOGY E1 P");
2890  "hcalPFClusterIso_barrel",
2891  "hcal PF Cluster Iso barrel",
2892  100,
2893  0.0,
2894  100.,
2895  "hcal PF Cluser Iso",
2896  "Events",
2897  "ELE_LOGY E1 P");
2899  "hcalPFClusterIso_endcaps",
2900  "hcal PF Cluster Iso endcaps",
2901  100,
2902  0.0,
2903  100.,
2904  "hcal PF Cluser Iso",
2905  "Events",
2906  "ELE_LOGY E1 P");
2908  "ecalPFClusterIso_Extended",
2909  "ecal PF Cluster Iso Extended",
2910  100,
2911  0.0,
2912  100.,
2913  "hcal PF Cluser Iso Extended, 2.5<|eta|<3",
2914  "Events",
2915  "ELE_LOGY E1 P");
2917  "hcalPFClusterIso_Extended",
2918  "hcal PF Cluster Iso Extended",
2919  100,
2920  0.0,
2921  100.,
2922  "hcal PF Cluser Iso Extended, 2.5<|eta|<3",
2923  "Events",
2924  "ELE_LOGY E1 P");
2925 
2926  // fbrem
2928  iBooker, "fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2930  "fbrem_Extended",
2931  "ele brem fraction, mode of GSF components, 2.5<|eta|<3",
2932  100,
2933  0.,
2934  1.,
2935  "P_{in} - P_{out} / P_{in}");
2937  "fbrem_barrel",
2938  "ele brem fraction for barrel, mode of GSF components",
2939  100,
2940  0.,
2941  1.,
2942  "P_{in} - P_{out} / P_{in}");
2944  "fbrem_endcaps",
2945  "ele brem franction for endcaps, mode of GSF components",
2946  100,
2947  0.,
2948  1.,
2949  "P_{in} - P_{out} / P_{in}");
2951  iBooker, "fbrem_mAOD", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2953  "fbrem_mAOD_barrel",
2954  "ele brem fraction for barrel, mode of GSF components",
2955  100,
2956  0.,
2957  1.,
2958  "P_{in} - P_{out} / P_{in}");
2960  "fbrem_mAOD_endcaps",
2961  "ele brem franction for endcaps, mode of GSF components",
2962  100,
2963  0.,
2964  1.,
2965  "P_{in} - P_{out} / P_{in}");
2967  bookH1withSumw2(iBooker, "superclusterfbrem", "supercluster brem fraction", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2969  iBooker, "superclusterfbrem_barrel", "supercluster brem fraction for barrel", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2971  "superclusterfbrem_endcaps",
2972  "supercluster brem franction for endcaps",
2973  100,
2974  0.,
2975  1.,
2976  "1 - E_{ele} / E_{SC}");
2977  p1_ele_fbremVsEta_mode = bookP1(iBooker,
2978  "fbremvsEtamode",
2979  "mean ele brem fraction vs eta, mode of GSF components",
2980  eta2D_nbin,
2981  eta_min,
2982  eta_max,
2983  0.,
2984  1.,
2985  "#eta",
2986  "<P_{in} - P_{out} / P_{in}>");
2987  p1_ele_fbremVsEta_mean = bookP1(iBooker,
2988  "fbremvsEtamean",
2989  "mean ele brem fraction vs eta, mean of GSF components",
2990  eta2D_nbin,
2991  eta_min,
2992  eta_max,
2993  0.,
2994  1.,
2995  "#eta",
2996  "<P_{in} - P_{out} / P_{in}>");
2997  h1_ele_chargeInfo = bookH1withSumw2(iBooker, "chargeInfo", "chargeInfo", 5, -2., 3.);
2998 
2999  // e/g et pflow electrons
3000  h1_ele_mva = bookH1withSumw2(iBooker, "mva", "ele identification mva", 100, -1., 1.);
3001  h1_ele_mva_barrel = bookH1withSumw2(iBooker, "mva_barrel", "ele identification mva barrel", 100, -1., 1.);
3002  h1_ele_mva_endcaps = bookH1withSumw2(iBooker, "mva_endcaps", "ele identification mva endcaps", 100, -1., 1.);
3003  h1_ele_mva_isolated = bookH1withSumw2(iBooker, "mva_isolated", "ele identification mva isolated", 100, -1., 1.);
3005  bookH1withSumw2(iBooker, "mva_isolated_barrel", "ele identification mva isolated barrel", 100, -1., 1.);
3007  bookH1withSumw2(iBooker, "mva_isolated_endcaps", "ele identification mva isolated endcaps", 100, -1., 1.);
3008  h1_ele_provenance = bookH1withSumw2(iBooker, "provenance", "ele provenance", 5, -2., 3.);
3009  h1_ele_provenance_Extended = bookH1withSumw2(iBooker, "provenance_Extended", "ele provenance Extended", 5, -2., 3.);
3010  h1_ele_provenance_barrel = bookH1withSumw2(iBooker, "provenance_barrel", "ele provenance barrel", 5, -2., 3.);
3011  h1_ele_provenance_endcaps = bookH1withSumw2(iBooker, "provenance_endcaps", "ele provenance endcaps", 5, -2., 3.);
3012 
3013  // pflow isolation variables
3015  iBooker, "chargedHadronIso", "chargedHadronIso", 100, 0.0, 20., "chargedHadronIso", "Events", "ELE_LOGY E1 P");
3017  "chargedHadronIso_barrel",
3018  "chargedHadronIso for barrel",
3019  100,
3020  0.0,
3021  20.,
3022  "chargedHadronIso_barrel",
3023  "Events",
3024  "ELE_LOGY E1 P");
3026  "chargedHadronIso_endcaps",
3027  "chargedHadronIso for endcaps",
3028  100,
3029  0.0,
3030  20.,
3031  "chargedHadronIso_endcaps",
3032  "Events",
3033  "ELE_LOGY E1 P");
3035  iBooker, "neutralHadronIso", "neutralHadronIso", 21, 0.0, 20., "neutralHadronIso", "Events", "ELE_LOGY E1 P");
3037  "neutralHadronIso_barrel",
3038  "neutralHadronIso for barrel",
3039  21,
3040  0.0,
3041  20.,
3042  "neutralHadronIso_barrel",
3043  "Events",
3044  "ELE_LOGY E1 P");
3046  "neutralHadronIso_endcaps",
3047  "neutralHadronIso for endcaps",
3048  21,
3049  0.0,
3050  20.,
3051  "neutralHadronIso_endcaps",
3052  "Events",
3053  "ELE_LOGY E1 P");
3055  bookH1withSumw2(iBooker, "photonIso", "photonIso", 100, 0.0, 20., "photonIso", "Events", "ELE_LOGY E1 P");
3057  iBooker, "photonIso_barrel", "photonIso for barrel", 100, 0.0, 20., "photonIso_barrel", "Events", "ELE_LOGY E1 P");
3059  "photonIso_endcaps",
3060  "photonIso for endcaps",
3061  100,
3062  0.0,
3063  20.,
3064  "photonIso_endcaps",
3065  "Events",
3066  "ELE_LOGY E1 P");
3067  // -- pflow over pT
3069  "chargedHadronRelativeIso",
3070  "chargedHadronRelativeIso",
3071  100,
3072  0.0,
3073  2.,
3074  "chargedHadronRelativeIso",
3075  "Events",
3076  "ELE_LOGY E1 P");
3078  "chargedHadronRelativeIso_Extended",
3079  "chargedHadronRelativeIso_Extended",
3080  100,
3081  0.0,
3082  2.,
3083  "chargedHadronRelativeIso Extended, 2.5<|eta|<3",
3084  "Events",
3085  "ELE_LOGY E1 P");
3087  "chargedHadronRelativeIso_barrel",
3088  "chargedHadronRelativeIso for barrel",
3089  100,
3090  0.0,
3091  2.,
3092  "chargedHadronRelativeIso_barrel",
3093  "Events",
3094  "ELE_LOGY E1 P");
3096  "chargedHadronRelativeIso_endcaps",
3097  "chargedHadronRelativeIso for endcaps",
3098  100,
3099  0.0,
3100  2.,
3101  "chargedHadronRelativeIso_endcaps",
3102  "Events",
3103  "ELE_LOGY E1 P");
3105  "neutralHadronRelativeIso",
3106  "neutralHadronRelativeIso",
3107  100,
3108  0.0,
3109  2.,
3110  "neutralHadronRelativeIso",
3111  "Events",
3112  "ELE_LOGY E1 P");
3114  "neutralHadronRelativeIso_Extended",
3115  "neutralHadronRelativeIso_Extended",
3116  100,
3117  0.0,
3118  2.,
3119  "neutralHadronRelativeIso Extended, 2.5<|eta|<3",
3120  "Events",
3121  "ELE_LOGY E1 P");
3123  "neutralHadronRelativeIso_barrel",
3124  "neutralHadronRelativeIso for barrel",
3125  100,
3126  0.0,
3127  2.,
3128  "neutralHadronRelativeIso_barrel",
3129  "Events",
3130  "ELE_LOGY E1 P");
3132  "neutralHadronRelativeIso_endcaps",
3133  "neutralHadronRelativeIso for endcaps",
3134  100,
3135  0.0,
3136  2.,
3137  "neutralHadronRelativeIso_endcaps",
3138  "Events",
3139  "ELE_LOGY E1 P");
3141  iBooker, "photonRelativeIso", "photonRelativeIso", 100, 0.0, 2., "photonRelativeIso", "Events", "ELE_LOGY E1 P");
3143  "photonRelativeIso_Extended",
3144  "photonRelativeIso_Extended",
3145  100,
3146  0.0,
3147  2.,
3148  "photonRelativeIso Extended, 2.5<|eta|<3",
3149  "Events",
3150  "ELE_LOGY E1 P");
3152  "photonRelativeIso_barrel",
3153  "photonRelativeIso for barrel",
3154  100,
3155  0.0,
3156  2.,
3157  "photonRelativeIso_barrel",
3158  "Events",
3159  "ELE_LOGY E1 P");
3161  "photonRelativeIso_endcaps",
3162  "photonRelativeIso for endcaps",
3163  100,
3164  0.0,
3165  2.,
3166  "photonRelativeIso_endcaps",
3167  "Events",
3168  "ELE_LOGY E1 P");
3170  "chargedHadronRelativeIso_mAOD",
3171  "chargedHadronRelativeIso",
3172  100,
3173  0.0,
3174  2.,
3175  "chargedHadronRelativeIso",
3176  "Events",
3177  "ELE_LOGY E1 P");
3179  "chargedHadronRelativeIso_mAOD_barrel",
3180  "chargedHadronRelativeIso for barrel",
3181  100,
3182  0.0,
3183  2.,
3184  "chargedHadronRelativeIso_barrel",
3185  "Events",
3186  "ELE_LOGY E1 P");
3188  "chargedHadronRelativeIso_mAOD_endcaps",
3189  "chargedHadronRelativeIso for endcaps",
3190  100,
3191  0.0,
3192  2.,
3193  "chargedHadronRelativeIso_endcaps",
3194  "Events",
3195  "ELE_LOGY E1 P");
3197  "neutralHadronRelativeIso_mAOD",
3198  "neutralHadronRelativeIso",
3199  100,
3200  0.0,
3201  2.,
3202  "neutralHadronRelativeIso",
3203  "Events",
3204  "ELE_LOGY E1 P");
3206  "neutralHadronRelativeIso_mAOD_barrel",
3207  "neutralHadronRelativeIso for barrel",
3208  100,
3209  0.0,
3210  2.,
3211  "neutralHadronRelativeIso_barrel",
3212  "Events",
3213  "ELE_LOGY E1 P");
3215  "neutralHadronRelativeIso_mAOD_endcaps",
3216  "neutralHadronRelativeIso for endcaps",
3217  100,
3218  0.0,
3219  2.,
3220  "neutralHadronRelativeIso_endcaps",
3221  "Events",
3222  "ELE_LOGY E1 P");
3224  "photonRelativeIso_mAOD",
3225  "photonRelativeIso",
3226  100,
3227  0.0,
3228  2.,
3229  "photonRelativeIso",
3230  "Events",
3231  "ELE_LOGY E1 P");
3233  "photonRelativeIso_mAOD_barrel",
3234  "photonRelativeIso for barrel",
3235  100,
3236  0.0,
3237  2.,
3238  "photonRelativeIso_barrel",
3239  "Events",
3240  "ELE_LOGY E1 P");
3242  "photonRelativeIso_mAOD_endcaps",
3243  "photonRelativeIso for endcaps",
3244  100,
3245  0.0,
3246  2.,
3247  "photonRelativeIso_endcaps",
3248  "Events",
3249  "ELE_LOGY E1 P");
3250 
3251  // conversion rejection information
3252  h1_ele_convFlags = bookH1withSumw2(iBooker, "convFlags", "conversion rejection flag", 5, -1.5, 3.5);
3254  bookH1withSumw2(iBooker, "convFlags_all", "conversion rejection flag, all electrons", 5, -1.5, 3.5);
3255  h1_ele_convDist = bookH1withSumw2(iBooker, "convDist", "distance to the conversion partner", 100, -15., 15.);
3257  bookH1withSumw2(iBooker, "convDist_all", "distance to the conversion partner, all electrons", 100, -15., 15.);
3259  iBooker, "convDcot", "difference of cot(angle) with the conversion partner", 100, -CLHEP::pi / 2., CLHEP::pi / 2.);
3261  "convDcot_all",
3262  "difference of cot(angle) with the conversion partner, all electrons",
3263  100,
3264  -CLHEP::pi / 2.,
3265  CLHEP::pi / 2.);
3266  h1_ele_convRadius = bookH1withSumw2(iBooker, "convRadius", "signed conversion radius", 100, 0., 130.);
3268  bookH1withSumw2(iBooker, "convRadius_all", "signed conversion radius, all electrons", 100, 0., 130.);
3269 }
3270 
3272 
3274  // get collections
3275  auto gsfElectrons = iEvent.getHandle(electronCollection_);
3276  auto gsfElectronsEndcaps = iEvent.getHandle(electronCollectionEndcaps_);
3277  auto gsfElectronCores = iEvent.getHandle(electronCoreCollection_);
3278  auto gsfElectronCoresEndcaps = iEvent.getHandle(electronCoreCollectionEndcaps_);
3279  auto gsfElectronTracks = iEvent.getHandle(electronTrackCollection_);
3280  auto gsfElectronSeeds = iEvent.getHandle(electronSeedCollection_);
3281  auto genParticles = iEvent.getHandle(mcTruthCollection_);
3282  auto theBeamSpot = iEvent.getHandle(beamSpotTag_);
3283 
3284  auto isoFromDepsTk03Handle = iEvent.getHandle(isoFromDepsTk03Tag_);
3285  auto isoFromDepsTk04Handle = iEvent.getHandle(isoFromDepsTk04Tag_);
3286  auto isoFromDepsEcalFull03Handle = iEvent.getHandle(isoFromDepsEcalFull03Tag_);
3287  auto isoFromDepsEcalFull04Handle = iEvent.getHandle(isoFromDepsEcalFull04Tag_);
3288  auto isoFromDepsEcalReduced03Handle = iEvent.getHandle(isoFromDepsEcalReduced03Tag_);
3289  auto isoFromDepsEcalReduced04Handle = iEvent.getHandle(isoFromDepsEcalReduced04Tag_);
3290  auto isoFromDepsHcal03Handle = iEvent.getHandle(isoFromDepsHcal03Tag_);
3291  auto isoFromDepsHcal04Handle = iEvent.getHandle(isoFromDepsHcal04Tag_);
3292  auto vertexCollectionHandle = iEvent.getHandle(offlineVerticesCollection_);
3293  if (!vertexCollectionHandle.isValid()) {
3294  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle KO";
3295  } else {
3296  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle OK";
3297  }
3298 
3299  reco::GsfElectronCollection::const_iterator gsfIter; //
3300  reco::GsfElectronCoreCollection::const_iterator gsfCoreIter; //
3301  std::vector<reco::GsfElectron>::const_iterator gsfIter3;
3302  std::vector<reco::GsfElectron>::const_iterator gsfIter4;
3303 
3304  //===============================================
3305  // get a vector with EB & EE
3306  //===============================================
3307  std::vector<reco::GsfElectron> localCollection;
3308 
3309  // looking for EB
3310  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
3311  if (gsfIter->isEB()) {
3312  localCollection.push_back(*gsfIter);
3313  }
3314  }
3315 
3316  // looking for EE
3317  for (gsfIter = gsfElectronsEndcaps->begin(); gsfIter != gsfElectronsEndcaps->end(); gsfIter++) {
3318  if (gsfIter->isEE()) {
3319  localCollection.push_back(*gsfIter);
3320  }
3321  }
3322 
3323  //===============================================
3324  // get a vector with EB & EE for Core
3325  //===============================================
3326  std::vector<reco::GsfElectronCore> localCoreCollection;
3327 
3328  // looking for EB
3329 
3330  for (gsfCoreIter = gsfElectronCores->begin(); gsfCoreIter != gsfElectronCores->end(); gsfCoreIter++) {
3331  if (gsfCoreIter->superCluster()->seed()->seed().subdetId() == EcalBarrel) {
3332  localCoreCollection.push_back(*gsfCoreIter);
3333  }
3334  }
3335 
3336  // looking for EE
3337  for (gsfCoreIter = gsfElectronCoresEndcaps->begin(); gsfCoreIter != gsfElectronCoresEndcaps->end(); gsfCoreIter++) {
3338  if ((gsfCoreIter->superCluster()->seed()->seed().subdetId() == EcalEndcap) ||
3339  (EcalTools::isHGCalDet(gsfCoreIter->superCluster()->seed()->seed().det()))) {
3340  localCoreCollection.push_back(*gsfCoreIter);
3341  }
3342  }
3343 
3344  //===============================================
3345  // Analyze
3346  //===============================================
3347  edm::LogInfo("ElectronMcSignalValidator::analyze")
3348  << "Treating event " << iEvent.id() << " with " << gsfElectrons.product()->size() << " electrons";
3349  edm::LogInfo("ElectronMcSignalValidator::analyze")
3350  << "Treating event " << iEvent.id() << " with " << gsfElectronsEndcaps.product()->size() << " electrons";
3351 
3352  h1_recEleNum->Fill((localCollection).size());
3353  h1_recCoreNum->Fill(localCoreCollection.size());
3354  h1_recTrackNum->Fill((*gsfElectronTracks).size());
3355  h1_recSeedNum->Fill((*gsfElectronSeeds).size());
3356  h1_recOfflineVertices->Fill((*vertexCollectionHandle).size());
3357 
3358  //===============================================
3359  // all rec electrons
3360  //===============================================
3361 
3362  // mee only
3363  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3364  float enrj1 = gsfIter3->ecalEnergy();
3365 
3366  for (gsfIter4 = gsfIter3 + 1; gsfIter4 != localCollection.end(); gsfIter4++) {
3367  math::XYZTLorentzVector p12 = (*gsfIter3).p4() + (*gsfIter4).p4();
3368  float mee2 = p12.Dot(p12);
3369  float enrj2 = gsfIter4->ecalEnergy();
3370  h1_ele_mee_all->Fill(sqrt(mee2));
3371  h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1);
3372  if (gsfIter3->ecalDrivenSeed() && gsfIter4->ecalDrivenSeed()) {
3373  h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1);
3374  }
3375  if (gsfIter3->charge() * gsfIter4->charge() < 0.) {
3376  h1_ele_mee_os->Fill(sqrt(mee2));
3377  if (gsfIter3->isEB() && gsfIter4->isEB()) {
3378  h1_ele_mee_os_ebeb->Fill(sqrt(mee2));
3379  }
3380  if ((gsfIter3->isEB() && gsfIter4->isEE()) || (gsfIter3->isEE() && gsfIter4->isEB()))
3381  h1_ele_mee_os_ebee->Fill(sqrt(mee2));
3382  if (gsfIter3->isEE() && gsfIter4->isEE()) {
3383  h1_ele_mee_os_eeee->Fill(sqrt(mee2));
3384  }
3385  if ((gsfIter3->classification() == GsfElectron::GOLDEN && gsfIter4->classification() == GsfElectron::GOLDEN) ||
3386  (gsfIter3->classification() == GsfElectron::GOLDEN && gsfIter4->classification() == GsfElectron::BIGBREM) ||
3387  (gsfIter3->classification() == GsfElectron::BIGBREM && gsfIter4->classification() == GsfElectron::GOLDEN) ||
3388  (gsfIter3->classification() == GsfElectron::BIGBREM &&
3389  gsfIter4->classification() == GsfElectron::BIGBREM)) {
3390  h1_ele_mee_os_gg->Fill(sqrt(mee2));
3391  } else if ((gsfIter3->classification() == GsfElectron::SHOWERING &&
3392  gsfIter4->classification() == GsfElectron::SHOWERING) ||
3393  (gsfIter3->classification() == GsfElectron::SHOWERING && gsfIter4->isGap()) ||
3394  (gsfIter3->isGap() && gsfIter4->classification() == GsfElectron::SHOWERING) ||
3395  (gsfIter3->isGap() && gsfIter4->isGap())) {
3396  h1_ele_mee_os_bb->Fill(sqrt(mee2));
3397  } else {
3398  h1_ele_mee_os_gb->Fill(sqrt(mee2));
3399  }
3400  }
3401  }
3402  }
3403 
3404  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3405  // preselect electrons
3406  if (gsfIter3->pt() > maxPt_ || std::abs(gsfIter3->eta()) > maxAbsEta_)
3407  continue;
3408 
3409  h1_ele_EoverP_all->Fill(gsfIter3->eSuperClusterOverP());
3410  h1_ele_EseedOP_all->Fill(gsfIter3->eSeedClusterOverP());
3411  h1_ele_EoPout_all->Fill(gsfIter3->eSeedClusterOverPout());
3412  h1_ele_EeleOPout_all->Fill(gsfIter3->eEleClusterOverPout());
3413  h1_ele_dEtaSc_propVtx_all->Fill(gsfIter3->deltaEtaSuperClusterTrackAtVtx());
3414  h1_ele_dPhiSc_propVtx_all->Fill(gsfIter3->deltaPhiSuperClusterTrackAtVtx());
3415  h1_ele_dEtaCl_propOut_all->Fill(gsfIter3->deltaEtaSeedClusterTrackAtCalo());
3416  h1_ele_dPhiCl_propOut_all->Fill(gsfIter3->deltaPhiSeedClusterTrackAtCalo());
3417  h1_ele_HoE_all->Fill(gsfIter3->hcalOverEcal());
3418  h1_ele_HoE_bc_all->Fill(gsfIter3->hcalOverEcalBc());
3419  h1_ele_TIP_all->Fill(EleRelPoint(gsfIter3->vertex(), theBeamSpot->position()).perp());
3420  h1_ele_vertexEta_all->Fill(gsfIter3->eta());
3421  h1_ele_vertexPt_all->Fill(gsfIter3->pt());
3422  h1_ele_Et_all->Fill(gsfIter3->ecalEnergy() / cosh(gsfIter3->superCluster()->eta()));
3423 
3424  // conversion rejection
3425  int flags = gsfIter3->convFlags();
3426  if (flags == -9999) {
3427  flags = -1;
3428  }
3430  if (flags >= 0.) {
3431  h1_ele_convDist_all->Fill(gsfIter3->convDist());
3432  h1_ele_convDcot_all->Fill(gsfIter3->convDcot());
3433  h1_ele_convRadius_all->Fill(gsfIter3->convRadius());
3434  }
3435  }
3436 
3437  //===============================================
3438  // charge mis-ID
3439  //===============================================
3440 
3441  int mcNum = 0, eleNum = 0;
3442  bool matchingID, matchingMotherID;
3443 
3444  reco::GenParticleCollection::const_iterator mcIter;
3445  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3446  // select requested matching gen particle
3447  matchingID = false;
3448  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3449  if (mcIter->pdgId() == matchingIDs_[i]) {
3450  matchingID = true;
3451  }
3452  }
3453  if (matchingID) {
3454  // select requested mother matching gen particle
3455  // always include single particle with no mother
3456  const Candidate *mother = mcIter->mother();
3457  matchingMotherID = false;
3458  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3459  if (mother == nullptr) {
3460  matchingMotherID = true;
3461  } else if (mother->pdgId() == matchingMotherIDs_[i]) {
3462  if (mother->numberOfDaughters() <= 2) {
3463  matchingMotherID = true;
3464  }
3465  } // end of mother if test
3466  }
3467  if (matchingMotherID) {
3468  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) {
3469  continue;
3470  }
3471 
3472  // looking for the best matching gsf electron
3473  bool okGsfFound = false;
3474  double gsfOkRatio = 999999.;
3475 
3476  // find best matched electron
3477  reco::GsfElectron bestGsfElectron;
3478  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3479  double dphi = gsfIter3->phi() - mcIter->phi();
3480  if (std::abs(dphi) > CLHEP::pi) {
3481  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3482  }
3483  double deltaR2 = (gsfIter3->eta() - mcIter->eta()) * (gsfIter3->eta() - mcIter->eta()) + dphi * dphi;
3484  if (deltaR2 < deltaR2_) {
3485  double mc_charge = mcIter->pdgId() == 11 ? -1. : 1.;
3486  h1_ele_ChargeMnChargeTrue->Fill(std::abs(gsfIter3->charge() - mc_charge));
3487  // require here a charge mismatch
3488  if (((mcIter->pdgId() == 11) && (gsfIter3->charge() > 0.)) ||
3489  ((mcIter->pdgId() == -11) && (gsfIter3->charge() < 0.))) {
3490  double tmpGsfRatio = gsfIter3->p() / mcIter->p();
3491  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3492  gsfOkRatio = tmpGsfRatio;
3493  bestGsfElectron = *gsfIter3;
3494  okGsfFound = true;
3495  }
3496  }
3497  }
3498  } // loop over rec ele to look for the best one
3499 
3500  // analysis when the mc track is found
3501  if (okGsfFound) { // && (std::abs(mcIter->eta())<maxAbsEta_)
3502  // generated distributions for matched electrons
3503  h1_mc_Pt_matched_qmisid->Fill(mcIter->pt());
3504  h1_mc_Phi_matched_qmisid->Fill(mcIter->phi());
3505  h1_mc_AbsEta_matched_qmisid->Fill(std::abs(mcIter->eta()));
3506  h1_mc_Eta_matched_qmisid->Fill(mcIter->eta());
3507  h1_mc_Z_matched_qmisid->Fill(mcIter->vz());
3508  }
3509  }
3510  }
3511  }
3512 
3513  //===============================================
3514  // association mc-reco
3515  //===============================================
3516 
3517  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3518  // number of mc particles
3519  mcNum++;
3520 
3521  // select requested matching gen particle
3522  matchingID = false;
3523  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3524  if (mcIter->pdgId() == matchingIDs_[i]) {
3525  matchingID = true;
3526  }
3527  }
3528  if (!matchingID)
3529  continue;
3530 
3531  // select requested mother matching gen particle
3532  // always include single particle with no mother
3533  const Candidate *mother = mcIter->mother();
3534  matchingMotherID = false;
3535  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3536  if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i])) {
3537  matchingMotherID = true;
3538  }
3539  }
3540  if (!matchingMotherID)
3541  continue;
3542 
3543  // electron preselection
3544  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEtaExtended_) {
3545  continue;
3546  }
3547 
3548  eleNum++;
3549  if (std::abs(mcIter->eta()) < maxAbsEta_) {
3550  h1_mc_Eta->Fill(mcIter->eta());
3551  h1_mc_AbsEta->Fill(std::abs(mcIter->eta()));
3552  h1_mc_P->Fill(mcIter->p());
3553  h1_mc_Pt->Fill(mcIter->pt());
3554  h1_mc_Phi->Fill(mcIter->phi());
3555  h1_mc_Z->Fill(mcIter->vz());
3556  h2_mc_PtEta->Fill(mcIter->eta(), mcIter->pt());
3557  }
3558  if (std::abs(mcIter->eta()) < maxAbsEtaExtended_) {
3559  h1_mc_Eta_Extended->Fill(mcIter->eta());
3560  h1_mc_AbsEta_Extended->Fill(std::abs(mcIter->eta()));
3561  }
3562 
3563  // find best matched electron
3564  bool okGsfFound = false;
3565  bool passMiniAODSelection = true;
3566  double gsfOkRatio = 999999.;
3567  bool isEBflag = false;
3568  bool isEEflag = false;
3569  bool isEEextendedflag = false;
3570 
3571  reco::GsfElectron bestGsfElectron;
3572  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3573  // temporary cut for pt < 5.
3574  double dphi = gsfIter3->phi() - mcIter->phi();
3575  if (std::abs(dphi) > CLHEP::pi) {
3576  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3577  }
3578  double deltaR2 = (gsfIter3->eta() - mcIter->eta()) * (gsfIter3->eta() - mcIter->eta()) + dphi * dphi;
3579  if (deltaR2 < deltaR2_) {
3580  if (((mcIter->pdgId() == 11) && (gsfIter3->charge() < 0.)) ||
3581  ((mcIter->pdgId() == -11) && (gsfIter3->charge() > 0.))) {
3582  double tmpGsfRatio = gsfIter3->p() / mcIter->p();
3583  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3584  gsfOkRatio = tmpGsfRatio;
3585  bestGsfElectron = *gsfIter3;
3586  okGsfFound = true;
3587  }
3588  }
3589  }
3590  } // loop over rec ele to look for the best one
3591 
3592  if (!okGsfFound)
3593  continue;
3594 
3595  //------------------------------------
3596  // analysis when the mc track is found
3597  //------------------------------------
3598  passMiniAODSelection = bestGsfElectron.pt() >= 5.;
3599  isEBflag = bestGsfElectron.isEB();
3600  isEEflag = bestGsfElectron.isEE() && (std::abs(mcIter->eta()) < maxAbsEta_);
3601  isEEextendedflag = bestGsfElectron.isEE();
3602 
3603  float Etot = 0.;
3604  CaloCluster_iterator it = bestGsfElectron.superCluster()->clustersBegin();
3605  CaloCluster_iterator itend = bestGsfElectron.superCluster()->clustersEnd();
3606  for (; it != itend; ++it) {
3607  Etot += (*it)->energy();
3608  }
3609 
3610  if (isEEextendedflag) { // Extended flag
3611  if (!isEEflag) {
3612  h1_mc_Eta_Extended_matched->Fill(mcIter->eta());
3613  h1_mc_AbsEta_matched->Fill(std::abs(mcIter->eta()));
3614  h1_mc_AbsEta_Extended_matched->Fill(std::abs(mcIter->eta()));
3615  h2_ele_EoPVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3616  h1_scl_bcl_EtotoEtrue_Extended->Fill(Etot / mcIter->p()); //
3617  h1_scl_EoEtrue_endcaps_new_Extended->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3621  h1_ele_HoE_Extended->Fill(bestGsfElectron.hcalOverEcal());
3623  bestGsfElectron.pt());
3625  bestGsfElectron.pt());
3627  bestGsfElectron.pt());
3628  h2_scl_EoEtrueVsrecOfflineVertices_Extended->Fill((*vertexCollectionHandle).size(),
3629  bestGsfElectron.ecalEnergy() / mcIter->p());
3630  h2_ele_PoPtrueVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3633 
3634  double fbrem_mode = bestGsfElectron.fbrem();
3635  h1_ele_fbrem_Extended->Fill(fbrem_mode);
3636  if (!readAOD_) {
3637  if (bestGsfElectron.ecalDrivenSeed())
3639  if (bestGsfElectron.trackerDrivenSeed()) {
3641  }
3642  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) {
3644  }
3645  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) {
3647  }
3648  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) {
3650  }
3651  }
3652  }
3653 
3654  if (!readAOD_) {
3655  h2_ele_foundHitsVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3656 
3657  edm::RefToBase<TrajectorySeed> seed_Ext = bestGsfElectron.gsfTrack()->extra()->seedRef();
3658  ElectronSeedRef elseed_Ext = seed_Ext.castTo<ElectronSeedRef>();
3659  if (elseed_Ext->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
3660  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed_Ext->dPhiNeg(1));
3661  }
3662  if (elseed_Ext->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
3663  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed_Ext->dRZNeg(1));
3664  }
3665  }
3666  } // end of Extended flag
3667 
3668  if (!isEBflag && !isEEflag)
3669  continue;
3670 
3671  // electron related distributions
3672  h1_ele_charge->Fill(bestGsfElectron.charge());
3673  h2_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge());
3674  h2_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge());
3675  h2_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge());
3676  h1_ele_vertexP->Fill(bestGsfElectron.p());
3677  h1_ele_vertexPt->Fill(bestGsfElectron.pt());
3678  if (bestGsfElectron.scSigmaIEtaIEta() == 0.)
3679  h1_ele_vertexPt_nocut->Fill(bestGsfElectron.pt());
3680  h1_ele_Et->Fill(bestGsfElectron.ecalEnergy() / cosh(bestGsfElectron.superCluster()->eta()));
3681  h2_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt());
3682  h2_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt());
3683  h1_ele_vertexEta->Fill(bestGsfElectron.eta());
3684 
3685  h2_scl_EoEtrueVsrecOfflineVertices->Fill((*vertexCollectionHandle).size(),
3686  bestGsfElectron.ecalEnergy() / mcIter->p());
3687  if (isEBflag)
3688  h2_scl_EoEtrueVsrecOfflineVertices_barrel->Fill((*vertexCollectionHandle).size(),
3689  bestGsfElectron.ecalEnergy() / mcIter->p());
3690  else if (isEEflag)
3691  h2_scl_EoEtrueVsrecOfflineVertices_endcaps->Fill((*vertexCollectionHandle).size(),
3692  bestGsfElectron.ecalEnergy() / mcIter->p());
3693 
3694  // generated distributions for matched electrons
3695  h1_mc_Pt_matched->Fill(mcIter->pt());
3696  h1_mc_Phi_matched->Fill(mcIter->phi());
3697  h1_mc_AbsEta_matched->Fill(std::abs(mcIter->eta()));
3698  h1_mc_AbsEta_Extended_matched->Fill(std::abs(mcIter->eta()));
3699  h1_mc_Eta_Extended_matched->Fill(mcIter->eta());
3700  h2_mc_PtEta_matched->Fill(mcIter->eta(), mcIter->pt());
3701  h2_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta());
3702  h1_ele_vertexPhi->Fill(bestGsfElectron.phi());
3703  h1_ele_vertexX->Fill(bestGsfElectron.vertex().x());
3704  h1_ele_vertexY->Fill(bestGsfElectron.vertex().y());
3705  h1_ele_vertexZ->Fill(bestGsfElectron.vertex().z());
3706  h1_mc_Z_matched->Fill(mcIter->vz());
3707  double d = (bestGsfElectron.vertex().x() - mcIter->vx()) * (bestGsfElectron.vertex().x() - mcIter->vx()) +
3708  (bestGsfElectron.vertex().y() - mcIter->vy()) * (bestGsfElectron.vertex().y() - mcIter->vy());
3709  d = sqrt(d);
3711  h2_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d);
3712  h2_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d);
3713  h2_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d);
3714  h1_ele_EtaMnEtaTrue->Fill(bestGsfElectron.eta() - mcIter->eta());
3715  h2_ele_EtaMnEtaTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - mcIter->eta());
3716  h2_ele_EtaMnEtaTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - mcIter->eta());
3717  h2_ele_EtaMnEtaTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - mcIter->eta());
3718  h1_ele_PhiMnPhiTrue->Fill(bestGsfElectron.phi() - mcIter->phi());
3719  h1_ele_PhiMnPhiTrue2->Fill(bestGsfElectron.phi() - mcIter->phi());
3720  h2_ele_PhiMnPhiTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - mcIter->phi());
3721  h2_ele_PhiMnPhiTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - mcIter->phi());
3722  h2_ele_PhiMnPhiTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - mcIter->phi());
3723  h1_ele_PoPtrue->Fill(bestGsfElectron.p() / mcIter->p());
3724  h1_ele_PtoPttrue->Fill(bestGsfElectron.pt() / mcIter->pt());
3725  h2_ele_PoPtrueVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3726  h2_ele_PoPtrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / mcIter->p());
3727  h2_ele_PoPtrueVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / mcIter->p());
3728  h2_ele_sigmaIetaIetaVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.scSigmaIEtaIEta());
3730  h1_ele_combinedP4Error->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3731  if (isEBflag) {
3732  h1_ele_EtaMnEtaTrue_barrel->Fill(bestGsfElectron.eta() - mcIter->eta());
3733  h1_ele_PhiMnPhiTrue_barrel->Fill(bestGsfElectron.phi() - mcIter->phi());
3734  h1_ele_PoPtrue_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3735  h1_ele_PtoPttrue_barrel->Fill(bestGsfElectron.pt() / mcIter->pt());
3737  h1_ele_combinedP4Error_barrel->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3738  } else if (isEEflag) {
3739  h1_ele_EtaMnEtaTrue_endcaps->Fill(bestGsfElectron.eta() - mcIter->eta());
3740  h1_ele_PhiMnPhiTrue_endcaps->Fill(bestGsfElectron.phi() - mcIter->phi());
3741  h1_ele_PoPtrue_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3742  h1_ele_PtoPttrue_endcaps->Fill(bestGsfElectron.pt() / mcIter->pt());
3744  h1_ele_combinedP4Error_endcaps->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3745  }
3746 
3747  if (isEBflag && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3748  h1_ele_PoPtrue_golden_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3749  if (isEEflag && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3750  h1_ele_PoPtrue_golden_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3751  if (isEBflag && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3752  h1_ele_PoPtrue_showering_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3753  if (isEEflag && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3754  h1_ele_PoPtrue_showering_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3755 
3756  // supercluster related distributions
3757  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
3758 
3759  h1_scl_En->Fill(bestGsfElectron.ecalEnergy());
3760  if (isEBflag) {
3761  h1_scl_EoEtrue_barrel->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3762  h1_scl_EoEtrue_barrel_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3763  } else if (isEEflag) {
3764  h1_scl_EoEtrue_endcaps->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3765  h1_scl_EoEtrue_endcaps_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3766  }
3767  if (isEBflag && bestGsfElectron.isEBEtaGap())
3768  h1_scl_EoEtrue_barrel_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3769  if (isEBflag && bestGsfElectron.isEBPhiGap())
3770  h1_scl_EoEtrue_barrel_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3771  if (bestGsfElectron.isEBEEGap())
3772  h1_scl_EoEtrue_ebeegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3773  if (isEEflag && bestGsfElectron.isEEDeeGap())
3774  h1_scl_EoEtrue_endcaps_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3775  if (isEEflag && bestGsfElectron.isEERingGap())
3776  h1_scl_EoEtrue_endcaps_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3777  if (isEBflag && bestGsfElectron.isEBEtaGap())
3778  h1_scl_EoEtrue_barrel_new_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3779  if (isEBflag && bestGsfElectron.isEBPhiGap())
3780  h1_scl_EoEtrue_barrel_new_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3781  if (bestGsfElectron.isEBEEGap())
3782  h1_scl_EoEtrue_ebeegap_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3783  if (isEEflag && bestGsfElectron.isEEDeeGap())
3784  h1_scl_EoEtrue_endcaps_new_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3785  if (isEEflag && bestGsfElectron.isEERingGap())
3786  h1_scl_EoEtrue_endcaps_new_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3787 
3788  double R = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
3789  double Rt = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
3790  h1_scl_Et->Fill(sclRef->energy() * (Rt / R));
3791  h2_scl_EtVsEta->Fill(sclRef->eta(), sclRef->energy() * (Rt / R));
3792  h2_scl_EtVsPhi->Fill(sclRef->phi(), sclRef->energy() * (Rt / R));
3793  h1_scl_Eta->Fill(sclRef->eta());
3794  h2_scl_EtaVsPhi->Fill(sclRef->phi(), sclRef->eta());
3795  h1_scl_Phi->Fill(sclRef->phi());
3796  h1_scl_SigEtaEta->Fill(bestGsfElectron.scSigmaEtaEta());
3797  h1_scl_SigIEtaIEta->Fill(bestGsfElectron.scSigmaIEtaIEta());
3799  h1_scl_E1x5->Fill(bestGsfElectron.scE1x5());
3800  h1_scl_E2x5max->Fill(bestGsfElectron.scE2x5Max());
3801  h1_scl_E5x5->Fill(bestGsfElectron.scE5x5());
3802  if (isEBflag) {
3803  h1_scl_SigEtaEta_barrel->Fill(bestGsfElectron.scSigmaEtaEta());
3804  h1_scl_SigIEtaIEta_barrel->Fill(bestGsfElectron.scSigmaIEtaIEta());
3806  h1_scl_E1x5_barrel->Fill(bestGsfElectron.scE1x5());
3807  h1_scl_E2x5max_barrel->Fill(bestGsfElectron.scE2x5Max());
3808  h1_scl_E5x5_barrel->Fill(bestGsfElectron.scE5x5());
3809  } else if (isEEflag) {
3810  h1_scl_SigEtaEta_endcaps->Fill(bestGsfElectron.scSigmaEtaEta());
3811  h1_scl_SigIEtaIEta_endcaps->Fill(bestGsfElectron.scSigmaIEtaIEta());
3813  h1_scl_E1x5_endcaps->Fill(bestGsfElectron.scE1x5());
3814  h1_scl_E2x5max_endcaps->Fill(bestGsfElectron.scE2x5Max());
3815  h1_scl_E5x5_endcaps->Fill(bestGsfElectron.scE5x5());
3816  }
3817 
3818  if (passMiniAODSelection) { // Pt > 5.
3819  h1_scl_SigIEtaIEta_mAOD->Fill(bestGsfElectron.scSigmaIEtaIEta());
3820  if (isEBflag)
3822  else if (isEEflag)
3824  }
3825 
3826  float pfEnergy = 0.;
3827  if (!bestGsfElectron.parentSuperCluster().isNull())
3828  pfEnergy = bestGsfElectron.parentSuperCluster()->energy();
3829  h2_scl_EoEtruePfVsEg->Fill(bestGsfElectron.ecalEnergy() / mcIter->p(), pfEnergy / mcIter->p());
3830  if (isEEflag)
3831  h1_scl_ESFrac_endcaps->Fill(sclRef->preshowerEnergy() / sclRef->rawEnergy());
3832 
3833  h1_scl_bcl_EtotoEtrue->Fill(Etot / mcIter->p());
3834  if (isEBflag)
3835  h1_scl_bcl_EtotoEtrue_barrel->Fill(Etot / mcIter->p());
3836  else if (isEEflag)
3837  h1_scl_bcl_EtotoEtrue_endcaps->Fill(Etot / mcIter->p());
3838 
3839  // track related distributions
3841  h2_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize());
3842  h2_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize());
3843  h2_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize());
3844  if (!readAOD_) // track extra does not exist in AOD
3845  {
3846  h1_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3847  h2_ele_foundHitsVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3848  h2_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3849  h2_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3850  h1_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3851  h2_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3852  h2_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3853  h2_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3854  h1_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3855  h2_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2());
3856  h2_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2());
3857  h2_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2());
3858  if (isEBflag) {
3859  h1_ele_foundHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3860  h1_ele_lostHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3861  h1_ele_chi2_barrel->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3862  } else if (isEEflag) {
3863  h1_ele_foundHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3864  h1_ele_lostHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3865  h1_ele_chi2_endcaps->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3866  }
3867 
3868  if (passMiniAODSelection) { // Pt > 5.
3869  h2_ele_foundHitsVsEta_mAOD->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3870  }
3871  }
3872  // from gsf track interface, hence using mean
3873  if (!readAOD_) // track extra does not exist in AOD
3874  {
3875  h1_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() -
3876  bestGsfElectron.gsfTrack()->outerMomentum().R());
3877  h1_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R());
3878  h1_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho());
3879  }
3880  // from electron interface, hence using mode
3881  h1_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3882  h2_ele_PinMnPoutVsEta_mode->Fill(bestGsfElectron.eta(),
3883  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3884  h2_ele_PinMnPoutVsPhi_mode->Fill(bestGsfElectron.phi(),
3885  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3886  h2_ele_PinMnPoutVsPt_mode->Fill(bestGsfElectron.pt(),
3887  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3888  h2_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(),
3889  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3890  if (!readAOD_) // track extra does not exist in AOD
3891  {
3893  bestGsfElectron.gsfTrack()->normalizedChi2(),
3894  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3895  }
3896  h1_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R());
3897  h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R());
3898  h1_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho());
3899  h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho());
3900  h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho());
3901  h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho());
3902 
3903  if (!readAOD_) // track extra does not exist in AOD
3904  {
3905  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
3906  ElectronSeedRef elseed = seed.castTo<ElectronSeedRef>();
3907  h1_ele_seed_subdet2->Fill(elseed->subDet(1));
3908  h1_ele_seed_mask->Fill(elseed->hitsMask());
3909  if (elseed->subDet(1) == 1) {
3910  h1_ele_seed_mask_bpix->Fill(elseed->hitsMask());
3911  } else if (elseed->subDet(1) == 2) {
3912  h1_ele_seed_mask_fpix->Fill(elseed->hitsMask());
3913  } else if (elseed->subDet(1) == 6) {
3914  h1_ele_seed_mask_tec->Fill(elseed->hitsMask());
3915  }
3916 
3917  if (elseed->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
3918  h1_ele_seed_dphi2->Fill(elseed->dPhiNeg(1));
3919  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1));
3920  h2_ele_seed_dphi2VsPt->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1));
3921  }
3922  if (elseed->dPhiPos(1) != std::numeric_limits<float>::infinity()) {
3923  h1_ele_seed_dphi2pos->Fill(elseed->dPhiPos(1));
3924  h2_ele_seed_dphi2posVsEta->Fill(bestGsfElectron.eta(), elseed->dPhiPos(1));
3925  h2_ele_seed_dphi2posVsPt->Fill(bestGsfElectron.pt(), elseed->dPhiPos(1));
3926  }
3927  if (elseed->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
3928  h1_ele_seed_drz2->Fill(elseed->dRZNeg(1));
3929  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1));
3930  h2_ele_seed_drz2VsPt->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1));
3931  }
3932  if (elseed->dRZPos(1) != std::numeric_limits<float>::infinity()) {
3933  h1_ele_seed_drz2pos->Fill(elseed->dRZPos(1));
3934  h2_ele_seed_drz2posVsEta->Fill(bestGsfElectron.eta(), elseed->dRZPos(1));
3935  h2_ele_seed_drz2posVsPt->Fill(bestGsfElectron.pt(), elseed->dRZPos(1));
3936  }
3937  }
3938 
3939  // match distributions
3940  h1_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP());
3941  h2_ele_EoPVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3942  h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP());
3943  h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP());
3944  h1_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP());
3945  h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP());
3946  h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP());
3947  h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP());
3948  h1_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout());
3949  h2_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout());
3950  h2_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout());
3951  h2_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout());
3952  h1_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout());
3953  h2_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout());
3954  h2_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout());
3955  h2_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout());
3957  h2_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3958  h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3959  h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3961  h2_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3962  h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3963  h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3965  h2_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3966  h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3967  h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3969  h2_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3970  h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3971  h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3973  h2_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3974  h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3975  h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3977  h2_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3978  h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3979  h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3980  h1_ele_HoE->Fill(bestGsfElectron.hcalOverEcal());
3981  h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
3982  if (isEBflag) {
3983  h1_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
3984  h1_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
3985  h1_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
3986  h1_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
3993  h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
3994  h1_ele_HoE_barrel->Fill(bestGsfElectron.hcalOverEcal());
3995  } else if (isEEflag) {
3996  h1_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
3997  h1_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
3998  h1_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
4006  h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
4007  h1_ele_HoE_endcaps->Fill(bestGsfElectron.hcalOverEcal());
4008  }
4009 
4010  if (passMiniAODSelection) { // Pt > 5.
4013  h1_ele_HoE_mAOD->Fill(bestGsfElectron.hcalOverEcal());
4014  if (isEBflag) {
4017  h1_ele_HoE_mAOD_barrel->Fill(bestGsfElectron.hcalOverEcal());
4018  } else if (isEEflag) {
4021  h1_ele_HoE_mAOD_endcaps->Fill(bestGsfElectron.hcalOverEcal());
4022  }
4023  }
4024 
4025  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() &&
4026  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap())
4027  h1_ele_HoE_fiducial->Fill(bestGsfElectron.hcalOverEcal());
4028  h2_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hcalOverEcal());
4029  h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hcalOverEcal());
4030  h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hcalOverEcal());
4031 
4032  //classes
4033  int eleClass = bestGsfElectron.classification();
4034  if (isEEflag)
4035  eleClass += 10;
4036  h1_ele_classes->Fill(eleClass);
4037 
4038  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && isEBflag)
4039  h1_scl_EoEtrueGolden_barrel->Fill(sclRef->energy() / mcIter->p());
4040  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && isEEflag)
4041  h1_scl_EoEtrueGolden_endcaps->Fill(sclRef->energy() / mcIter->p());
4042  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && isEBflag)
4043  h1_scl_EoEtrueShowering_barrel->Fill(sclRef->energy() / mcIter->p());
4044  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && isEEflag)
4045  h1_scl_EoEtrueShowering_endcaps->Fill(sclRef->energy() / mcIter->p());
4046 
4047  //eleClass = eleClass%100; // get rid of barrel/endcap distinction
4048  h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
4049  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4050  h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
4051  if (bestGsfElectron.classification() == GsfElectron::BIGBREM)
4052  h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
4053  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4054  h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
4055 
4056  // fbrem
4057 
4058  double fbrem_mode = bestGsfElectron.fbrem();
4059  h1_ele_fbrem->Fill(fbrem_mode);
4060  if (passMiniAODSelection) { // Pt > 5.
4061  h1_ele_fbrem_mAOD->Fill(fbrem_mode);
4062  }
4063  if (isEBflag) {
4064  double fbrem_mode_barrel = bestGsfElectron.fbrem();
4065  h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
4066  if (passMiniAODSelection) { // Pt > 5.
4067  h1_ele_fbrem_mAOD_barrel->Fill(fbrem_mode_barrel);
4068  }
4069  } else if (isEEflag) {
4070  double fbrem_mode_endcaps = bestGsfElectron.fbrem();
4071  h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
4072  if (passMiniAODSelection) { // Pt > 5.
4073  h1_ele_fbrem_mAOD_endcaps->Fill(fbrem_mode_endcaps);
4074  }
4075  }
4076 
4077  double superclusterfbrem_mode = bestGsfElectron.superClusterFbrem();
4078  h1_ele_superclusterfbrem->Fill(superclusterfbrem_mode);
4079 
4080  if (isEBflag) {
4081  double superclusterfbrem_mode_barrel = bestGsfElectron.superClusterFbrem();
4082  h1_ele_superclusterfbrem_barrel->Fill(superclusterfbrem_mode_barrel);
4083  } else if (isEEflag) {
4084  double superclusterfbrem_mode_endcaps = bestGsfElectron.superClusterFbrem();
4085  h1_ele_superclusterfbrem_endcaps->Fill(superclusterfbrem_mode_endcaps);
4086  }
4087 
4088  p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode);
4089 
4090  if (!readAOD_) // track extra does not exist in AOD
4091  {
4092  double fbrem_mean =
4093  1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R();
4094  p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean);
4095  }
4096 
4097  //
4098 
4099  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4100  h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4101  bestGsfElectron.trackMomentumAtVtx().R());
4102  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4103  h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4104  bestGsfElectron.trackMomentumAtVtx().R());
4105  if (!readAOD_) // track extra not available in AOD
4106  {
4107  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4108  h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4109  bestGsfElectron.gsfTrack()->innerMomentum().R());
4110  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4111  h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4112  bestGsfElectron.gsfTrack()->innerMomentum().R());
4113  }
4114  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4115  h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4116  bestGsfElectron.trackMomentumAtVtx().Rho());
4117  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4118  h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4119  bestGsfElectron.trackMomentumAtVtx().Rho());
4120  if (!readAOD_) // track extra not available in AOD
4121  {
4122  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4123  h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4124  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4125  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4126  h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4127  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4128  }
4129 
4130  // provenance and pflow data
4131  h1_ele_mva->Fill(bestGsfElectron.mva_e_pi());
4132  h1_ele_mva_isolated->Fill(bestGsfElectron.mva_Isolated());
4133  if (isEBflag) {
4134  h1_ele_mva_barrel->Fill(bestGsfElectron.mva_e_pi());
4135  h1_ele_mva_barrel_isolated->Fill(bestGsfElectron.mva_Isolated());
4136  } else if (isEEflag) {
4137  h1_ele_mva_endcaps->Fill(bestGsfElectron.mva_e_pi());
4138  h1_ele_mva_endcaps_isolated->Fill(bestGsfElectron.mva_Isolated());
4139  }
4140  if (bestGsfElectron.ecalDrivenSeed()) {
4141  h1_ele_provenance->Fill(1.);
4142  }
4143  if (bestGsfElectron.trackerDrivenSeed()) {
4144  h1_ele_provenance->Fill(-1.);
4145  }
4146  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) {
4147  h1_ele_provenance->Fill(0.);
4148  }
4149  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) {
4150  h1_ele_provenance->Fill(-2.);
4151  }
4152  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) {
4153  h1_ele_provenance->Fill(2.);
4154  }
4155 
4156  if (bestGsfElectron.ecalDrivenSeed() && isEBflag)
4158  if (bestGsfElectron.trackerDrivenSeed() && isEBflag)
4160  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEBflag)
4162  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEBflag)
4164  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEBflag)
4166  if (bestGsfElectron.ecalDrivenSeed() && isEEflag)
4168  if (bestGsfElectron.trackerDrivenSeed() && isEEflag)
4170  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEEflag)
4172  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEEflag)
4174  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEEflag)
4176 
4177  if (bestGsfElectron.isGsfCtfScPixChargeConsistent())
4178  h1_ele_chargeInfo->Fill(-1.0);
4179  if (bestGsfElectron.isGsfScPixChargeConsistent())
4180  h1_ele_chargeInfo->Fill(0.);
4181  if (bestGsfElectron.isGsfCtfChargeConsistent())
4182  h1_ele_chargeInfo->Fill(1.0);
4183 
4184  // Pflow isolation
4188  h1_ele_photonRelativeIso->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4189  if (isEBflag) {
4193  }
4194 
4195  else if (isEEflag) {
4199  }
4200 
4201  // -- pflow over pT
4203  bestGsfElectron.pt());
4205  bestGsfElectron.pt());
4206  if (isEBflag) {
4208  bestGsfElectron.pt());
4210  bestGsfElectron.pt());
4211  h1_ele_photonRelativeIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4212  } else if (isEEflag) {
4214  bestGsfElectron.pt());
4216  bestGsfElectron.pt());
4217  h1_ele_photonRelativeIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4218  }
4219  if (passMiniAODSelection) { // Pt > 5.
4221  bestGsfElectron.pt());
4223  bestGsfElectron.pt());
4224  h1_ele_photonRelativeIso_mAOD->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4225  if (isEBflag) {
4227  bestGsfElectron.pt());
4229  bestGsfElectron.pt());
4231  bestGsfElectron.pt());
4232  } else if (isEEflag) {
4234  bestGsfElectron.pt());
4236  bestGsfElectron.pt());
4238  bestGsfElectron.pt());
4239  }
4240  }
4241 
4242  // isolation
4243  h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
4244  h1_ele_ecalPFClusterIso->Fill(bestGsfElectron.ecalPFClusterIso());
4245  h1_ele_hcalPFClusterIso->Fill(bestGsfElectron.hcalPFClusterIso());
4251  h1_ele_hcalDepth1OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(1));
4252  h1_ele_hcalDepth2OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(2));
4253  if (isEBflag) {
4254  h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
4264  } else if (isEEflag) {
4265  h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
4275  }
4276 
4277  // conversion rejection
4278  int flags = bestGsfElectron.convFlags();
4279  if (flags == -9999) {
4280  flags = -1;
4281  }
4283  if (flags >= 0.) {
4284  h1_ele_convDist->Fill(bestGsfElectron.convDist());
4285  h1_ele_convDcot->Fill(bestGsfElectron.convDcot());
4286  h1_ele_convRadius->Fill(bestGsfElectron.convRadius());
4287  }
4288 
4289  } // loop over mc particle
4290  h1_mcNum->Fill(mcNum);
4291  h1_eleNum->Fill(eleNum);
4292 }
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:230
MonitorElement * h1_ele_ecalEnergyError_endcaps
size
Write out results.
MonitorElement * h1_scl_EoEtrue_endcaps_ringgap
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_endcaps
MonitorElement * h1_ele_hcalPFClusterIso_barrel
static bool isHGCalDet(DetId::Detector thedet)
identify HGCal cells
Definition: EcalTools.h:49
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:496
bool isGsfScPixChargeConsistent() const
Definition: GsfElectron.h:129
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_endcaps
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull04Tag_
edm::EDGetTokenT< reco::GsfElectronCollection > electronCollection_
double pt() const final
transverse momentum
MonitorElement * h1_ele_photonRelativeIso_mAOD
bool ecalDrivenSeed() const
Definition: GsfElectron.h:158
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:229
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
REF castTo() const
Definition: RefToBase.h:259
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
float eSeedClusterOverP() const
Definition: GsfElectron.h:222
float scE1x5() const
Definition: GsfElectron.h:497
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk03Tag_
bool trackerDrivenSeed() const
Definition: GsfElectron.h:159
MonitorElement * h1_scl_bcl_EtotoEtrue_endcaps
bool isEBPhiGap() const
Definition: GsfElectron.h:334
MonitorElement * h1_ele_hcalDepth1OverEcalBc_barrel
MonitorElement * h1_ele_photonRelativeIso_mAOD_barrel
MonitorElement * h1_ele_neutralHadronRelativeIso_endcaps
MonitorElement * h1_ele_hcalPFClusterIso_Extended
edm::EDGetTokenT< reco::GsfElectronCoreCollection > electronCoreCollectionEndcaps_
MonitorElement * h1_ele_hcalPFClusterIso_endcaps
MonitorElement * h1_ele_chargedHadronRelativeIso_Extended
MonitorElement * h1_scl_EoEtrue_endcaps_new_Extended
MonitorElement * h1_ele_ecalPFClusterIso_Extended
MonitorElement * h1_ele_neutralHadronRelativeIso_barrel
MonitorElement * h1_ele_dPhiEleCl_propOut_endcaps
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_endcaps
bool isEERingGap() const
Definition: GsfElectron.h:337
MonitorElement * h2_ele_dEtaEleClVsEta_propOut
edm::EDGetTokenT< reco::GenParticleCollection > mcTruthCollection_
MonitorElement * h1_ele_chargedHadronRelativeIso_mAOD_endcaps
edm::EDGetTokenT< reco::GsfElectronCollection > electronCollectionEndcaps_
MonitorElement * h1_ele_dEtaSc_propVtx_endcaps
MonitorElement * h1_ele_dEtaSc_propVtx_all_endcaps
MonitorElement * h1_ele_dPhiCl_propOut_all_endcaps
MonitorElement * h1_ele_chargedHadronRelativeIso
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal04Tag_
float hcalOverEcalBc(const ShowerShape &ss, int depth) const
Definition: GsfElectron.h:442
const Point & vertex() const override
vertex position (overwritten by PF...)
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalReduced03Tag_
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1
MonitorElement * h2_ele_PtinVsPtoutShowering_mode
MonitorElement * h1_ele_PoPtrue_showering_barrel
MonitorElement * h1_ele_hcalDepth2OverEcalBc_barrel
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices_endcaps
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:227
MonitorElement * h1_ele_chargedHadronIso_endcaps
float convDcot() const
Definition: GsfElectron.h:646
MonitorElement * h2_ele_dPhiEleClVsPhi_propOut
bool isEBEtaGap() const
Definition: GsfElectron.h:333
MonitorElement * h1_ele_neutralHadronIso_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mean
MonitorElement * h2_ele_dEtaEleClVsPhi_propOut
MonitorElement * h1_ele_dPhiSc_propVtx_all_endcaps
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices_Extended
float eSuperClusterOverP() const
Definition: GsfElectron.h:221
Classification classification() const
Definition: GsfElectron.h:805
const Double_t pi
float eEleClusterOverPout() const
Definition: GsfElectron.h:224
bool isEB() const
Definition: GsfElectron.h:328
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1
edm::EDGetTokenT< reco::GsfElectronCoreCollection > electronCoreCollection_
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD_endcaps
float dr03TkSumPt() const
Definition: GsfElectron.h:557
float eSeedClusterOverPout() const
Definition: GsfElectron.h:223
void Fill(long long x)
MonitorElement * h1_ele_dPhiSc_propVtx_Extended
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")
MonitorElement * h1_ele_PoPtrue_showering_endcaps
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:156
MonitorElement * h1_ele_hcalDepth2OverEcalBc_endcaps
virtual size_type numberOfDaughters() const =0
number of daughters
MonitorElement * h1_ele_chargedHadronRelativeIso_endcaps
MonitorElement * h1_ele_ecalPFClusterIso_barrel
MonitorElement * h2_ele_PtinVsPtoutGolden_mode
MonitorElement * h1_ele_neutralHadronIso_barrel
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:729
float ecalPFClusterIso() const
Definition: GsfElectron.h:731
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:270
edm::EDGetTokenT< reco::VertexCollection > offlineVerticesCollection_
int iEvent
Definition: GenABIO.cc:224
MonitorElement * h1_ele_dEtaEleCl_propOut_endcaps
float dr03HcalTowerSumEtBc(int depth=0) const
Definition: GsfElectron.h:593
float caloEnergy() const
Definition: GsfElectron.h:899
double p() const final
magnitude of momentum vector
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 mva_e_pi() const
Definition: GsfElectron.h:744
float scSigmaEtaEta() const
Definition: GsfElectron.h:495
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")
MonitorElement * h1_ele_photonRelativeIso_Extended
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:665
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:766
int convFlags() const
Definition: GsfElectron.h:643
bool isEBEEGap() const
Definition: GsfElectron.h:331
MonitorElement * h2_ele_dPhiEleClVsEta_propOut
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
MonitorElement * h1_ele_dEtaSc_propVtx_Extended
const double infinity
float convDist() const
Definition: GsfElectron.h:645
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * h1_scl_EoEtrueShowering_endcaps
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:268
MonitorElement * h1_ele_hcalDepth1OverEcalBc_endcaps
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:664
MonitorElement * h1_ele_dPhiCl_propOut_mAOD_barrel
bool isEEDeeGap() const
Definition: GsfElectron.h:336
MonitorElement * h1_scl_SigIEtaIEta_mAOD_endcaps
MonitorElement * h1_ele_neutralHadronRelativeIso_Extended
MonitorElement * h1_ele_ecalEnergyError_barrel
MonitorElement * h1_ele_ecalPFClusterIso_endcaps
double py() const final
y coordinate of momentum vector
bool isNull() const
Checks for null.
Definition: Ref.h:235
float hcalOverEcal(const ShowerShape &ss, int depth) const
Definition: GsfElectron.h:425
T perp() const
Magnitude of transverse component.
edm::EDGetTokenT< reco::GsfTrackCollection > electronTrackCollection_
MonitorElement * h1_ele_neutralHadronRelativeIso
d
Definition: ztail.py:151
MonitorElement * h1_ele_combinedP4Error_barrel
MonitorElement * h1_ele_dPhiSc_propVtx_all_barrel
MonitorElement * h1_scl_EoEtrueShowering_barrel
void setBookEfficiencyFlag(const bool &)
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:228
MonitorElement * h1_ele_chargedHadronRelativeIso_mAOD_barrel
float superClusterFbrem() const
Definition: GsfElectron.h:803
virtual int pdgId() const =0
PDG identifier.
Log< level::Info, false > LogInfo
bool isGsfCtfScPixChargeConsistent() const
Definition: GsfElectron.h:128
MonitorElement * h1_ele_superclusterfbrem_endcaps
MonitorElement * h1_ele_dPhiEleCl_propOut_barrel
MonitorElement * h2_ele_foundHitsVsEta_Extended
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk04Tag_
MonitorElement * h2_scl_EoEtrueVsrecOfflineVertices
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:225
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel
MonitorElement * h1_scl_EoEtrue_barrel_new_etagap
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2
float scE2x5Max() const
Definition: GsfElectron.h:498
float p4Error(P4Kind kind) const
Definition: GsfElectron.cc:230
MonitorElement * h1_ele_photonRelativeIso_endcaps
float ecalEnergy() const
Definition: GsfElectron.h:896
bool isEE() const
Definition: GsfElectron.h:329
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_endcaps
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")
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD
MonitorElement * h1_ele_neutralHadronRelativeIso_mAOD_barrel
MonitorElement * h1_ele_photonRelativeIso_mAOD_endcaps
MonitorElement * h1_ele_dEtaCl_propOut_endcaps
ElectronMcSignalValidator(const edm::ParameterSet &conf)
MonitorElement * h2_ele_PinVsPoutShowering_mean
MonitorElement * h1_ele_dPhiCl_propOut_all_barrel
MonitorElement * h1_ele_dEtaCl_propOut_all_barrel
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull03Tag_
virtual SuperClusterRef parentSuperCluster() const
Definition: GsfElectron.h:160
float fbrem() const
Definition: GsfElectron.h:809
float hcalPFClusterIso() const
Definition: GsfElectron.h:732
MonitorElement * h1_scl_bcl_EtotoEtrue_Extended
float correctedEcalEnergyError() const
Definition: GsfElectron.h:883
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")
float mva_Isolated() const
Definition: GsfElectron.h:743
MonitorElement * h1_mc_AbsEta_Extended_matched
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_barrel
MonitorElement * h1_scl_EoEtrue_endcaps_new_deegap
MonitorElement * h1_ele_dEtaSc_propVtx_mAOD_barrel
float convRadius() const
Definition: GsfElectron.h:647
MonitorElement * h2_ele_PinVsPoutShowering_mode
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:559
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_barrel
bool isGsfCtfChargeConsistent() const
Definition: GsfElectron.h:130
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:226
MonitorElement * h1_ele_dEtaCl_propOut_all_endcaps
float scE5x5() const
Definition: GsfElectron.h:499
float full5x5_sigmaIetaIeta() const
Definition: GsfElectron.h:471
MonitorElement * h1_ele_chargedHadronRelativeIso_barrel
float dr03HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:576
MonitorElement * h1_ele_photonRelativeIso_barrel
MonitorElement * h1_scl_SigIEtaIEta_mAOD_barrel
double phi() const final
momentum azimuthal angle
void setBookStatOverflowFlag(const bool &)
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:663
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
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_Extended
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
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
Definition: Run.h:45
int charge() const final
electric charge
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal03Tag_
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_barrel
double eta() const final
momentum pseudorapidity