CMS 3D CMS Logo

ElectronMcSignalValidator.cc
Go to the documentation of this file.
1 
2 // user include files
4 
6 
8 
18 
21 
24 
31 
37 
38 #include "CLHEP/Units/GlobalPhysicalConstants.h"
39 #include "TMath.h"
40 #include "TFile.h"
41 #include "TH1F.h"
42 #include "TH1I.h"
43 #include "TH2F.h"
44 #include "TProfile.h"
45 #include "TTree.h"
46 #include <vector>
47 #include <iostream>
48 #include <typeinfo>
49 
50 using namespace reco;
51 
53  mcTruthCollection_ = consumes<reco::GenParticleCollection>(conf.getParameter<edm::InputTag>("mcTruthCollection"));
54  electronCollection_ = consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollection"));
56  consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollectionEndcaps"));
58  consumes<reco::GsfElectronCoreCollection>(conf.getParameter<edm::InputTag>("electronCoreCollection"));
60  consumes<reco::GsfTrackCollection>(conf.getParameter<edm::InputTag>("electronTrackCollection"));
62  consumes<reco::ElectronSeedCollection>(conf.getParameter<edm::InputTag>("electronSeedCollection"));
64  consumes<reco::VertexCollection>(conf.getParameter<edm::InputTag>("offlinePrimaryVertices"));
65  beamSpotTag_ = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpot"));
66 
67  readAOD_ = conf.getParameter<bool>("readAOD");
68 
69  isoFromDepsTk03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk03"));
70  isoFromDepsTk04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsTk04"));
72  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull03"));
74  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull04"));
76  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced03"));
78  consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced04"));
79  isoFromDepsHcal03Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal03"));
80  isoFromDepsHcal04Tag_ = consumes<edm::ValueMap<double> >(conf.getParameter<edm::InputTag>("isoFromDepsHcal04"));
81 
82  maxPt_ = conf.getParameter<double>("MaxPt");
83  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
84  maxAbsEtaExtended_ = conf.getParameter<double>("MaxAbsEtaExtended");
85  deltaR2_ = conf.getParameter<double>("DeltaR") * conf.getParameter<double>("DeltaR");
86  matchingIDs_ = conf.getParameter<std::vector<int> >("MatchingID");
87  matchingMotherIDs_ = conf.getParameter<std::vector<int> >("MatchingMotherID");
88  inputFile_ = conf.getParameter<std::string>("InputFile");
89  outputFile_ = conf.getParameter<std::string>("OutputFile");
90  inputInternalPath_ = conf.getParameter<std::string>("InputFolderName");
91  outputInternalPath_ = conf.getParameter<std::string>("OutputFolderName");
92 
93  // histos bining and limits
94 
95  edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg");
96 
97  xyz_nbin = histosSet.getParameter<int>("Nbinxyz");
98 
99  p_nbin = histosSet.getParameter<int>("Nbinp");
100  p2D_nbin = histosSet.getParameter<int>("Nbinp2D");
101  p_max = histosSet.getParameter<double>("Pmax");
102 
103  pt_nbin = histosSet.getParameter<int>("Nbinpt");
104  pt2D_nbin = histosSet.getParameter<int>("Nbinpt2D");
105  pteff_nbin = histosSet.getParameter<int>("Nbinpteff");
106  pt_max = histosSet.getParameter<double>("Ptmax");
107 
108  fhits_nbin = histosSet.getParameter<int>("Nbinfhits");
109  fhits_max = histosSet.getParameter<double>("Fhitsmax");
110 
111  lhits_nbin = histosSet.getParameter<int>("Nbinlhits");
112  lhits_max = histosSet.getParameter<double>("Lhitsmax");
113 
114  eop_nbin = histosSet.getParameter<int>("Nbineop");
115  eop2D_nbin = histosSet.getParameter<int>("Nbineop2D");
116  eop_max = histosSet.getParameter<double>("Eopmax");
117  eopmaxsht = histosSet.getParameter<double>("Eopmaxsht");
118 
119  eta_nbin = histosSet.getParameter<int>("Nbineta");
120  eta2D_nbin = histosSet.getParameter<int>("Nbineta2D");
121  eta_min = histosSet.getParameter<double>("Etamin");
122  eta_max = histosSet.getParameter<double>("Etamax");
123 
124  eta_nbin_extended = histosSet.getParameter<int>("NbinetaExtended");
125  eta2D_nbin_extended = histosSet.getParameter<int>("Nbineta2DExtended");
126  eta_min_extended = histosSet.getParameter<double>("EtaminExtended");
127  eta_max_extended = histosSet.getParameter<double>("EtamaxExtended");
128 
129  deta_nbin = histosSet.getParameter<int>("Nbindeta");
130  deta_min = histosSet.getParameter<double>("Detamin");
131  deta_max = histosSet.getParameter<double>("Detamax");
132 
133  phi_nbin = histosSet.getParameter<int>("Nbinphi");
134  phi2D_nbin = histosSet.getParameter<int>("Nbinphi2D");
135  phi_min = histosSet.getParameter<double>("Phimin");
136  phi_max = histosSet.getParameter<double>("Phimax");
137 
138  detamatch_nbin = histosSet.getParameter<int>("Nbindetamatch");
139  detamatch2D_nbin = histosSet.getParameter<int>("Nbindetamatch2D");
140  detamatch_min = histosSet.getParameter<double>("Detamatchmin");
141  detamatch_max = histosSet.getParameter<double>("Detamatchmax");
142 
143  dphi_nbin = histosSet.getParameter<int>("Nbindphi");
144  dphi_min = histosSet.getParameter<double>("Dphimin");
145  dphi_max = histosSet.getParameter<double>("Dphimax");
146 
147  dphimatch_nbin = histosSet.getParameter<int>("Nbindphimatch");
148  dphimatch2D_nbin = histosSet.getParameter<int>("Nbindphimatch2D");
149  dphimatch_min = histosSet.getParameter<double>("Dphimatchmin");
150  dphimatch_max = histosSet.getParameter<double>("Dphimatchmax");
151 
152  poptrue_nbin = histosSet.getParameter<int>("Nbinpoptrue");
153  poptrue_min = histosSet.getParameter<double>("Poptruemin");
154  poptrue_max = histosSet.getParameter<double>("Poptruemax");
155 
156  mee_nbin = histosSet.getParameter<int>("Nbinmee");
157  mee_min = histosSet.getParameter<double>("Meemin");
158  mee_max = histosSet.getParameter<double>("Meemax");
159 
160  hoe_nbin = histosSet.getParameter<int>("Nbinhoe");
161  hoe_min = histosSet.getParameter<double>("Hoemin");
162  hoe_max = histosSet.getParameter<double>("Hoemax");
163 
164  error_nbin = histosSet.getParameter<int>("Nbinerror");
165  enerror_max = histosSet.getParameter<double>("Energyerrormax");
166 
167  set_EfficiencyFlag = histosSet.getParameter<bool>("EfficiencyFlag");
168  set_StatOverflowFlag = histosSet.getParameter<bool>("StatOverflowFlag");
169 
170  opv_nbin = histosSet.getParameter<int>("NbinOPV");
171  opv_min = histosSet.getParameter<double>("OPV_min");
172  opv_max = histosSet.getParameter<double>("OPV_max");
173 
174  ele_nbin = histosSet.getParameter<int>("NbinELE");
175  ele_min = histosSet.getParameter<double>("ELE_min");
176  ele_max = histosSet.getParameter<double>("ELE_max");
177 
178  core_nbin = histosSet.getParameter<int>("NbinCORE");
179  core_min = histosSet.getParameter<double>("CORE_min");
180  core_max = histosSet.getParameter<double>("CORE_max");
181 
182  track_nbin = histosSet.getParameter<int>("NbinTRACK");
183  track_min = histosSet.getParameter<double>("TRACK_min");
184  track_max = histosSet.getParameter<double>("TRACK_max");
185 
186  seed_nbin = histosSet.getParameter<int>("NbinSEED");
187  seed_min = histosSet.getParameter<double>("SEED_min");
188  seed_max = histosSet.getParameter<double>("SEED_max");
189 
190  // so to please coverity...
191  h1_mcNum = nullptr;
192  h1_eleNum = nullptr;
193  h1_gamNum = nullptr;
194 
195  h1_recEleNum = nullptr;
196  h1_recCoreNum = nullptr;
197  h1_recTrackNum = nullptr;
198  h1_recSeedNum = nullptr;
199  h1_recOfflineVertices = nullptr;
200 
201  h1_mc_Eta = nullptr;
202  h1_mc_Eta_Extended = nullptr;
203  h1_mc_AbsEta = nullptr;
204  h1_mc_AbsEta_Extended = nullptr;
205  h1_mc_P = nullptr;
206  h1_mc_Pt = nullptr;
207  h1_mc_Phi = nullptr;
208  h1_mc_Z = nullptr;
209  h2_mc_PtEta = nullptr;
210 
211  h1_mc_Eta_matched = nullptr;
212  h1_mc_Eta_Extended_matched = nullptr;
213  h1_mc_AbsEta_matched = nullptr;
215  h1_mc_Pt_matched = nullptr;
216  h1_mc_Phi_matched = nullptr;
217  h1_mc_Z_matched = nullptr;
218  h2_mc_PtEta_matched = nullptr;
219 
220  h1_mc_Eta_matched_qmisid = nullptr;
221  h1_mc_AbsEta_matched_qmisid = nullptr;
222  h1_mc_Pt_matched_qmisid = nullptr;
223  h1_mc_Phi_matched_qmisid = nullptr;
224  h1_mc_Z_matched_qmisid = nullptr;
225 
226  h1_ele_EoverP_all = nullptr;
227  h1_ele_EoverP_all_barrel = nullptr;
228  h1_ele_EoverP_all_endcaps = nullptr;
229  h1_ele_EseedOP_all = nullptr;
230  h1_ele_EseedOP_all_barrel = nullptr;
231  h1_ele_EseedOP_all_endcaps = nullptr;
232  h1_ele_EoPout_all = nullptr;
233  h1_ele_EeleOPout_all = nullptr;
234  h1_ele_dEtaSc_propVtx_all = nullptr;
237  h1_ele_dPhiSc_propVtx_all = nullptr;
240  h1_ele_dEtaCl_propOut_all = nullptr;
243  h1_ele_dPhiCl_propOut_all = nullptr;
246  h1_ele_TIP_all = nullptr;
247  h1_ele_TIP_all_barrel = nullptr;
248  h1_ele_TIP_all_endcaps = nullptr;
249  h1_ele_HoE_all = nullptr;
250  h1_ele_HoE_all_barrel = nullptr;
251  h1_ele_HoE_all_endcaps = nullptr;
252  h1_ele_vertexEta_all = nullptr;
253  h1_ele_vertexPt_all = nullptr;
254  h1_ele_Et_all = nullptr;
255  h1_ele_mee_all = nullptr;
256  h1_ele_mee_os = nullptr;
257  h1_ele_mee_os_ebeb = nullptr;
258  h1_ele_mee_os_ebee = nullptr;
259  h1_ele_mee_os_eeee = nullptr;
260  h1_ele_mee_os_gg = nullptr;
261  h1_ele_mee_os_gb = nullptr;
262  h1_ele_mee_os_bb = nullptr;
263 
264  h2_ele_E2mnE1vsMee_all = nullptr;
265  h2_ele_E2mnE1vsMee_egeg_all = nullptr;
266 
267  h1_ele_charge = nullptr;
268  h2_ele_chargeVsEta = nullptr;
269  h2_ele_chargeVsPhi = nullptr;
270  h2_ele_chargeVsPt = nullptr;
271  h1_ele_vertexP = nullptr;
272  h1_ele_vertexPt = nullptr;
273  h1_ele_vertexPt_nocut = nullptr;
274  h1_ele_Et = nullptr;
275  h2_ele_vertexPtVsEta = nullptr;
276  h2_ele_vertexPtVsPhi = nullptr;
277  h1_ele_vertexPt_5100 = nullptr;
278  h1_ele_vertexEta = nullptr;
279  h2_ele_vertexEtaVsPhi = nullptr;
280  h1_ele_vertexAbsEta = nullptr;
281  h1_ele_vertexPhi = nullptr;
282  h1_ele_vertexX = nullptr;
283  h1_ele_vertexY = nullptr;
284  h1_ele_vertexZ = nullptr;
285  h1_ele_vertexTIP = nullptr;
286  h2_ele_vertexTIPVsEta = nullptr;
287  h2_ele_vertexTIPVsPhi = nullptr;
288  h2_ele_vertexTIPVsPt = nullptr;
289 
290  h1_scl_En = nullptr;
291  h1_scl_EoEtrue_barrel = nullptr;
292  h1_scl_EoEtrue_endcaps = nullptr;
295  h1_scl_EoEtrue_ebeegap = nullptr;
298  h1_scl_EoEtrue_barrel_new = nullptr;
299  h1_scl_EoEtrue_endcaps_new = nullptr;
303  h1_scl_EoEtrue_ebeegap_new = nullptr;
310  h1_scl_Et = nullptr;
311  h2_scl_EtVsEta = nullptr;
312  h2_scl_EtVsPhi = nullptr;
313  h2_scl_EtaVsPhi = nullptr;
314  h1_scl_Eta = nullptr;
315  h1_scl_Phi = nullptr;
316  h1_scl_ESFrac_endcaps = nullptr;
317 
318  h2_scl_EoEtruePfVsEg = nullptr;
319 
320  h1_scl_SigEtaEta = nullptr;
321  h1_scl_SigEtaEta_barrel = nullptr;
322  h1_scl_SigEtaEta_endcaps = nullptr;
323  h1_scl_SigIEtaIEta = nullptr;
324  h1_scl_SigIEtaIEta_barrel = nullptr;
325  h1_scl_SigIEtaIEta_endcaps = nullptr;
326  h1_scl_SigIEtaIEta_mAOD = nullptr;
333  h1_scl_E1x5 = nullptr;
334  h1_scl_E1x5_barrel = nullptr;
335  h1_scl_E1x5_endcaps = nullptr;
336  h1_scl_E2x5max = nullptr;
337  h1_scl_E2x5max_barrel = nullptr;
338  h1_scl_E2x5max_endcaps = nullptr;
339  h1_scl_E5x5 = nullptr;
340  h1_scl_E5x5_barrel = nullptr;
341  h1_scl_E5x5_endcaps = nullptr;
342  h1_scl_bcl_EtotoEtrue = nullptr;
346 
347  h1_ele_ambiguousTracks = nullptr;
348  h2_ele_ambiguousTracksVsEta = nullptr;
349  h2_ele_ambiguousTracksVsPhi = nullptr;
350  h2_ele_ambiguousTracksVsPt = nullptr;
351  h1_ele_foundHits = nullptr;
352  h1_ele_foundHits_barrel = nullptr;
353  h1_ele_foundHits_endcaps = nullptr;
354  h2_ele_foundHitsVsEta = nullptr;
356  h2_ele_foundHitsVsEta_mAOD = nullptr;
357  h2_ele_foundHitsVsPhi = nullptr;
358  h2_ele_foundHitsVsPt = nullptr;
359  h1_ele_lostHits = nullptr;
360  h1_ele_lostHits_barrel = nullptr;
361  h1_ele_lostHits_endcaps = nullptr;
362  h2_ele_lostHitsVsEta = nullptr;
363  h2_ele_lostHitsVsPhi = nullptr;
364  h2_ele_lostHitsVsPt = nullptr;
365  h1_ele_chi2 = nullptr;
366  h1_ele_chi2_barrel = nullptr;
367  h1_ele_chi2_endcaps = nullptr;
368  h2_ele_chi2VsEta = nullptr;
369  h2_ele_chi2VsPhi = nullptr;
370  h2_ele_chi2VsPt = nullptr;
371 
372  h1_ele_PoPtrue = nullptr;
373  h1_ele_PoPtrue_barrel = nullptr;
374  h1_ele_PoPtrue_endcaps = nullptr;
375 
376  h2_ele_PoPtrueVsEta = nullptr;
378  h2_ele_PoPtrueVsPhi = nullptr;
379  h2_ele_PoPtrueVsPt = nullptr;
380  h2_ele_sigmaIetaIetaVsPt = nullptr;
381 
386  h1_ele_PtoPttrue = nullptr;
387  h1_ele_PtoPttrue_barrel = nullptr;
388  h1_ele_PtoPttrue_endcaps = nullptr;
389  h1_ele_ChargeMnChargeTrue = nullptr;
390  h1_ele_EtaMnEtaTrue = nullptr;
391  h1_ele_EtaMnEtaTrue_barrel = nullptr;
392  h1_ele_EtaMnEtaTrue_endcaps = nullptr;
393  h2_ele_EtaMnEtaTrueVsEta = nullptr;
394  h2_ele_EtaMnEtaTrueVsPhi = nullptr;
395  h2_ele_EtaMnEtaTrueVsPt = nullptr;
396  h1_ele_PhiMnPhiTrue = nullptr;
397  h1_ele_PhiMnPhiTrue_barrel = nullptr;
398  h1_ele_PhiMnPhiTrue_endcaps = nullptr;
399  h1_ele_PhiMnPhiTrue2 = nullptr;
400  h2_ele_PhiMnPhiTrueVsEta = nullptr;
401  h2_ele_PhiMnPhiTrueVsPhi = nullptr;
402  h2_ele_PhiMnPhiTrueVsPt = nullptr;
403  h1_ele_PinMnPout = nullptr;
404  h1_ele_PinMnPout_mode = nullptr;
405  h2_ele_PinMnPoutVsEta_mode = nullptr;
406  h2_ele_PinMnPoutVsPhi_mode = nullptr;
407  h2_ele_PinMnPoutVsPt_mode = nullptr;
408  h2_ele_PinMnPoutVsE_mode = nullptr;
409  h2_ele_PinMnPoutVsChi2_mode = nullptr;
410 
411  h1_ele_outerP = nullptr;
412  h1_ele_outerP_mode = nullptr;
413  h2_ele_outerPVsEta_mode = nullptr;
414  h1_ele_outerPt = nullptr;
415  h1_ele_outerPt_mode = nullptr;
416  h2_ele_outerPtVsEta_mode = nullptr;
417  h2_ele_outerPtVsPhi_mode = nullptr;
418  h2_ele_outerPtVsPt_mode = nullptr;
419  h1_ele_EoP = nullptr;
420  h1_ele_EoP_barrel = nullptr;
421  h1_ele_EoP_endcaps = nullptr;
422  h2_ele_EoPVsEta = 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  // conversions
570  h1_ele_convFlags = nullptr;
571  h1_ele_convFlags_all = nullptr;
572  h1_ele_convDist = nullptr;
573  h1_ele_convDist_all = nullptr;
574  h1_ele_convDcot = nullptr;
575  h1_ele_convDcot_all = nullptr;
576  h1_ele_convRadius = nullptr;
577  h1_ele_convRadius_all = nullptr;
578 
579  // PF
588  h1_ele_photonRelativeIso = nullptr;
601 }
602 
605 
606  // prepareStore() ;
607  setBookIndex(-1);
608  setBookPrefix("h");
611 
612  // mc truth collections sizes
613  h1_mcNum = bookH1withSumw2(iBooker, "mcNum", "# mc particles", fhits_nbin, 0., fhits_max, "N_{gen}");
614  h1_eleNum = bookH1withSumw2(iBooker, "mcNum_ele", "# mc electrons", fhits_nbin, 0., fhits_max, "N_{gen ele}");
615  h1_gamNum = bookH1withSumw2(iBooker, "mcNum_gam", "# mc gammas", fhits_nbin, 0., fhits_max, "N_{gen #gamma}");
616 
617  // rec event collections sizes
618  h1_recEleNum = bookH1(iBooker, "recEleNum", "# rec electrons", ele_nbin, ele_min, ele_max, "N_{ele}");
619  h1_recCoreNum = bookH1(iBooker, "recCoreNum", "# rec electron cores", core_nbin, core_min, core_max, "N_{core}");
620  h1_recTrackNum = bookH1(iBooker, "recTrackNum", "# rec gsf tracks", track_nbin, track_min, track_max, "N_{track}");
621  h1_recSeedNum = bookH1(iBooker, "recSeedNum", "# rec electron seeds", seed_nbin, seed_min, seed_max, "N_{seed}");
623  iBooker, "recOfflineVertices", "# rec Offline Primary Vertices", opv_nbin, opv_min, opv_max, "N_{Vertices}");
624 
626  "scl_EoEtrueVsrecOfflineVertices",
627  "E/Etrue vs number of primary vertices",
628  opv_nbin, // 10,
629  opv_min, // 0.,
630  opv_max, // 50.,
631  50,
632  0.,
633  2.5,
634  "N_{primary vertices}",
635  "E/E_{true}");
637  "scl_EoEtrueVsrecOfflineVertices_Extended",
638  "E/Etrue vs number of primary vertices, 2.5<|eta|<3",
639  opv_nbin, // 10,
640  opv_min, // 0.,
641  opv_max, // 50.,
642  50,
643  0.,
644  2.5,
645  "N_{primary vertices}",
646  "E/E_{true}");
648  "scl_EoEtrueVsrecOfflineVertices_barrel",
649  "E/Etrue vs number of primary , barrel",
650  opv_nbin, // 10,
651  opv_min, // 0.,
652  opv_max, // 50.,
653  50,
654  0.,
655  2.5,
656  "N_{primary vertices}",
657  "E/E_{true}");
659  "scl_EoEtrueVsrecOfflineVertices_endcaps",
660  "E/Etrue vs number of primary , endcaps",
661  opv_nbin, // 10,
662  opv_min, // 0.,
663  opv_max, // 50.,
664  50,
665  0.,
666  2.5,
667  "N_{primary vertices}",
668  "E/E_{true}");
669 
670  // mc
671  setBookPrefix("h_mc");
672  h1_mc_Eta = bookH1withSumw2(iBooker, "Eta", "gen #eta", eta_nbin, eta_min, eta_max, "#eta");
674  iBooker, "Eta_Extended", "gen #eta", eta_nbin_extended, eta_min_extended, eta_max_extended, "#eta");
675  h1_mc_AbsEta = bookH1withSumw2(iBooker, "AbsEta", "gen |#eta|", eta_nbin / 2, 0., eta_max);
677  bookH1withSumw2(iBooker, "AbsEta_Extended", "gen |#eta|", eta_nbin_extended / 2, 0., eta_max_extended);
678  h1_mc_P = bookH1withSumw2(iBooker, "P", "gen p", p_nbin, 0., p_max, "p (GeV/c)");
679  h1_mc_Pt = bookH1withSumw2(iBooker, "Pt", "gen pt", pteff_nbin, 5., pt_max);
680  h1_mc_Phi = bookH1withSumw2(iBooker, "Phi", "gen phi", phi_nbin, phi_min, phi_max);
681  h1_mc_Z = bookH1withSumw2(iBooker, "Z", "gen z ", xyz_nbin, -25, 25);
682  h2_mc_PtEta =
683  bookH2withSumw2(iBooker, "PtEta", "gen pt vs #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
684 
685  // all electrons
686  setBookPrefix("h_ele");
688  "EoverP_all",
689  "ele E/P_{vertex}, all reco electrons",
690  eop_nbin,
691  0.,
692  eop_max,
693  "E/P_{vertex}",
694  "Events",
695  "ELE_LOGY E1 P");
697  "EoverP_all_barrel",
698  "ele E/P_{vertex}, all reco electrons, barrel",
699  eop_nbin,
700  0.,
701  eop_max,
702  "E/P_{vertex}",
703  "Events",
704  "ELE_LOGY E1 P");
706  "EoverP_all_endcaps",
707  "ele E/P_{vertex}, all reco electrons, endcaps",
708  eop_nbin,
709  0.,
710  eop_max,
711  "E/P_{vertex}",
712  "Events",
713  "ELE_LOGY E1 P");
715  "EseedOP_all",
716  "ele E_{seed}/P_{vertex}, all reco electrons",
717  eop_nbin,
718  0.,
719  eop_max,
720  "E_{seed}/P_{vertex}",
721  "Events",
722  "ELE_LOGY E1 P");
724  "EseedOP_all_barrel",
725  "ele E_{seed}/P_{vertex}, all reco electrons, barrel",
726  eop_nbin,
727  0.,
728  eop_max,
729  "E_{seed}/P_{vertex}",
730  "Events",
731  "ELE_LOGY E1 P");
733  "EseedOP_all_endcaps",
734  "ele E_{seed}/P_{vertex}, all reco electrons, endcaps",
735  eop_nbin,
736  0.,
737  eop_max,
738  "E_{seed}/P_{vertex}",
739  "Events",
740  "ELE_LOGY E1 P");
742  "EoPout_all",
743  "ele E_{seed}/P_{out}, all reco electrons",
744  eop_nbin,
745  0.,
746  eop_max,
747  "E_{seed}/P_{out}",
748  "Events",
749  "ELE_LOGY E1 P");
751  "EeleOPout_all",
752  "ele E_{ele}/P_{out}, all reco electrons",
753  eop_nbin,
754  0.,
755  eop_max,
756  "E_{ele}/P_{out}",
757  "Events",
758  "ELE_LOGY E1 P");
760  "dEtaSc_propVtx_all",
761  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",
765  "#eta_{sc} - #eta_{tr}",
766  "Events",
767  "ELE_LOGY E1 P");
769  bookH1withSumw2(iBooker,
770  "dEtaSc_propVtx_all_barrel",
771  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel",
775  "#eta_{sc} - #eta_{tr}",
776  "Events",
777  "ELE_LOGY E1 P");
779  bookH1withSumw2(iBooker,
780  "dEtaSc_propVtx_all_endcaps",
781  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps",
785  "#eta_{sc} - #eta_{tr}",
786  "Events",
787  "ELE_LOGY E1 P");
789  "dPhiSc_propVtx_all",
790  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",
794  "#phi_{sc} - #phi_{tr} (rad)",
795  "Events",
796  "ELE_LOGY E1 P");
798  bookH1withSumw2(iBooker,
799  "dPhiSc_propVtx_all_barrel",
800  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel",
804  "#phi_{sc} - #phi_{tr} (rad)",
805  "Events",
806  "ELE_LOGY E1 P");
808  bookH1withSumw2(iBooker,
809  "dPhiSc_propVtx_all_endcaps",
810  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps",
814  "#phi_{sc} - #phi_{tr} (rad)",
815  "Events",
816  "ELE_LOGY E1 P");
818  "dEtaCl_propOut_all",
819  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",
823  "#eta_{sc} - #eta_{tr}",
824  "Events",
825  "ELE_LOGY E1 P");
827  bookH1withSumw2(iBooker,
828  "dEtaCl_propOut_all_barrel",
829  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel",
833  "#eta_{sc} - #eta_{tr}",
834  "Events",
835  "ELE_LOGY E1 P");
837  bookH1withSumw2(iBooker,
838  "dEtaCl_propOut_all_endcaps",
839  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps",
843  "#eta_{sc} - #eta_{tr}",
844  "Events",
845  "ELE_LOGY E1 P");
847  "dPhiCl_propOut_all",
848  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",
852  "#phi_{sc} - #phi_{tr} (rad)",
853  "Events",
854  "ELE_LOGY E1 P");
856  bookH1withSumw2(iBooker,
857  "dPhiCl_propOut_all_barrel",
858  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel",
862  "#phi_{sc} - #phi_{tr} (rad)",
863  "Events",
864  "ELE_LOGY E1 P");
866  bookH1withSumw2(iBooker,
867  "dPhiCl_propOut_all_endcaps",
868  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps",
872  "#phi_{sc} - #phi_{tr} (rad)",
873  "Events",
874  "ELE_LOGY E1 P");
876  "HoE_all",
877  "ele hadronic energy / em energy, all reco electrons",
878  hoe_nbin,
879  hoe_min,
880  hoe_max,
881  "H/E",
882  "Events",
883  "ELE_LOGY E1 P");
885  "HoE_all_barrel",
886  "ele hadronic energy / em energy, all reco electrons barrel",
887  hoe_nbin,
888  hoe_min,
889  hoe_max,
890  "H/E",
891  "Events",
892  "ELE_LOGY E1 P");
894  "HoE_all_endcaps",
895  "ele hadronic energy / em energy, all reco electrons endcaps",
896  hoe_nbin,
897  hoe_min,
898  hoe_max,
899  "H/E",
900  "Events",
901  "ELE_LOGY E1 P");
903  "HoE_bc_all",
904  "ele hadronic energy / em energy, all reco electrons, behind cluster",
905  hoe_nbin,
906  hoe_min,
907  hoe_max,
908  "H/E",
909  "Events",
910  "ELE_LOGY E1 P");
912  bookH1withSumw2(iBooker, "vertexPt_all", "ele p_{T}, all reco electrons", pteff_nbin, 5., pt_max, "", "Events");
913  h1_ele_Et_all = bookH1withSumw2(iBooker,
914  "Et_all",
915  "ele ecal E_{T}, all reco electrons",
916  pteff_nbin,
917  5.,
918  pt_max,
919  "E_{T} (GeV)",
920  "Events",
921  "ELE_LOGY E1 P");
923  iBooker, "vertexEta_all", "ele eta, all reco electrons", eta_nbin, eta_min, eta_max, "", "Events");
925  "TIP_all",
926  "ele vertex transverse radius, all reco electrons",
927  100,
928  0.,
929  0.2,
930  "r_{T} (cm)",
931  "Events",
932  "ELE_LOGY E1 P");
934  "TIP_all_barrel",
935  "ele vertex transverse radius, all reco electrons barrel",
936  100,
937  0.,
938  0.2,
939  "r_{T} (cm)",
940  "Events",
941  "ELE_LOGY E1 P");
943  "TIP_all_endcaps",
944  "ele vertex transverse radius, all reco electrons endcaps",
945  100,
946  0.,
947  0.2,
948  "r_{T} (cm)",
949  "Events",
950  "ELE_LOGY E1 P");
952  "mee_all",
953  "ele pairs invariant mass, all reco electrons",
954  mee_nbin,
955  mee_min,
956  mee_max,
957  "m_{ee} (GeV/c^{2})",
958  "Events",
959  "ELE_LOGY E1 P");
960  h1_ele_mee_os = bookH1withSumw2(iBooker,
961  "mee_os",
962  "ele pairs invariant mass, opp. sign",
963  mee_nbin,
964  mee_min,
965  mee_max,
966  "m_{e^{+}e^{-}} (GeV/c^{2})",
967  "Events",
968  "ELE_LOGY E1 P");
970  "mee_os_ebeb",
971  "ele pairs invariant mass, opp. sign, EB-EB",
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_ebee",
980  "ele pairs invariant mass, opp. sign, EB-EE",
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_eeee",
989  "ele pairs invariant mass, opp. sign, EE-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_gg",
998  "ele pairs invariant mass, opp. sign, good-good",
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_gb",
1007  "ele pairs invariant mass, opp. sign, good-bad",
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_bb",
1016  "ele pairs invariant mass, opp. sign, bad-bad",
1017  mee_nbin,
1018  mee_min,
1019  mee_max,
1020  "m_{e^{+}e^{-}} (GeV/c^{2})",
1021  "Events",
1022  "ELE_LOGY E1 P");
1023 
1024  // duplicates
1025  h2_ele_E2mnE1vsMee_all = bookH2(iBooker,
1026  "E2mnE1vsMee_all",
1027  "E2 - E1 vs ele pairs invariant mass, all electrons",
1028  mee_nbin,
1029  mee_min,
1030  mee_max,
1031  100,
1032  -50.,
1033  50.,
1034  "m_{e^{+}e^{-}} (GeV/c^{2})",
1035  "E2 - E1 (GeV)");
1037  "E2mnE1vsMee_egeg_all",
1038  "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
1039  mee_nbin,
1040  mee_min,
1041  mee_max,
1042  100,
1043  -50.,
1044  50.,
1045  "m_{e^{+}e^{-}} (GeV/c^{2})",
1046  "E2 - E1 (GeV)");
1047 
1048  // charge ID
1050  bookH1withSumw2(iBooker, "ChargeMnChargeTrue", "ele charge - gen charge ", 5, -1., 4., "q_{rec} - q_{gen}");
1051  setBookPrefix("h_mc");
1053  bookH1withSumw2(iBooker, "Eta_matched_qmisid", "charge misid vs gen eta", eta_nbin, eta_min, eta_max);
1055  bookH1withSumw2(iBooker, "AbsEta_matched_qmisid", "charge misid vs gen |eta|", eta_nbin / 2, 0., eta_max);
1057  bookH1withSumw2(iBooker, "Pt_matched_qmisid", "charge misid vs gen transverse momentum", pteff_nbin, 5., pt_max);
1059  bookH1withSumw2(iBooker, "Phi_matched_qmisid", "charge misid vs gen phi", phi_nbin, phi_min, phi_max);
1060  h1_mc_Z_matched_qmisid = bookH1withSumw2(iBooker, "Z_matched_qmisid", "charge misid vs gen z", xyz_nbin, -25, 25);
1061 
1062  // matched electrons
1063  setBookPrefix("h_mc");
1064  h1_mc_Eta_matched = bookH1withSumw2(iBooker, "Eta_matched", "Eta of matched electrons", eta_nbin, eta_min, eta_max);
1066  "Eta_Extended_matched",
1067  "Eta of matched electrons",
1072  bookH1withSumw2(iBooker, "AbsEta_matched", "Efficiency vs gen |eta|", eta_nbin / 2, 0., eta_max);
1074  iBooker, "AbsEta_Extended_matched", "Efficiency vs gen |eta|", eta_nbin_extended / 2, 0., eta_max_extended);
1075  h1_mc_Pt_matched = bookH1(iBooker, "Pt_matched", "Efficiency vs gen transverse momentum", pteff_nbin, 5., pt_max);
1076  h1_mc_Phi_matched = bookH1withSumw2(iBooker, "Phi_matched", "Efficiency vs gen phi", phi_nbin, phi_min, phi_max);
1077  h1_mc_Z_matched = bookH1withSumw2(iBooker, "Z_matched", "Efficiency vs gen vertex z", xyz_nbin, -25, 25);
1079  iBooker, "PtEta_matched", "Efficiency vs pt #eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 5., pt_max);
1080  setBookPrefix("h_ele");
1081  h1_ele_charge = bookH1withSumw2(iBooker, "charge", "ele charge", 5, -2.5, 2.5, "charge");
1082  h2_ele_chargeVsEta = bookH2(iBooker, "chargeVsEta", "ele charge vs eta", eta2D_nbin, eta_min, eta_max, 5, -2., 2.);
1083  h2_ele_chargeVsPhi = bookH2(iBooker, "chargeVsPhi", "ele charge vs phi", phi2D_nbin, phi_min, phi_max, 5, -2., 2.);
1084  h2_ele_chargeVsPt = bookH2(iBooker, "chargeVsPt", "ele charge vs pt", pt_nbin, 0., 100., 5, -2., 2.);
1085  h1_ele_vertexP = bookH1withSumw2(iBooker, "vertexP", "ele momentum", p_nbin, 0., p_max, "p_{vertex} (GeV/c)");
1086  h1_ele_vertexPt =
1087  bookH1withSumw2(iBooker, "vertexPt", "ele transverse momentum", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1089  iBooker, "vertexPt_nocut", "pT of prunned electrons", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
1090  h1_ele_Et = bookH1withSumw2(iBooker, "Et", "ele ecal E_{T}", pt_nbin, 0., pt_max, "E_{T} (GeV)");
1092  iBooker, "vertexPtVsEta", "ele transverse momentum vs eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 0., pt_max);
1094  iBooker, "vertexPtVsPhi", "ele transverse momentum vs phi", phi2D_nbin, phi_min, phi_max, pt2D_nbin, 0., pt_max);
1095  h1_ele_vertexEta = bookH1withSumw2(iBooker, "vertexEta", "ele momentum eta", eta_nbin, eta_min, eta_max, "#eta");
1097  iBooker, "vertexEtaVsPhi", "ele momentum eta vs phi", eta2D_nbin, eta_min, eta_max, phi2D_nbin, phi_min, phi_max);
1099  bookH1withSumw2(iBooker, "vertexPhi", "ele momentum #phi", phi_nbin, phi_min, phi_max, "#phi (rad)");
1100  h1_ele_vertexX = bookH1withSumw2(iBooker, "vertexX", "ele vertex x", xyz_nbin, -0.6, 0.6, "x (cm)");
1101  h1_ele_vertexY = bookH1withSumw2(iBooker, "vertexY", "ele vertex y", xyz_nbin, -0.6, 0.6, "y (cm)");
1102  h1_ele_vertexZ = bookH1withSumw2(iBooker, "vertexZ", "ele vertex z", xyz_nbin, -25, 25, "z (cm)");
1104  bookH1withSumw2(iBooker, "vertexTIP", "ele transverse impact parameter (wrt gen vtx)", 90, 0., 0.15, "TIP (cm)");
1105  h2_ele_vertexTIPVsEta = bookH2(iBooker,
1106  "vertexTIPVsEta",
1107  "ele transverse impact parameter (wrt gen vtx) vs eta",
1108  eta2D_nbin,
1109  eta_min,
1110  eta_max,
1111  45,
1112  0.,
1113  0.15,
1114  "#eta",
1115  "TIP (cm)");
1116  h2_ele_vertexTIPVsPhi = bookH2(iBooker,
1117  "vertexTIPVsPhi",
1118  "ele transverse impact parameter (wrt gen vtx) vs phi",
1119  phi2D_nbin,
1120  phi_min,
1121  phi_max,
1122  45,
1123  0.,
1124  0.15,
1125  "#phi (rad)",
1126  "TIP (cm)");
1127  h2_ele_vertexTIPVsPt = bookH2(iBooker,
1128  "vertexTIPVsPt",
1129  "ele transverse impact parameter (wrt gen vtx) vs transverse momentum",
1130  pt2D_nbin,
1131  0.,
1132  pt_max,
1133  45,
1134  0.,
1135  0.15,
1136  "p_{T} (GeV/c)",
1137  "TIP (cm)");
1139  iBooker, "PoPtrue", "ele momentum / gen momentum", poptrue_nbin, poptrue_min, poptrue_max, "P/P_{gen}");
1141  "PoPtrue_barrel",
1142  "ele momentum / gen momentum, barrel",
1143  poptrue_nbin,
1144  poptrue_min,
1145  poptrue_max,
1146  "P/P_{gen}");
1148  "PoPtrue_endcaps",
1149  "ele momentum / gen momentum, endcaps",
1150  poptrue_nbin,
1151  poptrue_min,
1152  poptrue_max,
1153  "P/P_{gen}");
1155  "PoPtrueVsEta",
1156  "ele momentum / gen momentum vs eta",
1157  eta2D_nbin,
1158  eta_min,
1159  eta_max,
1160  50,
1161  poptrue_min,
1162  poptrue_max);
1164  "PoPtrueVsEta_Extended",
1165  "ele momentum / gen momentum vs eta",
1169  50,
1170  poptrue_min,
1171  poptrue_max);
1172  h2_ele_PoPtrueVsPhi = bookH2(iBooker,
1173  "PoPtrueVsPhi",
1174  "ele momentum / gen momentum vs phi",
1175  phi2D_nbin,
1176  phi_min,
1177  phi_max,
1178  50,
1179  poptrue_min,
1180  poptrue_max);
1182  iBooker, "PoPtrueVsPt", "ele momentum / gen momentum vs eta", pt2D_nbin, 0., pt_max, 50, poptrue_min, poptrue_max);
1184  bookH2(iBooker, "sigmaIetaIetaVsPt", "SigmaIetaIeta vs pt", 100, 0., pt_max, 100, 0., 0.05);
1186  "PoPtrue_golden_barrel",
1187  "ele momentum / gen momentum, golden, barrel",
1188  poptrue_nbin,
1189  poptrue_min,
1190  poptrue_max,
1191  "P/P_{gen}");
1193  "PoPtrue_golden_endcaps",
1194  "ele momentum / gen momentum, golden, endcaps",
1195  poptrue_nbin,
1196  poptrue_min,
1197  poptrue_max,
1198  "P/P_{gen}");
1200  "PoPtrue_showering_barrel",
1201  "ele momentum / gen momentum, showering, barrel",
1202  poptrue_nbin,
1203  poptrue_min,
1204  poptrue_max,
1205  "P/P_{gen}");
1207  "PoPtrue_showering_endcaps",
1208  "ele momentum / gen momentum, showering, endcaps",
1209  poptrue_nbin,
1210  poptrue_min,
1211  poptrue_max,
1212  "P/P_{gen}");
1214  "PtoPttrue",
1215  "ele transverse momentum / gen transverse momentum",
1216  poptrue_nbin,
1217  poptrue_min,
1218  poptrue_max,
1219  "P_{T}/P_{T}^{gen}");
1221  "PtoPttrue_barrel",
1222  "ele transverse momentum / gen transverse momentum, barrel",
1223  poptrue_nbin,
1224  poptrue_min,
1225  poptrue_max,
1226  "P_{T}/P_{T}^{gen}");
1228  "PtoPttrue_endcaps",
1229  "ele transverse momentum / gen transverse momentum, endcaps",
1230  poptrue_nbin,
1231  poptrue_min,
1232  poptrue_max,
1233  "P_{T}/P_{T}^{gen}");
1235  iBooker, "EtaMnEtaTrue", "ele momentum eta - gen eta", deta_nbin, deta_min, deta_max, "#eta_{rec} - #eta_{gen}");
1237  "EtaMnEtaTrue_barrel",
1238  "ele momentum eta - gen eta barrel",
1239  deta_nbin,
1240  deta_min,
1241  deta_max,
1242  "#eta_{rec} - #eta_{gen}");
1244  "EtaMnEtaTrue_endcaps",
1245  "ele momentum eta - gen eta endcaps",
1246  deta_nbin,
1247  deta_min,
1248  deta_max,
1249  "#eta_{rec} - #eta_{gen}");
1250  h2_ele_EtaMnEtaTrueVsEta = bookH2(iBooker,
1251  "EtaMnEtaTrueVsEta",
1252  "ele momentum eta - gen eta vs eta",
1253  eta2D_nbin,
1254  eta_min,
1255  eta_max,
1256  deta_nbin / 2,
1257  deta_min,
1258  deta_max);
1259  h2_ele_EtaMnEtaTrueVsPhi = bookH2(iBooker,
1260  "EtaMnEtaTrueVsPhi",
1261  "ele momentum eta - gen eta vs phi",
1262  phi2D_nbin,
1263  phi_min,
1264  phi_max,
1265  deta_nbin / 2,
1266  deta_min,
1267  deta_max);
1268  h2_ele_EtaMnEtaTrueVsPt = bookH2(iBooker,
1269  "EtaMnEtaTrueVsPt",
1270  "ele momentum eta - gen eta vs pt",
1271  pt_nbin,
1272  0.,
1273  pt_max,
1274  deta_nbin / 2,
1275  deta_min,
1276  deta_max);
1278  "PhiMnPhiTrue",
1279  "ele momentum phi - gen phi",
1280  dphi_nbin,
1281  dphi_min,
1282  dphi_max,
1283  "#phi_{rec} - #phi_{gen} (rad)");
1285  "PhiMnPhiTrue_barrel",
1286  "ele momentum phi - gen phi barrel",
1287  dphi_nbin,
1288  dphi_min,
1289  dphi_max,
1290  "#phi_{rec} - #phi_{gen} (rad)");
1292  "PhiMnPhiTrue_endcaps",
1293  "ele momentum phi - gen phi endcaps",
1294  dphi_nbin,
1295  dphi_min,
1296  dphi_max,
1297  "#phi_{rec} - #phi_{gen} (rad)");
1299  bookH1(iBooker, "PhiMnPhiTrue2", "ele momentum phi - gen phi", dphimatch2D_nbin, dphimatch_min, dphimatch_max);
1300  h2_ele_PhiMnPhiTrueVsEta = bookH2(iBooker,
1301  "PhiMnPhiTrueVsEta",
1302  "ele momentum phi - gen phi vs eta",
1303  eta2D_nbin,
1304  eta_min,
1305  eta_max,
1306  dphi_nbin / 2,
1307  dphi_min,
1308  dphi_max);
1309  h2_ele_PhiMnPhiTrueVsPhi = bookH2(iBooker,
1310  "PhiMnPhiTrueVsPhi",
1311  "ele momentum phi - gen phi vs phi",
1312  phi2D_nbin,
1313  phi_min,
1314  phi_max,
1315  dphi_nbin / 2,
1316  dphi_min,
1317  dphi_max);
1318  h2_ele_PhiMnPhiTrueVsPt = bookH2(iBooker,
1319  "PhiMnPhiTrueVsPt",
1320  "ele momentum phi - gen phi vs pt",
1321  pt2D_nbin,
1322  0.,
1323  pt_max,
1324  dphi_nbin / 2,
1325  dphi_min,
1326  dphi_max);
1328  iBooker, "ecalEnergyError", "Regression estimate of the ECAL energy error", error_nbin, 0, enerror_max);
1330  iBooker, "ecalEnergyError_barrel", "Regression estimate of the ECAL energy error - barrel", 30, 0, 30);
1332  "ecalEnergyError_endcaps",
1333  "Regression estimate of the ECAL energy error - endcaps",
1334  error_nbin,
1335  0,
1336  enerror_max);
1338  iBooker, "combinedP4Error", "Estimated error on the combined momentum", error_nbin, 0, enerror_max);
1340  iBooker, "combinedP4Error_barrel", "Estimated error on the combined momentum - barrel", 30, 0, 30);
1342  "combinedP4Error_endcaps",
1343  "Estimated error on the combined momentum - endcaps",
1344  error_nbin,
1345  0,
1346  enerror_max);
1347 
1348  // matched electron, superclusters
1349  setBookPrefix("h_scl");
1350  h1_scl_En = bookH1withSumw2(iBooker, "energy", "ele ecal energy", p_nbin, 0., p_max);
1352  bookH1withSumw2(iBooker, "EoEtrue_barrel", "ele ecal energy / gen energy, barrel", 50, 0.2, 1.2, "E/E_{gen}");
1354  iBooker, "EoEtrue_barrel_etagap", "ele ecal energy / gen energy, barrel, etagap", 50, 0.2, 1.2, "E/E_{gen}");
1356  iBooker, "EoEtrue_barrel_phigap", "ele ecal energy / gen energy, barrel, phigap", 50, 0.2, 1.2, "E/E_{gen}");
1358  bookH1withSumw2(iBooker, "EoEtrue_ebeegap", "ele ecal energy / gen energy, ebeegap", 50, 0.2, 1.2, "E/E_{gen}");
1360  bookH1withSumw2(iBooker, "EoEtrue_endcaps", "ele ecal energy / gen energy, endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1362  iBooker, "EoEtrue_endcaps_deegap", "ele ecal energy / gen energy, endcaps, deegap", 50, 0.2, 1.2, "E/E_{gen}");
1364  iBooker, "EoEtrue_endcaps_ringgap", "ele ecal energy / gen energy, endcaps, ringgap", 50, 0.2, 1.2, "E/E_{gen}");
1366  "EoEtrue_barrel_new",
1367  "ele ecal energy / gen energy, barrel",
1368  poptrue_nbin,
1369  poptrue_min,
1370  poptrue_max,
1371  "E/E_{gen}");
1373  "EoEtrue_barrel_new_etagap",
1374  "ele ecal energy / gen energy, barrel, etagap",
1375  poptrue_nbin,
1376  poptrue_min,
1377  poptrue_max,
1378  "E/E_{gen}");
1380  "EoEtrue_barrel_new_phigap",
1381  "ele ecal energy / gen energy, barrel, phigap",
1382  poptrue_nbin,
1383  poptrue_min,
1384  poptrue_max,
1385  "E/E_{gen}");
1387  "EoEtrue_ebeegap_new",
1388  "ele ecal energy / gen energy, ebeegap",
1389  poptrue_nbin,
1390  poptrue_min,
1391  poptrue_max,
1392  "E/E_{gen}");
1394  "EoEtrue_endcaps_new",
1395  "ele ecal energy / gen energy, endcaps",
1396  poptrue_nbin,
1397  poptrue_min,
1398  poptrue_max,
1399  "E/E_{gen}");
1401  "EoEtrue_endcaps_new_Extended",
1402  "ele ecal energy / gen energy, endcaps, extended",
1403  poptrue_nbin,
1404  poptrue_min,
1405  poptrue_max,
1406  "E/E_{gen}");
1408  "EoEtrue_endcaps_new_deegap",
1409  "ele ecal energy / gen energy, endcaps, deegap",
1410  poptrue_nbin,
1411  poptrue_min,
1412  poptrue_max,
1413  "E/E_{gen}");
1415  "EoEtrue_endcaps_new_ringgap",
1416  "ele ecal energy / gen energy, endcaps, ringgap",
1417  poptrue_nbin,
1418  poptrue_min,
1419  poptrue_max,
1420  "E/E_{gen}");
1421  h1_scl_Et = bookH1withSumw2(iBooker, "et", "ele supercluster transverse energy", pt_nbin, 0., pt_max);
1422  h2_scl_EtVsEta = bookH2(iBooker,
1423  "etVsEta",
1424  "ele supercluster transverse energy vs eta",
1425  eta2D_nbin,
1426  eta_min,
1427  eta_max,
1428  pt_nbin,
1429  0.,
1430  pt_max);
1431  h2_scl_EtVsPhi = bookH2(iBooker,
1432  "etVsPhi",
1433  "ele supercluster transverse energy vs phi",
1434  phi2D_nbin,
1435  phi_min,
1436  phi_max,
1437  pt_nbin,
1438  0.,
1439  pt_max);
1441  iBooker, "etaVsPhi", "ele supercluster eta vs phi", phi2D_nbin, phi_min, phi_max, eta2D_nbin, eta_min, eta_max);
1442  h1_scl_Eta = bookH1withSumw2(iBooker, "eta", "ele supercluster eta", eta_nbin, eta_min, eta_max);
1443  h1_scl_Phi = bookH1withSumw2(iBooker, "phi", "ele supercluster phi", phi_nbin, phi_min, phi_max);
1445  "sigetaeta",
1446  "ele supercluster sigma eta eta",
1447  100,
1448  0.,
1449  0.05,
1450  "#sigma_{#eta #eta}",
1451  "Events",
1452  "ELE_LOGY E1 P");
1454  "sigetaeta_barrel",
1455  "ele supercluster sigma eta eta barrel",
1456  100,
1457  0.,
1458  0.05,
1459  "#sigma_{#eta #eta}",
1460  "Events",
1461  "ELE_LOGY E1 P");
1463  "sigetaeta_endcaps",
1464  "ele supercluster sigma eta eta endcaps",
1465  100,
1466  0.,
1467  0.05,
1468  "#sigma_{#eta #eta}",
1469  "Events",
1470  "ELE_LOGY E1 P");
1472  "sigietaieta",
1473  "ele supercluster sigma ieta ieta",
1474  100,
1475  0.,
1476  0.05,
1477  "#sigma_{i#eta i#eta}",
1478  "Events",
1479  "ELE_LOGY E1 P");
1481  "sigietaieta_barrel",
1482  "ele supercluster sigma ieta ieta, barrel",
1483  100,
1484  0.,
1485  0.05,
1486  "#sigma_{i#eta i#eta}",
1487  "Events",
1488  "ELE_LOGY E1 P");
1490  "sigietaieta_endcaps",
1491  "ele supercluster sigma ieta ieta, endcaps",
1492  100,
1493  0.,
1494  0.05,
1495  "#sigma_{i#eta i#eta}",
1496  "Events",
1497  "ELE_LOGY E1 P");
1499  "SigIEtaIEta_mAOD",
1500  "ele supercluster sigma ieta ieta",
1501  100,
1502  0.,
1503  0.05,
1504  "#sigma_{i#eta i#eta}",
1505  "Events",
1506  "ELE_LOGY E1 P");
1508  "SigIEtaIEta_mAOD_barrel",
1509  "ele supercluster sigma ieta ieta, barrel",
1510  100,
1511  0.,
1512  0.05,
1513  "#sigma_{i#eta i#eta}",
1514  "Events",
1515  "ELE_LOGY E1 P");
1517  "SigIEtaIEta_mAOD_endcaps",
1518  "ele supercluster sigma ieta ieta, endcaps",
1519  100,
1520  0.,
1521  0.05,
1522  "#sigma_{i#eta i#eta}",
1523  "Events",
1524  "ELE_LOGY E1 P");
1526  "full5x5_sigietaieta",
1527  "ele supercluster full5x5 sigma ieta ieta",
1528  100,
1529  0.,
1530  0.05,
1531  "#sigma_{i#eta i#eta}",
1532  "Events",
1533  "ELE_LOGY E1 P");
1535  "full5x5_sigietaieta_Extended",
1536  "ele supercluster full5x5 sigma ieta ieta, 2.5<|eta|<3",
1537  100,
1538  0.,
1539  0.05,
1540  "#sigma_{i#eta i#eta}",
1541  "Events",
1542  "ELE_LOGY E1 P");
1544  "full5x5_sigietaieta_barrel",
1545  "ele supercluster full5x5 sigma ieta ieta, barrel",
1546  100,
1547  0.,
1548  0.05,
1549  "#sigma_{i#eta i#eta}",
1550  "Events",
1551  "ELE_LOGY E1 P");
1553  "full5x5_sigietaieta_endcaps",
1554  "ele supercluster full5x5 sigma ieta ieta, endcaps",
1555  100,
1556  0.,
1557  0.05,
1558  "#sigma_{i#eta i#eta}",
1559  "Events",
1560  "ELE_LOGY E1 P");
1562  iBooker, "E1x5", "ele supercluster energy in 1x5", p_nbin, 0., p_max, "E1x5 (GeV)", "Events", "ELE_LOGY E1 P");
1564  "E1x5_barrel",
1565  "ele supercluster energy in 1x5 barrel",
1566  p_nbin,
1567  0.,
1568  p_max,
1569  "E1x5 (GeV)",
1570  "Events",
1571  "ELE_LOGY E1 P");
1573  "E1x5_endcaps",
1574  "ele supercluster energy in 1x5 endcaps",
1575  p_nbin,
1576  0.,
1577  p_max,
1578  "E1x5 (GeV)",
1579  "Events",
1580  "ELE_LOGY E1 P");
1581  h1_scl_E2x5max = bookH1withSumw2(iBooker,
1582  "E2x5max",
1583  "ele supercluster energy in 2x5 max",
1584  p_nbin,
1585  0.,
1586  p_max,
1587  "E2x5 (GeV)",
1588  "Events",
1589  "ELE_LOGY E1 P");
1591  "E2x5max_barrel",
1592  "ele supercluster energy in 2x5 _max barrel",
1593  p_nbin,
1594  0.,
1595  p_max,
1596  "E2x5 (GeV)",
1597  "Events",
1598  "ELE_LOGY E1 P");
1600  "E2x5max_endcaps",
1601  "ele supercluster energy in 2x5 _max endcaps",
1602  p_nbin,
1603  0.,
1604  p_max,
1605  "E2x5 (GeV)",
1606  "Events",
1607  "ELE_LOGY E1 P");
1609  iBooker, "E5x5", "ele supercluster energy in 5x5", p_nbin, 0., p_max, "E5x5 (GeV)", "Events", "ELE_LOGY E1 P");
1611  "E5x5_barrel",
1612  "ele supercluster energy in 5x5 barrel",
1613  p_nbin,
1614  0.,
1615  p_max,
1616  "E5x5 (GeV)",
1617  "Events",
1618  "ELE_LOGY E1 P");
1620  "E5x5_endcaps",
1621  "ele supercluster energy in 5x5 endcaps",
1622  p_nbin,
1623  0.,
1624  p_max,
1625  "E5x5 (GeV)",
1626  "Events",
1627  "ELE_LOGY E1 P");
1628  h2_scl_EoEtruePfVsEg = bookH2(iBooker,
1629  "EoEtruePfVsEg",
1630  "mean mustache SC/true energy vs final SC/true energy",
1631  75,
1632  -0.1,
1633  1.4,
1634  75,
1635  -0.1,
1636  1.4,
1637  "E_{final SC}/E_{gen}",
1638  "E_{mustache}/E_{gen}");
1640  bookH1withSumw2(iBooker, "bcl_EtotoEtrue", "Total basicclusters energy", 50, 0.2, 1.2, "E/E_{gen}");
1642  iBooker, "bcl_EtotoEtrue_Extended", "Total basicclusters energy, 2.5<|eta|<3", 50, 0.2, 1.2, "E/E_{gen}");
1644  iBooker, "bcl_EtotoEtrue_barrel", "Total basicclusters energy , barrel", 50, 0.2, 1.2, "E/E_{gen}");
1646  iBooker, "bcl_EtotoEtrue_endcaps", "Total basicclusters energy , endcaps", 50, 0.2, 1.2, "E/E_{gen}");
1648  "ESFrac_endcaps",
1649  "Preshower over SC raw energy , endcaps",
1650  100,
1651  0.,
1652  0.8,
1653  "E_{PS} / E^{raw}_{SC}",
1654  "Events",
1655  "ELE_LOGY E1 P");
1656 
1657  // matched electron, gsf tracks
1658  setBookPrefix("h_ele");
1660  "ambiguousTracks",
1661  "ele # ambiguous tracks",
1662  5,
1663  0.,
1664  5.,
1665  "N_{ambiguous tracks}",
1666  "Events",
1667  "ELE_LOGY E1 P");
1669  bookH2(iBooker, "ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", eta2D_nbin, eta_min, eta_max, 5, 0., 5.);
1671  bookH2(iBooker, "ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", phi2D_nbin, phi_min, phi_max, 5, 0., 5.);
1673  bookH2(iBooker, "ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", pt2D_nbin, 0., pt_max, 5, 0., 5.);
1675  bookH1withSumw2(iBooker, "foundHits", "ele track # found hits", fhits_nbin, 0., fhits_max, "N_{hits}");
1677  iBooker, "foundHits_barrel", "ele track # found hits, barrel", fhits_nbin, 0., fhits_max, "N_{hits}");
1679  iBooker, "foundHits_endcaps", "ele track # found hits, endcaps", fhits_nbin, 0., fhits_max, "N_{hits}");
1680  h2_ele_foundHitsVsEta = bookH2(iBooker,
1681  "foundHitsVsEta",
1682  "ele track # found hits vs eta",
1683  eta2D_nbin,
1684  eta_min,
1685  eta_max,
1686  fhits_nbin,
1687  0.,
1688  fhits_max);
1690  "foundHitsVsEta_Extended",
1691  "ele track # found hits vs eta",
1695  fhits_nbin,
1696  0.,
1697  fhits_max);
1699  "foundHitsVsEta_mAOD",
1700  "ele track # found hits vs eta",
1701  eta2D_nbin,
1702  eta_min,
1703  eta_max,
1704  fhits_nbin,
1705  0.,
1706  fhits_max);
1707  h2_ele_foundHitsVsPhi = bookH2(iBooker,
1708  "foundHitsVsPhi",
1709  "ele track # found hits vs phi",
1710  phi2D_nbin,
1711  phi_min,
1712  phi_max,
1713  fhits_nbin,
1714  0.,
1715  fhits_max);
1717  iBooker, "foundHitsVsPt", "ele track # found hits vs pt", pt2D_nbin, 0., pt_max, fhits_nbin, 0., fhits_max);
1718  h1_ele_lostHits = bookH1withSumw2(iBooker, "lostHits", "ele track # lost hits", 5, 0., 5., "N_{lost hits}");
1720  bookH1withSumw2(iBooker, "lostHits_barrel", "ele track # lost hits, barrel", 5, 0., 5., "N_{lost hits}");
1722  bookH1withSumw2(iBooker, "lostHits_endcaps", "ele track # lost hits, endcaps", 5, 0., 5., "N_{lost hits}");
1724  iBooker, "lostHitsVsEta", "ele track # lost hits vs eta", eta2D_nbin, eta_min, eta_max, lhits_nbin, 0., lhits_max);
1726  iBooker, "lostHitsVsPhi", "ele track # lost hits vs eta", phi2D_nbin, phi_min, phi_max, lhits_nbin, 0., lhits_max);
1728  bookH2(iBooker, "lostHitsVsPt", "ele track # lost hits vs eta", pt2D_nbin, 0., pt_max, lhits_nbin, 0., lhits_max);
1729  h1_ele_chi2 =
1730  bookH1withSumw2(iBooker, "chi2", "ele track #chi^{2}", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1732  iBooker, "chi2_barrel", "ele track #chi^{2}, barrel", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1734  iBooker, "chi2_endcaps", "ele track #chi^{2}, endcaps", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1736  bookH2(iBooker, "chi2VsEta", "ele track #chi^{2} vs eta", eta2D_nbin, eta_min, eta_max, 50, 0., 15.);
1738  bookH2(iBooker, "chi2VsPhi", "ele track #chi^{2} vs phi", phi2D_nbin, phi_min, phi_max, 50, 0., 15.);
1739  h2_ele_chi2VsPt = bookH2(iBooker, "chi2VsPt", "ele track #chi^{2} vs pt", pt2D_nbin, 0., pt_max, 50, 0., 15.);
1741  "PinMnPout",
1742  "ele track inner p - outer p, mean of GSF components",
1743  p_nbin,
1744  0.,
1745  200.,
1746  "P_{vertex} - P_{out} (GeV/c)");
1748  "PinMnPout_mode",
1749  "ele track inner p - outer p, mode of GSF components",
1750  p_nbin,
1751  0.,
1752  100.,
1753  "P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
1755  "PinMnPoutVsEta_mode",
1756  "ele track inner p - outer p vs eta, mode of GSF components",
1757  eta2D_nbin,
1758  eta_min,
1759  eta_max,
1760  p2D_nbin,
1761  0.,
1762  100.);
1764  "PinMnPoutVsPhi_mode",
1765  "ele track inner p - outer p vs phi, mode of GSF components",
1766  phi2D_nbin,
1767  phi_min,
1768  phi_max,
1769  p2D_nbin,
1770  0.,
1771  100.);
1773  "PinMnPoutVsPt_mode",
1774  "ele track inner p - outer p vs pt, mode of GSF components",
1775  pt2D_nbin,
1776  0.,
1777  pt_max,
1778  p2D_nbin,
1779  0.,
1780  100.);
1781  h2_ele_PinMnPoutVsE_mode = bookH2(iBooker,
1782  "PinMnPoutVsE_mode",
1783  "ele track inner p - outer p vs E, mode of GSF components",
1784  p2D_nbin,
1785  0.,
1786  200.,
1787  p2D_nbin,
1788  0.,
1789  100.);
1791  "PinMnPoutVsChi2_mode",
1792  "ele track inner p - outer p vs track chi2, mode of GSF components",
1793  50,
1794  0.,
1795  20.,
1796  p2D_nbin,
1797  0.,
1798  100.);
1800  iBooker, "outerP", "ele track outer p, mean of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1802  iBooker, "outerP_mode", "ele track outer p, mode of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1804  bookH2(iBooker, "outerPVsEta_mode", "ele track outer p vs eta mode", eta2D_nbin, eta_min, eta_max, 50, 0., p_max);
1806  iBooker, "outerPt", "ele track outer p_{T}, mean of GSF components", pt_nbin, 0., pt_max, "P_{T out} (GeV/c)");
1808  "outerPt_mode",
1809  "ele track outer p_{T}, mode of GSF components",
1810  pt_nbin,
1811  0.,
1812  pt_max,
1813  "P_{T out} (GeV/c)");
1814  h2_ele_outerPtVsEta_mode = bookH2(iBooker,
1815  "outerPtVsEta_mode",
1816  "ele track outer p_{T} vs eta, mode of GSF components",
1817  eta2D_nbin,
1818  eta_min,
1819  eta_max,
1820  pt2D_nbin,
1821  0.,
1822  pt_max);
1823  h2_ele_outerPtVsPhi_mode = bookH2(iBooker,
1824  "outerPtVsPhi_mode",
1825  "ele track outer p_{T} vs phi, mode of GSF components",
1826  phi2D_nbin,
1827  phi_min,
1828  phi_max,
1829  pt2D_nbin,
1830  0.,
1831  pt_max);
1832  h2_ele_outerPtVsPt_mode = bookH2(iBooker,
1833  "outerPtVsPt_mode",
1834  "ele track outer p_{T} vs pt, mode of GSF components",
1835  pt2D_nbin,
1836  0.,
1837  100.,
1838  pt2D_nbin,
1839  0.,
1840  pt_max);
1841 
1842  // matched electrons, matching
1844  iBooker, "EoP", "ele E/P_{vertex}", eop_nbin, 0., eop_max, "E/P_{vertex}", "Events", "ELE_LOGY E1 P");
1846  "EoP_barrel",
1847  "ele E/P_{vertex} barrel",
1848  eop_nbin,
1849  0.,
1850  eop_max,
1851  "E/P_{vertex}",
1852  "Events",
1853  "ELE_LOGY E1 P");
1855  "EoP_endcaps",
1856  "ele E/P_{vertex} endcaps",
1857  eop_nbin,
1858  0.,
1859  eop_max,
1860  "E/P_{vertex}",
1861  "Events",
1862  "ELE_LOGY E1 P");
1863  h2_ele_EoPVsEta =
1864  bookH2(iBooker, "EoPVsEta", "ele E/P_{vertex} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1865  h2_ele_EoPVsEta_Extended = bookH2(iBooker,
1866  "EoPVsEta_Extended",
1867  "ele E/P_{vertex} vs eta",
1871  eop2D_nbin,
1872  0.,
1873  eopmaxsht);
1874  h2_ele_EoPVsPhi =
1875  bookH2(iBooker, "EoPVsPhi", "ele E/P_{vertex} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1876  h2_ele_EoPVsE = bookH2(iBooker, "EoPVsE", "ele E/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1877  h1_ele_EseedOP = bookH1withSumw2(iBooker,
1878  "EseedOP",
1879  "ele E_{seed}/P_{vertex}",
1880  eop_nbin,
1881  0.,
1882  eop_max,
1883  "E_{seed}/P_{vertex}",
1884  "Events",
1885  "ELE_LOGY E1 P");
1887  "EseedOP_barrel",
1888  "ele E_{seed}/P_{vertex} barrel",
1889  eop_nbin,
1890  0.,
1891  eop_max,
1892  "E_{seed}/P_{vertex}",
1893  "Events",
1894  "ELE_LOGY E1 P");
1896  "EseedOP_endcaps",
1897  "ele E_{seed}/P_{vertex} endcaps",
1898  eop_nbin,
1899  0.,
1900  eop_max,
1901  "E_{seed}/P_{vertex}",
1902  "Events",
1903  "ELE_LOGY E1 P");
1904  h2_ele_EseedOPVsEta = bookH2(iBooker,
1905  "EseedOPVsEta",
1906  "ele E_{seed}/P_{vertex} vs eta",
1907  eta2D_nbin,
1908  eta_min,
1909  eta_max,
1910  eop2D_nbin,
1911  0.,
1912  eopmaxsht);
1913  h2_ele_EseedOPVsPhi = bookH2(iBooker,
1914  "EseedOPVsPhi",
1915  "ele E_{seed}/P_{vertex} vs phi",
1916  phi2D_nbin,
1917  phi_min,
1918  phi_max,
1919  eop2D_nbin,
1920  0.,
1921  eopmaxsht);
1922  h2_ele_EseedOPVsE = bookH2(iBooker, "EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1924  iBooker, "EoPout", "ele E_{seed}/P_{out}", eop_nbin, 0., eop_max, "E_{seed}/P_{out}", "Events", "ELE_LOGY E1 P");
1926  "EoPout_barrel",
1927  "ele E_{seed}/P_{out} barrel",
1928  eop_nbin,
1929  0.,
1930  eop_max,
1931  "E_{seed}/P_{out}",
1932  "Events",
1933  "ELE_LOGY E1 P");
1935  "EoPout_endcaps",
1936  "ele E_{seed}/P_{out} endcaps",
1937  eop_nbin,
1938  0.,
1939  eop_max,
1940  "E_{seed}/P_{out}",
1941  "Events",
1942  "ELE_LOGY E1 P");
1944  iBooker, "EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1946  iBooker, "EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1948  bookH2(iBooker, "EoPoutVsE", "ele E_{seed}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1950  iBooker, "EeleOPout", "ele E_{ele}/P_{out}", eop_nbin, 0., eop_max, "E_{ele}/P_{out}", "Events", "ELE_LOGY E1 P");
1952  "EeleOPout_barrel",
1953  "ele E_{ele}/P_{out} barrel",
1954  eop_nbin,
1955  0.,
1956  eop_max,
1957  "E_{ele}/P_{out}",
1958  "Events",
1959  "ELE_LOGY E1 P");
1961  "EeleOPout_endcaps",
1962  "ele E_{ele}/P_{out} endcaps",
1963  eop_nbin,
1964  0.,
1965  eop_max,
1966  "E_{ele}/P_{out}",
1967  "Events",
1968  "ELE_LOGY E1 P");
1970  iBooker, "EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1972  iBooker, "EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1974  bookH2(iBooker, "EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1976  "dEtaSc_propVtx",
1977  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
1979  detamatch_min,
1980  detamatch_max,
1981  "#eta_{sc} - #eta_{tr}",
1982  "Events",
1983  "ELE_LOGY E1 P");
1985  "dEtaSc_propVtx_Extended",
1986  "ele #eta_{sc} - #eta_{tr}, prop from vertex, 2.5<|eta|<3",
1988  detamatch_min,
1989  detamatch_max,
1990  "#eta_{sc} - #eta_{tr}",
1991  "Events",
1992  "ELE_LOGY E1 P");
1994  "dEtaSc_propVtx_barrel",
1995  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1997  detamatch_min,
1998  detamatch_max,
1999  "#eta_{sc} - #eta_{tr}",
2000  "Events",
2001  "ELE_LOGY E1 P");
2003  "dEtaSc_propVtx_endcaps",
2004  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
2006  detamatch_min,
2007  detamatch_max,
2008  "#eta_{sc} - #eta_{tr}",
2009  "Events",
2010  "ELE_LOGY E1 P");
2012  "dEtaSc_propVtx_mAOD",
2013  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
2015  detamatch_min,
2016  detamatch_max,
2017  "#eta_{sc} - #eta_{tr}",
2018  "Events",
2019  "ELE_LOGY E1 P");
2021  "dEtaSc_propVtx_mAOD_barrel",
2022  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
2024  detamatch_min,
2025  detamatch_max,
2026  "#eta_{sc} - #eta_{tr}",
2027  "Events",
2028  "ELE_LOGY E1 P");
2030  "dEtaSc_propVtx_mAOD_endcaps",
2031  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
2033  detamatch_min,
2034  detamatch_max,
2035  "#eta_{sc} - #eta_{tr}",
2036  "Events",
2037  "ELE_LOGY E1 P");
2039  "dEtaScVsEta_propVtx",
2040  "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
2041  eta2D_nbin,
2042  eta_min,
2043  eta_max,
2045  detamatch_min,
2046  detamatch_max);
2048  "dEtaScVsPhi_propVtx",
2049  "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
2050  phi2D_nbin,
2051  phi_min,
2052  phi_max,
2054  detamatch_min,
2055  detamatch_max);
2057  "dEtaScVsPt_propVtx",
2058  "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
2059  pt2D_nbin,
2060  0.,
2061  pt_max,
2063  detamatch_min,
2064  detamatch_max);
2066  "dPhiSc_propVtx",
2067  "ele #phi_{sc} - #phi_{tr}, prop from vertex",
2069  dphimatch_min,
2070  dphimatch_max,
2071  "#phi_{sc} - #phi_{tr} (rad)",
2072  "Events",
2073  "ELE_LOGY E1 P");
2075  "dPhiSc_propVtx_Extended",
2076  "ele #phi_{sc} - #phi_{tr}, prop from vertex, 2.5<|eta|<3",
2078  dphimatch_min,
2079  dphimatch_max,
2080  "#phi_{sc} - #phi_{tr} (rad)",
2081  "Events",
2082  "ELE_LOGY E1 P");
2084  "dPhiSc_propVtx_barrel",
2085  "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",
2087  dphimatch_min,
2088  dphimatch_max,
2089  "#phi_{sc} - #phi_{tr} (rad)",
2090  "Events",
2091  "ELE_LOGY E1 P");
2093  "dPhiSc_propVtx_endcaps",
2094  "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",
2096  dphimatch_min,
2097  dphimatch_max,
2098  "#phi_{sc} - #phi_{tr} (rad)",
2099  "Events",
2100  "ELE_LOGY E1 P");
2102  "dPhiScVsEta_propVtx",
2103  "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
2104  eta2D_nbin,
2105  eta_min,
2106  eta_max,
2108  dphimatch_min,
2109  dphimatch_max);
2111  "dPhiScVsPhi_propVtx",
2112  "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
2113  phi2D_nbin,
2114  phi_min,
2115  phi_max,
2117  dphimatch_min,
2118  dphimatch_max);
2120  "dPhiScVsPt_propVtx",
2121  "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
2122  pt2D_nbin,
2123  0.,
2124  pt_max,
2126  dphimatch_min,
2127  dphimatch_max);
2129  "dEtaCl_propOut",
2130  "ele #eta_{cl} - #eta_{tr}, prop from outermost",
2132  detamatch_min,
2133  detamatch_max,
2134  "#eta_{seedcl} - #eta_{tr}",
2135  "Events",
2136  "ELE_LOGY E1 P");
2138  "dEtaCl_propOut_barrel",
2139  "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",
2141  detamatch_min,
2142  detamatch_max,
2143  "#eta_{seedcl} - #eta_{tr}",
2144  "Events",
2145  "ELE_LOGY E1 P");
2147  "dEtaCl_propOut_endcaps",
2148  "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",
2150  detamatch_min,
2151  detamatch_max,
2152  "#eta_{seedcl} - #eta_{tr}",
2153  "Events",
2154  "ELE_LOGY E1 P");
2156  "dEtaClVsEta_propOut",
2157  "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
2158  eta2D_nbin,
2159  eta_min,
2160  eta_max,
2162  detamatch_min,
2163  detamatch_max);
2165  "dEtaClVsPhi_propOut",
2166  "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
2167  phi2D_nbin,
2168  phi_min,
2169  phi_max,
2171  detamatch_min,
2172  detamatch_max);
2174  "dEtaScVsPt_propOut",
2175  "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
2176  pt2D_nbin,
2177  0.,
2178  pt_max,
2180  detamatch_min,
2181  detamatch_max);
2183  "dPhiCl_propOut",
2184  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2186  dphimatch_min,
2187  dphimatch_max,
2188  "#phi_{seedcl} - #phi_{tr} (rad)",
2189  "Events",
2190  "ELE_LOGY E1 P");
2192  "dPhiCl_propOut_barrel",
2193  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2195  dphimatch_min,
2196  dphimatch_max,
2197  "#phi_{seedcl} - #phi_{tr} (rad)",
2198  "Events",
2199  "ELE_LOGY E1 P");
2201  "dPhiCl_propOut_endcaps",
2202  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2204  dphimatch_min,
2205  dphimatch_max,
2206  "#phi_{seedcl} - #phi_{tr} (rad)",
2207  "Events",
2208  "ELE_LOGY E1 P");
2210  "dPhiCl_propOut_mAOD",
2211  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
2213  dphimatch_min,
2214  dphimatch_max,
2215  "#phi_{seedcl} - #phi_{tr} (rad)",
2216  "Events",
2217  "ELE_LOGY E1 P");
2219  "dPhiCl_propOut_mAOD_barrel",
2220  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
2222  dphimatch_min,
2223  dphimatch_max,
2224  "#phi_{seedcl} - #phi_{tr} (rad)",
2225  "Events",
2226  "ELE_LOGY E1 P");
2228  "dPhiCl_propOut_mAOD_endcaps",
2229  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
2231  dphimatch_min,
2232  dphimatch_max,
2233  "#phi_{seedcl} - #phi_{tr} (rad)",
2234  "Events",
2235  "ELE_LOGY E1 P");
2237  "dPhiClVsEta_propOut",
2238  "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
2239  eta2D_nbin,
2240  eta_min,
2241  eta_max,
2243  dphimatch_min,
2244  dphimatch_max);
2246  "dPhiClVsPhi_propOut",
2247  "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
2248  phi2D_nbin,
2249  phi_min,
2250  phi_max,
2252  dphimatch_min,
2253  dphimatch_max);
2255  "dPhiSClsPt_propOut",
2256  "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
2257  pt2D_nbin,
2258  0.,
2259  pt_max,
2261  dphimatch_min,
2262  dphimatch_max);
2264  "dEtaEleCl_propOut",
2265  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
2267  detamatch_min,
2268  detamatch_max,
2269  "#eta_{elecl} - #eta_{tr}",
2270  "Events",
2271  "ELE_LOGY E1 P");
2273  "dEtaEleCl_propOut_barrel",
2274  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",
2276  detamatch_min,
2277  detamatch_max,
2278  "#eta_{elecl} - #eta_{tr}",
2279  "Events",
2280  "ELE_LOGY E1 P");
2282  "dEtaEleCl_propOut_endcaps",
2283  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",
2285  detamatch_min,
2286  detamatch_max,
2287  "#eta_{elecl} - #eta_{tr}",
2288  "Events",
2289  "ELE_LOGY E1 P");
2291  "dEtaEleClVsEta_propOut",
2292  "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
2293  eta2D_nbin,
2294  eta_min,
2295  eta_max,
2297  detamatch_min,
2298  detamatch_max);
2300  "dEtaEleClVsPhi_propOut",
2301  "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
2302  phi2D_nbin,
2303  phi_min,
2304  phi_max,
2306  detamatch_min,
2307  detamatch_max);
2309  "dEtaScVsPt_propOut",
2310  "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
2311  pt2D_nbin,
2312  0.,
2313  pt_max,
2315  detamatch_min,
2316  detamatch_max);
2318  "dPhiEleCl_propOut",
2319  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
2321  dphimatch_min,
2322  dphimatch_max,
2323  "#phi_{elecl} - #phi_{tr} (rad)",
2324  "Events",
2325  "ELE_LOGY E1 P");
2327  "dPhiEleCl_propOut_barrel",
2328  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",
2330  dphimatch_min,
2331  dphimatch_max,
2332  "#phi_{elecl} - #phi_{tr} (rad)",
2333  "Events",
2334  "ELE_LOGY E1 P");
2336  "dPhiEleCl_propOut_endcaps",
2337  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",
2339  dphimatch_min,
2340  dphimatch_max,
2341  "#phi_{elecl} - #phi_{tr} (rad)",
2342  "Events",
2343  "ELE_LOGY E1 P");
2345  "dPhiEleClVsEta_propOut",
2346  "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
2347  eta2D_nbin,
2348  eta_min,
2349  eta_max,
2351  dphimatch_min,
2352  dphimatch_max);
2354  "dPhiEleClVsPhi_propOut",
2355  "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
2356  phi2D_nbin,
2357  phi_min,
2358  phi_max,
2360  dphimatch_min,
2361  dphimatch_max);
2363  "dPhiSEleClsPt_propOut",
2364  "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
2365  pt2D_nbin,
2366  0.,
2367  pt_max,
2369  dphimatch_min,
2370  dphimatch_max);
2372  iBooker, "HoE", "ele hadronic energy / em energy", hoe_nbin, hoe_min, hoe_max, "H/E", "Events", "ELE_LOGY E1 P");
2374  "HoE_Extended",
2375  "ele hadronic energy / em energy, 2.5<|eta|<3",
2376  hoe_nbin,
2377  hoe_min,
2378  hoe_max,
2379  "H/E",
2380  "Events",
2381  "ELE_LOGY E1 P");
2383  "HoE_barrel",
2384  "ele hadronic energy / em energy, barrel",
2385  hoe_nbin,
2386  hoe_min,
2387  hoe_max,
2388  "H/E",
2389  "Events",
2390  "ELE_LOGY E1 P");
2392  "HoE_endcaps",
2393  "ele hadronic energy / em energy, endcaps",
2394  hoe_nbin,
2395  hoe_min,
2396  hoe_max,
2397  "H/E",
2398  "Events",
2399  "ELE_LOGY E1 P");
2400  h1_ele_HoE_mAOD = bookH1withSumw2(iBooker,
2401  "HoE_mAOD",
2402  "ele hadronic energy / em energy",
2403  hoe_nbin,
2404  hoe_min,
2405  hoe_max,
2406  "H/E",
2407  "Events",
2408  "ELE_LOGY E1 P");
2410  "HoE_mAOD_barrel",
2411  "ele hadronic energy / em energy, barrel",
2412  hoe_nbin,
2413  hoe_min,
2414  hoe_max,
2415  "H/E",
2416  "Events",
2417  "ELE_LOGY E1 P");
2419  "HoE_mAOD_endcaps",
2420  "ele hadronic energy / em energy, endcaps",
2421  hoe_nbin,
2422  hoe_min,
2423  hoe_max,
2424  "H/E",
2425  "Events",
2426  "ELE_LOGY E1 P");
2427  h1_ele_HoE_bc = bookH1withSumw2(iBooker,
2428  "HoE_bc",
2429  "ele hadronic energy / em energy behind cluster",
2430  hoe_nbin,
2431  hoe_min,
2432  hoe_max,
2433  "H/E",
2434  "Events",
2435  "ELE_LOGY E1 P");
2437  "HoE_bc_barrel",
2438  "ele hadronic energy / em energy, behind cluster barrel",
2439  hoe_nbin,
2440  hoe_min,
2441  hoe_max,
2442  "H/E",
2443  "Events",
2444  "ELE_LOGY E1 P");
2446  "HoE_bc_endcaps",
2447  "ele hadronic energy / em energy, behind cluster, endcaps",
2448  hoe_nbin,
2449  hoe_min,
2450  hoe_max,
2451  "H/E",
2452  "Events",
2453  "ELE_LOGY E1 P");
2455  "hcalDepth1OverEcalBc",
2456  "hcalDepth1OverEcalBc",
2457  hoe_nbin,
2458  hoe_min,
2459  hoe_max,
2460  "H/E",
2461  "Events",
2462  "ELE_LOGY E1 P");
2464  "hcalDepth1OverEcalBc_barrel",
2465  "hcalDepth1OverEcalBc_barrel",
2466  hoe_nbin,
2467  hoe_min,
2468  hoe_max,
2469  "H/E",
2470  "Events",
2471  "ELE_LOGY E1 P");
2473  "hcalDepth1OverEcalBc_endcaps",
2474  "hcalDepth1OverEcalBc_endcaps",
2475  hoe_nbin,
2476  hoe_min,
2477  hoe_max,
2478  "H/E",
2479  "Events",
2480  "ELE_LOGY E1 P");
2482  "hcalDepth2OverEcalBc",
2483  "hcalDepth2OverEcalBc",
2484  hoe_nbin,
2485  hoe_min,
2486  hoe_max,
2487  "H/E",
2488  "Events",
2489  "ELE_LOGY E1 P");
2491  "hcalDepth2OverEcalBc_barrel",
2492  "hcalDepth2OverEcalBc_barrel",
2493  hoe_nbin,
2494  hoe_min,
2495  hoe_max,
2496  "H/E",
2497  "Events",
2498  "ELE_LOGY E1 P");
2500  "hcalDepth2OverEcalBc_endcaps",
2501  "hcalDepth2OverEcalBc_endcaps",
2502  hoe_nbin,
2503  hoe_min,
2504  hoe_max,
2505  "H/E",
2506  "Events",
2507  "ELE_LOGY E1 P");
2508 
2510  "HoE_fiducial",
2511  "ele hadronic energy / em energy, fiducial region",
2512  hoe_nbin,
2513  hoe_min,
2514  hoe_max,
2515  "H/E",
2516  "Events",
2517  "ELE_LOGY E1 P");
2518  h2_ele_HoEVsEta = bookH2(iBooker,
2519  "HoEVsEta",
2520  "ele hadronic energy / em energy vs eta",
2521  eta_nbin,
2522  eta_min,
2523  eta_max,
2524  hoe_nbin,
2525  hoe_min,
2526  hoe_max);
2527  h2_ele_HoEVsPhi = bookH2(iBooker,
2528  "HoEVsPhi",
2529  "ele hadronic energy / em energy vs phi",
2530  phi2D_nbin,
2531  phi_min,
2532  phi_max,
2533  hoe_nbin,
2534  hoe_min,
2535  hoe_max);
2536  h2_ele_HoEVsE =
2537  bookH2(iBooker, "HoEVsE", "ele hadronic energy / em energy vs E", p_nbin, 0., 300., hoe_nbin, hoe_min, hoe_max);
2538 
2539  // seeds
2541  bookH1withSumw2(iBooker, "seedSubdet2", "ele seed subdet 2nd layer", 11, -0.5, 10.5, "2nd hit subdet Id");
2542  h1_ele_seed_mask = bookH1withSumw2(iBooker, "seedMask", "ele seed hits mask", 13, -0.5, 12.5);
2544  bookH1withSumw2(iBooker, "seedMask_Bpix", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
2546  bookH1withSumw2(iBooker, "seedMask_Fpix", "ele seed hits mask when subdet2 is fpix", 13, -0.5, 12.5);
2548  bookH1withSumw2(iBooker, "seedMask_Tec", "ele seed hits mask when subdet2 is tec", 13, -0.5, 12.5);
2550  iBooker, "seedDphi2", "ele seed dphi 2nd layer", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2552  iBooker, "seedDphi2_VsEta", "ele seed dphi 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.003, +0.003);
2554  bookH2(iBooker, "seedDphi2_VsPt", "ele seed dphi 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2556  iBooker, "seedDphi2Pos", "ele seed dphi 2nd layer positron", 50, -0.010, +0.010, "#phi_{hit}-#phi_{pred} (rad)");
2558  "seedDphi2Pos_VsEta",
2559  "ele seed dphi 2nd layer positron vs eta",
2560  eta2D_nbin,
2561  eta_min,
2562  eta_max,
2563  50,
2564  -0.003,
2565  +0.003);
2567  iBooker, "seedDphi2Pos_VsPt", "ele seed dphi 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
2569  iBooker, "seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2571  iBooker, "seedDrz2_VsEta", "ele seed dr/dz 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.03, +0.03);
2573  bookH2(iBooker, "seedDrz2_VsPt", "ele seed dr/dz 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2575  iBooker, "seedDrz2Pos", "ele seed dr (dz) 2nd layer positron", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
2576  h2_ele_seed_drz2posVsEta = bookH2(iBooker,
2577  "seedDrz2Pos_VsEta",
2578  "ele seed dr/dz 2nd layer positron vs eta",
2579  eta2D_nbin,
2580  eta_min,
2581  eta_max,
2582  50,
2583  -0.03,
2584  +0.03);
2586  iBooker, "seedDrz2Pos_VsPt", "ele seed dr/dz 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
2587 
2588  // classes
2589  h1_ele_classes = bookH1withSumw2(iBooker, "classes", "ele classes", 20, 0.0, 20., "class Id");
2590  h1_ele_eta = bookH1withSumw2(iBooker, "eta", "ele electron eta", eta_nbin / 2, 0.0, eta_max);
2591  h1_ele_eta_golden = bookH1withSumw2(iBooker, "eta_golden", "ele electron eta golden", eta_nbin / 2, 0.0, eta_max);
2592  h1_ele_eta_bbrem = bookH1withSumw2(iBooker, "eta_bbrem", "ele electron eta bbrem", eta_nbin / 2, 0.0, eta_max);
2593  h1_ele_eta_shower = bookH1withSumw2(iBooker, "eta_shower", "ele electron eta showering", eta_nbin / 2, 0.0, eta_max);
2595  "PinVsPoutGolden_mode",
2596  "ele track inner p vs outer p vs eta, golden, mode of GSF components",
2597  p2D_nbin,
2598  0.,
2599  p_max,
2600  50,
2601  0.,
2602  p_max);
2604  "PinVsPoutShowering_mode",
2605  "ele track inner p vs outer p vs eta, showering, mode of GSF components",
2606  p2D_nbin,
2607  0.,
2608  p_max,
2609  50,
2610  0.,
2611  p_max);
2613  "PinVsPoutGolden_mean",
2614  "ele track inner p vs outer p vs eta, golden, mean of GSF components",
2615  p2D_nbin,
2616  0.,
2617  p_max,
2618  50,
2619  0.,
2620  p_max);
2622  "PinVsPoutShowering_mean",
2623  "ele track inner p vs outer p vs eta, showering, mean of GSF components",
2624  p2D_nbin,
2625  0.,
2626  p_max,
2627  50,
2628  0.,
2629  p_max);
2631  "PtinVsPtoutGolden_mode",
2632  "ele track inner pt vs outer pt vs eta, golden, mode of GSF components",
2633  pt2D_nbin,
2634  0.,
2635  pt_max,
2636  50,
2637  0.,
2638  pt_max);
2640  "PtinVsPtoutShowering_mode",
2641  "ele track inner pt vs outer pt vs eta, showering, mode of GSF components",
2642  pt2D_nbin,
2643  0.,
2644  pt_max,
2645  50,
2646  0.,
2647  pt_max);
2649  "PtinVsPtoutGolden_mean",
2650  "ele track inner pt vs outer pt vs eta, golden, mean of GSF components",
2651  pt2D_nbin,
2652  0.,
2653  pt_max,
2654  50,
2655  0.,
2656  pt_max);
2658  "PtinVsPtoutShowering_mean",
2659  "ele track inner pt vs outer pt vs eta, showering, mean of GSF components",
2660  pt2D_nbin,
2661  0.,
2662  pt_max,
2663  50,
2664  0.,
2665  pt_max);
2666  setBookPrefix("h_scl");
2668  "EoEtrue_golden_barrel",
2669  "ele supercluster energy / gen energy, golden, barrel",
2670  poptrue_nbin,
2671  poptrue_min,
2672  poptrue_max);
2674  "EoEtrue_golden_endcaps",
2675  "ele supercluster energy / gen energy, golden, endcaps",
2676  poptrue_nbin,
2677  poptrue_min,
2678  poptrue_max);
2680  "EoEtrue_showering_barrel",
2681  "ele supercluster energy / gen energy, showering, barrel",
2682  poptrue_nbin,
2683  poptrue_min,
2684  poptrue_max);
2686  "EoEtrue_showering_endcaps",
2687  "ele supercluster energy / gen energy, showering, endcaps",
2688  poptrue_nbin,
2689  poptrue_min,
2690  poptrue_max);
2691 
2692  // isolation
2693  setBookPrefix("h_ele");
2695  "tkSumPt_dr03",
2696  "tk isolation sum, dR=0.3",
2697  100,
2698  0.0,
2699  20.,
2700  "TkIsoSum, cone 0.3 (GeV/c)",
2701  "Events",
2702  "ELE_LOGY E1 P");
2704  "tkSumPt_dr03_barrel",
2705  "tk isolation sum, dR=0.3, barrel",
2706  100,
2707  0.0,
2708  20.,
2709  "TkIsoSum, cone 0.3 (GeV/c)",
2710  "Events",
2711  "ELE_LOGY E1 P");
2713  "tkSumPt_dr03_endcaps",
2714  "tk isolation sum, dR=0.3, endcaps",
2715  100,
2716  0.0,
2717  20.,
2718  "TkIsoSum, cone 0.3 (GeV/c)",
2719  "Events",
2720  "ELE_LOGY E1 P");
2722  "ecalRecHitSumEt_dr03",
2723  "ecal isolation sum, dR=0.3",
2724  100,
2725  0.0,
2726  20.,
2727  "EcalIsoSum, cone 0.3 (GeV)",
2728  "Events",
2729  "ELE_LOGY E1 P");
2731  "ecalRecHitSumEt_dr03_barrel",
2732  "ecal isolation sum, dR=0.3, barrel",
2733  100,
2734  0.0,
2735  20.,
2736  "EcalIsoSum, cone 0.3 (GeV)",
2737  "Events",
2738  "ELE_LOGY E1 P");
2740  "ecalRecHitSumEt_dr03_endcaps",
2741  "ecal isolation sum, dR=0.3, endcaps",
2742  100,
2743  0.0,
2744  20.,
2745  "EcalIsoSum, cone 0.3 (GeV)",
2746  "Events",
2747  "ELE_LOGY E1 P");
2749  "hcalTowerSumEt_dr03_depth1",
2750  "hcal depth1 isolation sum, dR=0.3",
2751  100,
2752  0.0,
2753  20.,
2754  "Hcal1IsoSum, cone 0.3 (GeV)",
2755  "Events",
2756  "ELE_LOGY E1 P");
2758  "hcalTowerSumEt_dr03_depth1_barrel",
2759  "hcal depth1 isolation sum, dR=0.3, barrel",
2760  100,
2761  0.0,
2762  20.,
2763  "Hcal1IsoSum, cone 0.3 (GeV)",
2764  "Events",
2765  "ELE_LOGY E1 P");
2767  "hcalTowerSumEt_dr03_depth1_endcaps",
2768  "hcal depth1 isolation sum, dR=0.3, endcaps",
2769  100,
2770  0.0,
2771  20.,
2772  "Hcal1IsoSum, cone 0.3 (GeV)",
2773  "Events",
2774  "ELE_LOGY E1 P");
2776  "hcalTowerSumEt_dr03_depth2",
2777  "hcal depth2 isolation sum, dR=0.3",
2778  100,
2779  0.0,
2780  20.,
2781  "Hcal2IsoSum, cone 0.3 (GeV)",
2782  "Events",
2783  "ELE_LOGY E1 P");
2785  "hcalTowerSumEt_dr03_depth2_barrel",
2786  "hcal depth2 isolation sum, dR=0.3",
2787  100,
2788  0.0,
2789  20.,
2790  "Hcal2IsoSum, cone 0.3 (GeV)",
2791  "Events",
2792  "ELE_LOGY E1 P");
2794  "hcalTowerSumEt_dr03_depth2_endcaps",
2795  "hcal depth2 isolation sum, dR=0.3",
2796  100,
2797  0.0,
2798  20.,
2799  "Hcal2IsoSum, cone 0.3 (GeV)",
2800  "Events",
2801  "ELE_LOGY E1 P");
2802 
2803  // newHCAL
2804  // isolation new hcal
2806  "hcalTowerSumEtBc_dr03_depth1",
2807  "hcal depth1 isolation sum behind cluster, dR=0.3",
2808  100,
2809  0.0,
2810  20.,
2811  "Hcal1IsoSum, cone 0.3 (GeV)",
2812  "Events",
2813  "ELE_LOGY E1 P");
2815  bookH1withSumw2(iBooker,
2816  "hcalTowerSumEtBc_dr03_depth1_barrel",
2817  "hcal depth1 isolation sum behind cluster, dR=0.3, barrel",
2818  100,
2819  0.0,
2820  20.,
2821  "Hcal1IsoSum, cone 0.3 (GeV)",
2822  "Events",
2823  "ELE_LOGY E1 P");
2825  bookH1withSumw2(iBooker,
2826  "hcalTowerSumEtBc_dr03_depth1_endcaps",
2827  "hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",
2828  100,
2829  0.0,
2830  20.,
2831  "Hcal1IsoSum, cone 0.3 (GeV)",
2832  "Events",
2833  "ELE_LOGY E1 P");
2834 
2836  "hcalTowerSumEtBc_dr03_depth2",
2837  "hcal depth2 isolation sum behind cluster, dR=0.3",
2838  100,
2839  0.0,
2840  20.,
2841  "Hcal1IsoSum, cone 0.3 (GeV)",
2842  "Events",
2843  "ELE_LOGY E1 P");
2845  bookH1withSumw2(iBooker,
2846  "hcalTowerSumEtBc_dr03_depth2_barrel",
2847  "hcal depth2 isolation sum behind cluster, dR=0.3, barrel",
2848  100,
2849  0.0,
2850  20.,
2851  "Hcal1IsoSum, cone 0.3 (GeV)",
2852  "Events",
2853  "ELE_LOGY E1 P");
2855  bookH1withSumw2(iBooker,
2856  "hcalTowerSumEtBc_dr03_depth2_endcaps",
2857  "hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",
2858  100,
2859  0.0,
2860  20.,
2861  "Hcal1IsoSum, cone 0.3 (GeV)",
2862  "Events",
2863  "ELE_LOGY E1 P");
2864 
2865  // fbrem
2867  iBooker, "fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2869  "fbrem_Extended",
2870  "ele brem fraction, mode of GSF components, 2.5<|eta|<3",
2871  100,
2872  0.,
2873  1.,
2874  "P_{in} - P_{out} / P_{in}");
2876  "fbrem_barrel",
2877  "ele brem fraction for barrel, mode of GSF components",
2878  100,
2879  0.,
2880  1.,
2881  "P_{in} - P_{out} / P_{in}");
2883  "fbrem_endcaps",
2884  "ele brem franction for endcaps, mode of GSF components",
2885  100,
2886  0.,
2887  1.,
2888  "P_{in} - P_{out} / P_{in}");
2890  iBooker, "fbrem_mAOD", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2892  "fbrem_mAOD_barrel",
2893  "ele brem fraction for barrel, mode of GSF components",
2894  100,
2895  0.,
2896  1.,
2897  "P_{in} - P_{out} / P_{in}");
2899  "fbrem_mAOD_endcaps",
2900  "ele brem franction for endcaps, mode of GSF components",
2901  100,
2902  0.,
2903  1.,
2904  "P_{in} - P_{out} / P_{in}");
2906  bookH1withSumw2(iBooker, "superclusterfbrem", "supercluster brem fraction", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2908  iBooker, "superclusterfbrem_barrel", "supercluster brem fraction for barrel", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2910  "superclusterfbrem_endcaps",
2911  "supercluster brem franction for endcaps",
2912  100,
2913  0.,
2914  1.,
2915  "1 - E_{ele} / E_{SC}");
2916  p1_ele_fbremVsEta_mode = bookP1(iBooker,
2917  "fbremvsEtamode",
2918  "mean ele brem fraction vs eta, mode of GSF components",
2919  eta2D_nbin,
2920  eta_min,
2921  eta_max,
2922  0.,
2923  1.,
2924  "#eta",
2925  "<P_{in} - P_{out} / P_{in}>");
2926  p1_ele_fbremVsEta_mean = bookP1(iBooker,
2927  "fbremvsEtamean",
2928  "mean ele brem fraction vs eta, mean of GSF components",
2929  eta2D_nbin,
2930  eta_min,
2931  eta_max,
2932  0.,
2933  1.,
2934  "#eta",
2935  "<P_{in} - P_{out} / P_{in}>");
2936  h1_ele_chargeInfo = bookH1withSumw2(iBooker, "chargeInfo", "chargeInfo", 5, -2., 3.);
2937 
2938  // e/g et pflow electrons
2939  h1_ele_mva = bookH1withSumw2(iBooker, "mva", "ele identification mva", 100, -1., 1.);
2940  h1_ele_mva_barrel = bookH1withSumw2(iBooker, "mva_barrel", "ele identification mva barrel", 100, -1., 1.);
2941  h1_ele_mva_endcaps = bookH1withSumw2(iBooker, "mva_endcaps", "ele identification mva endcaps", 100, -1., 1.);
2942  h1_ele_mva_isolated = bookH1withSumw2(iBooker, "mva_isolated", "ele identification mva isolated", 100, -1., 1.);
2944  bookH1withSumw2(iBooker, "mva_isolated_barrel", "ele identification mva isolated barrel", 100, -1., 1.);
2946  bookH1withSumw2(iBooker, "mva_isolated_endcaps", "ele identification mva isolated endcaps", 100, -1., 1.);
2947  h1_ele_provenance = bookH1withSumw2(iBooker, "provenance", "ele provenance", 5, -2., 3.);
2948  h1_ele_provenance_Extended = bookH1withSumw2(iBooker, "provenance_Extended", "ele provenance Extended", 5, -2., 3.);
2949  h1_ele_provenance_barrel = bookH1withSumw2(iBooker, "provenance_barrel", "ele provenance barrel", 5, -2., 3.);
2950  h1_ele_provenance_endcaps = bookH1withSumw2(iBooker, "provenance_endcaps", "ele provenance endcaps", 5, -2., 3.);
2951 
2952  // pflow isolation variables
2954  iBooker, "chargedHadronIso", "chargedHadronIso", 100, 0.0, 20., "chargedHadronIso", "Events", "ELE_LOGY E1 P");
2956  "chargedHadronIso_barrel",
2957  "chargedHadronIso for barrel",
2958  100,
2959  0.0,
2960  20.,
2961  "chargedHadronIso_barrel",
2962  "Events",
2963  "ELE_LOGY E1 P");
2965  "chargedHadronIso_endcaps",
2966  "chargedHadronIso for endcaps",
2967  100,
2968  0.0,
2969  20.,
2970  "chargedHadronIso_endcaps",
2971  "Events",
2972  "ELE_LOGY E1 P");
2974  iBooker, "neutralHadronIso", "neutralHadronIso", 21, 0.0, 20., "neutralHadronIso", "Events", "ELE_LOGY E1 P");
2976  "neutralHadronIso_barrel",
2977  "neutralHadronIso for barrel",
2978  21,
2979  0.0,
2980  20.,
2981  "neutralHadronIso_barrel",
2982  "Events",
2983  "ELE_LOGY E1 P");
2985  "neutralHadronIso_endcaps",
2986  "neutralHadronIso for endcaps",
2987  21,
2988  0.0,
2989  20.,
2990  "neutralHadronIso_endcaps",
2991  "Events",
2992  "ELE_LOGY E1 P");
2994  bookH1withSumw2(iBooker, "photonIso", "photonIso", 100, 0.0, 20., "photonIso", "Events", "ELE_LOGY E1 P");
2996  iBooker, "photonIso_barrel", "photonIso for barrel", 100, 0.0, 20., "photonIso_barrel", "Events", "ELE_LOGY E1 P");
2998  "photonIso_endcaps",
2999  "photonIso for endcaps",
3000  100,
3001  0.0,
3002  20.,
3003  "photonIso_endcaps",
3004  "Events",
3005  "ELE_LOGY E1 P");
3006  // -- pflow over pT
3008  "chargedHadronRelativeIso",
3009  "chargedHadronRelativeIso",
3010  100,
3011  0.0,
3012  2.,
3013  "chargedHadronRelativeIso",
3014  "Events",
3015  "ELE_LOGY E1 P");
3017  "chargedHadronRelativeIso_Extended",
3018  "chargedHadronRelativeIso_Extended",
3019  100,
3020  0.0,
3021  2.,
3022  "chargedHadronRelativeIso Extended, 2.5<|eta|<3",
3023  "Events",
3024  "ELE_LOGY E1 P");
3026  "chargedHadronRelativeIso_barrel",
3027  "chargedHadronRelativeIso for barrel",
3028  100,
3029  0.0,
3030  2.,
3031  "chargedHadronRelativeIso_barrel",
3032  "Events",
3033  "ELE_LOGY E1 P");
3035  "chargedHadronRelativeIso_endcaps",
3036  "chargedHadronRelativeIso for endcaps",
3037  100,
3038  0.0,
3039  2.,
3040  "chargedHadronRelativeIso_endcaps",
3041  "Events",
3042  "ELE_LOGY E1 P");
3044  "neutralHadronRelativeIso",
3045  "neutralHadronRelativeIso",
3046  100,
3047  0.0,
3048  2.,
3049  "neutralHadronRelativeIso",
3050  "Events",
3051  "ELE_LOGY E1 P");
3053  "neutralHadronRelativeIso_Extended",
3054  "neutralHadronRelativeIso_Extended",
3055  100,
3056  0.0,
3057  2.,
3058  "neutralHadronRelativeIso Extended, 2.5<|eta|<3",
3059  "Events",
3060  "ELE_LOGY E1 P");
3062  "neutralHadronRelativeIso_barrel",
3063  "neutralHadronRelativeIso for barrel",
3064  100,
3065  0.0,
3066  2.,
3067  "neutralHadronRelativeIso_barrel",
3068  "Events",
3069  "ELE_LOGY E1 P");
3071  "neutralHadronRelativeIso_endcaps",
3072  "neutralHadronRelativeIso for endcaps",
3073  100,
3074  0.0,
3075  2.,
3076  "neutralHadronRelativeIso_endcaps",
3077  "Events",
3078  "ELE_LOGY E1 P");
3080  iBooker, "photonRelativeIso", "photonRelativeIso", 100, 0.0, 2., "photonRelativeIso", "Events", "ELE_LOGY E1 P");
3082  "photonRelativeIso_Extended",
3083  "photonRelativeIso_Extended",
3084  100,
3085  0.0,
3086  2.,
3087  "photonRelativeIso Extended, 2.5<|eta|<3",
3088  "Events",
3089  "ELE_LOGY E1 P");
3091  "photonRelativeIso_barrel",
3092  "photonRelativeIso for barrel",
3093  100,
3094  0.0,
3095  2.,
3096  "photonRelativeIso_barrel",
3097  "Events",
3098  "ELE_LOGY E1 P");
3100  "photonRelativeIso_endcaps",
3101  "photonRelativeIso for endcaps",
3102  100,
3103  0.0,
3104  2.,
3105  "photonRelativeIso_endcaps",
3106  "Events",
3107  "ELE_LOGY E1 P");
3109  "chargedHadronRelativeIso_mAOD",
3110  "chargedHadronRelativeIso",
3111  100,
3112  0.0,
3113  2.,
3114  "chargedHadronRelativeIso",
3115  "Events",
3116  "ELE_LOGY E1 P");
3118  "chargedHadronRelativeIso_mAOD_barrel",
3119  "chargedHadronRelativeIso for barrel",
3120  100,
3121  0.0,
3122  2.,
3123  "chargedHadronRelativeIso_barrel",
3124  "Events",
3125  "ELE_LOGY E1 P");
3127  "chargedHadronRelativeIso_mAOD_endcaps",
3128  "chargedHadronRelativeIso for endcaps",
3129  100,
3130  0.0,
3131  2.,
3132  "chargedHadronRelativeIso_endcaps",
3133  "Events",
3134  "ELE_LOGY E1 P");
3136  "neutralHadronRelativeIso_mAOD",
3137  "neutralHadronRelativeIso",
3138  100,
3139  0.0,
3140  2.,
3141  "neutralHadronRelativeIso",
3142  "Events",
3143  "ELE_LOGY E1 P");
3145  "neutralHadronRelativeIso_mAOD_barrel",
3146  "neutralHadronRelativeIso for barrel",
3147  100,
3148  0.0,
3149  2.,
3150  "neutralHadronRelativeIso_barrel",
3151  "Events",
3152  "ELE_LOGY E1 P");
3154  "neutralHadronRelativeIso_mAOD_endcaps",
3155  "neutralHadronRelativeIso for endcaps",
3156  100,
3157  0.0,
3158  2.,
3159  "neutralHadronRelativeIso_endcaps",
3160  "Events",
3161  "ELE_LOGY E1 P");
3163  "photonRelativeIso_mAOD",
3164  "photonRelativeIso",
3165  100,
3166  0.0,
3167  2.,
3168  "photonRelativeIso",
3169  "Events",
3170  "ELE_LOGY E1 P");
3172  "photonRelativeIso_mAOD_barrel",
3173  "photonRelativeIso for barrel",
3174  100,
3175  0.0,
3176  2.,
3177  "photonRelativeIso_barrel",
3178  "Events",
3179  "ELE_LOGY E1 P");
3181  "photonRelativeIso_mAOD_endcaps",
3182  "photonRelativeIso for endcaps",
3183  100,
3184  0.0,
3185  2.,
3186  "photonRelativeIso_endcaps",
3187  "Events",
3188  "ELE_LOGY E1 P");
3189 
3190  // conversion rejection information
3191  h1_ele_convFlags = bookH1withSumw2(iBooker, "convFlags", "conversion rejection flag", 5, -1.5, 3.5);
3193  bookH1withSumw2(iBooker, "convFlags_all", "conversion rejection flag, all electrons", 5, -1.5, 3.5);
3194  h1_ele_convDist = bookH1withSumw2(iBooker, "convDist", "distance to the conversion partner", 100, -15., 15.);
3196  bookH1withSumw2(iBooker, "convDist_all", "distance to the conversion partner, all electrons", 100, -15., 15.);
3198  iBooker, "convDcot", "difference of cot(angle) with the conversion partner", 100, -CLHEP::pi / 2., CLHEP::pi / 2.);
3200  "convDcot_all",
3201  "difference of cot(angle) with the conversion partner, all electrons",
3202  100,
3203  -CLHEP::pi / 2.,
3204  CLHEP::pi / 2.);
3205  h1_ele_convRadius = bookH1withSumw2(iBooker, "convRadius", "signed conversion radius", 100, 0., 130.);
3207  bookH1withSumw2(iBooker, "convRadius_all", "signed conversion radius, all electrons", 100, 0., 130.);
3208 }
3209 
3211 
3213  // get collections
3214  auto gsfElectrons = iEvent.getHandle(electronCollection_);
3215  auto gsfElectronsEndcaps = iEvent.getHandle(electronCollectionEndcaps_);
3216  auto gsfElectronCores = iEvent.getHandle(electronCoreCollection_);
3217  auto gsfElectronTracks = iEvent.getHandle(electronTrackCollection_);
3218  auto gsfElectronSeeds = iEvent.getHandle(electronSeedCollection_);
3219  auto genParticles = iEvent.getHandle(mcTruthCollection_);
3220  auto theBeamSpot = iEvent.getHandle(beamSpotTag_);
3221 
3222  auto isoFromDepsTk03Handle = iEvent.getHandle(isoFromDepsTk03Tag_);
3223  auto isoFromDepsTk04Handle = iEvent.getHandle(isoFromDepsTk04Tag_);
3224  auto isoFromDepsEcalFull03Handle = iEvent.getHandle(isoFromDepsEcalFull03Tag_);
3225  auto isoFromDepsEcalFull04Handle = iEvent.getHandle(isoFromDepsEcalFull04Tag_);
3226  auto isoFromDepsEcalReduced03Handle = iEvent.getHandle(isoFromDepsEcalReduced03Tag_);
3227  auto isoFromDepsEcalReduced04Handle = iEvent.getHandle(isoFromDepsEcalReduced04Tag_);
3228  auto isoFromDepsHcal03Handle = iEvent.getHandle(isoFromDepsHcal03Tag_);
3229  auto isoFromDepsHcal04Handle = iEvent.getHandle(isoFromDepsHcal04Tag_);
3230  auto vertexCollectionHandle = iEvent.getHandle(offlineVerticesCollection_);
3231  if (!vertexCollectionHandle.isValid()) {
3232  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle KO";
3233  } else {
3234  edm::LogInfo("ElectronMcSignalValidator::analyze") << "vertexCollectionHandle OK";
3235  }
3236 
3237  edm::LogInfo("ElectronMcSignalValidator::analyze")
3238  << "Treating event " << iEvent.id() << " with " << gsfElectrons.product()->size() << " electrons";
3239  edm::LogInfo("ElectronMcSignalValidator::analyze")
3240  << "Treating event " << iEvent.id() << " with " << gsfElectronsEndcaps.product()->size() << " electrons";
3241 
3242  h1_recEleNum->Fill((*gsfElectrons).size());
3243  h1_recCoreNum->Fill((*gsfElectronCores).size());
3244  h1_recTrackNum->Fill((*gsfElectronTracks).size());
3245  h1_recSeedNum->Fill((*gsfElectronSeeds).size());
3246  h1_recOfflineVertices->Fill((*vertexCollectionHandle).size());
3247 
3248  reco::GsfElectronCollection::const_iterator gsfIter;
3249  std::vector<reco::GsfElectron>::const_iterator gsfIter3;
3250  std::vector<reco::GsfElectron>::const_iterator gsfIter4;
3251 
3252  //===============================================
3253  // get a vector with EB & EE
3254  //===============================================
3255  std::vector<reco::GsfElectron> localCollection;
3256  int iBarrels = 0;
3257  int iEndcaps = 0;
3258 
3259  // looking for EB
3260  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
3261  if (gsfIter->isEB()) {
3262  localCollection.push_back(*gsfIter);
3263  iBarrels += 1;
3264  }
3265  }
3266 
3267  // looking for EE
3268  for (gsfIter = gsfElectronsEndcaps->begin(); gsfIter != gsfElectronsEndcaps->end(); gsfIter++) {
3269  if (gsfIter->isEE()) {
3270  localCollection.push_back(*gsfIter);
3271  iEndcaps += 1;
3272  }
3273  }
3274 
3275  //===============================================
3276  // all rec electrons
3277  //===============================================
3278 
3279  // mee only
3280  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3281  float enrj1 = gsfIter3->ecalEnergy();
3282 
3283  for (gsfIter4 = gsfIter3 + 1; gsfIter4 != localCollection.end(); gsfIter4++) {
3284  math::XYZTLorentzVector p12 = (*gsfIter3).p4() + (*gsfIter4).p4();
3285  float mee2 = p12.Dot(p12);
3286  float enrj2 = gsfIter4->ecalEnergy();
3287  h1_ele_mee_all->Fill(sqrt(mee2));
3288  h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1);
3289  if (gsfIter3->ecalDrivenSeed() && gsfIter4->ecalDrivenSeed()) {
3290  h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1);
3291  }
3292  if (gsfIter3->charge() * gsfIter4->charge() < 0.) {
3293  h1_ele_mee_os->Fill(sqrt(mee2));
3294  if (gsfIter3->isEB() && gsfIter4->isEB()) {
3295  h1_ele_mee_os_ebeb->Fill(sqrt(mee2));
3296  }
3297  if ((gsfIter3->isEB() && gsfIter4->isEE()) || (gsfIter3->isEE() && gsfIter4->isEB()))
3298  h1_ele_mee_os_ebee->Fill(sqrt(mee2));
3299  if (gsfIter3->isEE() && gsfIter4->isEE()) {
3300  h1_ele_mee_os_eeee->Fill(sqrt(mee2));
3301  }
3302  if ((gsfIter3->classification() == GsfElectron::GOLDEN && gsfIter4->classification() == GsfElectron::GOLDEN) ||
3303  (gsfIter3->classification() == GsfElectron::GOLDEN && gsfIter4->classification() == GsfElectron::BIGBREM) ||
3304  (gsfIter3->classification() == GsfElectron::BIGBREM && gsfIter4->classification() == GsfElectron::GOLDEN) ||
3305  (gsfIter3->classification() == GsfElectron::BIGBREM &&
3306  gsfIter4->classification() == GsfElectron::BIGBREM)) {
3307  h1_ele_mee_os_gg->Fill(sqrt(mee2));
3308  } else if ((gsfIter3->classification() == GsfElectron::SHOWERING &&
3309  gsfIter4->classification() == GsfElectron::SHOWERING) ||
3310  (gsfIter3->classification() == GsfElectron::SHOWERING && gsfIter4->isGap()) ||
3311  (gsfIter3->isGap() && gsfIter4->classification() == GsfElectron::SHOWERING) ||
3312  (gsfIter3->isGap() && gsfIter4->isGap())) {
3313  h1_ele_mee_os_bb->Fill(sqrt(mee2));
3314  } else {
3315  h1_ele_mee_os_gb->Fill(sqrt(mee2));
3316  }
3317  }
3318  }
3319  }
3320 
3321  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3322  // preselect electrons
3323  if (gsfIter3->pt() > maxPt_ || std::abs(gsfIter3->eta()) > maxAbsEta_)
3324  continue;
3325 
3326  h1_ele_EoverP_all->Fill(gsfIter3->eSuperClusterOverP());
3327  h1_ele_EseedOP_all->Fill(gsfIter3->eSeedClusterOverP());
3328  h1_ele_EoPout_all->Fill(gsfIter3->eSeedClusterOverPout());
3329  h1_ele_EeleOPout_all->Fill(gsfIter3->eEleClusterOverPout());
3330  h1_ele_dEtaSc_propVtx_all->Fill(gsfIter3->deltaEtaSuperClusterTrackAtVtx());
3331  h1_ele_dPhiSc_propVtx_all->Fill(gsfIter3->deltaPhiSuperClusterTrackAtVtx());
3332  h1_ele_dEtaCl_propOut_all->Fill(gsfIter3->deltaEtaSeedClusterTrackAtCalo());
3333  h1_ele_dPhiCl_propOut_all->Fill(gsfIter3->deltaPhiSeedClusterTrackAtCalo());
3334  h1_ele_HoE_all->Fill(gsfIter3->hcalOverEcal());
3335  h1_ele_HoE_bc_all->Fill(gsfIter3->hcalOverEcalBc());
3336  h1_ele_TIP_all->Fill(EleRelPoint(gsfIter3->vertex(), theBeamSpot->position()).perp());
3337  h1_ele_vertexEta_all->Fill(gsfIter3->eta());
3338  h1_ele_vertexPt_all->Fill(gsfIter3->pt());
3339  h1_ele_Et_all->Fill(gsfIter3->ecalEnergy() / cosh(gsfIter3->superCluster()->eta()));
3340 
3341  // conversion rejection
3342  int flags = gsfIter3->convFlags();
3343  if (flags == -9999) {
3344  flags = -1;
3345  }
3347  if (flags >= 0.) {
3348  h1_ele_convDist_all->Fill(gsfIter3->convDist());
3349  h1_ele_convDcot_all->Fill(gsfIter3->convDcot());
3350  h1_ele_convRadius_all->Fill(gsfIter3->convRadius());
3351  }
3352  }
3353 
3354  //===============================================
3355  // charge mis-ID
3356  //===============================================
3357 
3358  int mcNum = 0, gamNum = 0, eleNum = 0;
3359  bool matchingID, matchingMotherID;
3360 
3361  reco::GenParticleCollection::const_iterator mcIter;
3362  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3363  // select requested matching gen particle
3364  matchingID = false;
3365  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3366  if (mcIter->pdgId() == matchingIDs_[i]) {
3367  matchingID = true;
3368  }
3369  }
3370  if (matchingID) {
3371  // select requested mother matching gen particle
3372  // always include single particle with no mother
3373  const Candidate *mother = mcIter->mother();
3374  matchingMotherID = false;
3375  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3376  if (mother == nullptr) {
3377  matchingMotherID = true;
3378  } else if (mother->pdgId() == matchingMotherIDs_[i]) {
3379  if (mother->numberOfDaughters() <= 2) {
3380  matchingMotherID = true;
3381  }
3382  } // end of mother if test
3383  }
3384  if (matchingMotherID) {
3385  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) {
3386  continue;
3387  }
3388 
3389  // looking for the best matching gsf electron
3390  bool okGsfFound = false;
3391  double gsfOkRatio = 999999.;
3392 
3393  // find best matched electron
3394  reco::GsfElectron bestGsfElectron;
3395  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3396  double dphi = gsfIter3->phi() - mcIter->phi();
3397  if (std::abs(dphi) > CLHEP::pi) {
3398  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3399  }
3400  double deltaR2 = (gsfIter3->eta() - mcIter->eta()) * (gsfIter3->eta() - mcIter->eta()) + dphi * dphi;
3401  if (deltaR2 < deltaR2_) {
3402  double mc_charge = mcIter->pdgId() == 11 ? -1. : 1.;
3403  h1_ele_ChargeMnChargeTrue->Fill(std::abs(gsfIter3->charge() - mc_charge));
3404  // require here a charge mismatch
3405  if (((mcIter->pdgId() == 11) && (gsfIter3->charge() > 0.)) ||
3406  ((mcIter->pdgId() == -11) && (gsfIter3->charge() < 0.))) {
3407  double tmpGsfRatio = gsfIter3->p() / mcIter->p();
3408  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3409  gsfOkRatio = tmpGsfRatio;
3410  bestGsfElectron = *gsfIter3;
3411  okGsfFound = true;
3412  }
3413  }
3414  }
3415  } // loop over rec ele to look for the best one
3416 
3417  // analysis when the mc track is found
3418  if (okGsfFound) { // && (std::abs(mcIter->eta())<maxAbsEta_)
3419  // generated distributions for matched electrons
3420  h1_mc_Pt_matched_qmisid->Fill(mcIter->pt());
3421  h1_mc_Phi_matched_qmisid->Fill(mcIter->phi());
3422  h1_mc_AbsEta_matched_qmisid->Fill(std::abs(mcIter->eta()));
3423  h1_mc_Eta_matched_qmisid->Fill(mcIter->eta());
3424  h1_mc_Z_matched_qmisid->Fill(mcIter->vz());
3425  }
3426  }
3427  }
3428  }
3429 
3430  //===============================================
3431  // association mc-reco
3432  //===============================================
3433 
3434  for (mcIter = genParticles->begin(); mcIter != genParticles->end(); mcIter++) {
3435  // number of mc particles
3436  mcNum++;
3437 
3438  // counts photons
3439  if (mcIter->pdgId() == 22) {
3440  gamNum++;
3441  }
3442 
3443  // select requested matching gen particle
3444  matchingID = false;
3445  for (unsigned int i = 0; i < matchingIDs_.size(); i++) {
3446  if (mcIter->pdgId() == matchingIDs_[i]) {
3447  matchingID = true;
3448  }
3449  }
3450  if (!matchingID)
3451  continue;
3452 
3453  // select requested mother matching gen particle
3454  // always include single particle with no mother
3455  const Candidate *mother = mcIter->mother();
3456  matchingMotherID = false;
3457  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) {
3458  if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i])) {
3459  matchingMotherID = true;
3460  }
3461  }
3462  if (!matchingMotherID)
3463  continue;
3464 
3465  // electron preselection
3466  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEtaExtended_) {
3467  continue;
3468  }
3469 
3470  eleNum++;
3471  if (std::abs(mcIter->eta()) < maxAbsEta_) {
3472  h1_mc_Eta->Fill(mcIter->eta());
3473  h1_mc_AbsEta->Fill(std::abs(mcIter->eta()));
3474  h1_mc_P->Fill(mcIter->p());
3475  h1_mc_Pt->Fill(mcIter->pt());
3476  h1_mc_Phi->Fill(mcIter->phi());
3477  h1_mc_Z->Fill(mcIter->vz());
3478  h2_mc_PtEta->Fill(mcIter->eta(), mcIter->pt());
3479  }
3480  if (std::abs(mcIter->eta()) < maxAbsEtaExtended_) {
3481  h1_mc_Eta_Extended->Fill(mcIter->eta());
3482  h1_mc_AbsEta_Extended->Fill(std::abs(mcIter->eta()));
3483  }
3484 
3485  // find best matched electron
3486  bool okGsfFound = false;
3487  bool passMiniAODSelection = true;
3488  double gsfOkRatio = 999999.;
3489  bool isEBflag = false;
3490  bool isEEflag = false;
3491  bool isEEextendedflag = false;
3492 
3493  reco::GsfElectron bestGsfElectron;
3494  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
3495  // temporary cut for pt < 5.
3496  double dphi = gsfIter3->phi() - mcIter->phi();
3497  if (std::abs(dphi) > CLHEP::pi) {
3498  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3499  }
3500  double deltaR2 = (gsfIter3->eta() - mcIter->eta()) * (gsfIter3->eta() - mcIter->eta()) + dphi * dphi;
3501  if (deltaR2 < deltaR2_) {
3502  if (((mcIter->pdgId() == 11) && (gsfIter3->charge() < 0.)) ||
3503  ((mcIter->pdgId() == -11) && (gsfIter3->charge() > 0.))) {
3504  double tmpGsfRatio = gsfIter3->p() / mcIter->p();
3505  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3506  gsfOkRatio = tmpGsfRatio;
3507  bestGsfElectron = *gsfIter3;
3508  okGsfFound = true;
3509  }
3510  }
3511  }
3512  } // loop over rec ele to look for the best one
3513 
3514  if (!okGsfFound)
3515  continue;
3516 
3517  //------------------------------------
3518  // analysis when the mc track is found
3519  //------------------------------------
3520  passMiniAODSelection = bestGsfElectron.pt() >= 5.;
3521  isEBflag = bestGsfElectron.isEB();
3522  isEEflag = bestGsfElectron.isEE() && (std::abs(mcIter->eta()) < maxAbsEta_);
3523  isEEextendedflag = bestGsfElectron.isEE();
3524 
3525  float Etot = 0.;
3526  CaloCluster_iterator it = bestGsfElectron.superCluster()->clustersBegin();
3527  CaloCluster_iterator itend = bestGsfElectron.superCluster()->clustersEnd();
3528  for (; it != itend; ++it) {
3529  Etot += (*it)->energy();
3530  }
3531 
3532  if (isEEextendedflag) { // Extended flag
3533  if (!isEEflag) {
3534  h1_mc_Eta_Extended_matched->Fill(mcIter->eta());
3535  h1_mc_AbsEta_matched->Fill(std::abs(mcIter->eta()));
3536  h1_mc_AbsEta_Extended_matched->Fill(std::abs(mcIter->eta()));
3537  h2_ele_EoPVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3538  h1_scl_bcl_EtotoEtrue_Extended->Fill(Etot / mcIter->p()); //
3539  h1_scl_EoEtrue_endcaps_new_Extended->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3543  h1_ele_HoE_Extended->Fill(bestGsfElectron.hcalOverEcal());
3545  bestGsfElectron.pt());
3547  bestGsfElectron.pt());
3549  bestGsfElectron.pt());
3550  h2_scl_EoEtrueVsrecOfflineVertices_Extended->Fill((*vertexCollectionHandle).size(),
3551  bestGsfElectron.ecalEnergy() / mcIter->p());
3552  h2_ele_PoPtrueVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3553 
3554  double fbrem_mode = bestGsfElectron.fbrem();
3555  h1_ele_fbrem_Extended->Fill(fbrem_mode);
3556  if (!readAOD_) {
3557  if (bestGsfElectron.ecalDrivenSeed())
3559  if (bestGsfElectron.trackerDrivenSeed()) {
3561  }
3562  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) {
3564  }
3565  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) {
3567  }
3568  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) {
3570  }
3571  }
3572  }
3573 
3574  if (!readAOD_) {
3575  h2_ele_foundHitsVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3576 
3577  edm::RefToBase<TrajectorySeed> seed_Ext = bestGsfElectron.gsfTrack()->extra()->seedRef();
3578  ElectronSeedRef elseed_Ext = seed_Ext.castTo<ElectronSeedRef>();
3579  if (elseed_Ext->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
3580  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed_Ext->dPhiNeg(1));
3581  }
3582  if (elseed_Ext->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
3583  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed_Ext->dRZNeg(1));
3584  }
3585  }
3586  } // end of Extended flag
3587 
3588  if (!isEBflag && !isEEflag)
3589  continue;
3590 
3591  // electron related distributions
3592  h1_ele_charge->Fill(bestGsfElectron.charge());
3593  h2_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge());
3594  h2_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge());
3595  h2_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge());
3596  h1_ele_vertexP->Fill(bestGsfElectron.p());
3597  h1_ele_vertexPt->Fill(bestGsfElectron.pt());
3598  if (bestGsfElectron.scSigmaIEtaIEta() == 0.)
3599  h1_ele_vertexPt_nocut->Fill(bestGsfElectron.pt());
3600  h1_ele_Et->Fill(bestGsfElectron.ecalEnergy() / cosh(bestGsfElectron.superCluster()->eta()));
3601  h2_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt());
3602  h2_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt());
3603  h1_ele_vertexEta->Fill(bestGsfElectron.eta());
3604 
3605  h2_scl_EoEtrueVsrecOfflineVertices->Fill((*vertexCollectionHandle).size(),
3606  bestGsfElectron.ecalEnergy() / mcIter->p());
3607  h2_scl_EoEtrueVsrecOfflineVertices_Extended->Fill((*vertexCollectionHandle).size(),
3608  bestGsfElectron.ecalEnergy() / mcIter->p());
3609  if (isEBflag)
3610  h2_scl_EoEtrueVsrecOfflineVertices_barrel->Fill((*vertexCollectionHandle).size(),
3611  bestGsfElectron.ecalEnergy() / mcIter->p());
3612  else if (isEEflag)
3613  h2_scl_EoEtrueVsrecOfflineVertices_endcaps->Fill((*vertexCollectionHandle).size(),
3614  bestGsfElectron.ecalEnergy() / mcIter->p());
3615 
3616  // generated distributions for matched electrons
3617  h1_mc_Pt_matched->Fill(mcIter->pt());
3618  h1_mc_Phi_matched->Fill(mcIter->phi());
3619  h1_mc_AbsEta_matched->Fill(std::abs(mcIter->eta()));
3620  h1_mc_AbsEta_Extended_matched->Fill(std::abs(mcIter->eta()));
3621  h1_mc_Eta_matched->Fill(mcIter->eta());
3622  h1_mc_Eta_Extended_matched->Fill(mcIter->eta());
3623  h2_mc_PtEta_matched->Fill(mcIter->eta(), mcIter->pt());
3624  h2_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta());
3625  h1_ele_vertexPhi->Fill(bestGsfElectron.phi());
3626  h1_ele_vertexX->Fill(bestGsfElectron.vertex().x());
3627  h1_ele_vertexY->Fill(bestGsfElectron.vertex().y());
3628  h1_ele_vertexZ->Fill(bestGsfElectron.vertex().z());
3629  h1_mc_Z_matched->Fill(mcIter->vz());
3630  double d = (bestGsfElectron.vertex().x() - mcIter->vx()) * (bestGsfElectron.vertex().x() - mcIter->vx()) +
3631  (bestGsfElectron.vertex().y() - mcIter->vy()) * (bestGsfElectron.vertex().y() - mcIter->vy());
3632  d = sqrt(d);
3634  h2_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d);
3635  h2_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d);
3636  h2_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d);
3637  h1_ele_EtaMnEtaTrue->Fill(bestGsfElectron.eta() - mcIter->eta());
3638  h2_ele_EtaMnEtaTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - mcIter->eta());
3639  h2_ele_EtaMnEtaTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - mcIter->eta());
3640  h2_ele_EtaMnEtaTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - mcIter->eta());
3641  h1_ele_PhiMnPhiTrue->Fill(bestGsfElectron.phi() - mcIter->phi());
3642  h1_ele_PhiMnPhiTrue2->Fill(bestGsfElectron.phi() - mcIter->phi());
3643  h2_ele_PhiMnPhiTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - mcIter->phi());
3644  h2_ele_PhiMnPhiTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - mcIter->phi());
3645  h2_ele_PhiMnPhiTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - mcIter->phi());
3646  h1_ele_PoPtrue->Fill(bestGsfElectron.p() / mcIter->p());
3647  h1_ele_PtoPttrue->Fill(bestGsfElectron.pt() / mcIter->pt());
3648  h2_ele_PoPtrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3649  h2_ele_PoPtrueVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3650  h2_ele_PoPtrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / mcIter->p());
3651  h2_ele_PoPtrueVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / mcIter->p());
3652  h2_ele_sigmaIetaIetaVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.scSigmaIEtaIEta());
3654  h1_ele_combinedP4Error->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3655  if (isEBflag) {
3656  h1_ele_EtaMnEtaTrue_barrel->Fill(bestGsfElectron.eta() - mcIter->eta());
3657  h1_ele_PhiMnPhiTrue_barrel->Fill(bestGsfElectron.phi() - mcIter->phi());
3658  h1_ele_PoPtrue_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3659  h1_ele_PtoPttrue_barrel->Fill(bestGsfElectron.pt() / mcIter->pt());
3661  h1_ele_combinedP4Error_barrel->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3662  } else if (isEEflag) {
3663  h1_ele_EtaMnEtaTrue_endcaps->Fill(bestGsfElectron.eta() - mcIter->eta());
3664  h1_ele_PhiMnPhiTrue_endcaps->Fill(bestGsfElectron.phi() - mcIter->phi());
3665  h1_ele_PoPtrue_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3666  h1_ele_PtoPttrue_endcaps->Fill(bestGsfElectron.pt() / mcIter->pt());
3668  h1_ele_combinedP4Error_endcaps->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
3669  }
3670 
3671  if (isEBflag && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3672  h1_ele_PoPtrue_golden_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3673  if (isEEflag && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3674  h1_ele_PoPtrue_golden_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3675  if (isEBflag && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3676  h1_ele_PoPtrue_showering_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3677  if (isEEflag && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3678  h1_ele_PoPtrue_showering_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3679 
3680  // supercluster related distributions
3681  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
3682 
3683  h1_scl_En->Fill(bestGsfElectron.ecalEnergy());
3684  if (isEBflag) {
3685  h1_scl_EoEtrue_barrel->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3686  h1_scl_EoEtrue_barrel_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3687  } else if (isEEflag) {
3688  h1_scl_EoEtrue_endcaps->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3689  h1_scl_EoEtrue_endcaps_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3690  }
3691  if (isEBflag && bestGsfElectron.isEBEtaGap())
3692  h1_scl_EoEtrue_barrel_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3693  if (isEBflag && bestGsfElectron.isEBPhiGap())
3694  h1_scl_EoEtrue_barrel_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3695  if (bestGsfElectron.isEBEEGap())
3696  h1_scl_EoEtrue_ebeegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3697  if (isEEflag && bestGsfElectron.isEEDeeGap())
3698  h1_scl_EoEtrue_endcaps_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3699  if (isEEflag && bestGsfElectron.isEERingGap())
3700  h1_scl_EoEtrue_endcaps_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3701  if (isEBflag && bestGsfElectron.isEBEtaGap())
3702  h1_scl_EoEtrue_barrel_new_etagap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3703  if (isEBflag && bestGsfElectron.isEBPhiGap())
3704  h1_scl_EoEtrue_barrel_new_phigap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3705  if (bestGsfElectron.isEBEEGap())
3706  h1_scl_EoEtrue_ebeegap_new->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3707  if (isEEflag && bestGsfElectron.isEEDeeGap())
3708  h1_scl_EoEtrue_endcaps_new_deegap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3709  if (isEEflag && bestGsfElectron.isEERingGap())
3710  h1_scl_EoEtrue_endcaps_new_ringgap->Fill(bestGsfElectron.ecalEnergy() / mcIter->p());
3711 
3712  double R = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
3713  double Rt = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
3714  h1_scl_Et->Fill(sclRef->energy() * (Rt / R));
3715  h2_scl_EtVsEta->Fill(sclRef->eta(), sclRef->energy() * (Rt / R));
3716  h2_scl_EtVsPhi->Fill(sclRef->phi(), sclRef->energy() * (Rt / R));
3717  h1_scl_Eta->Fill(sclRef->eta());
3718  h2_scl_EtaVsPhi->Fill(sclRef->phi(), sclRef->eta());
3719  h1_scl_Phi->Fill(sclRef->phi());
3720  h1_scl_SigEtaEta->Fill(bestGsfElectron.scSigmaEtaEta());
3721  h1_scl_SigIEtaIEta->Fill(bestGsfElectron.scSigmaIEtaIEta());
3723  h1_scl_E1x5->Fill(bestGsfElectron.scE1x5());
3724  h1_scl_E2x5max->Fill(bestGsfElectron.scE2x5Max());
3725  h1_scl_E5x5->Fill(bestGsfElectron.scE5x5());
3726  if (isEBflag) {
3727  h1_scl_SigEtaEta_barrel->Fill(bestGsfElectron.scSigmaEtaEta());
3728  h1_scl_SigIEtaIEta_barrel->Fill(bestGsfElectron.scSigmaIEtaIEta());
3730  h1_scl_E1x5_barrel->Fill(bestGsfElectron.scE1x5());
3731  h1_scl_E2x5max_barrel->Fill(bestGsfElectron.scE2x5Max());
3732  h1_scl_E5x5_barrel->Fill(bestGsfElectron.scE5x5());
3733  } else if (isEEflag) {
3734  h1_scl_SigEtaEta_endcaps->Fill(bestGsfElectron.scSigmaEtaEta());
3735  h1_scl_SigIEtaIEta_endcaps->Fill(bestGsfElectron.scSigmaIEtaIEta());
3737  h1_scl_E1x5_endcaps->Fill(bestGsfElectron.scE1x5());
3738  h1_scl_E2x5max_endcaps->Fill(bestGsfElectron.scE2x5Max());
3739  h1_scl_E5x5_endcaps->Fill(bestGsfElectron.scE5x5());
3740  }
3741 
3742  if (passMiniAODSelection) { // Pt > 5.
3743  h1_scl_SigIEtaIEta_mAOD->Fill(bestGsfElectron.scSigmaIEtaIEta());
3744  if (isEBflag)
3746  else if (isEEflag)
3748  }
3749 
3750  float pfEnergy = 0.;
3751  if (!bestGsfElectron.parentSuperCluster().isNull())
3752  pfEnergy = bestGsfElectron.parentSuperCluster()->energy();
3753  h2_scl_EoEtruePfVsEg->Fill(bestGsfElectron.ecalEnergy() / mcIter->p(), pfEnergy / mcIter->p());
3754  if (isEEflag)
3755  h1_scl_ESFrac_endcaps->Fill(sclRef->preshowerEnergy() / sclRef->rawEnergy());
3756 
3757  h1_scl_bcl_EtotoEtrue->Fill(Etot / mcIter->p());
3758  if (isEBflag)
3759  h1_scl_bcl_EtotoEtrue_barrel->Fill(Etot / mcIter->p());
3760  else if (isEEflag)
3761  h1_scl_bcl_EtotoEtrue_endcaps->Fill(Etot / mcIter->p());
3762 
3763  // track related distributions
3765  h2_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize());
3766  h2_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize());
3767  h2_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize());
3768  if (!readAOD_) // track extra does not exist in AOD
3769  {
3770  h1_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3771  h2_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3772  h2_ele_foundHitsVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3773  h2_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3774  h2_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3775  h1_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3776  h2_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3777  h2_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3778  h2_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3779  h1_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3780  h2_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2());
3781  h2_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2());
3782  h2_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2());
3783  if (isEBflag) {
3784  h1_ele_foundHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3785  h1_ele_lostHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3786  h1_ele_chi2_barrel->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3787  } else if (isEEflag) {
3788  h1_ele_foundHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3789  h1_ele_lostHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3790  h1_ele_chi2_endcaps->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3791  }
3792 
3793  if (passMiniAODSelection) { // Pt > 5.
3794  h2_ele_foundHitsVsEta_mAOD->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3795  }
3796  }
3797  // from gsf track interface, hence using mean
3798  if (!readAOD_) // track extra does not exist in AOD
3799  {
3800  h1_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() -
3801  bestGsfElectron.gsfTrack()->outerMomentum().R());
3802  h1_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R());
3803  h1_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho());
3804  }
3805  // from electron interface, hence using mode
3806  h1_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3807  h2_ele_PinMnPoutVsEta_mode->Fill(bestGsfElectron.eta(),
3808  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3809  h2_ele_PinMnPoutVsPhi_mode->Fill(bestGsfElectron.phi(),
3810  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3811  h2_ele_PinMnPoutVsPt_mode->Fill(bestGsfElectron.pt(),
3812  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3813  h2_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(),
3814  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3815  if (!readAOD_) // track extra does not exist in AOD
3816  {
3818  bestGsfElectron.gsfTrack()->normalizedChi2(),
3819  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3820  }
3821  h1_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R());
3822  h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R());
3823  h1_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho());
3824  h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho());
3825  h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho());
3826  h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho());
3827 
3828  if (!readAOD_) // track extra does not exist in AOD
3829  {
3830  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
3831  ElectronSeedRef elseed = seed.castTo<ElectronSeedRef>();
3832  h1_ele_seed_subdet2->Fill(elseed->subDet(1));
3833  h1_ele_seed_mask->Fill(elseed->hitsMask());
3834  if (elseed->subDet(1) == 1) {
3835  h1_ele_seed_mask_bpix->Fill(elseed->hitsMask());
3836  } else if (elseed->subDet(1) == 2) {
3837  h1_ele_seed_mask_fpix->Fill(elseed->hitsMask());
3838  } else if (elseed->subDet(1) == 6) {
3839  h1_ele_seed_mask_tec->Fill(elseed->hitsMask());
3840  }
3841 
3842  if (elseed->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
3843  h1_ele_seed_dphi2->Fill(elseed->dPhiNeg(1));
3844  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1));
3845  h2_ele_seed_dphi2VsPt->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1));
3846  }
3847  if (elseed->dPhiPos(1) != std::numeric_limits<float>::infinity()) {
3848  h1_ele_seed_dphi2pos->Fill(elseed->dPhiPos(1));
3849  h2_ele_seed_dphi2posVsEta->Fill(bestGsfElectron.eta(), elseed->dPhiPos(1));
3850  h2_ele_seed_dphi2posVsPt->Fill(bestGsfElectron.pt(), elseed->dPhiPos(1));
3851  }
3852  if (elseed->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
3853  h1_ele_seed_drz2->Fill(elseed->dRZNeg(1));
3854  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1));
3855  h2_ele_seed_drz2VsPt->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1));
3856  }
3857  if (elseed->dRZPos(1) != std::numeric_limits<float>::infinity()) {
3858  h1_ele_seed_drz2pos->Fill(elseed->dRZPos(1));
3859  h2_ele_seed_drz2posVsEta->Fill(bestGsfElectron.eta(), elseed->dRZPos(1));
3860  h2_ele_seed_drz2posVsPt->Fill(bestGsfElectron.pt(), elseed->dRZPos(1));
3861  }
3862  }
3863 
3864  // match distributions
3865  h1_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP());
3866  h2_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3867  h2_ele_EoPVsEta_Extended->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3868  h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP());
3869  h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP());
3870  h1_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP());
3871  h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP());
3872  h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP());
3873  h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP());
3874  h1_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout());
3875  h2_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout());
3876  h2_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout());
3877  h2_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout());
3878  h1_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout());
3879  h2_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout());
3880  h2_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout());
3881  h2_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout());
3883  h2_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3884  h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3885  h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3887  h2_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3888  h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3889  h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3891  h2_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3892  h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3893  h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3895  h2_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3896  h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3897  h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3899  h2_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3900  h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3901  h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3903  h2_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3904  h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3905  h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3906  h1_ele_HoE->Fill(bestGsfElectron.hcalOverEcal());
3907  h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
3908  if (isEBflag) {
3909  h1_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
3910  h1_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
3911  h1_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
3912  h1_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
3919  h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
3920  h1_ele_HoE_barrel->Fill(bestGsfElectron.hcalOverEcal());
3921  } else if (isEEflag) {
3922  h1_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
3923  h1_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
3924  h1_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
3932  h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
3933  h1_ele_HoE_endcaps->Fill(bestGsfElectron.hcalOverEcal());
3934  }
3935 
3936  if (passMiniAODSelection) { // Pt > 5.
3939  h1_ele_HoE_mAOD->Fill(bestGsfElectron.hcalOverEcal());
3940  if (isEBflag) {
3943  h1_ele_HoE_mAOD_barrel->Fill(bestGsfElectron.hcalOverEcal());
3944  } else if (isEEflag) {
3947  h1_ele_HoE_mAOD_endcaps->Fill(bestGsfElectron.hcalOverEcal());
3948  }
3949  }
3950 
3951  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() &&
3952  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap())
3953  h1_ele_HoE_fiducial->Fill(bestGsfElectron.hcalOverEcal());
3954  h2_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hcalOverEcal());
3955  h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hcalOverEcal());
3956  h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hcalOverEcal());
3957 
3958  //classes
3959  int eleClass = bestGsfElectron.classification();
3960  if (isEEflag)
3961  eleClass += 10;
3962  h1_ele_classes->Fill(eleClass);
3963 
3964  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && isEBflag)
3965  h1_scl_EoEtrueGolden_barrel->Fill(sclRef->energy() / mcIter->p());
3966  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && isEEflag)
3967  h1_scl_EoEtrueGolden_endcaps->Fill(sclRef->energy() / mcIter->p());
3968  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && isEBflag)
3969  h1_scl_EoEtrueShowering_barrel->Fill(sclRef->energy() / mcIter->p());
3970  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && isEEflag)
3971  h1_scl_EoEtrueShowering_endcaps->Fill(sclRef->energy() / mcIter->p());
3972 
3973  //eleClass = eleClass%100; // get rid of barrel/endcap distinction
3974  h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
3975  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3976  h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
3977  if (bestGsfElectron.classification() == GsfElectron::BIGBREM)
3978  h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
3979  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3980  h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
3981 
3982  // fbrem
3983 
3984  double fbrem_mode = bestGsfElectron.fbrem();
3985  h1_ele_fbrem->Fill(fbrem_mode);
3986  if (passMiniAODSelection) { // Pt > 5.
3987  h1_ele_fbrem_mAOD->Fill(fbrem_mode);
3988  }
3989  if (isEBflag) {
3990  double fbrem_mode_barrel = bestGsfElectron.fbrem();
3991  h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
3992  if (passMiniAODSelection) { // Pt > 5.
3993  h1_ele_fbrem_mAOD_barrel->Fill(fbrem_mode_barrel);
3994  }
3995  } else if (isEEflag) {
3996  double fbrem_mode_endcaps = bestGsfElectron.fbrem();
3997  h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
3998  if (passMiniAODSelection) { // Pt > 5.
3999  h1_ele_fbrem_mAOD_endcaps->Fill(fbrem_mode_endcaps);
4000  }
4001  }
4002 
4003  double superclusterfbrem_mode = bestGsfElectron.superClusterFbrem();
4004  h1_ele_superclusterfbrem->Fill(superclusterfbrem_mode);
4005 
4006  if (isEBflag) {
4007  double superclusterfbrem_mode_barrel = bestGsfElectron.superClusterFbrem();
4008  h1_ele_superclusterfbrem_barrel->Fill(superclusterfbrem_mode_barrel);
4009  } else if (isEEflag) {
4010  double superclusterfbrem_mode_endcaps = bestGsfElectron.superClusterFbrem();
4011  h1_ele_superclusterfbrem_endcaps->Fill(superclusterfbrem_mode_endcaps);
4012  }
4013 
4014  p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode);
4015 
4016  if (!readAOD_) // track extra does not exist in AOD
4017  {
4018  double fbrem_mean =
4019  1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R();
4020  p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean);
4021  }
4022 
4023  //
4024 
4025  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4026  h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4027  bestGsfElectron.trackMomentumAtVtx().R());
4028  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4029  h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
4030  bestGsfElectron.trackMomentumAtVtx().R());
4031  if (!readAOD_) // track extra not available in AOD
4032  {
4033  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4034  h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4035  bestGsfElectron.gsfTrack()->innerMomentum().R());
4036  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4037  h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
4038  bestGsfElectron.gsfTrack()->innerMomentum().R());
4039  }
4040  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4041  h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4042  bestGsfElectron.trackMomentumAtVtx().Rho());
4043  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4044  h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
4045  bestGsfElectron.trackMomentumAtVtx().Rho());
4046  if (!readAOD_) // track extra not available in AOD
4047  {
4048  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
4049  h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4050  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4051  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
4052  h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
4053  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
4054  }
4055 
4056  // provenance and pflow data
4057  h1_ele_mva->Fill(bestGsfElectron.mva_e_pi());
4058  h1_ele_mva_isolated->Fill(bestGsfElectron.mva_Isolated());
4059  if (isEBflag) {
4060  h1_ele_mva_barrel->Fill(bestGsfElectron.mva_e_pi());
4061  h1_ele_mva_barrel_isolated->Fill(bestGsfElectron.mva_Isolated());
4062  } else if (isEEflag) {
4063  h1_ele_mva_endcaps->Fill(bestGsfElectron.mva_e_pi());
4064  h1_ele_mva_endcaps_isolated->Fill(bestGsfElectron.mva_Isolated());
4065  }
4066  if (bestGsfElectron.ecalDrivenSeed()) {
4067  h1_ele_provenance->Fill(1.);
4068  }
4069  if (bestGsfElectron.trackerDrivenSeed()) {
4070  h1_ele_provenance->Fill(-1.);
4071  }
4072  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) {
4073  h1_ele_provenance->Fill(0.);
4074  }
4075  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) {
4076  h1_ele_provenance->Fill(-2.);
4077  }
4078  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) {
4079  h1_ele_provenance->Fill(2.);
4080  }
4081 
4082  if (bestGsfElectron.ecalDrivenSeed() && isEBflag)
4084  if (bestGsfElectron.trackerDrivenSeed() && isEBflag)
4086  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEBflag)
4088  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEBflag)
4090  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEBflag)
4092  if (bestGsfElectron.ecalDrivenSeed() && isEEflag)
4094  if (bestGsfElectron.trackerDrivenSeed() && isEEflag)
4096  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEEflag)
4098  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEEflag)
4100  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEEflag)
4102 
4103  if (bestGsfElectron.isGsfCtfScPixChargeConsistent())
4104  h1_ele_chargeInfo->Fill(-1.0);
4105  if (bestGsfElectron.isGsfScPixChargeConsistent())
4106  h1_ele_chargeInfo->Fill(0.);
4107  if (bestGsfElectron.isGsfCtfChargeConsistent())
4108  h1_ele_chargeInfo->Fill(1.0);
4109 
4110  // Pflow isolation
4114  h1_ele_photonRelativeIso->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4115  if (isEBflag) {
4119  }
4120 
4121  else if (isEEflag) {
4125  }
4126 
4127  // -- pflow over pT
4129  bestGsfElectron.pt());
4131  bestGsfElectron.pt());
4132  if (isEBflag) {
4134  bestGsfElectron.pt());
4136  bestGsfElectron.pt());
4137  h1_ele_photonRelativeIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4138  } else if (isEEflag) {
4140  bestGsfElectron.pt());
4142  bestGsfElectron.pt());
4143  h1_ele_photonRelativeIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4144  }
4145  if (passMiniAODSelection) { // Pt > 5.
4147  bestGsfElectron.pt());
4149  bestGsfElectron.pt());
4150  h1_ele_photonRelativeIso_mAOD->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
4151  if (isEBflag) {
4153  bestGsfElectron.pt());
4155  bestGsfElectron.pt());
4157  bestGsfElectron.pt());
4158  } else if (isEEflag) {
4160  bestGsfElectron.pt());
4162  bestGsfElectron.pt());
4164  bestGsfElectron.pt());
4165  }
4166  }
4167 
4168  // isolation
4169  h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
4175  h1_ele_hcalDepth1OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(1));
4176  h1_ele_hcalDepth2OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(2));
4177  if (isEBflag) {
4178  h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
4186  } else if (isEEflag) {
4187  h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
4195  }
4196 
4197  // conversion rejection
4198  int flags = bestGsfElectron.convFlags();
4199  if (flags == -9999) {
4200  flags = -1;
4201  }
4203  if (flags >= 0.) {
4204  h1_ele_convDist->Fill(bestGsfElectron.convDist());
4205  h1_ele_convDcot->Fill(bestGsfElectron.convDcot());
4206  h1_ele_convRadius->Fill(bestGsfElectron.convRadius());
4207  }
4208 
4209  } // loop over mc particle
4210  h1_mcNum->Fill(mcNum);
4211  h1_eleNum->Fill(eleNum);
4212 }
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:230
MonitorElement * h1_ele_ecalEnergyError_endcaps
MonitorElement * h1_scl_EoEtrue_endcaps_ringgap
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_endcaps
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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:257
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_chargedHadronRelativeIso_Extended
MonitorElement * h1_scl_EoEtrue_endcaps_new_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 * h2_ele_PtinVsPtoutGolden_mode
MonitorElement * h1_ele_neutralHadronIso_barrel
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:729
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
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
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