CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ElectronMcFakeValidator.cc
Go to the documentation of this file.
1 
2 // user include files
4 
6 
8 
19 
22 
25 
30 
31 #include "CLHEP/Units/GlobalPhysicalConstants.h"
32 #include "TMath.h"
33 #include "TFile.h"
34 #include "TH1F.h"
35 #include "TH1I.h"
36 #include "TH2F.h"
37 #include "TProfile.h"
38 #include "TTree.h"
39 #include <vector>
40 #include <iostream>
41 
42 using namespace reco;
43 
45  electronCollection_ = consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollection"));
47  consumes<reco::GsfElectronCollection>(conf.getParameter<edm::InputTag>("electronCollectionEndcaps"));
49  consumes<reco::GsfElectronCoreCollection>(conf.getParameter<edm::InputTag>("electronCoreCollection"));
51  consumes<reco::GsfTrackCollection>(conf.getParameter<edm::InputTag>("electronTrackCollection"));
53  consumes<reco::ElectronSeedCollection>(conf.getParameter<edm::InputTag>("electronSeedCollection"));
55  consumes<reco::GenJetCollection>(conf.getParameter<edm::InputTag>("matchingObjectCollection"));
57  consumes<reco::VertexCollection>(conf.getParameter<edm::InputTag>("offlinePrimaryVertices"));
58 
59  beamSpotTag_ = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpot"));
60  readAOD_ = conf.getParameter<bool>("readAOD");
61 
62  isoFromDepsTk03Tag_ = consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsTk03"));
63  isoFromDepsTk04Tag_ = consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsTk04"));
65  consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull03"));
67  consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsEcalFull04"));
69  consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced03"));
71  consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsEcalReduced04"));
72  isoFromDepsHcal03Tag_ = consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsHcal03"));
73  isoFromDepsHcal04Tag_ = consumes<edm::ValueMap<double>>(conf.getParameter<edm::InputTag>("isoFromDepsHcal04"));
74 
75  maxPt_ = conf.getParameter<double>("MaxPt");
76  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
77  deltaR2_ = conf.getParameter<double>("DeltaR") * conf.getParameter<double>("DeltaR");
78  inputFile_ = conf.getParameter<std::string>("InputFile");
79  outputFile_ = conf.getParameter<std::string>("OutputFile");
80  inputInternalPath_ = conf.getParameter<std::string>("InputFolderName");
81  outputInternalPath_ = conf.getParameter<std::string>("OutputFolderName");
82 
83  // histos bining and limits
84 
85  edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg");
86 
87  xyz_nbin = histosSet.getParameter<int>("Nbinxyz");
88 
89  p_nbin = histosSet.getParameter<int>("Nbinp");
90  p2D_nbin = histosSet.getParameter<int>("Nbinp2D");
91  p_max = histosSet.getParameter<double>("Pmax");
92 
93  pt_nbin = histosSet.getParameter<int>("Nbinpt");
94  pt2D_nbin = histosSet.getParameter<int>("Nbinpt2D");
95  pteff_nbin = histosSet.getParameter<int>("Nbinpteff");
96  pt_max = histosSet.getParameter<double>("Ptmax");
97 
98  fhits_nbin = histosSet.getParameter<int>("Nbinfhits");
99  fhits_max = histosSet.getParameter<double>("Fhitsmax");
100 
101  lhits_nbin = histosSet.getParameter<int>("Nbinlhits");
102  lhits_max = histosSet.getParameter<double>("Lhitsmax");
103 
104  eop_nbin = histosSet.getParameter<int>("Nbineop");
105  eop2D_nbin = histosSet.getParameter<int>("Nbineop2D");
106  eop_max = histosSet.getParameter<double>("Eopmax");
107  eopmaxsht = histosSet.getParameter<double>("Eopmaxsht");
108 
109  eta_nbin = histosSet.getParameter<int>("Nbineta");
110  eta2D_nbin = histosSet.getParameter<int>("Nbineta2D");
111  eta_min = histosSet.getParameter<double>("Etamin");
112  eta_max = histosSet.getParameter<double>("Etamax");
113 
114  deta_nbin = histosSet.getParameter<int>("Nbindeta");
115  deta_min = histosSet.getParameter<double>("Detamin");
116  deta_max = histosSet.getParameter<double>("Detamax");
117 
118  detamatch_nbin = histosSet.getParameter<int>("Nbindetamatch");
119  detamatch2D_nbin = histosSet.getParameter<int>("Nbindetamatch2D");
120  detamatch_min = histosSet.getParameter<double>("Detamatchmin");
121  detamatch_max = histosSet.getParameter<double>("Detamatchmax");
122 
123  phi_nbin = histosSet.getParameter<int>("Nbinphi");
124  phi2D_nbin = histosSet.getParameter<int>("Nbinphi2D");
125  phi_min = histosSet.getParameter<double>("Phimin");
126  phi_max = histosSet.getParameter<double>("Phimax");
127 
128  dphi_nbin = histosSet.getParameter<int>("Nbindphi");
129  dphi_min = histosSet.getParameter<double>("Dphimin");
130  dphi_max = histosSet.getParameter<double>("Dphimax");
131 
132  dphimatch_nbin = histosSet.getParameter<int>("Nbindphimatch");
133  dphimatch2D_nbin = histosSet.getParameter<int>("Nbindphimatch2D");
134  dphimatch_min = histosSet.getParameter<double>("Dphimatchmin");
135  dphimatch_max = histosSet.getParameter<double>("Dphimatchmax");
136 
137  mee_nbin = histosSet.getParameter<int>("Nbinmee");
138  mee_min = histosSet.getParameter<double>("Meemin");
139  mee_max = histosSet.getParameter<double>("Meemax");
140 
141  hoe_nbin = histosSet.getParameter<int>("Nbinhoe");
142  hoe_min = histosSet.getParameter<double>("Hoemin");
143  hoe_max = histosSet.getParameter<double>("Hoemax");
144 
145  popmatching_nbin = histosSet.getParameter<int>("Nbinpopmatching");
146  popmatching_min = histosSet.getParameter<double>("Popmatchingmin");
147  popmatching_max = histosSet.getParameter<double>("Popmatchingmax");
148 
149  set_EfficiencyFlag = histosSet.getParameter<bool>("EfficiencyFlag");
150  set_StatOverflowFlag = histosSet.getParameter<bool>("StatOverflowFlag");
151 
152  opv_nbin = histosSet.getParameter<int>("NbinOPV");
153  opv_min = histosSet.getParameter<double>("OPV_min");
154  opv_max = histosSet.getParameter<double>("OPV_max");
155 
156  ele_nbin = histosSet.getParameter<int>("NbinELE");
157  ele_min = histosSet.getParameter<double>("ELE_min");
158  ele_max = histosSet.getParameter<double>("ELE_max");
159 
160  core_nbin = histosSet.getParameter<int>("NbinCORE");
161  core_min = histosSet.getParameter<double>("CORE_min");
162  core_max = histosSet.getParameter<double>("CORE_max");
163 
164  track_nbin = histosSet.getParameter<int>("NbinTRACK");
165  track_min = histosSet.getParameter<double>("TRACK_min");
166  track_max = histosSet.getParameter<double>("TRACK_max");
167 
168  seed_nbin = histosSet.getParameter<int>("NbinSEED");
169  seed_min = histosSet.getParameter<double>("SEED_min");
170  seed_max = histosSet.getParameter<double>("SEED_max");
171 
172  // so to please coverity
173  h1_matchingObjectNum = nullptr;
174  h1_recEleNum_ = nullptr;
175  h1_recCoreNum_ = nullptr;
176  h1_recTrackNum_ = nullptr;
177  h1_recSeedNum_ = nullptr;
178  h1_recOfflineVertices_ = nullptr;
179 
180  h1_matchingObjectEta = nullptr;
181  h1_matchingObjectAbsEta = nullptr;
182  h1_matchingObjectP = nullptr;
183  h1_matchingObjectPt = nullptr;
184  h1_matchingObjectPhi = nullptr;
185  h1_matchingObjectZ = nullptr;
186 
187  h1_ele_EoverP_all = nullptr;
188  h1_ele_EseedOP_all = nullptr;
189  h1_ele_EoPout_all = nullptr;
190  h1_ele_EeleOPout_all = nullptr;
191  h1_ele_dEtaSc_propVtx_all = nullptr;
192  h1_ele_dPhiSc_propVtx_all = nullptr;
193  h1_ele_dEtaCl_propOut_all = nullptr;
194  h1_ele_dPhiCl_propOut_all = nullptr;
195  h1_ele_TIP_all = nullptr;
196  h1_ele_HoE_all = nullptr;
197  h1_ele_vertexEta_all = nullptr;
198  h1_ele_vertexPt_all = nullptr;
199  h1_ele_mee_all = nullptr;
200  h1_ele_mee_os = nullptr;
201 
202  h2_ele_E2mnE1vsMee_all = nullptr;
203  h2_ele_E2mnE1vsMee_egeg_all = nullptr;
204 
210 
211  h1_ele_charge = nullptr;
212  h2_ele_chargeVsEta = nullptr;
213  h2_ele_chargeVsPhi = nullptr;
214  h2_ele_chargeVsPt = nullptr;
215  h1_ele_vertexP = nullptr;
216  h1_ele_vertexPt = nullptr;
217  h2_ele_vertexPtVsEta = nullptr;
218  h2_ele_vertexPtVsPhi = nullptr;
219  h1_ele_vertexEta = nullptr;
220  h2_ele_vertexEtaVsPhi = nullptr;
221  h1_ele_vertexAbsEta = nullptr;
222  h1_ele_vertexPhi = nullptr;
223  h1_ele_vertexX = nullptr;
224  h1_ele_vertexY = nullptr;
225  h1_ele_vertexZ = nullptr;
226  h1_ele_vertexTIP = nullptr;
227  h2_ele_vertexTIPVsEta = nullptr;
228  h2_ele_vertexTIPVsPhi = nullptr;
229  h2_ele_vertexTIPVsPt = nullptr;
230 
231  h1_ele_PoPmatchingObject = nullptr;
237 
247 
248  h1_scl_En_ = nullptr;
251  h1_scl_Et_ = nullptr;
252  h2_scl_EtVsEta_ = nullptr;
253  h2_scl_EtVsPhi_ = nullptr;
254  h2_scl_EtaVsPhi_ = nullptr;
255  h1_scl_Eta_ = nullptr;
256  h1_scl_Phi_ = nullptr;
257 
258  h1_scl_SigIEtaIEta_ = nullptr;
259  h1_scl_SigIEtaIEta_barrel_ = nullptr;
260  h1_scl_SigIEtaIEta_endcaps_ = nullptr;
264  h1_scl_E1x5_ = nullptr;
265  h1_scl_E1x5_barrel_ = nullptr;
266  h1_scl_E1x5_endcaps_ = nullptr;
267  h1_scl_E2x5max_ = nullptr;
268  h1_scl_E2x5max_barrel_ = nullptr;
269  h1_scl_E2x5max_endcaps_ = nullptr;
270  h1_scl_E5x5_ = nullptr;
271  h1_scl_E5x5_barrel_ = nullptr;
272  h1_scl_E5x5_endcaps_ = nullptr;
273 
274  h1_ele_ambiguousTracks = nullptr;
275  h2_ele_ambiguousTracksVsEta = nullptr;
276  h2_ele_ambiguousTracksVsPhi = nullptr;
277  h2_ele_ambiguousTracksVsPt = nullptr;
278  h1_ele_foundHits = nullptr;
279  h1_ele_foundHits_barrel = nullptr;
280  h1_ele_foundHits_endcaps = nullptr;
281  h2_ele_foundHitsVsEta = nullptr;
282  h2_ele_foundHitsVsPhi = nullptr;
283  h2_ele_foundHitsVsPt = nullptr;
284  h1_ele_lostHits = nullptr;
285  h1_ele_lostHits_barrel = nullptr;
286  h1_ele_lostHits_endcaps = nullptr;
287  h2_ele_lostHitsVsEta = nullptr;
288  h2_ele_lostHitsVsPhi = nullptr;
289  h2_ele_lostHitsVsPt = nullptr;
290  h1_ele_chi2 = nullptr;
291  h1_ele_chi2_barrel = nullptr;
292  h1_ele_chi2_endcaps = nullptr;
293  h2_ele_chi2VsEta = nullptr;
294  h2_ele_chi2VsPhi = nullptr;
295  h2_ele_chi2VsPt = nullptr;
296 
297  h1_ele_PinMnPout = nullptr;
298  h1_ele_PinMnPout_mode = nullptr;
299  h2_ele_PinMnPoutVsEta_mode = nullptr;
300  h2_ele_PinMnPoutVsPhi_mode = nullptr;
301  h2_ele_PinMnPoutVsPt_mode = nullptr;
302  h2_ele_PinMnPoutVsE_mode = nullptr;
303  h2_ele_PinMnPoutVsChi2_mode = nullptr;
304 
305  h1_ele_outerP = nullptr;
306  h1_ele_outerP_mode = nullptr;
307  h2_ele_outerPVsEta_mode = nullptr;
308  h1_ele_outerPt = nullptr;
309  h1_ele_outerPt_mode = nullptr;
310  h2_ele_outerPtVsEta_mode = nullptr;
311  h2_ele_outerPtVsPhi_mode = nullptr;
312  h2_ele_outerPtVsPt_mode = nullptr;
313  h1_ele_EoP = nullptr;
314  h1_ele_EoP_barrel = nullptr;
315  h1_ele_EoP_endcaps = nullptr;
316  h2_ele_EoPVsEta = nullptr;
317  h2_ele_EoPVsPhi = nullptr;
318  h2_ele_EoPVsE = nullptr;
319  h1_ele_EseedOP = nullptr;
320  h1_ele_EseedOP_barrel = nullptr;
321  h1_ele_EseedOP_endcaps = nullptr;
322  h2_ele_EseedOPVsEta = nullptr;
323  h2_ele_EseedOPVsPhi = nullptr;
324  h2_ele_EseedOPVsE = nullptr;
325  h1_ele_EoPout = nullptr;
326  h1_ele_EoPout_barrel = nullptr;
327  h1_ele_EoPout_endcaps = nullptr;
328  h2_ele_EoPoutVsEta = nullptr;
329  h2_ele_EoPoutVsPhi = nullptr;
330  h2_ele_EoPoutVsE = nullptr;
331  h1_ele_EeleOPout = nullptr;
332  h1_ele_EeleOPout_barrel = nullptr;
333  h1_ele_EeleOPout_endcaps = nullptr;
334  h2_ele_EeleOPoutVsEta = nullptr;
335  h2_ele_EeleOPoutVsPhi = nullptr;
336  h2_ele_EeleOPoutVsE = nullptr;
337 
338  h1_ele_dEtaSc_propVtx = nullptr;
341  h2_ele_dEtaScVsEta_propVtx = nullptr;
342  h2_ele_dEtaScVsPhi_propVtx = nullptr;
343  h2_ele_dEtaScVsPt_propVtx = nullptr;
344  h1_ele_dPhiSc_propVtx = nullptr;
347  h2_ele_dPhiScVsEta_propVtx = nullptr;
348  h2_ele_dPhiScVsPhi_propVtx = nullptr;
349  h2_ele_dPhiScVsPt_propVtx = nullptr;
350  h1_ele_dEtaCl_propOut = nullptr;
353  h2_ele_dEtaClVsEta_propOut = nullptr;
354  h2_ele_dEtaClVsPhi_propOut = nullptr;
355  h2_ele_dEtaClVsPt_propOut = nullptr;
356  h1_ele_dPhiCl_propOut = nullptr;
359  h2_ele_dPhiClVsEta_propOut = nullptr;
360  h2_ele_dPhiClVsPhi_propOut = nullptr;
361  h2_ele_dPhiClVsPt_propOut = nullptr;
362  h1_ele_dEtaEleCl_propOut = nullptr;
368  h1_ele_dPhiEleCl_propOut = nullptr;
374 
375  h1_ele_seed_subdet2_ = nullptr;
376  h1_ele_seed_mask_ = nullptr;
377  h1_ele_seed_mask_bpix_ = nullptr;
378  h1_ele_seed_mask_fpix_ = nullptr;
379  h1_ele_seed_mask_tec_ = nullptr;
380  h1_ele_seed_dphi2_ = nullptr;
381  h2_ele_seed_dphi2VsEta_ = nullptr;
382  h2_ele_seed_dphi2VsPt_ = nullptr;
383  h1_ele_seed_dphi2pos_ = nullptr;
384  h2_ele_seed_dphi2posVsEta_ = nullptr;
385  h2_ele_seed_dphi2posVsPt_ = nullptr;
386  h1_ele_seed_drz2_ = nullptr;
387  h2_ele_seed_drz2VsEta_ = nullptr;
388  h2_ele_seed_drz2VsPt_ = nullptr;
389  h1_ele_seed_drz2pos_ = nullptr;
390  h2_ele_seed_drz2posVsEta_ = nullptr;
391  h2_ele_seed_drz2posVsPt_ = nullptr;
392 
393  h1_ele_classes = nullptr;
394  h1_ele_eta = nullptr;
395  h1_ele_eta_golden = nullptr;
396  h1_ele_eta_bbrem = nullptr;
397  h1_ele_eta_narrow = nullptr;
398  h1_ele_eta_shower = nullptr;
399 
400  h1_ele_HoE = nullptr;
401  h1_ele_HoE_barrel = nullptr;
402  h1_ele_HoE_endcaps = nullptr;
403  h1_ele_HoE_fiducial = nullptr;
404  h2_ele_HoEVsEta = nullptr;
405  h2_ele_HoEVsPhi = nullptr;
406  h2_ele_HoEVsE = nullptr;
407  h1_scl_ESFrac_endcaps = nullptr;
408 
409  h1_ele_fbrem = nullptr;
410  p1_ele_fbremVsEta_mode = nullptr;
411  p1_ele_fbremVsEta_mean = nullptr;
412  h1_ele_superclusterfbrem = nullptr;
415  h2_ele_PinVsPoutGolden_mode = nullptr;
417  h2_ele_PinVsPoutGolden_mean = nullptr;
427 
428  h1_ele_mva = nullptr;
429  h1_ele_mva_isolated = nullptr;
430  h1_ele_provenance = nullptr;
431 
432  h1_ele_tkSumPt_dr03 = nullptr;
433  h1_ele_tkSumPt_dr03_barrel = nullptr;
434  h1_ele_tkSumPt_dr03_endcaps = nullptr;
435  h1_ele_ecalRecHitSumEt_dr03 = nullptr;
442  h1_ele_tkSumPt_dr04 = nullptr;
443  h1_ele_tkSumPt_dr04_barrel = nullptr;
444  h1_ele_tkSumPt_dr04_endcaps = nullptr;
445  h1_ele_ecalRecHitSumEt_dr04 = nullptr;
452 
453  h1_ele_convFlags = nullptr;
454  h1_ele_convFlags_all = nullptr;
455  h1_ele_convDist = nullptr;
456  h1_ele_convDist_all = nullptr;
457  h1_ele_convDcot = nullptr;
458  h1_ele_convDcot_all = nullptr;
459  h1_ele_convRadius = nullptr;
460  h1_ele_convRadius_all = nullptr;
461 }
462 
465 
466  setBookIndex(-1);
467  setBookPrefix("h");
470 
471  // matching object type
472  std::string matchingObjectType;
473  matchingObjectType = "GenJet";
474 
475  std::string htitle = "# " + matchingObjectType + "s", xtitle = "N_{" + matchingObjectType + "}";
476  h1_matchingObjectNum = bookH1withSumw2(iBooker, "matchingObjectNum", htitle, fhits_nbin, 0., fhits_max, xtitle);
477 
478  // rec event collections sizes
479  h1_recEleNum_ = bookH1(iBooker, "recEleNum", "# rec electrons", ele_nbin, ele_min, ele_max, "N_{ele}");
480  h1_recCoreNum_ = bookH1(iBooker, "recCoreNum", "# rec electron cores", core_nbin, core_min, core_max, "N_{core}");
481  h1_recTrackNum_ = bookH1(iBooker, "recTrackNum", "# rec gsf tracks", track_nbin, track_min, track_max, "N_{track}");
482  h1_recSeedNum_ = bookH1(iBooker, "recSeedNum", "# rec electron seeds", seed_nbin, seed_min, seed_max, "N_{seed}");
484  iBooker, "recOfflineVertices", "# rec Offline Primary Vertices", opv_nbin, opv_min, opv_max, "N_{Vertices}");
485 
486  // mc
488  bookH1withSumw2(iBooker, "matchingObject_eta", matchingObjectType + " #eta", eta_nbin, eta_min, eta_max, "#eta");
490  bookH1withSumw2(iBooker, "matchingObject_abseta", matchingObjectType + " |#eta|", eta_nbin / 2, 0., eta_max);
492  bookH1withSumw2(iBooker, "matchingObject_P", matchingObjectType + " p", p_nbin, 0., p_max, "p (GeV/c)");
494  bookH1withSumw2(iBooker, "matchingObject_Pt", matchingObjectType + " pt", pteff_nbin, 5., pt_max);
496  bookH1withSumw2(iBooker, "matchingObject_phi", matchingObjectType + " phi", phi_nbin, phi_min, phi_max);
497  h1_matchingObjectZ = bookH1withSumw2(iBooker, "matchingObject_z", matchingObjectType + " z", xyz_nbin, -25, 25);
498 
499  setBookPrefix("h_ele");
500 
501  // all electrons
503  "EoverP_all",
504  "ele E/P_{vertex}, all reco electrons",
505  eop_nbin,
506  0.,
507  eop_max,
508  "E/P_{vertex}",
509  "Events",
510  "ELE_LOGY E1 P");
512  "EseedOP_all",
513  "ele E_{seed}/P_{vertex}, all reco electrons",
514  eop_nbin,
515  0.,
516  eop_max,
517  "E_{seed}/P_{vertex}",
518  "Events",
519  "ELE_LOGY E1 P");
521  "EoPout_all",
522  "ele E_{seed}/P_{out}, all reco electrons",
523  eop_nbin,
524  0.,
525  eop_max,
526  "E_{seed}/P_{out}",
527  "Events",
528  "ELE_LOGY E1 P");
530  "EeleOPout_all",
531  "ele E_{ele}/P_{out}, all reco electrons",
532  eop_nbin,
533  0.,
534  eop_max,
535  "E_{ele}/P_{out}",
536  "Events",
537  "ELE_LOGY E1 P");
539  "dEtaSc_propVtx_all",
540  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",
544  "#eta_{sc} - #eta_{tr}",
545  "Events",
546  "ELE_LOGY E1 P");
548  "dPhiSc_propVtx_all",
549  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",
553  "#phi_{sc} - #phi_{tr} (rad)",
554  "Events",
555  "ELE_LOGY E1 P");
557  "dEtaCl_propOut_all",
558  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",
562  "#eta_{sc} - #eta_{tr}",
563  "Events",
564  "ELE_LOGY E1 P");
566  "dPhiCl_propOut_all",
567  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",
571  "#phi_{sc} - #phi_{tr} (rad)",
572  "Events",
573  "ELE_LOGY E1 P");
575  "TIP_all",
576  "ele vertex transverse radius, all reco electrons",
577  100,
578  0.,
579  0.2,
580  "r_{T} (cm)",
581  "Events",
582  "ELE_LOGY E1 P");
584  "HoE_all",
585  "ele hadronic energy / em energy, all reco electrons",
586  hoe_nbin,
587  hoe_min,
588  hoe_max,
589  "H/E",
590  "Events",
591  "ELE_LOGY E1 P");
593  "HoE_bc_all",
594  "ele hadronic energy / em energy, all reco electrons, behind cluster",
595  hoe_nbin,
596  hoe_min,
597  hoe_max,
598  "H/E",
599  "Events",
600  "ELE_LOGY E1 P");
602  iBooker, "vertexEta_all", "ele eta, all reco electrons", eta_nbin, eta_min, eta_max, "", "Events");
604  bookH1withSumw2(iBooker, "vertexPt_all", "ele p_{T}, all reco electrons", pteff_nbin, 5., pt_max, "", "Events");
606  "mee_all",
607  "ele pairs invariant mass, all reco electrons",
608  mee_nbin,
609  mee_min,
610  mee_max,
611  "m_{ee} (GeV/c^{2})");
612  h1_ele_mee_os = bookH1withSumw2(iBooker,
613  "mee_os",
614  "ele pairs invariant mass, opp. sign",
615  mee_nbin,
616  mee_min,
617  mee_max,
618  "m_{e^{+}e^{-}} (GeV/c^{2})");
619 
620  // duplicates
621  h2_ele_E2mnE1vsMee_all = bookH2(iBooker,
622  "E2mnE1vsMee_all",
623  "E2 - E1 vs ele pairs invariant mass, all electrons",
624  mee_nbin,
625  mee_min,
626  mee_max,
627  100,
628  -50.,
629  50.,
630  "m_{e^{+}e^{-}} (GeV/c^{2})",
631  "E2 - E1 (GeV)");
633  "E2mnE1vsMee_egeg_all",
634  "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
635  mee_nbin,
636  mee_min,
637  mee_max,
638  100,
639  -50.,
640  50.,
641  "m_{e^{+}e^{-}} (GeV/c^{2})",
642  "E2 - E1 (GeV)");
643 
644  // matched electrons
645 
646  htitle = "Efficiency vs matching " + matchingObjectType + " ";
648  bookH1withSumw2(iBooker, "matchingObjectEta_matched", htitle + "#eta", eta_nbin, eta_min, eta_max);
650  bookH1withSumw2(iBooker, "matchingObjectAbsEta_matched", htitle + "|#eta|", eta_nbin / 2, 0., eta_max);
652  bookH1(iBooker, "matchingObjectPt_matched", htitle + "p_{T}", pteff_nbin, 5., pt_max);
654  bookH1withSumw2(iBooker, "matchingObjectPhi_matched", htitle + "phi", phi_nbin, phi_min, phi_max);
655  h1_ele_matchingObjectZ_matched = bookH1withSumw2(iBooker, "matchingObjectZ_matched", htitle + "z", xyz_nbin, -25, 25);
656 
657  h1_ele_charge = bookH1withSumw2(iBooker, "charge", "ele charge", 5, -2.5, 2.5, "charge");
658  h2_ele_chargeVsEta = bookH2(iBooker, "chargeVsEta", "ele charge vs eta", eta2D_nbin, eta_min, eta_max, 5, -2., 2.);
659  h2_ele_chargeVsPhi = bookH2(iBooker, "chargeVsPhi", "ele charge vs phi", phi2D_nbin, phi_min, phi_max, 5, -2., 2.);
660  h2_ele_chargeVsPt = bookH2(iBooker, "chargeVsPt", "ele charge vs pt", pt_nbin, 0., 100., 5, -2., 2.);
661  h1_ele_vertexP = bookH1withSumw2(iBooker, "vertexP", "ele momentum", p_nbin, 0., p_max, "p_{vertex} (GeV/c)");
663  bookH1withSumw2(iBooker, "vertexPt", "ele transverse momentum", pt_nbin, 0., pt_max, "p_{T vertex} (GeV/c)");
665  iBooker, "vertexPtVsEta", "ele transverse momentum vs eta", eta2D_nbin, eta_min, eta_max, pt2D_nbin, 0., pt_max);
667  iBooker, "vertexPtVsPhi", "ele transverse momentum vs phi", phi2D_nbin, phi_min, phi_max, pt2D_nbin, 0., pt_max);
668  h1_ele_vertexEta = bookH1withSumw2(iBooker, "vertexEta", "ele momentum eta", eta_nbin, eta_min, eta_max, "#eta");
670  iBooker, "vertexEtaVsPhi", "ele momentum eta vs phi", eta2D_nbin, eta_min, eta_max, phi2D_nbin, phi_min, phi_max);
672  bookH1withSumw2(iBooker, "vertexPhi", "ele momentum #phi", phi_nbin, phi_min, phi_max, "#phi (rad)");
673  h1_ele_vertexX = bookH1withSumw2(iBooker, "vertexX", "ele vertex x", xyz_nbin, -0.6, 0.6, "x (cm)");
674  h1_ele_vertexY = bookH1withSumw2(iBooker, "vertexY", "ele vertex y", xyz_nbin, -0.6, 0.6, "y (cm)");
675  h1_ele_vertexZ = bookH1withSumw2(iBooker, "vertexZ", "ele vertex z", xyz_nbin, -25, 25, "z (cm)");
677  "vertexTIP",
678  "ele transverse impact parameter (wrt gen vtx)",
679  90,
680  0.,
681  0.15,
682  "TIP (cm)",
683  "Events",
684  "ELE_LOGY E1 P");
685  h2_ele_vertexTIPVsEta = bookH2(iBooker,
686  "vertexTIPVsEta",
687  "ele transverse impact parameter (wrt gen vtx) vs eta",
688  eta2D_nbin,
689  eta_min,
690  eta_max,
691  45,
692  0.,
693  0.15,
694  "#eta",
695  "TIP (cm)");
696  h2_ele_vertexTIPVsPhi = bookH2(iBooker,
697  "vertexTIPVsPhi",
698  "ele transverse impact parameter (wrt gen vtx) vs phi",
699  phi2D_nbin,
700  phi_min,
701  phi_max,
702  45,
703  0.,
704  0.15,
705  "#phi (rad)",
706  "TIP (cm)");
707  h2_ele_vertexTIPVsPt = bookH2(iBooker,
708  "vertexTIPVsPt",
709  "ele transverse impact parameter (wrt gen vtx) vs transverse momentum",
710  pt2D_nbin,
711  0.,
712  pt_max,
713  45,
714  0.,
715  0.15,
716  "p_{T} (GeV/c)",
717  "TIP (cm)");
718 
719  htitle = "Electron / Matching " + matchingObjectType + ", momemtum";
720  xtitle = "P / P_{" + matchingObjectType + "}";
722  bookH1withSumw2(iBooker, "PoPmatchingObject", htitle, popmatching_nbin, popmatching_min, popmatching_max, xtitle);
724  "PoPmatchingObjectVsEta",
725  htitle + ",vs eta",
726  eta2D_nbin,
727  eta_min,
728  eta_max,
729  50,
733  "PoPmatchingObjectVsPhi",
734  htitle + ",vs phi",
735  phi2D_nbin,
736  phi_min,
737  phi_max,
738  50,
742  iBooker, "PoPmatchingObjectVsPt", htitle + ",vs eta", pt2D_nbin, 0., pt_max, 50, popmatching_min, popmatching_max);
744  "PoPmatchingObject_barrel",
745  htitle + ", barrel",
749  xtitle);
751  "PoPmatchingObject_endcaps",
752  htitle + ", endcaps",
756  xtitle);
757  htitle = "Ele - " + matchingObjectType + ", ";
758  xtitle = "#eta - #eta_{" + matchingObjectType + "}";
760  bookH1withSumw2(iBooker, "EtamatchingObjectEtaTrue", htitle + "eta", deta_nbin, deta_min, deta_max, xtitle);
762  "EtaMnEtamatchingObjectVsEta",
763  htitle + "eta, vs eta",
764  eta2D_nbin,
765  eta_min,
766  eta_max,
767  deta_nbin / 2,
768  deta_min,
769  deta_max);
771  "EtaMnEtamatchingObjectVsPhi",
772  htitle + "eta, vs phi",
773  phi2D_nbin,
774  phi_min,
775  phi_max,
776  deta_nbin / 2,
777  deta_min,
778  deta_max);
780  "EtaMnEtamatchingObjectVsPt",
781  htitle + "eta,, vs pt",
782  pt_nbin,
783  0.,
784  pt_max,
785  deta_nbin / 2,
786  deta_min,
787  deta_max);
788  xtitle = "#phi - #phi_{" + matchingObjectType + "} (rad)";
790  bookH1withSumw2(iBooker, "PhiMnPhimatchingObject", htitle + "phi", dphi_nbin, dphi_min, dphi_max, xtitle);
792  bookH1(iBooker, "PhiMnPhimatchingObject2", htitle + "phi", dphimatch2D_nbin, dphimatch_min, dphimatch_max);
794  "PhiMnPhimatchingObjectVsEta",
795  htitle + "phi, vs eta",
796  eta2D_nbin,
797  eta_min,
798  eta_max,
799  dphi_nbin / 2,
800  dphi_min,
801  dphi_max);
803  "PhiMnPhimatchingObjectVsPhi",
804  htitle + "phi, vs phi",
805  phi2D_nbin,
806  phi_min,
807  phi_max,
808  dphi_nbin / 2,
809  dphi_min,
810  dphi_max);
812  "PhiMnPhimatchingObjectVsPt",
813  htitle + "phi, vs pt",
814  pt2D_nbin,
815  0.,
816  pt_max,
817  dphi_nbin / 2,
818  dphi_min,
819  dphi_max);
820 
821  // matched electron, superclusters
822 
823  setBookPrefix("h_scl");
824 
825  h1_scl_En_ = bookH1withSumw2(iBooker, "energy", "ele supercluster energy", p_nbin, 0., p_max);
826  htitle = "Ele supercluster / " + matchingObjectType + ", energy";
827  xtitle = "E/E_{" + matchingObjectType + "}";
829  bookH1withSumw2(iBooker, "EoEmatchingObject_barrel", htitle + ", barrel", 50, 0.2, 1.2, xtitle);
831  bookH1withSumw2(iBooker, "EoEmatchingObject_endcaps", htitle + ", endcaps", 50, 0.2, 1.2, xtitle);
832  h1_scl_Et_ = bookH1withSumw2(iBooker, "et", "ele supercluster transverse energy", pt_nbin, 0., pt_max);
833  h2_scl_EtVsEta_ = bookH2(iBooker,
834  "etVsEta",
835  "ele supercluster transverse energy vs eta",
836  eta2D_nbin,
837  eta_min,
838  eta_max,
839  pt_nbin,
840  0.,
841  pt_max);
842  h2_scl_EtVsPhi_ = bookH2(iBooker,
843  "etVsPhi",
844  "ele supercluster transverse energy vs phi",
845  phi2D_nbin,
846  phi_min,
847  phi_max,
848  pt_nbin,
849  0.,
850  pt_max);
852  iBooker, "etaVsPhi", "ele supercluster eta vs phi", phi2D_nbin, phi_min, phi_max, eta2D_nbin, eta_min, eta_max);
853  h1_scl_Eta_ = bookH1withSumw2(iBooker, "eta", "ele supercluster eta", eta_nbin, eta_min, eta_max);
854  h1_scl_Phi_ = bookH1withSumw2(iBooker, "phi", "ele supercluster phi", phi_nbin, phi_min, phi_max);
856  "sigietaieta",
857  "ele supercluster sigma ieta ieta",
858  100,
859  0.,
860  0.05,
861  "#sigma_{i#eta i#eta}",
862  "Events",
863  "ELE_LOGY E1 P");
865  "sigietaieta_barrel",
866  "ele supercluster sigma ieta ieta, barrel",
867  100,
868  0.,
869  0.05,
870  "#sigma_{i#eta i#eta}",
871  "Events",
872  "ELE_LOGY E1 P");
874  "sigietaieta_endcaps",
875  "ele supercluster sigma ieta ieta, endcaps",
876  100,
877  0.,
878  0.05,
879  "#sigma_{i#eta i#eta}",
880  "Events",
881  "ELE_LOGY E1 P");
883  "full5x5_sigietaieta",
884  "ele supercluster full5x5 sigma ieta ieta",
885  100,
886  0.,
887  0.05,
888  "#sigma_{i#eta i#eta}",
889  "Events",
890  "ELE_LOGY E1 P");
892  "full5x5_sigietaieta_barrel",
893  "ele supercluster full5x5 sigma ieta ieta, barrel",
894  100,
895  0.,
896  0.05,
897  "#sigma_{i#eta i#eta}",
898  "Events",
899  "ELE_LOGY E1 P");
901  "full5x5_sigietaieta_endcaps",
902  "ele supercluster full5x5 sigma ieta ieta, endcaps",
903  100,
904  0.,
905  0.05,
906  "#sigma_{i#eta i#eta}",
907  "Events",
908  "ELE_LOGY E1 P");
910  iBooker, "E1x5", "ele supercluster energy in 1x5", p_nbin, 0., p_max, "E1x5 (GeV)", "Events", "ELE_LOGY E1 P");
912  "E1x5_barrel",
913  "ele supercluster energy in 1x5 barrel",
914  p_nbin,
915  0.,
916  p_max,
917  "E1x5 (GeV)",
918  "Events",
919  "ELE_LOGY E1 P");
921  "E1x5_endcaps",
922  "ele supercluster energy in 1x5 endcaps",
923  p_nbin,
924  0.,
925  p_max,
926  "E1x5 (GeV)",
927  "Events",
928  "ELE_LOGY E1 P");
930  "E2x5max",
931  "ele supercluster energy in 2x5 max",
932  p_nbin,
933  0.,
934  p_max,
935  "E2x5 (GeV)",
936  "Events",
937  "ELE_LOGY E1 P");
939  "E2x5max_barrel",
940  "ele supercluster energy in 2x5 _max barrel",
941  p_nbin,
942  0.,
943  p_max,
944  "E2x5 (GeV)",
945  "Events",
946  "ELE_LOGY E1 P");
948  "E2x5max_endcaps",
949  "ele supercluster energy in 2x5 _max endcaps",
950  p_nbin,
951  0.,
952  p_max,
953  "E2x5 (GeV)",
954  "Events",
955  "ELE_LOGY E1 P");
957  iBooker, "E5x5", "ele supercluster energy in 5x5", p_nbin, 0., p_max, "E5x5 (GeV)", "Events", "ELE_LOGY E1 P");
959  "E5x5_barrel",
960  "ele supercluster energy in 5x5 barrel",
961  p_nbin,
962  0.,
963  p_max,
964  "E5x5 (GeV)",
965  "Events",
966  "ELE_LOGY E1 P");
968  "E5x5_endcaps",
969  "ele supercluster energy in 5x5 endcaps",
970  p_nbin,
971  0.,
972  p_max,
973  "E5x5 (GeV)",
974  "Events",
975  "ELE_LOGY E1 P");
976 
977  // matched electron, gsf tracks
978 
979  setBookPrefix("h_ele");
980 
982  "ambiguousTracks",
983  "ele # ambiguous tracks",
984  5,
985  0.,
986  5.,
987  "N_{ambiguous tracks}",
988  "Events",
989  "ELE_LOGY E1 P");
991  iBooker, "ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", eta2D_nbin, eta_min, eta_max, 5, 0., 5.);
993  iBooker, "ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", phi2D_nbin, phi_min, phi_max, 5, 0., 5.);
995  bookH2(iBooker, "ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", pt2D_nbin, 0., pt_max, 5, 0., 5.);
997  bookH1withSumw2(iBooker, "foundHits", "ele track # found hits", fhits_nbin, 0., fhits_max, "N_{hits}");
998  h2_ele_foundHitsVsEta = bookH2(iBooker,
999  "foundHitsVsEta",
1000  "ele track # found hits vs eta",
1001  eta2D_nbin,
1002  eta_min,
1003  eta_max,
1004  fhits_nbin,
1005  0.,
1006  fhits_max);
1007  h2_ele_foundHitsVsPhi = bookH2(iBooker,
1008  "foundHitsVsPhi",
1009  "ele track # found hits vs phi",
1010  phi2D_nbin,
1011  phi_min,
1012  phi_max,
1013  fhits_nbin,
1014  0.,
1015  fhits_max);
1017  iBooker, "foundHitsVsPt", "ele track # found hits vs pt", pt2D_nbin, 0., pt_max, fhits_nbin, 0., fhits_max);
1018  h1_ele_lostHits = bookH1withSumw2(iBooker, "lostHits", "ele track # lost hits", 5, 0., 5., "N_{lost hits}");
1020  iBooker, "lostHitsVsEta", "ele track # lost hits vs eta", eta2D_nbin, eta_min, eta_max, lhits_nbin, 0., lhits_max);
1022  iBooker, "lostHitsVsPhi", "ele track # lost hits vs eta", phi2D_nbin, phi_min, phi_max, lhits_nbin, 0., lhits_max);
1024  bookH2(iBooker, "lostHitsVsPt", "ele track # lost hits vs eta", pt2D_nbin, 0., pt_max, lhits_nbin, 0., lhits_max);
1025  h1_ele_chi2 =
1026  bookH1withSumw2(iBooker, "chi2", "ele track #chi^{2}", 100, 0., 15., "#Chi^{2}", "Events", "ELE_LOGY E1 P");
1028  bookH2(iBooker, "chi2VsEta", "ele track #chi^{2} vs eta", eta2D_nbin, eta_min, eta_max, 50, 0., 15.);
1030  bookH2(iBooker, "chi2VsPhi", "ele track #chi^{2} vs phi", phi2D_nbin, phi_min, phi_max, 50, 0., 15.);
1031  h2_ele_chi2VsPt = bookH2(iBooker, "chi2VsPt", "ele track #chi^{2} vs pt", pt2D_nbin, 0., pt_max, 50, 0., 15.);
1033  "PinMnPout",
1034  "ele track inner p - outer p, mean of GSF components",
1035  p_nbin,
1036  0.,
1037  200.,
1038  "P_{vertex} - P_{out} (GeV/c)");
1040  "PinMnPout_mode",
1041  "ele track inner p - outer p, mode of GSF components",
1042  p_nbin,
1043  0.,
1044  100.,
1045  "P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
1047  "PinMnPoutVsEta_mode",
1048  "ele track inner p - outer p vs eta, mode of GSF components",
1049  eta2D_nbin,
1050  eta_min,
1051  eta_max,
1052  p2D_nbin,
1053  0.,
1054  100.);
1056  "PinMnPoutVsPhi_mode",
1057  "ele track inner p - outer p vs phi, mode of GSF components",
1058  phi2D_nbin,
1059  phi_min,
1060  phi_max,
1061  p2D_nbin,
1062  0.,
1063  100.);
1065  "PinMnPoutVsPt_mode",
1066  "ele track inner p - outer p vs pt, mode of GSF components",
1067  pt2D_nbin,
1068  0.,
1069  pt_max,
1070  p2D_nbin,
1071  0.,
1072  100.);
1073  h2_ele_PinMnPoutVsE_mode = bookH2(iBooker,
1074  "PinMnPoutVsE_mode",
1075  "ele track inner p - outer p vs E, mode of GSF components",
1076  p2D_nbin,
1077  0.,
1078  200.,
1079  p2D_nbin,
1080  0.,
1081  100.);
1083  "PinMnPoutVsChi2_mode",
1084  "ele track inner p - outer p vs track chi2, mode of GSF components",
1085  50,
1086  0.,
1087  20.,
1088  p2D_nbin,
1089  0.,
1090  100.);
1092  iBooker, "outerP", "ele track outer p, mean of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1094  iBooker, "outerP_mode", "ele track outer p, mode of GSF components", p_nbin, 0., p_max, "P_{out} (GeV/c)");
1096  bookH2(iBooker, "outerPVsEta_mode", "ele track outer p vs eta mode", eta2D_nbin, eta_min, eta_max, 50, 0., p_max);
1098  iBooker, "outerPt", "ele track outer p_{T}, mean of GSF components", pt_nbin, 0., pt_max, "P_{T out} (GeV/c)");
1100  "outerPt_mode",
1101  "ele track outer p_{T}, mode of GSF components",
1102  pt_nbin,
1103  0.,
1104  pt_max,
1105  "P_{T out} (GeV/c)");
1106  h2_ele_outerPtVsEta_mode = bookH2(iBooker,
1107  "outerPtVsEta_mode",
1108  "ele track outer p_{T} vs eta, mode of GSF components",
1109  eta2D_nbin,
1110  eta_min,
1111  eta_max,
1112  pt2D_nbin,
1113  0.,
1114  pt_max);
1115  h2_ele_outerPtVsPhi_mode = bookH2(iBooker,
1116  "outerPtVsPhi_mode",
1117  "ele track outer p_{T} vs phi, mode of GSF components",
1118  phi2D_nbin,
1119  phi_min,
1120  phi_max,
1121  pt2D_nbin,
1122  0.,
1123  pt_max);
1124  h2_ele_outerPtVsPt_mode = bookH2(iBooker,
1125  "outerPtVsPt_mode",
1126  "ele track outer p_{T} vs pt, mode of GSF components",
1127  pt2D_nbin,
1128  0.,
1129  100.,
1130  pt2D_nbin,
1131  0.,
1132  pt_max);
1133 
1134  // matched electrons, matching
1136  iBooker, "EoP", "ele E/P_{vertex}", eop_nbin, 0., eop_max, "E/P_{vertex}", "Events", "ELE_LOGY E1 P");
1138  "EoP_barrel",
1139  "ele E/P_{vertex} barrel",
1140  eop_nbin,
1141  0.,
1142  eop_max,
1143  "E/P_{vertex}",
1144  "Events",
1145  "ELE_LOGY E1 P");
1147  "EoP_endcaps",
1148  "ele E/P_{vertex} endcaps",
1149  eop_nbin,
1150  0.,
1151  eop_max,
1152  "E/P_{vertex}",
1153  "Events",
1154  "ELE_LOGY E1 P");
1155  h2_ele_EoPVsEta =
1156  bookH2(iBooker, "EoPVsEta", "ele E/P_{vertex} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1157  h2_ele_EoPVsPhi =
1158  bookH2(iBooker, "EoPVsPhi", "ele E/P_{vertex} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1159  h2_ele_EoPVsE = bookH2(iBooker, "EoPVsE", "ele E/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1160  h1_ele_EseedOP = bookH1withSumw2(iBooker,
1161  "EseedOP",
1162  "ele E_{seed}/P_{vertex}",
1163  eop_nbin,
1164  0.,
1165  eop_max,
1166  "E_{seed}/P_{vertex}",
1167  "Events",
1168  "ELE_LOGY E1 P");
1170  "EseedOP_barrel",
1171  "ele E_{seed}/P_{vertex} barrel",
1172  eop_nbin,
1173  0.,
1174  eop_max,
1175  "E_{seed}/P_{vertex}",
1176  "Events",
1177  "ELE_LOGY E1 P");
1179  "EseedOP_endcaps",
1180  "ele E_{seed}/P_{vertex} endcaps",
1181  eop_nbin,
1182  0.,
1183  eop_max,
1184  "E_{seed}/P_{vertex}",
1185  "Events",
1186  "ELE_LOGY E1 P");
1187  h2_ele_EseedOPVsEta = bookH2(iBooker,
1188  "EseedOPVsEta",
1189  "ele E_{seed}/P_{vertex} vs eta",
1190  eta2D_nbin,
1191  eta_min,
1192  eta_max,
1193  eop2D_nbin,
1194  0.,
1195  eopmaxsht);
1196  h2_ele_EseedOPVsPhi = bookH2(iBooker,
1197  "EseedOPVsPhi",
1198  "ele E_{seed}/P_{vertex} vs phi",
1199  phi2D_nbin,
1200  phi_min,
1201  phi_max,
1202  eop2D_nbin,
1203  0.,
1204  eopmaxsht);
1205  h2_ele_EseedOPVsE = bookH2(iBooker, "EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., p_max, 50, 0., 5.);
1207  iBooker, "EoPout", "ele E_{seed}/P_{out}", eop_nbin, 0., eop_max, "E_{seed}/P_{out}", "Events", "ELE_LOGY E1 P");
1209  "EoPout_barrel",
1210  "ele E_{seed}/P_{out} barrel",
1211  eop_nbin,
1212  0.,
1213  eop_max,
1214  "E_{seed}/P_{out}",
1215  "Events",
1216  "ELE_LOGY E1 P");
1218  "EoPout_endcaps",
1219  "ele E_{seed}/P_{out} endcaps",
1220  eop_nbin,
1221  0.,
1222  eop_max,
1223  "E_{seed}/P_{out}",
1224  "Events",
1225  "ELE_LOGY E1 P");
1227  iBooker, "EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1229  iBooker, "EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1231  bookH2(iBooker, "EoPoutVsE", "ele E_{seed}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1233  iBooker, "EeleOPout", "ele E_{ele}/P_{out}", eop_nbin, 0., eop_max, "E_{ele}/P_{out}", "Events", "ELE_LOGY E1 P");
1235  "EeleOPout_barrel",
1236  "ele E_{ele}/P_{out} barrel",
1237  eop_nbin,
1238  0.,
1239  eop_max,
1240  "E_{ele}/P_{out}",
1241  "Events",
1242  "ELE_LOGY E1 P");
1244  "EeleOPout_endcaps",
1245  "ele E_{ele}/P_{out} endcaps",
1246  eop_nbin,
1247  0.,
1248  eop_max,
1249  "E_{ele}/P_{out}",
1250  "Events",
1251  "ELE_LOGY E1 P");
1253  iBooker, "EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", eta2D_nbin, eta_min, eta_max, eop2D_nbin, 0., eopmaxsht);
1255  iBooker, "EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", phi2D_nbin, phi_min, phi_max, eop2D_nbin, 0., eopmaxsht);
1257  bookH2(iBooker, "EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", p2D_nbin, 0., p_max, eop2D_nbin, 0., eopmaxsht);
1259  "dEtaSc_propVtx",
1260  "ele #eta_{sc} - #eta_{tr}, prop from vertex",
1262  detamatch_min,
1263  detamatch_max,
1264  "#eta_{sc} - #eta_{tr}",
1265  "Events",
1266  "ELE_LOGY E1 P");
1268  "dEtaSc_propVtx_barrel",
1269  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1271  detamatch_min,
1272  detamatch_max,
1273  "#eta_{sc} - #eta_{tr}",
1274  "Events",
1275  "ELE_LOGY E1 P");
1277  "dEtaSc_propVtx_endcaps",
1278  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
1280  detamatch_min,
1281  detamatch_max,
1282  "#eta_{sc} - #eta_{tr}",
1283  "Events",
1284  "ELE_LOGY E1 P");
1286  "dEtaScVsEta_propVtx",
1287  "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
1288  eta2D_nbin,
1289  eta_min,
1290  eta_max,
1292  detamatch_min,
1293  detamatch_max);
1295  "dEtaScVsPhi_propVtx",
1296  "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
1297  phi2D_nbin,
1298  phi_min,
1299  phi_max,
1301  detamatch_min,
1302  detamatch_max);
1304  "dEtaScVsPt_propVtx",
1305  "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
1306  pt2D_nbin,
1307  0.,
1308  pt_max,
1310  detamatch_min,
1311  detamatch_max);
1313  "dPhiSc_propVtx",
1314  "ele #phi_{sc} - #phi_{tr}, prop from vertex",
1316  dphimatch_min,
1317  dphimatch_max,
1318  "#phi_{sc} - #phi_{tr} (rad)",
1319  "Events",
1320  "ELE_LOGY E1 P");
1322  "dPhiSc_propVtx_barrel",
1323  "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",
1325  dphimatch_min,
1326  dphimatch_max,
1327  "#phi_{sc} - #phi_{tr} (rad)",
1328  "Events",
1329  "ELE_LOGY E1 P");
1331  "dPhiSc_propVtx_endcaps",
1332  "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",
1334  dphimatch_min,
1335  dphimatch_max,
1336  "#phi_{sc} - #phi_{tr} (rad)",
1337  "Events",
1338  "ELE_LOGY E1 P");
1340  "dPhiScVsEta_propVtx",
1341  "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
1342  eta2D_nbin,
1343  eta_min,
1344  eta_max,
1346  dphimatch_min,
1347  dphimatch_max);
1349  "dPhiScVsPhi_propVtx",
1350  "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
1351  phi2D_nbin,
1352  phi_min,
1353  phi_max,
1355  dphimatch_min,
1356  dphimatch_max);
1358  "dPhiScVsPt_propVtx",
1359  "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
1360  pt2D_nbin,
1361  0.,
1362  pt_max,
1364  dphimatch_min,
1365  dphimatch_max);
1367  "dEtaCl_propOut",
1368  "ele #eta_{cl} - #eta_{tr}, prop from outermost",
1370  detamatch_min,
1371  detamatch_max,
1372  "#eta_{seedcl} - #eta_{tr}",
1373  "Events",
1374  "ELE_LOGY E1 P");
1376  "dEtaCl_propOut_barrel",
1377  "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",
1379  detamatch_min,
1380  detamatch_max,
1381  "#eta_{seedcl} - #eta_{tr}",
1382  "Events",
1383  "ELE_LOGY E1 P");
1385  "dEtaCl_propOut_endcaps",
1386  "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",
1388  detamatch_min,
1389  detamatch_max,
1390  "#eta_{seedcl} - #eta_{tr}",
1391  "Events",
1392  "ELE_LOGY E1 P");
1394  "dEtaClVsEta_propOut",
1395  "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
1396  eta2D_nbin,
1397  eta_min,
1398  eta_max,
1400  detamatch_min,
1401  detamatch_max);
1403  "dEtaClVsPhi_propOut",
1404  "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
1405  phi2D_nbin,
1406  phi_min,
1407  phi_max,
1409  detamatch_min,
1410  detamatch_max);
1412  "dEtaScVsPt_propOut",
1413  "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
1414  pt2D_nbin,
1415  0.,
1416  pt_max,
1418  detamatch_min,
1419  detamatch_max);
1421  "dPhiCl_propOut",
1422  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
1424  dphimatch_min,
1425  dphimatch_max,
1426  "#phi_{seedcl} - #phi_{tr} (rad)",
1427  "Events",
1428  "ELE_LOGY E1 P");
1430  "dPhiCl_propOut_barrel",
1431  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
1433  dphimatch_min,
1434  dphimatch_max,
1435  "#phi_{seedcl} - #phi_{tr} (rad)",
1436  "Events",
1437  "ELE_LOGY E1 P");
1439  "dPhiCl_propOut_endcaps",
1440  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
1442  dphimatch_min,
1443  dphimatch_max,
1444  "#phi_{seedcl} - #phi_{tr} (rad)",
1445  "Events",
1446  "ELE_LOGY E1 P");
1448  "dPhiClVsEta_propOut",
1449  "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
1450  eta2D_nbin,
1451  eta_min,
1452  eta_max,
1454  dphimatch_min,
1455  dphimatch_max);
1457  "dPhiClVsPhi_propOut",
1458  "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
1459  phi2D_nbin,
1460  phi_min,
1461  phi_max,
1463  dphimatch_min,
1464  dphimatch_max);
1466  "dPhiSClsPt_propOut",
1467  "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
1468  pt2D_nbin,
1469  0.,
1470  pt_max,
1472  dphimatch_min,
1473  dphimatch_max);
1475  "dEtaEleCl_propOut",
1476  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
1478  detamatch_min,
1479  detamatch_max,
1480  "#eta_{elecl} - #eta_{tr}",
1481  "Events",
1482  "ELE_LOGY E1 P");
1484  "dEtaEleCl_propOut_barrel",
1485  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",
1487  detamatch_min,
1488  detamatch_max,
1489  "#eta_{elecl} - #eta_{tr}",
1490  "Events",
1491  "ELE_LOGY E1 P");
1493  "dEtaEleCl_propOut_endcaps",
1494  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",
1496  detamatch_min,
1497  detamatch_max,
1498  "#eta_{elecl} - #eta_{tr}",
1499  "Events",
1500  "ELE_LOGY E1 P");
1502  "dEtaEleClVsEta_propOut",
1503  "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
1504  eta2D_nbin,
1505  eta_min,
1506  eta_max,
1508  detamatch_min,
1509  detamatch_max);
1511  "dEtaEleClVsPhi_propOut",
1512  "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
1513  phi2D_nbin,
1514  phi_min,
1515  phi_max,
1517  detamatch_min,
1518  detamatch_max);
1520  "dEtaScVsPt_propOut",
1521  "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
1522  pt2D_nbin,
1523  0.,
1524  pt_max,
1526  detamatch_min,
1527  detamatch_max);
1529  "dPhiEleCl_propOut",
1530  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
1532  dphimatch_min,
1533  dphimatch_max,
1534  "#phi_{elecl} - #phi_{tr} (rad)",
1535  "Events",
1536  "ELE_LOGY E1 P");
1538  "dPhiEleCl_propOut_barrel",
1539  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",
1541  dphimatch_min,
1542  dphimatch_max,
1543  "#phi_{elecl} - #phi_{tr} (rad)",
1544  "Events",
1545  "ELE_LOGY E1 P");
1547  "dPhiEleCl_propOut_endcaps",
1548  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",
1550  dphimatch_min,
1551  dphimatch_max,
1552  "#phi_{elecl} - #phi_{tr} (rad)",
1553  "Events",
1554  "ELE_LOGY E1 P");
1556  "dPhiEleClVsEta_propOut",
1557  "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
1558  eta2D_nbin,
1559  eta_min,
1560  eta_max,
1562  dphimatch_min,
1563  dphimatch_max);
1565  "dPhiEleClVsPhi_propOut",
1566  "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
1567  phi2D_nbin,
1568  phi_min,
1569  phi_max,
1571  dphimatch_min,
1572  dphimatch_max);
1574  "dPhiSEleClsPt_propOut",
1575  "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
1576  pt2D_nbin,
1577  0.,
1578  pt_max,
1580  dphimatch_min,
1581  dphimatch_max);
1583  iBooker, "HoE", "ele hadronic energy / em energy", hoe_nbin, hoe_min, hoe_max, "H/E", "Events", "ELE_LOGY E1 P");
1585  "HoE_barrel",
1586  "ele hadronic energy / em energy, barrel",
1587  hoe_nbin,
1588  hoe_min,
1589  hoe_max,
1590  "H/E",
1591  "Events",
1592  "ELE_LOGY E1 P");
1594  "HoE_endcaps",
1595  "ele hadronic energy / em energy, endcaps",
1596  hoe_nbin,
1597  hoe_min,
1598  hoe_max,
1599  "H/E",
1600  "Events",
1601  "ELE_LOGY E1 P");
1602  h1_ele_HoE_bc = bookH1withSumw2(iBooker,
1603  "HoE_bc",
1604  "ele hadronic energy / em energy behind cluster",
1605  hoe_nbin,
1606  hoe_min,
1607  hoe_max,
1608  "H/E",
1609  "Events",
1610  "ELE_LOGY E1 P");
1612  "HoE_bc_barrel",
1613  "ele hadronic energy / em energy, behind cluster barrel",
1614  hoe_nbin,
1615  hoe_min,
1616  hoe_max,
1617  "H/E",
1618  "Events",
1619  "ELE_LOGY E1 P");
1621  "HoE_bc_endcaps",
1622  "ele hadronic energy / em energy, behind cluster, endcaps",
1623  hoe_nbin,
1624  hoe_min,
1625  hoe_max,
1626  "H/E",
1627  "Events",
1628  "ELE_LOGY E1 P");
1630  "hcalDepth1OverEcalBc",
1631  "hcalDepth1OverEcalBc",
1632  hoe_nbin,
1633  hoe_min,
1634  hoe_max,
1635  "H/E",
1636  "Events",
1637  "ELE_LOGY E1 P");
1639  "hcalDepth1OverEcalBc_barrel",
1640  "hcalDepth1OverEcalBc_barrel",
1641  hoe_nbin,
1642  hoe_min,
1643  hoe_max,
1644  "H/E",
1645  "Events",
1646  "ELE_LOGY E1 P");
1648  "hcalDepth1OverEcalBc_endcaps",
1649  "hcalDepth1OverEcalBc_endcaps",
1650  hoe_nbin,
1651  hoe_min,
1652  hoe_max,
1653  "H/E",
1654  "Events",
1655  "ELE_LOGY E1 P");
1657  "hcalDepth2OverEcalBc",
1658  "hcalDepth2OverEcalBc",
1659  hoe_nbin,
1660  hoe_min,
1661  hoe_max,
1662  "H/E",
1663  "Events",
1664  "ELE_LOGY E1 P");
1666  "hcalDepth2OverEcalBc_barrel",
1667  "hcalDepth2OverEcalBc_barrel",
1668  hoe_nbin,
1669  hoe_min,
1670  hoe_max,
1671  "H/E",
1672  "Events",
1673  "ELE_LOGY E1 P");
1675  "hcalDepth2OverEcalBc_endcaps",
1676  "hcalDepth2OverEcalBc_endcaps",
1677  hoe_nbin,
1678  hoe_min,
1679  hoe_max,
1680  "H/E",
1681  "Events",
1682  "ELE_LOGY E1 P");
1684  "HoE_fiducial",
1685  "ele hadronic energy / em energy, fiducial region",
1686  hoe_nbin,
1687  hoe_min,
1688  hoe_max,
1689  "H/E",
1690  "Events",
1691  "ELE_LOGY E1 P");
1692  h2_ele_HoEVsEta = bookH2(iBooker,
1693  "HoEVsEta",
1694  "ele hadronic energy / em energy vs eta",
1695  eta_nbin,
1696  eta_min,
1697  eta_max,
1698  hoe_nbin,
1699  hoe_min,
1700  hoe_max);
1701  h2_ele_HoEVsPhi = bookH2(iBooker,
1702  "HoEVsPhi",
1703  "ele hadronic energy / em energy vs phi",
1704  phi2D_nbin,
1705  phi_min,
1706  phi_max,
1707  hoe_nbin,
1708  hoe_min,
1709  hoe_max);
1710  h2_ele_HoEVsE =
1711  bookH2(iBooker, "HoEVsE", "ele hadronic energy / em energy vs E", p_nbin, 0., 300., hoe_nbin, hoe_min, hoe_max);
1712  setBookPrefix("h_scl");
1714  "ESFrac_endcaps",
1715  "Preshower over SC raw energy , endcaps",
1716  100,
1717  0.,
1718  0.8,
1719  "E_{PS} / E^{raw}_{SC}",
1720  "Events",
1721  "ELE_LOGY E1 P");
1722 
1723  // seeds
1724  setBookPrefix("h_ele");
1726  bookH1withSumw2(iBooker, "seedSubdet2", "ele seed subdet 2nd layer", 11, -0.5, 10.5, "2nd hit subdet Id");
1727  h1_ele_seed_mask_ = bookH1withSumw2(iBooker, "seedMask", "ele seed hits mask", 13, -0.5, 12.5);
1729  bookH1withSumw2(iBooker, "seedMask_Bpix", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
1731  bookH1withSumw2(iBooker, "seedMask_Fpix", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
1733  bookH1withSumw2(iBooker, "seedMask_Tec", "ele seed hits mask when subdet2 is bpix", 13, -0.5, 12.5);
1735  iBooker, "seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003, "#phi_{hit}-#phi_{pred} (rad)");
1737  iBooker, "seedDphi2_VsEta", "ele seed dphi 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.003, +0.003);
1739  bookH2(iBooker, "seedDphi2_VsPt", "ele seed dphi 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
1741  iBooker, "seedDphi2Pos", "ele seed dphi 2nd layer positron", 50, -0.003, +0.003, "#phi_{hit}-#phi_{pred} (rad)");
1743  "seedDphi2Pos_VsEta",
1744  "ele seed dphi 2nd layer positron vs eta",
1745  eta2D_nbin,
1746  eta_min,
1747  eta_max,
1748  50,
1749  -0.003,
1750  +0.003);
1752  iBooker, "seedDphi2Pos_VsPt", "ele seed dphi 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.003, +0.003);
1754  iBooker, "seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
1756  iBooker, "seedDrz2_VsEta", "ele seed dr/dz 2nd layer vs eta", eta2D_nbin, eta_min, eta_max, 50, -0.03, +0.03);
1758  bookH2(iBooker, "seedDrz2_VsPt", "ele seed dr/dz 2nd layer vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
1760  iBooker, "seedDrz2Pos", "ele seed dr (dz) 2nd layer positron", 50, -0.03, +0.03, "r(z)_{hit}-r(z)_{pred} (cm)");
1762  "seedDrz2Pos_VsEta",
1763  "ele seed dr/dz 2nd layer positron vs eta",
1764  eta2D_nbin,
1765  eta_min,
1766  eta_max,
1767  50,
1768  -0.03,
1769  +0.03);
1771  iBooker, "seedDrz2Pos_VsPt", "ele seed dr/dz 2nd layer positron vs pt", pt2D_nbin, 0., pt_max, 50, -0.03, +0.03);
1772 
1773  // classes
1774  h1_ele_classes = bookH1withSumw2(iBooker, "classes", "ele classes", 20, 0.0, 20., "class Id");
1775  h1_ele_eta = bookH1withSumw2(iBooker, "eta", "ele electron eta", eta_nbin / 2, 0.0, eta_max);
1776  h1_ele_eta_golden = bookH1withSumw2(iBooker, "eta_golden", "ele electron eta golden", eta_nbin / 2, 0.0, eta_max);
1777  h1_ele_eta_bbrem = bookH1withSumw2(iBooker, "eta_bbrem", "ele electron eta bbrem", eta_nbin / 2, 0.0, eta_max);
1778  h1_ele_eta_shower = bookH1withSumw2(iBooker, "eta_shower", "ele electron eta showering", eta_nbin / 2, 0.0, eta_max);
1780  "PinVsPoutGolden_mode",
1781  "ele track inner p vs outer p vs eta, golden, mode of GSF components",
1782  p2D_nbin,
1783  0.,
1784  p_max,
1785  50,
1786  0.,
1787  p_max);
1789  "PinVsPoutShowering_mode",
1790  "ele track inner p vs outer p vs eta, showering, mode of GSF components",
1791  p2D_nbin,
1792  0.,
1793  p_max,
1794  50,
1795  0.,
1796  p_max);
1798  "PinVsPoutGolden_mean",
1799  "ele track inner p vs outer p vs eta, golden, mean of GSF components",
1800  p2D_nbin,
1801  0.,
1802  p_max,
1803  50,
1804  0.,
1805  p_max);
1807  "PinVsPoutShowering_mean",
1808  "ele track inner p vs outer p vs eta, showering, mean of GSF components",
1809  p2D_nbin,
1810  0.,
1811  p_max,
1812  50,
1813  0.,
1814  p_max);
1816  "PtinVsPtoutGolden_mode",
1817  "ele track inner pt vs outer pt vs eta, golden, mode of GSF components",
1818  pt2D_nbin,
1819  0.,
1820  pt_max,
1821  50,
1822  0.,
1823  pt_max);
1825  "PtinVsPtoutShowering_mode",
1826  "ele track inner pt vs outer pt vs eta, showering, mode of GSF components",
1827  pt2D_nbin,
1828  0.,
1829  pt_max,
1830  50,
1831  0.,
1832  pt_max);
1834  "PtinVsPtoutGolden_mean",
1835  "ele track inner pt vs outer pt vs eta, golden, mean of GSF components",
1836  pt2D_nbin,
1837  0.,
1838  pt_max,
1839  50,
1840  0.,
1841  pt_max);
1843  "PtinVsPtoutShowering_mean",
1844  "ele track inner pt vs outer pt vs eta, showering, mean of GSF components",
1845  pt2D_nbin,
1846  0.,
1847  pt_max,
1848  50,
1849  0.,
1850  pt_max);
1851  setBookPrefix("h_scl");
1853  "EoEmatchingObject_golden_barrel",
1854  "ele supercluster energy / gen energy, golden, barrel",
1857  popmatching_max);
1859  "EoEmatchingObject_golden_endcaps",
1860  "ele supercluster energy / gen energy, golden, endcaps",
1863  popmatching_max);
1865  "EoEmatchingObject_showering_barrel",
1866  "ele supercluster energy / gen energy, showering, barrel",
1869  popmatching_max);
1871  bookH1withSumw2(iBooker,
1872  "EoEmatchingObject_showering_endcaps",
1873  "ele supercluster energy / gen energy, showering, endcaps",
1876  popmatching_max);
1877  setBookPrefix("h_ele");
1878 
1879  // isolation
1881  "tkSumPt_dr03",
1882  "tk isolation sum, dR=0.3",
1883  100,
1884  0.0,
1885  20.,
1886  "TkIsoSum, cone 0.3 (GeV/c)",
1887  "Events",
1888  "ELE_LOGY E1 P");
1890  "tkSumPt_dr03_barrel",
1891  "tk isolation sum, dR=0.3, barrel",
1892  100,
1893  0.0,
1894  20.,
1895  "TkIsoSum, cone 0.3 (GeV/c)",
1896  "Events",
1897  "ELE_LOGY E1 P");
1899  "tkSumPt_dr03_endcaps",
1900  "tk isolation sum, dR=0.3, endcaps",
1901  100,
1902  0.0,
1903  20.,
1904  "TkIsoSum, cone 0.3 (GeV/c)",
1905  "Events",
1906  "ELE_LOGY E1 P");
1908  "ecalRecHitSumEt_dr03",
1909  "ecal isolation sum, dR=0.3",
1910  100,
1911  0.0,
1912  20.,
1913  "EcalIsoSum, cone 0.3 (GeV)",
1914  "Events",
1915  "ELE_LOGY E1 P");
1917  "ecalRecHitSumEt_dr03_barrel",
1918  "ecal isolation sum, dR=0.3, barrel",
1919  100,
1920  0.0,
1921  20.,
1922  "EcalIsoSum, cone 0.3 (GeV)",
1923  "Events",
1924  "ELE_LOGY E1 P");
1926  "ecalRecHitSumEt_dr03_endcaps",
1927  "ecal isolation sum, dR=0.3, endcaps",
1928  100,
1929  0.0,
1930  20.,
1931  "EcalIsoSum, cone 0.3 (GeV)",
1932  "Events",
1933  "ELE_LOGY E1 P");
1935  "hcalTowerSumEt_dr03_depth1",
1936  "hcal depth1 isolation sum, dR=0.3",
1937  100,
1938  0.0,
1939  20.,
1940  "Hcal1IsoSum, cone 0.3 (GeV)",
1941  "Events",
1942  "ELE_LOGY E1 P");
1944  "hcalTowerSumEt_dr03_depth1_barrel",
1945  "hcal depth1 isolation sum, dR=0.3, barrel",
1946  100,
1947  0.0,
1948  20.,
1949  "Hcal1IsoSum, cone 0.3 (GeV)",
1950  "Events",
1951  "ELE_LOGY E1 P");
1953  "hcalTowerSumEt_dr03_depth1_endcaps",
1954  "hcal depth1 isolation sum, dR=0.3, endcaps",
1955  100,
1956  0.0,
1957  20.,
1958  "Hcal1IsoSum, cone 0.3 (GeV)",
1959  "Events",
1960  "ELE_LOGY E1 P");
1962  "hcalTowerSumEt_dr03_depth2",
1963  "hcal depth2 isolation sum, dR=0.3",
1964  100,
1965  0.0,
1966  20.,
1967  "Hcal2IsoSum, cone 0.3 (GeV)",
1968  "Events",
1969  "ELE_LOGY E1 P");
1971  "tkSumPt_dr04",
1972  "tk isolation sum, dR=0.4",
1973  100,
1974  0.0,
1975  20.,
1976  "TkIsoSum, cone 0.4 (GeV/c)",
1977  "Events",
1978  "ELE_LOGY E1 P");
1980  "tkSumPt_dr04_barrel",
1981  "tk isolation sum, dR=0.4, barrel",
1982  100,
1983  0.0,
1984  20.,
1985  "TkIsoSum, cone 0.4 (GeV/c)",
1986  "Events",
1987  "ELE_LOGY E1 P");
1989  "tkSumPt_dr04_endcaps",
1990  "tk isolation sum, dR=0.4, endcaps",
1991  100,
1992  0.0,
1993  20.,
1994  "TkIsoSum, cone 0.4 (GeV/c)",
1995  "Events",
1996  "ELE_LOGY E1 P");
1998  "ecalRecHitSumEt_dr04",
1999  "ecal isolation sum, dR=0.4",
2000  100,
2001  0.0,
2002  20.,
2003  "EcalIsoSum, cone 0.4 (GeV)",
2004  "Events",
2005  "ELE_LOGY E1 P");
2007  "ecalRecHitSumEt_dr04_barrel",
2008  "ecal isolation sum, dR=0.4, barrel",
2009  100,
2010  0.0,
2011  20.,
2012  "EcalIsoSum, cone 0.4 (GeV)",
2013  "Events",
2014  "ELE_LOGY E1 P");
2016  "ecalRecHitSumEt_dr04_endcaps",
2017  "ecal isolation sum, dR=0.4, endcaps",
2018  100,
2019  0.0,
2020  20.,
2021  "EcalIsoSum, cone 0.4 (GeV)",
2022  "Events",
2023  "ELE_LOGY E1 P");
2025  "hcalTowerSumEt_dr04_depth1",
2026  "hcal depth1 isolation sum, dR=0.4",
2027  100,
2028  0.0,
2029  20.,
2030  "Hcal1IsoSum, cone 0.4 (GeV)",
2031  "Events",
2032  "ELE_LOGY E1 P");
2034  "hcalTowerSumEt_dr04_depth1_barrel",
2035  "hcal depth1 isolation sum, dR=0.4, barrel",
2036  100,
2037  0.0,
2038  20.,
2039  "Hcal1IsoSum, cone 0.4 (GeV)",
2040  "Events",
2041  "ELE_LOGY E1 P");
2043  "hcalTowerSumEt_dr04_depth1_endcaps",
2044  "hcal depth1 isolation sum, dR=0.4, endcaps",
2045  100,
2046  0.0,
2047  20.,
2048  "Hcal1IsoSum, cone 0.4 (GeV)",
2049  "Events",
2050  "ELE_LOGY E1 P");
2052  "hcalTowerSumEt_dr04_depth2",
2053  "hcal depth2 isolation sum, dR=0.4",
2054  100,
2055  0.0,
2056  20.,
2057  "Hcal2IsoSum, cone 0.4 (GeV)",
2058  "Events",
2059  "ELE_LOGY E1 P");
2060 
2061  // newHCAL
2062  // isolation new hcal
2064  "hcalTowerSumEtBc_dr03_depth1",
2065  "hcal depth1 isolation sum behind cluster, dR=0.3",
2066  100,
2067  0.0,
2068  20.,
2069  "Hcal1IsoSum, cone 0.3 (GeV)",
2070  "Events",
2071  "ELE_LOGY E1 P");
2073  bookH1withSumw2(iBooker,
2074  "hcalTowerSumEtBc_dr03_depth1_barrel",
2075  "hcal depth1 isolation sum behind cluster, dR=0.3, barrel",
2076  100,
2077  0.0,
2078  20.,
2079  "Hcal1IsoSum, cone 0.3 (GeV)",
2080  "Events",
2081  "ELE_LOGY E1 P");
2083  bookH1withSumw2(iBooker,
2084  "hcalTowerSumEtBc_dr03_depth1_endcaps",
2085  "hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",
2086  100,
2087  0.0,
2088  20.,
2089  "Hcal1IsoSum, cone 0.3 (GeV)",
2090  "Events",
2091  "ELE_LOGY E1 P");
2092 
2094  "hcalTowerSumEtBc_dr04_depth1",
2095  "hcal depth1 isolation sum behind cluster, dR=0.4",
2096  100,
2097  0.0,
2098  20.,
2099  "Hcal1IsoSum, cone 0.4 (GeV)",
2100  "Events",
2101  "ELE_LOGY E1 P");
2103  bookH1withSumw2(iBooker,
2104  "hcalTowerSumEtBc_dr04_depth1_barrel",
2105  "hcal depth1 isolation sum behind cluster, dR=0.4, barrel",
2106  100,
2107  0.0,
2108  20.,
2109  "Hcal1IsoSum, cone 0.4 (GeV)",
2110  "Events",
2111  "ELE_LOGY E1 P");
2113  bookH1withSumw2(iBooker,
2114  "hcalTowerSumEtBc_dr04_depth1_endcaps",
2115  "hcal depth1 isolation sum behind cluster, dR=0.4, endcaps",
2116  100,
2117  0.0,
2118  20.,
2119  "Hcal1IsoSum, cone 0.4 (GeV)",
2120  "Events",
2121  "ELE_LOGY E1 P");
2122 
2124  "hcalTowerSumEtBc_dr03_depth2",
2125  "hcal depth2 isolation sum behind cluster, dR=0.3",
2126  100,
2127  0.0,
2128  20.,
2129  "Hcal1IsoSum, cone 0.3 (GeV)",
2130  "Events",
2131  "ELE_LOGY E1 P");
2133  bookH1withSumw2(iBooker,
2134  "hcalTowerSumEtBc_dr03_depth2_barrel",
2135  "hcal depth2 isolation sum behind cluster, dR=0.3, barrel",
2136  100,
2137  0.0,
2138  20.,
2139  "Hcal1IsoSum, cone 0.3 (GeV)",
2140  "Events",
2141  "ELE_LOGY E1 P");
2143  bookH1withSumw2(iBooker,
2144  "hcalTowerSumEtBc_dr03_depth2_endcaps",
2145  "hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",
2146  100,
2147  0.0,
2148  20.,
2149  "Hcal1IsoSum, cone 0.3 (GeV)",
2150  "Events",
2151  "ELE_LOGY E1 P");
2152 
2154  "hcalTowerSumEtBc_dr04_depth2",
2155  "hcal depth2 isolation sum behind cluster, dR=0.4",
2156  100,
2157  0.0,
2158  20.,
2159  "Hcal1IsoSum, cone 0.4 (GeV)",
2160  "Events",
2161  "ELE_LOGY E1 P");
2163  bookH1withSumw2(iBooker,
2164  "hcalTowerSumEtBc_dr04_depth2_barrel",
2165  "hcal depth2 isolation sum behind cluster, dR=0.4, barrel",
2166  100,
2167  0.0,
2168  20.,
2169  "Hcal1IsoSum, cone 0.4 (GeV)",
2170  "Events",
2171  "ELE_LOGY E1 P");
2173  bookH1withSumw2(iBooker,
2174  "hcalTowerSumEtBc_dr04_depth2_endcaps",
2175  "hcal depth2 isolation sum behind cluster, dR=0.4, endcaps",
2176  100,
2177  0.0,
2178  20.,
2179  "Hcal1IsoSum, cone 0.4 (GeV)",
2180  "Events",
2181  "ELE_LOGY E1 P");
2182 
2183  // fbrem
2185  iBooker, "fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1., "P_{in} - P_{out} / P_{in}");
2187  "fbrem_barrel",
2188  "ele brem fraction for barrel, mode of GSF components",
2189  100,
2190  0.,
2191  1.,
2192  "P_{in} - P_{out} / P_{in}");
2194  "fbrem_endcaps",
2195  "ele brem franction for endcaps, mode of GSF components",
2196  100,
2197  0.,
2198  1.,
2199  "P_{in} - P_{out} / P_{in}");
2200  p1_ele_fbremVsEta_mode = bookP1(iBooker,
2201  "fbremvsEtamode",
2202  "mean ele brem fraction vs eta, mode of GSF components",
2203  eta2D_nbin,
2204  eta_min,
2205  eta_max,
2206  0.,
2207  1.,
2208  "#eta",
2209  "<P_{in} - P_{out} / P_{in}>");
2210  p1_ele_fbremVsEta_mean = bookP1(iBooker,
2211  "fbremvsEtamean",
2212  "mean ele brem fraction vs eta, mean of GSF components",
2213  eta2D_nbin,
2214  eta_min,
2215  eta_max,
2216  0.,
2217  1.,
2218  "#eta",
2219  "<P_{in} - P_{out} / P_{in}>");
2221  bookH1withSumw2(iBooker, "superclusterfbrem", "supercluster brem fraction", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2223  iBooker, "superclusterfbrem_barrel", "supercluster brem fraction for barrel", 100, 0., 1., "1 - E_{ele} / E_{SC}");
2225  "superclusterfbrem_endcaps",
2226  "supercluster brem franction for endcaps",
2227  100,
2228  0.,
2229  1.,
2230  "1 - E_{ele} / E_{SC}");
2231  // e/g et pflow electrons
2232  h1_ele_mva = bookH1withSumw2(iBooker, "mva", "ele identification mva", 100, -1., 1.);
2233  h1_ele_mva_barrel = bookH1withSumw2(iBooker, "mva_barrel", "ele identification mva barrel", 100, -1., 1.);
2234  h1_ele_mva_endcaps = bookH1withSumw2(iBooker, "mva_endcaps", "ele identification mva endcaps", 100, -1., 1.);
2235  h1_ele_mva_isolated = bookH1withSumw2(iBooker, "mva_isolated", "ele identification mva isolated", 100, -1., 1.);
2237  bookH1withSumw2(iBooker, "mva_isolated_barrel", "ele identification mva isolated barrel", 100, -1., 1.);
2239  bookH1withSumw2(iBooker, "mva_isolated_endcaps", "ele identification mva isolated endcaps", 100, -1., 1.);
2240  h1_ele_provenance = bookH1withSumw2(iBooker, "provenance", "ele provenance", 5, -2., 3.);
2241  h1_ele_provenance_barrel = bookH1withSumw2(iBooker, "provenance_barrel", "ele provenance barrel", 5, -2., 3.);
2242  h1_ele_provenance_endcaps = bookH1withSumw2(iBooker, "provenance_endcaps", "ele provenance endcaps", 5, -2., 3.);
2243 
2244  // pflow isolation variables
2246  iBooker, "chargedHadronIso", "chargedHadronIso", 100, 0.0, 20., "chargedHadronIso", "Events", "ELE_LOGY E1 P");
2248  "chargedHadronIso_barrel",
2249  "chargedHadronIso for barrel",
2250  100,
2251  0.0,
2252  20.,
2253  "chargedHadronIso_barrel",
2254  "Events",
2255  "ELE_LOGY E1 P");
2257  "chargedHadronIso_endcaps",
2258  "chargedHadronIso for endcaps",
2259  100,
2260  0.0,
2261  20.,
2262  "chargedHadronIso_endcaps",
2263  "Events",
2264  "ELE_LOGY E1 P");
2266  iBooker, "neutralHadronIso", "neutralHadronIso", 21, 0.0, 20., "neutralHadronIso", "Events", "ELE_LOGY E1 P");
2268  "neutralHadronIso_barrel",
2269  "neutralHadronIso for barrel",
2270  21,
2271  0.0,
2272  20.,
2273  "neutralHadronIso_barrel",
2274  "Events",
2275  "ELE_LOGY E1 P");
2277  "neutralHadronIso_endcaps",
2278  "neutralHadronIso for endcaps",
2279  21,
2280  0.0,
2281  20.,
2282  "neutralHadronIso_endcaps",
2283  "Events",
2284  "ELE_LOGY E1 P");
2286  bookH1withSumw2(iBooker, "photonIso", "photonIso", 100, 0.0, 20., "photonIso", "Events", "ELE_LOGY E1 P");
2288  iBooker, "photonIso_barrel", "photonIso for barrel", 100, 0.0, 20., "photonIso_barrel", "Events", "ELE_LOGY E1 P");
2290  "photonIso_endcaps",
2291  "photonIso for endcaps",
2292  100,
2293  0.0,
2294  20.,
2295  "photonIso_endcaps",
2296  "Events",
2297  "ELE_LOGY E1 P");
2298  // -- pflow over pT
2300  "chargedHadronRelativeIso",
2301  "chargedHadronRelativeIso",
2302  100,
2303  0.0,
2304  2.,
2305  "chargedHadronRelativeIso",
2306  "Events",
2307  "ELE_LOGY E1 P");
2309  "chargedHadronRelativeIso_barrel",
2310  "chargedHadronRelativeIso for barrel",
2311  100,
2312  0.0,
2313  2.,
2314  "chargedHadronRelativeIso_barrel",
2315  "Events",
2316  "ELE_LOGY E1 P");
2318  "chargedHadronRelativeIso_endcaps",
2319  "chargedHadronRelativeIso for endcaps",
2320  100,
2321  0.0,
2322  2.,
2323  "chargedHadronRelativeIso_endcaps",
2324  "Events",
2325  "ELE_LOGY E1 P");
2327  "neutralHadronRelativeIso",
2328  "neutralHadronRelativeIso",
2329  100,
2330  0.0,
2331  2.,
2332  "neutralHadronRelativeIso",
2333  "Events",
2334  "ELE_LOGY E1 P");
2336  "neutralHadronRelativeIso_barrel",
2337  "neutralHadronRelativeIso for barrel",
2338  100,
2339  0.0,
2340  2.,
2341  "neutralHadronRelativeIso_barrel",
2342  "Events",
2343  "ELE_LOGY E1 P");
2345  "neutralHadronRelativeIso_endcaps",
2346  "neutralHadronRelativeIso for endcaps",
2347  100,
2348  0.0,
2349  2.,
2350  "neutralHadronRelativeIso_endcaps",
2351  "Events",
2352  "ELE_LOGY E1 P");
2354  iBooker, "photonRelativeIso", "photonRelativeIso", 100, 0.0, 2., "photonRelativeIso", "Events", "ELE_LOGY E1 P");
2356  "photonRelativeIso_barrel",
2357  "photonRelativeIso for barrel",
2358  100,
2359  0.0,
2360  2.,
2361  "photonRelativeIso_barrel",
2362  "Events",
2363  "ELE_LOGY E1 P");
2365  "photonRelativeIso_endcaps",
2366  "photonRelativeIso for endcaps",
2367  100,
2368  0.0,
2369  2.,
2370  "photonRelativeIso_endcaps",
2371  "Events",
2372  "ELE_LOGY E1 P");
2373 
2374  // conversion rejection information
2375  h1_ele_convFlags = bookH1withSumw2(iBooker, "convFlags", "conversion rejection flag", 5, -2.5, 2.5);
2377  bookH1withSumw2(iBooker, "convFlags_all", "conversion rejection flag, all electrons", 5, -2.5, 2.5);
2378  h1_ele_convDist = bookH1withSumw2(iBooker, "convDist", "distance to the conversion partner", 100, -15., 15.);
2380  bookH1withSumw2(iBooker, "convDist_all", "distance to the conversion partner, all electrons", 100, -15., 15.);
2382  iBooker, "convDcot", "difference of cot(angle) with the conversion partner", 100, -CLHEP::pi / 2., CLHEP::pi / 2.);
2384  "convDcot_all",
2385  "difference of cot(angle) with the conversion partner, all electrons",
2386  100,
2387  -CLHEP::pi / 2.,
2388  CLHEP::pi / 2.);
2389  h1_ele_convRadius = bookH1withSumw2(iBooker, "convRadius", "signed conversion radius", 100, 0., 130.);
2391  bookH1withSumw2(iBooker, "convRadius_all", "signed conversion radius, all electrons", 100, 0., 130.);
2392 }
2393 
2395 
2396 //=========================================================================
2397 // Main methods
2398 //=========================================================================
2399 
2401  // get reco electrons
2402  auto gsfElectrons = iEvent.getHandle(electronCollection_);
2403  auto gsfElectronsEndcaps = iEvent.getHandle(electronCollectionEndcaps_);
2404  auto gsfElectronCores = iEvent.getHandle(electronCoreCollection_);
2405  auto gsfElectronTracks = iEvent.getHandle(electronTrackCollection_);
2406  auto gsfElectronSeeds = iEvent.getHandle(electronSeedCollection_);
2407 
2408  // get gen jets
2409  auto genJets = iEvent.getHandle(matchingObjectCollection_);
2410 
2411  // get the beamspot from the Event:
2412  auto recoBeamSpotHandle = iEvent.getHandle(beamSpotTag_);
2413  const BeamSpot bs = *recoBeamSpotHandle;
2414 
2415  auto isoFromDepsTk03Handle = iEvent.getHandle(isoFromDepsTk03Tag_);
2416  auto isoFromDepsTk04Handle = iEvent.getHandle(isoFromDepsTk04Tag_);
2417  auto isoFromDepsEcalFull03Handle = iEvent.getHandle(isoFromDepsEcalFull03Tag_);
2418  auto isoFromDepsEcalFull04Handle = iEvent.getHandle(isoFromDepsEcalFull04Tag_);
2419  auto isoFromDepsEcalReduced03Handle = iEvent.getHandle(isoFromDepsEcalReduced03Tag_);
2420  auto isoFromDepsEcalReduced04Handle = iEvent.getHandle(isoFromDepsEcalReduced04Tag_);
2421  auto isoFromDepsHcal03Handle = iEvent.getHandle(isoFromDepsHcal03Tag_);
2422  auto isoFromDepsHcal04Handle = iEvent.getHandle(isoFromDepsHcal04Tag_);
2423 
2424  auto vertexCollectionHandle = iEvent.getHandle(offlineVerticesCollection_);
2425  if (!vertexCollectionHandle.isValid()) {
2426  edm::LogInfo("ElectronMcFakeValidator::analyze") << "vertexCollectionHandle KO";
2427  } else {
2428  edm::LogInfo("ElectronMcFakeValidator::analyze") << "vertexCollectionHandle OK";
2429  }
2430 
2431  edm::LogInfo("ElectronMcFakeValidator::analyze")
2432  << "Treating event " << iEvent.id() << " with " << gsfElectrons.product()->size() << " electrons";
2433  edm::LogInfo("ElectronMcSignalValidator::analyze")
2434  << "Treating event " << iEvent.id() << " with " << gsfElectronsEndcaps.product()->size() << " electrons";
2435 
2436  h1_recEleNum_->Fill((*gsfElectrons).size());
2437  h1_recCoreNum_->Fill((*gsfElectronCores).size());
2438  h1_recTrackNum_->Fill((*gsfElectronTracks).size());
2439  h1_recSeedNum_->Fill((*gsfElectronSeeds).size());
2440  h1_recOfflineVertices_->Fill((*vertexCollectionHandle).size());
2441 
2442  reco::GsfElectronCollection::const_iterator gsfIter;
2443  std::vector<reco::GsfElectron>::const_iterator gsfIter3;
2444  std::vector<reco::GsfElectron>::const_iterator gsfIter4;
2445 
2446  //===============================================
2447  // get a vector with EB & EE
2448  //===============================================
2449  std::vector<reco::GsfElectron> localCollection;
2450  int iBarrels = 0;
2451  int iEndcaps = 0;
2452 
2453  // looking for EB
2454  for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) {
2455  if (gsfIter->isEB()) {
2456  localCollection.push_back(*gsfIter);
2457  iBarrels += 1;
2458  }
2459  }
2460 
2461  // looking for EE
2462  for (gsfIter = gsfElectronsEndcaps->begin(); gsfIter != gsfElectronsEndcaps->end(); gsfIter++) {
2463  if (gsfIter->isEE()) {
2464  localCollection.push_back(*gsfIter);
2465  iEndcaps += 1;
2466  }
2467  }
2468 
2469  // all rec electrons
2470  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
2471  // preselect electrons
2472  if (gsfIter3->pt() > maxPt_ || std::abs(gsfIter3->eta()) > maxAbsEta_)
2473  continue;
2474 
2475  h1_ele_EoverP_all->Fill(gsfIter3->eSuperClusterOverP());
2476  h1_ele_EseedOP_all->Fill(gsfIter3->eSeedClusterOverP());
2477  h1_ele_EoPout_all->Fill(gsfIter3->eSeedClusterOverPout());
2478  h1_ele_EeleOPout_all->Fill(gsfIter3->eEleClusterOverPout());
2479  h1_ele_dEtaSc_propVtx_all->Fill(gsfIter3->deltaEtaSuperClusterTrackAtVtx());
2480  h1_ele_dPhiSc_propVtx_all->Fill(gsfIter3->deltaPhiSuperClusterTrackAtVtx());
2481  h1_ele_dEtaCl_propOut_all->Fill(gsfIter3->deltaEtaSeedClusterTrackAtCalo());
2482  h1_ele_dPhiCl_propOut_all->Fill(gsfIter3->deltaPhiSeedClusterTrackAtCalo());
2483  h1_ele_HoE_all->Fill(gsfIter3->hadronicOverEm());
2484  h1_ele_HoE_bc_all->Fill(gsfIter3->hcalOverEcalBc());
2485  double d = gsfIter3->vertex().x() * gsfIter3->vertex().x() + gsfIter3->vertex().y() * gsfIter3->vertex().y();
2486  h1_ele_TIP_all->Fill(sqrt(d));
2487  h1_ele_vertexEta_all->Fill(gsfIter3->eta());
2488  h1_ele_vertexPt_all->Fill(gsfIter3->pt());
2489  float enrj1 = gsfIter3->ecalEnergy();
2490 
2491  // mee
2492  for (gsfIter4 = gsfIter3 + 1; gsfIter4 != localCollection.end(); gsfIter4++) {
2493  math::XYZTLorentzVector p12 = (*gsfIter3).p4() + (*gsfIter4).p4();
2494  float mee2 = p12.Dot(p12);
2495  h1_ele_mee_all->Fill(sqrt(mee2));
2496  float enrj2 = gsfIter4->ecalEnergy();
2497  h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1);
2498  if (gsfIter3->ecalDrivenSeed() && gsfIter4->ecalDrivenSeed()) {
2499  h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1);
2500  }
2501  if (gsfIter3->charge() * gsfIter4->charge() < 0.) {
2502  h1_ele_mee_os->Fill(sqrt(mee2));
2503  }
2504  }
2505 
2506  // conversion rejection
2507  int flags = gsfIter3->convFlags();
2508  if (flags == -9999) {
2509  flags = -1;
2510  }
2511  h1_ele_convFlags_all->Fill(flags);
2512  if (flags >= 0.) {
2513  h1_ele_convDist_all->Fill(gsfIter3->convDist());
2514  h1_ele_convDcot_all->Fill(gsfIter3->convDcot());
2515  h1_ele_convRadius_all->Fill(gsfIter3->convRadius());
2516  }
2517  }
2518 
2519  // association matching object-reco electrons
2520  int matchingObjectNum = 0;
2521  reco::GenJetCollection::const_iterator moIter;
2522  for (moIter = genJets->begin(); moIter != genJets->end(); ++moIter) {
2523  // number of matching objects
2524  matchingObjectNum++;
2525 
2526  if (moIter->energy() / cosh(moIter->eta()) > maxPt_ || std::abs(moIter->eta()) > maxAbsEta_) {
2527  continue;
2528  }
2529 
2530  h1_matchingObjectEta->Fill(moIter->eta());
2531  h1_matchingObjectAbsEta->Fill(std::abs(moIter->eta()));
2532  h1_matchingObjectP->Fill(moIter->energy());
2533  h1_matchingObjectPt->Fill(moIter->energy() / cosh(moIter->eta()));
2534  h1_matchingObjectPhi->Fill(moIter->phi());
2535  h1_matchingObjectZ->Fill(moIter->vz());
2536 
2537  // looking for the best matching gsf electron
2538  bool okGsfFound = false;
2539  double gsfOkRatio = 999999.;
2540  bool isEBflag = false;
2541  bool isEEflag = false;
2542 
2543  // find best matched electron
2544  reco::GsfElectron bestGsfElectron;
2545 
2546  for (gsfIter3 = localCollection.begin(); gsfIter3 != localCollection.end(); gsfIter3++) {
2547  double dphi = gsfIter3->phi() - moIter->phi();
2548  if (std::abs(dphi) > CLHEP::pi) {
2549  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
2550  }
2551  double deltaR2 = (gsfIter3->eta() - moIter->eta()) * (gsfIter3->eta() - moIter->eta()) + dphi * dphi;
2552  if (deltaR2 < deltaR2_) {
2553  double tmpGsfRatio = gsfIter3->p() / moIter->energy();
2554  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
2555  gsfOkRatio = tmpGsfRatio;
2556  bestGsfElectron = *gsfIter3;
2557  okGsfFound = true;
2558  }
2559  }
2560  } // loop over rec ele to look for the best one
2561 
2562  // analysis when the matching object is matched by a rec electron
2563  if (okGsfFound) {
2564  isEBflag = bestGsfElectron.isEB();
2565  isEEflag = bestGsfElectron.isEE();
2566  // electron related distributions
2567  h1_ele_charge->Fill(bestGsfElectron.charge());
2568  h2_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge());
2569  h2_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge());
2570  h2_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge());
2571  h1_ele_vertexP->Fill(bestGsfElectron.p());
2572  h1_ele_vertexPt->Fill(bestGsfElectron.pt());
2573  h2_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt());
2574  h2_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt());
2575  h1_ele_vertexEta->Fill(bestGsfElectron.eta());
2576  // generated distributions for matched electrons
2577  h1_ele_matchingObjectPt_matched->Fill(moIter->energy() / cosh(moIter->eta()));
2578  h1_ele_matchingObjectPhi_matched->Fill(moIter->phi());
2580  h1_ele_matchingObjectEta_matched->Fill(moIter->eta());
2581  h2_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta());
2582  h1_ele_vertexPhi->Fill(bestGsfElectron.phi());
2583  h1_ele_vertexX->Fill(bestGsfElectron.vertex().x());
2584  h1_ele_vertexY->Fill(bestGsfElectron.vertex().y());
2585  h1_ele_vertexZ->Fill(bestGsfElectron.vertex().z());
2586  h1_ele_matchingObjectZ_matched->Fill(moIter->vz());
2587  double d =
2588  (bestGsfElectron.vertex().x() - bs.position().x()) * (bestGsfElectron.vertex().x() - bs.position().x()) +
2589  (bestGsfElectron.vertex().y() - bs.position().y()) * (bestGsfElectron.vertex().y() - bs.position().y());
2590  d = sqrt(d);
2591  h1_ele_vertexTIP->Fill(d);
2592  h2_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d);
2593  h2_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d);
2594  h2_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d);
2595  h1_ele_EtaMnEtamatchingObject->Fill(bestGsfElectron.eta() - moIter->eta());
2596  h2_ele_EtaMnEtamatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - moIter->eta());
2597  h2_ele_EtaMnEtamatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - moIter->eta());
2598  h2_ele_EtaMnEtamatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - moIter->eta());
2599  h1_ele_PhiMnPhimatchingObject->Fill(bestGsfElectron.phi() - moIter->phi());
2600  h1_ele_PhiMnPhimatchingObject2->Fill(bestGsfElectron.phi() - moIter->phi());
2601  h2_ele_PhiMnPhimatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - moIter->phi());
2602  h2_ele_PhiMnPhimatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - moIter->phi());
2603  h2_ele_PhiMnPhimatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - moIter->phi());
2604  h1_ele_PoPmatchingObject->Fill(bestGsfElectron.p() / moIter->energy());
2605  h2_ele_PoPmatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / moIter->energy());
2606  h2_ele_PoPmatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / moIter->energy());
2607  h2_ele_PoPmatchingObjectVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / moIter->energy());
2608  if (isEBflag)
2609  h1_ele_PoPmatchingObject_barrel->Fill(bestGsfElectron.p() / moIter->energy());
2610  else if (isEEflag)
2611  h1_ele_PoPmatchingObject_endcaps->Fill(bestGsfElectron.p() / moIter->energy());
2612 
2613  // supercluster related distributions
2614  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
2615  if (!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.trackerDrivenSeed())
2616  sclRef = bestGsfElectron.parentSuperCluster();
2617  if (sclRef.isNonnull()) {
2618  h1_scl_En_->Fill(sclRef->energy());
2619  double R = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
2620  double Rt = TMath::Sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
2621  h1_scl_Et_->Fill(sclRef->energy() * (Rt / R));
2622  h2_scl_EtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R));
2623  h2_scl_EtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R));
2624  if (isEBflag)
2625  h1_scl_EoEmatchingObject_barrel->Fill(sclRef->energy() / moIter->energy());
2626  else if (isEEflag) {
2627  h1_scl_EoEmatchingObject_endcaps->Fill(sclRef->energy() / moIter->energy());
2628  h1_scl_ESFrac_endcaps->Fill(sclRef->preshowerEnergy() / sclRef->rawEnergy());
2629  }
2630  h1_scl_Eta_->Fill(sclRef->eta());
2631  h2_scl_EtaVsPhi_->Fill(sclRef->phi(), sclRef->eta());
2632  h1_scl_Phi_->Fill(sclRef->phi());
2633  }
2634  h1_scl_SigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta());
2636  h1_scl_E1x5_->Fill(bestGsfElectron.scE1x5());
2637  h1_scl_E2x5max_->Fill(bestGsfElectron.scE2x5Max());
2638  h1_scl_E5x5_->Fill(bestGsfElectron.scE5x5());
2639  if (isEBflag) {
2640  h1_scl_SigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta());
2642  h1_scl_E1x5_barrel_->Fill(bestGsfElectron.scE1x5());
2643  h1_scl_E2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max());
2644  h1_scl_E5x5_barrel_->Fill(bestGsfElectron.scE5x5());
2645  } else if (isEEflag) {
2646  h1_scl_SigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta());
2648  h1_scl_E1x5_endcaps_->Fill(bestGsfElectron.scE1x5());
2649  h1_scl_E2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max());
2650  h1_scl_E5x5_endcaps_->Fill(bestGsfElectron.scE5x5());
2651  }
2652 
2653  // track related distributions
2655  h2_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize());
2656  h2_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize());
2657  h2_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize());
2658  if (!readAOD_) { // track extra does not exist in AOD
2659  h1_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
2660  h2_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
2661  h2_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits());
2662  h2_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits());
2663  h1_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
2664  h2_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits());
2665  h2_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits());
2666  h2_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits());
2667  h1_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
2668  h2_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2());
2669  h2_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2());
2670  h2_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2());
2671  }
2672  // from gsf track interface, hence using mean
2673  if (!readAOD_) { // track extra does not exist in AOD
2674  h1_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() -
2675  bestGsfElectron.gsfTrack()->outerMomentum().R());
2676  h1_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R());
2677  h1_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho());
2678  }
2679  // from electron interface, hence using mode
2680  h1_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2682  bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2684  bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2686  bestGsfElectron.pt(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2687  h2_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(),
2688  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2689  if (!readAOD_) // track extra does not exist in AOD
2691  bestGsfElectron.gsfTrack()->normalizedChi2(),
2692  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
2693  h1_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R());
2694  h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R());
2695  h1_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho());
2696  h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho());
2697  h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho());
2698  h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho());
2699 
2700  if (!readAOD_) { // track extra does not exist in AOD
2701  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
2702  ElectronSeedRef elseed = seed.castTo<ElectronSeedRef>();
2703  h1_ele_seed_subdet2_->Fill(elseed->subDet(1));
2704  h1_ele_seed_mask_->Fill(elseed->hitsMask());
2705  if (elseed->subDet(1) == 1) {
2706  h1_ele_seed_mask_bpix_->Fill(elseed->hitsMask());
2707  } else if (elseed->subDet(1) == 2) {
2708  h1_ele_seed_mask_fpix_->Fill(elseed->hitsMask());
2709  } else if (elseed->subDet(1) == 6) {
2710  h1_ele_seed_mask_tec_->Fill(elseed->hitsMask());
2711  }
2712 
2713  if (elseed->dPhiNeg(1) != std::numeric_limits<float>::infinity()) {
2714  h1_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1));
2715  h2_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1));
2716  h2_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1));
2717  }
2718  if (elseed->dPhiPos(1) != std::numeric_limits<float>::infinity()) {
2719  h1_ele_seed_dphi2pos_->Fill(elseed->dPhiPos(1));
2720  h2_ele_seed_dphi2posVsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiPos(1));
2721  h2_ele_seed_dphi2posVsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiPos(1));
2722  }
2723  if (elseed->dRZNeg(1) != std::numeric_limits<float>::infinity()) {
2724  h1_ele_seed_drz2_->Fill(elseed->dRZNeg(1));
2725  h2_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1));
2726  h2_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1));
2727  }
2728  if (elseed->dRZPos(1) != std::numeric_limits<float>::infinity()) {
2729  h1_ele_seed_drz2pos_->Fill(elseed->dRZPos(1));
2730  h2_ele_seed_drz2posVsEta_->Fill(bestGsfElectron.eta(), elseed->dRZPos(1));
2731  h2_ele_seed_drz2posVsPt_->Fill(bestGsfElectron.pt(), elseed->dRZPos(1));
2732  }
2733  }
2734  // match distributions
2735  h1_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP());
2736  h2_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
2737  h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP());
2738  h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP());
2739  h1_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP());
2740  h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP());
2741  h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP());
2742  h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP());
2743  h1_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout());
2744  h2_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout());
2745  h2_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout());
2746  h2_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout());
2747  h1_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout());
2748  h2_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout());
2749  h2_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout());
2750  h2_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout());
2752  h2_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
2753  h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
2754  h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
2756  h2_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
2757  h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
2758  h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
2760  h2_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
2761  h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
2762  h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
2764  h2_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
2765  h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
2766  h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
2768  h2_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
2769  h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
2770  h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
2772  h2_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
2773  h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
2774  h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
2775  h1_ele_HoE->Fill(bestGsfElectron.hadronicOverEm());
2776  h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
2777  if (isEBflag) {
2778  h1_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
2779  h1_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
2780  h1_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
2781  h1_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
2788  h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
2789  h1_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm());
2790  } else if (isEEflag) {
2791  h1_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
2792  h1_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
2793  h1_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
2801  h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
2802  h1_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm());
2803  }
2804 
2805  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() &&
2806  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap())
2807  h1_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm());
2808  h2_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hadronicOverEm());
2809  h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hadronicOverEm());
2810  h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hadronicOverEm());
2811 
2812  //classes
2813  int eleClass = bestGsfElectron.classification();
2814  if (isEEflag)
2815  eleClass += 10;
2816  h1_ele_classes->Fill(eleClass);
2817 
2818  h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
2819  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
2820  h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
2821  if (bestGsfElectron.classification() == GsfElectron::BIGBREM)
2822  h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
2823  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
2824  h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
2825 
2826  // fbrem
2827 
2828  double fbrem_mode = bestGsfElectron.fbrem();
2829  h1_ele_fbrem->Fill(fbrem_mode);
2830  p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode);
2831  double superclusterfbrem_mode = bestGsfElectron.superClusterFbrem();
2832  h1_ele_superclusterfbrem->Fill(superclusterfbrem_mode);
2833  if (isEBflag) {
2834  double fbrem_mode_barrel = bestGsfElectron.fbrem();
2835  h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
2836  double superclusterfbrem_mode_barrel = bestGsfElectron.superClusterFbrem();
2837  h1_ele_superclusterfbrem_barrel->Fill(superclusterfbrem_mode_barrel);
2838  } else if (isEEflag) {
2839  double fbrem_mode_endcaps = bestGsfElectron.fbrem();
2840  h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
2841  double superclusterfbrem_mode_endcaps = bestGsfElectron.superClusterFbrem();
2842  h1_ele_superclusterfbrem_endcaps->Fill(superclusterfbrem_mode_endcaps);
2843  }
2844 
2845  if (!readAOD_) // track extra does not exist in AOD
2846  {
2847  double fbrem_mean =
2848  1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R();
2849  p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean);
2850 
2851  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
2852  h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
2853  bestGsfElectron.gsfTrack()->innerMomentum().R());
2854  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
2855  h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
2856  bestGsfElectron.gsfTrack()->innerMomentum().R());
2857  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
2858  h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
2859  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
2860  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
2861  h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
2862  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
2863  }
2864  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
2865  h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
2866  bestGsfElectron.trackMomentumAtVtx().Rho());
2867  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
2868  h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
2869  bestGsfElectron.trackMomentumAtVtx().Rho());
2870 
2871  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
2872  h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
2873  bestGsfElectron.trackMomentumAtVtx().R());
2874  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
2875  h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
2876  bestGsfElectron.trackMomentumAtVtx().R());
2877 
2878  h1_ele_mva->Fill(bestGsfElectron.mva_e_pi());
2879  h1_ele_mva_isolated->Fill(bestGsfElectron.mva_Isolated());
2880  if (isEBflag) {
2881  h1_ele_mva_barrel->Fill(bestGsfElectron.mva_e_pi());
2882  h1_ele_mva_barrel_isolated->Fill(bestGsfElectron.mva_Isolated());
2883  } else if (isEEflag) {
2884  h1_ele_mva_endcaps->Fill(bestGsfElectron.mva_e_pi());
2885  h1_ele_mva_endcaps_isolated->Fill(bestGsfElectron.mva_Isolated());
2886  }
2887 
2888  if (bestGsfElectron.ecalDrivenSeed())
2889  h1_ele_provenance->Fill(1.);
2890  if (bestGsfElectron.trackerDrivenSeed())
2891  h1_ele_provenance->Fill(-1.);
2892  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed())
2893  h1_ele_provenance->Fill(0.);
2894  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed())
2895  h1_ele_provenance->Fill(-2.);
2896  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed())
2897  h1_ele_provenance->Fill(2.);
2898  if (bestGsfElectron.ecalDrivenSeed() && isEBflag)
2900  if (bestGsfElectron.trackerDrivenSeed() && isEBflag)
2902  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEBflag)
2904  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEBflag)
2906  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEBflag)
2908  if (bestGsfElectron.ecalDrivenSeed() && isEEflag)
2910  if (bestGsfElectron.trackerDrivenSeed() && isEEflag)
2912  if ((bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) && isEEflag)
2914  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed() && isEEflag)
2916  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed() && isEEflag)
2918 
2919  // Pflow isolation
2923  if (isEBflag) {
2927  } else if (isEEflag) {
2931  }
2932 
2933  // -- pflow over pT
2935  bestGsfElectron.pt());
2937  bestGsfElectron.pt());
2938  h1_ele_photonRelativeIso->Fill(bestGsfElectron.pfIsolationVariables().sumPhotonEt / bestGsfElectron.pt());
2939  if (isEBflag) {
2941  bestGsfElectron.pt());
2943  bestGsfElectron.pt());
2945  bestGsfElectron.pt());
2946  } else if (isEEflag) {
2948  bestGsfElectron.pt());
2950  bestGsfElectron.pt());
2952  bestGsfElectron.pt());
2953  }
2954 
2955  // isolation
2956  h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
2962  h1_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt());
2968  h1_ele_hcalDepth1OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(1));
2969  h1_ele_hcalDepth2OverEcalBc->Fill(bestGsfElectron.hcalOverEcalBc(2));
2970  if (isEBflag) {
2971  h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
2976  h1_ele_tkSumPt_dr04_barrel->Fill(bestGsfElectron.dr04TkSumPt());
2983  } else if (isEEflag) {
2984  h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
2989  h1_ele_tkSumPt_dr04_endcaps->Fill(bestGsfElectron.dr04TkSumPt());
2996  }
2997 
2998  // conversion rejection
2999  int flags = bestGsfElectron.convFlags();
3000  if (flags == -9999) {
3001  flags = -1;
3002  }
3003  h1_ele_convFlags->Fill(flags);
3004  if (flags >= 0.) {
3005  h1_ele_convDist->Fill(bestGsfElectron.convDist());
3006  h1_ele_convDcot->Fill(bestGsfElectron.convDcot());
3007  h1_ele_convRadius->Fill(bestGsfElectron.convRadius());
3008  }
3009 
3010  } // gsf electron found
3011 
3012  } // loop overmatching object
3013 
3014  h1_matchingObjectNum->Fill(matchingObjectNum);
3015 }
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:729
MonitorElement * h2_ele_ambiguousTracksVsPhi
float dr03HcalTowerSumEtBc(int depth=0) const
Definition: GsfElectron.h:593
MonitorElement * h1_ele_matchingObjectPt_matched
MonitorElement * h2_ele_foundHitsVsEta
MonitorElement * h2_ele_EtaMnEtamatchingObjectVsEta
MonitorElement * h2_ele_seed_dphi2posVsPt_
MonitorElement * h1_ele_dEtaSc_propVtx
MonitorElement * h1_ele_provenance_endcaps
MonitorElement * h1_ele_dEtaEleCl_propOut_barrel
MonitorElement * h1_ele_dEtaCl_propOut_endcaps
MonitorElement * h1_ele_hcalDepth1OverEcalBc_endcaps
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_barrel
MonitorElement * h1_scl_E2x5max_barrel_
MonitorElement * h1_ele_seed_mask_bpix_
MonitorElement * h1_scl_EoEmatchingObjectGolden_barrel
ElectronMcFakeValidator(const edm::ParameterSet &conf)
MonitorElement * h1_ele_PhiMnPhimatchingObject2
bool isEBEtaGap() const
Definition: GsfElectron.h:333
virtual SuperClusterRef parentSuperCluster() const
Definition: GsfElectron.h:160
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps
MonitorElement * h1_ele_matchingObjectAbsEta_matched
double pt() const final
transverse momentum
float eSuperClusterOverP() const
Definition: GsfElectron.h:221
MonitorElement * h1_scl_EoEmatchingObjectGolden_endcaps
MonitorElement * h1_ele_ecalRecHitSumEt_dr03
MonitorElement * h2_ele_EtaMnEtamatchingObjectVsPt
edm::EDGetTokenT< reco::ElectronSeedCollection > electronSeedCollection_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h2_ele_PoPmatchingObjectVsPhi
bool isEBEEGap() const
Definition: GsfElectron.h:331
MonitorElement * h1_ele_photonIso_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_barrel
MonitorElement * h1_ele_tkSumPt_dr03_endcaps
MonitorElement * h1_ele_dPhiCl_propOut_all
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalReduced04Tag_
MonitorElement * h2_ele_ambiguousTracksVsPt
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mode
MonitorElement * h1_ele_EseedOP_endcaps
MonitorElement * h1_ele_hcalDepth2OverEcalBc
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:268
MonitorElement * h1_ele_photonIso_endcaps
MonitorElement * p1_ele_fbremVsEta_mode
MonitorElement * h1_ele_chargedHadronIso_endcaps
MonitorElement * h1_scl_EoEmatchingObjectShowering_barrel
MonitorElement * h1_ele_neutralHadronIso_endcaps
MonitorElement * h1_matchingObjectAbsEta
MonitorElement * p1_ele_fbremVsEta_mean
MonitorElement * h1_ele_mva_endcaps_isolated
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull03Tag_
float dr03HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:576
MonitorElement * h2_ele_PinVsPoutShowering_mode
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_barrel
edm::EDGetTokenT< reco::GenJetCollection > matchingObjectCollection_
float dr04TkSumPt() const
Definition: GsfElectron.h:597
MonitorElement * h1_ele_tkSumPt_dr03_barrel
MonitorElement * h2_ele_vertexTIPVsPhi
edm::EDGetTokenT< reco::GsfTrackCollection > electronTrackCollection_
MonitorElement * h1_ele_foundHits_endcaps
bool isEERingGap() const
Definition: GsfElectron.h:337
const Point & vertex() const override
vertex position (overwritten by PF...)
MonitorElement * h1_ele_lostHits_endcaps
MonitorElement * h1_ele_dEtaSc_propVtx_all
float fbrem() const
Definition: GsfElectron.h:809
float scE2x5Max() const
Definition: GsfElectron.h:498
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel
MonitorElement * h1_ele_hcalDepth1OverEcalBc_barrel
MonitorElement * h1_ele_dPhiSc_propVtx_all
MonitorElement * h2_ele_dPhiScVsPhi_propVtx
MonitorElement * h2_ele_dPhiScVsEta_propVtx
MonitorElement * h2_ele_dPhiEleClVsPhi_propOut
float convDist() const
Definition: GsfElectron.h:645
MonitorElement * h1_ele_dEtaCl_propOut_all
MonitorElement * h2_ele_PinVsPoutShowering_mean
float convRadius() const
Definition: GsfElectron.h:647
MonitorElement * h2_ele_E2mnE1vsMee_all
MonitorElement * h2_ele_seed_drz2VsPt_
bool isEEDeeGap() const
Definition: GsfElectron.h:336
MonitorElement * h1_ele_HoE_bc_endcaps
MonitorElement * h1_ele_superclusterfbrem_endcaps
MonitorElement * h1_ele_neutralHadronRelativeIso_endcaps
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_endcaps_
float superClusterFbrem() const
Definition: GsfElectron.h:803
MonitorElement * h2_ele_ambiguousTracksVsEta
MonitorElement * h2_ele_outerPtVsPt_mode
bool isEE() const
Definition: GsfElectron.h:329
bool isEB() const
Definition: GsfElectron.h:328
MonitorElement * h2_ele_E2mnE1vsMee_egeg_all
MonitorElement * h2_ele_PtinVsPtoutShowering_mean
MonitorElement * h2_ele_PhiMnPhimatchingObjectVsPt
const Double_t pi
MonitorElement * h2_ele_dEtaEleClVsEta_propOut
MonitorElement * h2_ele_PinMnPoutVsChi2_mode
float convDcot() const
Definition: GsfElectron.h:646
float full5x5_sigmaIetaIeta() const
Definition: GsfElectron.h:471
void Fill(long long x)
MonitorElement * h1_ele_matchingObjectEta_matched
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
tuple d
Definition: ztail.py:151
MonitorElement * h1_scl_E2x5max_endcaps_
MonitorElement * bookH1(DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, const std::string &titleX="", const std::string &titleY="Events", Option_t *option="E1 P")
float hcalOverEcalBc(const ShowerShape &ss, int depth) const
Definition: GsfElectron.h:442
MonitorElement * h2_ele_EeleOPoutVsEta
MonitorElement * h2_ele_PinMnPoutVsPt_mode
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:156
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:563
MonitorElement * h1_ele_dEtaCl_propOut
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:225
int iEvent
Definition: GenABIO.cc:224
MonitorElement * h2_ele_dEtaScVsEta_propVtx
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1
MonitorElement * h2_ele_foundHitsVsPhi
double p() const final
magnitude of momentum vector
float hadronicOverEm() const
Definition: GsfElectron.h:500
MonitorElement * h1_ele_chargedHadronRelativeIso_barrel
MonitorElement * h2_ele_dEtaScVsPt_propVtx
float eSeedClusterOverP() const
Definition: GsfElectron.h:222
MonitorElement * h2_ele_PtinVsPtoutShowering_mode
MonitorElement * h2_ele_dEtaClVsPt_propOut
MonitorElement * h1_ele_PhiMnPhimatchingObject
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:599
MonitorElement * h1_ele_dPhiCl_propOut
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal04Tag_
MonitorElement * h1_recOfflineVertices_
MonitorElement * h1_scl_EoEmatchingObject_barrel
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2
MonitorElement * h2_ele_PoPmatchingObjectVsEta
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:229
MonitorElement * h2_ele_dPhiClVsPt_propOut
MonitorElement * h1_ele_chargedHadronIso_barrel
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")
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk04Tag_
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:270
MonitorElement * h2_ele_dPhiEleClVsPt_propOut
MonitorElement * h1_ele_tkSumPt_dr04_endcaps
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:665
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:228
MonitorElement * h1_ele_hcalDepth1OverEcalBc
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsTk03Tag_
MonitorElement * h2_ele_dEtaEleClVsPhi_propOut
MonitorElement * h1_ele_dEtaEleCl_propOut_endcaps
MonitorElement * h1_ele_PoPmatchingObject
const double infinity
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1
float dr03TkSumPt() const
Definition: GsfElectron.h:557
MonitorElement * h1_ele_convRadius_all
MonitorElement * h2_ele_PinMnPoutVsEta_mode
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * h1_ele_lostHits_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2
MonitorElement * h1_ele_neutralHadronIso_barrel
MonitorElement * h1_ele_photonRelativeIso_endcaps
float eEleClusterOverPout() const
Definition: GsfElectron.h:224
void setBookPrefix(const std::string &)
edm::EDGetTokenT< reco::VertexCollection > offlineVerticesCollection_
float sumNeutralHadronEt
sum pt of neutral hadrons // old float neutralHadronIso ;
Definition: GsfElectron.h:664
float eSeedClusterOverPout() const
Definition: GsfElectron.h:223
MonitorElement * h2_ele_vertexEtaVsPhi
MonitorElement * h1_ele_seed_mask_tec_
MonitorElement * h2_ele_outerPtVsPhi_mode
MonitorElement * h1_ele_dPhiCl_propOut_endcaps
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_endcaps
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalReduced03Tag_
MonitorElement * h2_ele_seed_drz2posVsEta_
double py() const final
y coordinate of momentum vector
MonitorElement * h1_ele_superclusterfbrem_barrel
MonitorElement * h2_ele_vertexTIPVsEta
MonitorElement * h1_ele_chargedHadronRelativeIso
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1
MonitorElement * h2_ele_PinMnPoutVsE_mode
MonitorElement * h2_ele_PinMnPoutVsPhi_mode
MonitorElement * h2_ele_dEtaEleClVsPt_propOut
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:496
MonitorElement * h1_ele_foundHits_barrel
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:230
MonitorElement * h2_ele_PoPmatchingObjectVsPt
MonitorElement * h1_ele_seed_dphi2pos_
void setBookEfficiencyFlag(const bool &)
MonitorElement * h1_ele_neutralHadronRelativeIso_barrel
edm::EDGetTokenT< reco::GsfElectronCollection > electronCollection_
edm::EDGetTokenT< reco::GsfElectronCollection > electronCollectionEndcaps_
MonitorElement * h2_ele_dEtaClVsEta_propOut
MonitorElement * h1_ele_mva_barrel_isolated
MonitorElement * h1_ele_superclusterfbrem
MonitorElement * h1_scl_EoEmatchingObject_endcaps
Log< level::Info, false > LogInfo
MonitorElement * h2_ele_PinVsPoutGolden_mode
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * h1_ele_tkSumPt_dr04_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr04
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_
MonitorElement * h1_ele_photonRelativeIso
MonitorElement * h2_ele_seed_dphi2VsPt_
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1_endcaps
MonitorElement * h2_ele_dEtaClVsPhi_propOut
MonitorElement * h2_ele_seed_drz2VsEta_
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:227
MonitorElement * h1_ele_PoPmatchingObject_endcaps
MonitorElement * h1_ele_dEtaSc_propVtx_barrel
Classification classification() const
Definition: GsfElectron.h:805
MonitorElement * h2_ele_outerPtVsEta_mode
REF castTo() const
Definition: RefToBase.h:257
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel
MonitorElement * h1_ele_seed_mask_fpix_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1_barrel
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:766
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps
MonitorElement * h2_ele_PinVsPoutGolden_mean
MonitorElement * h1_ele_EeleOPout_barrel
MonitorElement * h2_ele_EeleOPoutVsPhi
MonitorElement * h1_ele_dPhiSc_propVtx
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2
MonitorElement * h1_scl_SigIEtaIEta_barrel_
MonitorElement * h1_ele_photonRelativeIso_barrel
float mva_Isolated() const
Definition: GsfElectron.h:743
MonitorElement * h1_ele_neutralHadronIso
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:559
float mva_e_pi() const
Definition: GsfElectron.h:744
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsHcal03Tag_
MonitorElement * h2_ele_dPhiClVsPhi_propOut
MonitorElement * h2_ele_seed_dphi2posVsEta_
MonitorElement * h1_ele_EoPout_endcaps
edm::EventID id() const
Definition: EventBase.h:59
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:226
MonitorElement * h2_ele_PhiMnPhimatchingObjectVsEta
MonitorElement * h2_ele_EtaMnEtamatchingObjectVsPhi
MonitorElement * h1_ele_matchingObjectPhi_matched
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")
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_endcaps
MonitorElement * h1_scl_SigIEtaIEta_endcaps_
MonitorElement * h1_ele_EtaMnEtamatchingObject
int convFlags() const
Definition: GsfElectron.h:643
float dr04HcalTowerSumEtBc(int depth=0) const
Definition: GsfElectron.h:601
MonitorElement * h1_ele_dPhiEleCl_propOut_endcaps
MonitorElement * h2_ele_dEtaScVsPhi_propVtx
MonitorElement * h2_ele_PhiMnPhimatchingObjectVsPhi
MonitorElement * h1_ele_hcalDepth2OverEcalBc_barrel
bool isEBPhiGap() const
Definition: GsfElectron.h:334
MonitorElement * h1_ele_dPhiEleCl_propOut
MonitorElement * h1_ele_EseedOP_barrel
MonitorElement * h1_scl_ESFrac_endcaps
bool trackerDrivenSeed() const
Definition: GsfElectron.h:159
MonitorElement * h1_ele_dEtaEleCl_propOut
MonitorElement * h2_ele_seed_drz2posVsPt_
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps
const Point & position() const
position
Definition: BeamSpot.h:59
float scE5x5() const
Definition: GsfElectron.h:499
edm::EDGetTokenT< edm::ValueMap< double > > isoFromDepsEcalFull04Tag_
MonitorElement * h1_ele_dPhiSc_propVtx_endcaps
MonitorElement * h1_scl_EoEmatchingObjectShowering_endcaps
MonitorElement * h1_ele_dEtaSc_propVtx_endcaps
MonitorElement * h2_ele_seed_dphi2VsEta_
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel
MonitorElement * h2_ele_dPhiClVsEta_propOut
MonitorElement * h1_ele_dEtaCl_propOut_barrel
MonitorElement * h2_ele_dPhiScVsPt_propVtx
MonitorElement * h1_ele_dPhiSc_propVtx_barrel
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1
float dr04HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:600
MonitorElement * h1_ele_hcalDepth2OverEcalBc_endcaps
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_dPhiCl_propOut_barrel
float caloEnergy() const
Definition: GsfElectron.h:899
MonitorElement * h1_ele_chargedHadronIso
MonitorElement * h1_ele_matchingObjectZ_matched
MonitorElement * h2_ele_PtinVsPtoutGolden_mean
MonitorElement * h1_ele_dPhiEleCl_propOut_barrel
edm::EDGetTokenT< reco::GsfElectronCoreCollection > electronCoreCollection_
MonitorElement * h1_ele_neutralHadronRelativeIso
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel
MonitorElement * h1_ele_provenance_barrel
MonitorElement * h1_ele_PinMnPout_mode
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
MonitorElement * h2_ele_outerPVsEta_mode
Definition: Run.h:45
MonitorElement * h1_ele_PoPmatchingObject_barrel
int charge() const final
electric charge
float scE1x5() const
Definition: GsfElectron.h:497
MonitorElement * h1_scl_full5x5_sigmaIetaIeta_barrel_
MonitorElement * h2_ele_dPhiEleClVsEta_propOut
MonitorElement * h1_ele_ambiguousTracks
bool ecalDrivenSeed() const
Definition: GsfElectron.h:158
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_endcaps
double eta() const final
momentum pseudorapidity
MonitorElement * h1_ele_EeleOPout_endcaps
MonitorElement * h1_ele_chargedHadronRelativeIso_endcaps