CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElectronMcSignalValidator.cc
Go to the documentation of this file.
1 
2 // user include files
4 
6 
7 //#include "DQMServices/Core/interface/DQMStore.h"
9 
21 
24 
31 
32 #include "CLHEP/Units/GlobalPhysicalConstants.h"
33 #include "TMath.h"
34 #include "TFile.h"
35 #include "TH1F.h"
36 #include "TH1I.h"
37 #include "TH2F.h"
38 #include "TProfile.h"
39 #include "TTree.h"
40 #include <vector>
41 #include <iostream>
42 
43 using namespace reco;
44 
47  {
48  //outputFile_ = conf.getParameter<std::string>("outputFile");
49  mcTruthCollection_ = conf.getParameter<edm::InputTag>("mcTruthCollection");
50  electronCollection_ = conf.getParameter<edm::InputTag>("electronCollection");
51  electronCoreCollection_ = conf.getParameter<edm::InputTag>("electronCoreCollection");
52  electronTrackCollection_ = conf.getParameter<edm::InputTag>("electronTrackCollection");
53  electronSeedCollection_ = conf.getParameter<edm::InputTag>("electronSeedCollection");
54 
55  beamSpotTag_ = conf.getParameter<edm::InputTag>("beamSpot") ;
56  readAOD_ = conf.getParameter<bool>("readAOD");
57 
58  isoFromDepsTk03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsTk03" ) ;
59  isoFromDepsTk04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsTk04" ) ;
60  isoFromDepsEcalFull03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalFull03" ) ;
61  isoFromDepsEcalFull04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalFull04" ) ;
62  isoFromDepsEcalReduced03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalReduced03" ) ;
63  isoFromDepsEcalReduced04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalReduced04" ) ;
64  isoFromDepsHcal03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsHcal03" ) ;
65  isoFromDepsHcal04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsHcal04" ) ;
66 
67  maxPt_ = conf.getParameter<double>("MaxPt");
68  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
69  deltaR_ = conf.getParameter<double>("DeltaR");
70  matchingIDs_ = conf.getParameter<std::vector<int> >("MatchingID");
71  matchingMotherIDs_ = conf.getParameter<std::vector<int> >("MatchingMotherID");
72 
73  // histos bining and limits
74 
75  edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg") ;
76 
77  xyz_nbin=histosSet.getParameter<int>("Nbinxyz");
78 
79  p_nbin=histosSet.getParameter<int>("Nbinp");
80  p2D_nbin=histosSet.getParameter<int>("Nbinp2D");
81  p_max=histosSet.getParameter<double>("Pmax");
82 
83  pt_nbin=histosSet.getParameter<int>("Nbinpt");
84  pt2D_nbin=histosSet.getParameter<int>("Nbinpt2D");
85  pteff_nbin=histosSet.getParameter<int>("Nbinpteff");
86  pt_max=histosSet.getParameter<double>("Ptmax");
87 
88  fhits_nbin=histosSet.getParameter<int>("Nbinfhits");
89  fhits_max=histosSet.getParameter<double>("Fhitsmax");
90 
91  lhits_nbin=histosSet.getParameter<int>("Nbinlhits");
92  lhits_max=histosSet.getParameter<double>("Lhitsmax");
93 
94  eop_nbin=histosSet.getParameter<int>("Nbineop");
95  eop2D_nbin=histosSet.getParameter<int>("Nbineop2D");
96  eop_max=histosSet.getParameter<double>("Eopmax");
97  eopmaxsht=histosSet.getParameter<double>("Eopmaxsht");
98 
99  eta_nbin=histosSet.getParameter<int>("Nbineta");
100  eta2D_nbin=histosSet.getParameter<int>("Nbineta2D");
101  eta_min=histosSet.getParameter<double>("Etamin");
102  eta_max=histosSet.getParameter<double>("Etamax");
103 
104  deta_nbin=histosSet.getParameter<int>("Nbindeta");
105  deta_min=histosSet.getParameter<double>("Detamin");
106  deta_max=histosSet.getParameter<double>("Detamax");
107 
108  phi_nbin=histosSet.getParameter<int>("Nbinphi");
109  phi2D_nbin=histosSet.getParameter<int>("Nbinphi2D");
110  phi_min=histosSet.getParameter<double>("Phimin");
111  phi_max=histosSet.getParameter<double>("Phimax");
112 
113  detamatch_nbin=histosSet.getParameter<int>("Nbindetamatch");
114  detamatch2D_nbin=histosSet.getParameter<int>("Nbindetamatch2D");
115  detamatch_min=histosSet.getParameter<double>("Detamatchmin");
116  detamatch_max=histosSet.getParameter<double>("Detamatchmax");
117 
118  dphi_nbin=histosSet.getParameter<int>("Nbindphi");
119  dphi_min=histosSet.getParameter<double>("Dphimin");
120  dphi_max=histosSet.getParameter<double>("Dphimax");
121 
122  dphimatch_nbin=histosSet.getParameter<int>("Nbindphimatch");
123  dphimatch2D_nbin=histosSet.getParameter<int>("Nbindphimatch2D");
124  dphimatch_min=histosSet.getParameter<double>("Dphimatchmin");
125  dphimatch_max=histosSet.getParameter<double>("Dphimatchmax");
126 
127  poptrue_nbin= histosSet.getParameter<int>("Nbinpoptrue");
128  poptrue_min=histosSet.getParameter<double>("Poptruemin");
129  poptrue_max=histosSet.getParameter<double>("Poptruemax");
130 
131  mee_nbin= histosSet.getParameter<int>("Nbinmee");
132  mee_min=histosSet.getParameter<double>("Meemin");
133  mee_max=histosSet.getParameter<double>("Meemax");
134 
135  hoe_nbin= histosSet.getParameter<int>("Nbinhoe");
136  hoe_min=histosSet.getParameter<double>("Hoemin");
137  hoe_max=histosSet.getParameter<double>("Hoemax");
138 
139  // so to please coverity...
140  h1_mcNum = 0 ;
141  h1_eleNum = 0 ;
142  h1_gamNum = 0 ;
143 
144  h1_recEleNum = 0 ;
145  h1_recCoreNum = 0 ;
146  h1_recTrackNum = 0 ;
147  h1_recSeedNum = 0 ;
148 
149  h1_mc_Eta = 0 ;
150  h1_mc_AbsEta = 0 ;
151  h1_mc_P = 0 ;
152  h1_mc_Pt = 0 ;
153  h1_mc_Phi = 0 ;
154  h1_mc_Z = 0 ;
155  h2_mc_PtEta = 0 ;
156 
157  h1_mc_Eta_matched = 0 ;
159  h1_mc_Pt_matched = 0 ;
160  h1_mc_Phi_matched = 0 ;
161  h1_mc_Z_matched = 0 ;
162  h2_mc_PtEta_matched = 0 ;
163 
169 
170  h1_ele_EoverP_all = 0 ;
173  h1_ele_EseedOP_all = 0 ;
176  h1_ele_EoPout_all = 0 ;
194  h1_ele_TIP_all = 0 ;
197  h1_ele_HoE_all = 0 ;
201  h1_ele_vertexPt_all = 0 ;
202  h1_ele_Et_all = 0 ;
203  h1_ele_mee_all = 0 ;
204  h1_ele_mee_os = 0 ;
205  h1_ele_mee_os_ebeb = 0 ;
206  h1_ele_mee_os_ebee = 0 ;
207  h1_ele_mee_os_eeee = 0 ;
208  h1_ele_mee_os_gg = 0 ;
209  h1_ele_mee_os_gb = 0 ;
210  h1_ele_mee_os_bb = 0 ;
211 
214 
215  h1_ele_charge = 0 ;
216  h2_ele_chargeVsEta = 0 ;
217  h2_ele_chargeVsPhi = 0 ;
218  h2_ele_chargeVsPt = 0 ;
219  h1_ele_vertexP = 0 ;
220  h1_ele_vertexPt = 0 ;
221  h1_ele_Et = 0 ;
225  h1_ele_vertexEta = 0 ;
227  h1_ele_vertexAbsEta = 0 ;
228  h1_ele_vertexPhi = 0 ;
229  h1_ele_vertexX = 0 ;
230  h1_ele_vertexY = 0 ;
231  h1_ele_vertexZ = 0 ;
232  h1_ele_vertexTIP = 0 ;
236 
237  h1_scl_En = 0 ;
256  h1_scl_Et = 0 ;
257  h2_scl_EtVsEta = 0 ;
258  h2_scl_EtVsPhi = 0 ;
259  h2_scl_EtaVsPhi = 0 ;
260  h1_scl_Eta = 0 ;
261  h1_scl_Phi = 0 ;
262 
264 
265  h1_scl_SigEtaEta = 0 ;
268  h1_scl_SigIEtaIEta = 0 ;
271  h1_scl_E1x5 = 0 ;
272  h1_scl_E1x5_barrel = 0 ;
273  h1_scl_E1x5_endcaps = 0 ;
274  h1_scl_E2x5max = 0 ;
277  h1_scl_E5x5 = 0 ;
278  h1_scl_E5x5_barrel = 0 ;
279  h1_scl_E5x5_endcaps = 0 ;
280  h1_scl_SigEtaEta_eg = 0 ;
286  h1_scl_E1x5_eg = 0 ;
289  h1_scl_E2x5max_eg = 0 ;
292  h1_scl_E5x5_eg = 0 ;
295 
300  h1_ele_foundHits = 0 ;
306  h1_ele_lostHits = 0 ;
311  h2_ele_lostHitsVsPt = 0 ;
312  h1_ele_chi2 = 0 ;
313  h1_ele_chi2_barrel = 0 ;
314  h1_ele_chi2_endcaps = 0 ;
315  h2_ele_chi2VsEta = 0 ;
316  h2_ele_chi2VsPhi = 0 ;
317  h2_ele_chi2VsPt = 0 ;
318 
319  h1_ele_PoPtrue = 0 ;
320  h1_ele_PtoPttrue = 0 ;
321  h2_ele_PoPtrueVsEta = 0 ;
322  h2_ele_PoPtrueVsPhi = 0 ;
323  h2_ele_PoPtrueVsPt = 0 ;
333  h1_ele_EtaMnEtaTrue = 0 ;
339  h1_ele_PhiMnPhiTrue = 0 ;
346  h1_ele_PinMnPout = 0 ;
353 
354  h1_ele_outerP = 0 ;
355  h1_ele_outerP_mode = 0 ;
357  h1_ele_outerPt = 0 ;
358  h1_ele_outerPt_mode = 0 ;
362  h1_ele_EoP = 0 ;
363  h1_ele_EoP_barrel = 0 ;
364  h1_ele_EoP_endcaps = 0 ;
365  h1_ele_EoP_eg = 0 ;
368  h2_ele_EoPVsEta = 0 ;
369  h2_ele_EoPVsPhi = 0 ;
370  h2_ele_EoPVsE = 0 ;
371  h1_ele_EseedOP = 0 ;
374  h1_ele_EseedOP_eg = 0 ;
377  h2_ele_EseedOPVsEta = 0 ;
378  h2_ele_EseedOPVsPhi = 0 ;
379  h2_ele_EseedOPVsE = 0 ;
380  h1_ele_EoPout = 0 ;
383  h1_ele_EoPout_eg = 0 ;
386  h2_ele_EoPoutVsEta = 0 ;
387  h2_ele_EoPoutVsPhi = 0 ;
388  h2_ele_EoPoutVsE = 0 ;
389  h1_ele_EeleOPout = 0 ;
392  h1_ele_EeleOPout_eg = 0 ;
397  h2_ele_EeleOPoutVsE = 0 ;
398 
453 
454  h1_ele_seed_subdet2 = 0 ;
455  h1_ele_seed_mask = 0 ;
459  h1_ele_seed_dphi2 = 0 ;
465  h1_ele_seed_drz2 = 0 ;
468  h1_ele_seed_drz2pos = 0 ;
471 
472  h1_ele_classes = 0 ;
473  h1_ele_eta = 0 ;
474  h1_ele_eta_golden = 0 ;
475  h1_ele_eta_bbrem = 0 ;
476  h1_ele_eta_shower = 0 ;
477 
478  h1_ele_HoE = 0 ;
479  h1_ele_HoE_barrel = 0 ;
480  h1_ele_HoE_endcaps = 0 ;
481  h1_ele_HoE_eg = 0 ;
484  h1_ele_HoE_fiducial = 0 ;
485  h2_ele_HoEVsEta = 0 ;
486  h2_ele_HoEVsPhi = 0 ;
487  h2_ele_HoEVsE = 0 ;
488 
489  h1_ele_fbrem = 0 ;
490  h1_ele_fbrem_eg = 0 ;
493 
506 
507  h1_ele_mva = 0 ;
508  h1_ele_mva_eg = 0 ;
509  h1_ele_provenance = 0 ;
510 
511  // isolation
512  h1_ele_tkSumPt_dr03 = 0 ;
522  h1_ele_tkSumPt_dr04 = 0 ;
532 
541 
542  // conversions
543  h1_ele_convFlags = 0 ;
545  h1_ele_convDist = 0 ;
546  h1_ele_convDist_all = 0 ;
547  h1_ele_convDcot = 0 ;
548  h1_ele_convDcot_all = 0 ;
549  h1_ele_convRadius = 0 ;
551  }
552 
554  {
555 // prepareStore() ;
556 // setStoreFolder("EgammaV/ElectronMcSignalValidator") ;
557  setBookIndex(-1) ;
558  setBookPrefix("h") ;
559 
560  // mc truth collections sizes
561  h1_mcNum = bookH1withSumw2("mcNum","# mc particles",fhits_nbin,0.,fhits_max,"N_{gen}" );
562  h1_eleNum = bookH1withSumw2("mcNum_ele","# mc electrons",fhits_nbin,0.,fhits_max,"N_{gen ele}");
563  h1_gamNum = bookH1withSumw2("mcNum_gam","# mc gammas",fhits_nbin,0.,fhits_max,"N_{gen #gamma}");
564 
565  // rec event collections sizes
566  h1_recEleNum = bookH1("recEleNum","# rec electrons",11, -0.5,10.5,"N_{ele}");
567  h1_recCoreNum = bookH1("recCoreNum","# rec electron cores",21, -0.5,20.5,"N_{core}");
568  h1_recTrackNum = bookH1("recTrackNum","# rec gsf tracks",41, -0.5,40.5,"N_{track}");
569  h1_recSeedNum = bookH1("recSeedNum","# rec electron seeds",101, -0.5,100.5,"N_{seed}");
570 
571  // mc
572  setBookPrefix("h_mc") ;
573  h1_mc_Eta = bookH1withSumw2("Eta","gen #eta",eta_nbin,eta_min,eta_max,"#eta");
574  h1_mc_AbsEta = bookH1withSumw2("AbsEta","gen |#eta|",eta_nbin/2,0.,eta_max);
575  h1_mc_P = bookH1withSumw2("P","gen p",p_nbin,0.,p_max,"p (GeV/c)");
576  h1_mc_Pt = bookH1withSumw2("Pt","gen pt",pteff_nbin,5.,pt_max);
577  h1_mc_Phi = bookH1withSumw2("Phi","gen phi",phi_nbin,phi_min,phi_max);
578  h1_mc_Z = bookH1withSumw2("Z","gen z ",xyz_nbin, -25, 25 );
579  h2_mc_PtEta = bookH2withSumw2("PtEta","gen pt vs #eta",eta2D_nbin,eta_min,eta_max,pt2D_nbin,5.,pt_max );
580 
581  // all electrons
582  setBookPrefix("h_ele") ;
583  h1_ele_EoverP_all = bookH1withSumw2("EoverP_all","ele E/P_{vertex}, all reco electrons",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
584  h1_ele_EoverP_all_barrel = bookH1withSumw2("EoverP_all_barrel","ele E/P_{vertex}, all reco electrons, barrel",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
585  h1_ele_EoverP_all_endcaps = bookH1withSumw2("EoverP_all_endcaps","ele E/P_{vertex}, all reco electrons, endcaps",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
586  h1_ele_EseedOP_all = bookH1withSumw2("EseedOP_all","ele E_{seed}/P_{vertex}, all reco electrons",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
587  h1_ele_EseedOP_all_barrel = bookH1withSumw2("EseedOP_all_barrel","ele E_{seed}/P_{vertex}, all reco electrons, barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
588  h1_ele_EseedOP_all_endcaps = bookH1withSumw2("EseedOP_all_endcaps","ele E_{seed}/P_{vertex}, all reco electrons, endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
589  h1_ele_EoPout_all = bookH1withSumw2("EoPout_all","ele E_{seed}/P_{out}, all reco electrons",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
590  h1_ele_EoPout_all_barrel = bookH1withSumw2("EoPout_all_barrel","ele E_{seed}/P_{out}, all reco electrons barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
591  h1_ele_EoPout_all_endcaps = bookH1withSumw2("EoPout_all_endcaps","ele E_{seed}/P_{out}, all reco electrons endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
592  h1_ele_EeleOPout_all = bookH1withSumw2("EeleOPout_all","ele E_{ele}/P_{out}, all reco electrons",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
593  h1_ele_EeleOPout_all_barrel = bookH1withSumw2("EeleOPout_all_barrel","ele E_{ele}/P_{out}, all reco electrons barrel",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
594  h1_ele_EeleOPout_all_endcaps = bookH1withSumw2("EeleOPout_all_endcaps","ele E_{ele}/P_{out}, all reco electrons endcaps",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
595  h1_ele_dEtaSc_propVtx_all = bookH1withSumw2("dEtaSc_propVtx_all","ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
596  h1_ele_dEtaSc_propVtx_all_barrel = bookH1withSumw2("dEtaSc_propVtx_all_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
597  h1_ele_dEtaSc_propVtx_all_endcaps = bookH1withSumw2("dEtaSc_propVtx_all_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
598  h1_ele_dPhiSc_propVtx_all = bookH1withSumw2("dPhiSc_propVtx_all","ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
599  h1_ele_dPhiSc_propVtx_all_barrel = bookH1withSumw2("dPhiSc_propVtx_all_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
600  h1_ele_dPhiSc_propVtx_all_endcaps = bookH1withSumw2("dPhiSc_propVtx_all_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
601  h1_ele_dEtaCl_propOut_all = bookH1withSumw2("dEtaCl_propOut_all","ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
602  h1_ele_dEtaCl_propOut_all_barrel = bookH1withSumw2("dEtaCl_propOut_all_barrel","ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
603  h1_ele_dEtaCl_propOut_all_endcaps = bookH1withSumw2("dEtaCl_propOut_all_endcaps","ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
604  h1_ele_dPhiCl_propOut_all = bookH1withSumw2("dPhiCl_propOut_all","ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
605  h1_ele_dPhiCl_propOut_all_barrel = bookH1withSumw2("dPhiCl_propOut_all_barrel","ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
606  h1_ele_dPhiCl_propOut_all_endcaps = bookH1withSumw2("dPhiCl_propOut_all_endcaps","ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
607  h1_ele_HoE_all = bookH1withSumw2("HoE_all","ele hadronic energy / em energy, all reco electrons",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
608  h1_ele_HoE_all_barrel = bookH1withSumw2("HoE_all_barrel","ele hadronic energy / em energy, all reco electrons barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
609  h1_ele_HoE_all_endcaps = bookH1withSumw2("HoE_all_endcaps","ele hadronic energy / em energy, all reco electrons endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
610  h1_ele_HoE_bc_all = bookH1withSumw2("HoE_bc_all","ele hadronic energy / em energy, all reco electrons, behind cluster",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
611  h1_ele_vertexPt_all = bookH1withSumw2("vertexPt_all","ele p_{T}, all reco electrons",pteff_nbin,5.,pt_max,"","Events","ELE_LOGY E1 P");
612  h1_ele_Et_all = bookH1withSumw2("Et_all","ele ecal E_{T}, all reco electrons",pteff_nbin,5.,pt_max,"E_{T} (GeV)","Events","ELE_LOGY E1 P");
613  h1_ele_vertexEta_all = bookH1withSumw2("vertexEta_all","ele eta, all reco electrons",eta_nbin,eta_min,eta_max,"","Events","ELE_LOGY E1 P");
614  h1_ele_TIP_all = bookH1withSumw2("TIP_all","ele vertex transverse radius, all reco electrons", 100,0.,0.2,"r_{T} (cm)","Events","ELE_LOGY E1 P");
615  h1_ele_TIP_all_barrel = bookH1withSumw2("TIP_all_barrel","ele vertex transverse radius, all reco electrons barrel", 100,0.,0.2,"r_{T} (cm)","Events","ELE_LOGY E1 P");
616  h1_ele_TIP_all_endcaps = bookH1withSumw2("TIP_all_endcaps","ele vertex transverse radius, all reco electrons endcaps", 100,0.,0.2,"r_{T} (cm)","Events","ELE_LOGY E1 P");
617  h1_ele_mee_all = bookH1withSumw2("mee_all","ele pairs invariant mass, all reco electrons",mee_nbin, mee_min, mee_max,"m_{ee} (GeV/c^{2})","Events","ELE_LOGY E1 P");
618  h1_ele_mee_os = bookH1withSumw2("mee_os","ele pairs invariant mass, opp. sign",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
619  h1_ele_mee_os_ebeb = bookH1withSumw2("mee_os_ebeb","ele pairs invariant mass, opp. sign, EB-EB",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
620  h1_ele_mee_os_ebee = bookH1withSumw2("mee_os_ebee","ele pairs invariant mass, opp. sign, EB-EE",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
621  h1_ele_mee_os_eeee = bookH1withSumw2("mee_os_eeee","ele pairs invariant mass, opp. sign, EE-EE",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
622  h1_ele_mee_os_gg = bookH1withSumw2("mee_os_gg","ele pairs invariant mass, opp. sign, good-good",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
623  h1_ele_mee_os_gb = bookH1withSumw2("mee_os_gb","ele pairs invariant mass, opp. sign, good-bad",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
624  h1_ele_mee_os_bb = bookH1withSumw2("mee_os_bb","ele pairs invariant mass, opp. sign, bad-bad",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})","Events","ELE_LOGY E1 P");
625 
626  // duplicates
627  h2_ele_E2mnE1vsMee_all = bookH2("E2mnE1vsMee_all","E2 - E1 vs ele pairs invariant mass, all electrons",mee_nbin, mee_min, mee_max, 100, -50., 50.,"m_{e^{+}e^{-}} (GeV/c^{2})","E2 - E1 (GeV)");
628  h2_ele_E2mnE1vsMee_egeg_all = bookH2("E2mnE1vsMee_egeg_all","E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",mee_nbin, mee_min, mee_max, 100, -50., 50.,"m_{e^{+}e^{-}} (GeV/c^{2})","E2 - E1 (GeV)");
629 
630  // charge ID
631  h1_ele_ChargeMnChargeTrue = bookH1withSumw2("ChargeMnChargeTrue","ele charge - gen charge ",5,-1.,4.,"q_{rec} - q_{gen}");
632  setBookPrefix("h_mc") ;
633  h1_mc_Eta_matched_qmisid = bookH1withSumw2("Eta_matched_qmisid","charge misid vs gen eta",eta_nbin,eta_min,eta_max);
634  h1_mc_AbsEta_matched_qmisid = bookH1withSumw2("AbsEta_matched_qmisid","charge misid vs gen |eta|",eta_nbin/2,0.,eta_max);
635  h1_mc_Pt_matched_qmisid = bookH1withSumw2("Pt_matched_qmisid","charge misid vs gen transverse momentum",pteff_nbin,5.,pt_max);
636  h1_mc_Phi_matched_qmisid = bookH1withSumw2("Phi_matched_qmisid","charge misid vs gen phi",phi_nbin,phi_min,phi_max);
637  h1_mc_Z_matched_qmisid = bookH1withSumw2("Z_matched_qmisid","charge misid vs gen z",xyz_nbin, -25, 25 );
638 
639  // matched electrons
640  setBookPrefix("h_mc") ;
641  h1_mc_Eta_matched = bookH1withSumw2("Eta_matched","Efficiency vs gen eta",eta_nbin,eta_min,eta_max);
642  h1_mc_AbsEta_matched = bookH1withSumw2("AbsEta_matched","Efficiency vs gen |eta|",eta_nbin/2,0.,2.5);
643  h1_mc_Pt_matched = bookH1("Pt_matched","Efficiency vs gen transverse momentum",pteff_nbin,5.,pt_max);
644  h1_mc_Phi_matched = bookH1withSumw2("Phi_matched","Efficiency vs gen phi",phi_nbin,phi_min,phi_max);
645  h1_mc_Z_matched = bookH1withSumw2("Z_matched","Efficiency vs gen vertex z",xyz_nbin,-25,25);
646  h2_mc_PtEta_matched = bookH2withSumw2("PtEta_matched","Efficiency vs pt #eta",eta2D_nbin,eta_min,eta_max,pt2D_nbin,5.,pt_max );
647  setBookPrefix("h_ele") ;
648  h1_ele_charge = bookH1withSumw2("charge","ele charge",5,-2.5,2.5,"charge");
649  h2_ele_chargeVsEta = bookH2("chargeVsEta","ele charge vs eta",eta2D_nbin,eta_min,eta_max,5,-2.,2.);
650  h2_ele_chargeVsPhi = bookH2("chargeVsPhi","ele charge vs phi",phi2D_nbin,phi_min,phi_max,5,-2.,2.);
651  h2_ele_chargeVsPt = bookH2("chargeVsPt","ele charge vs pt",pt_nbin,0.,100.,5,-2.,2.);
652  h1_ele_vertexP = bookH1withSumw2("vertexP","ele momentum",p_nbin,0.,p_max,"p_{vertex} (GeV/c)");
653  h1_ele_vertexPt = bookH1withSumw2("vertexPt","ele transverse momentum",pt_nbin,0.,pt_max,"p_{T vertex} (GeV/c)");
654  h1_ele_Et = bookH1withSumw2("Et","ele ecal E_{T}",pt_nbin,0.,pt_max,"E_{T} (GeV)");
655  h2_ele_vertexPtVsEta = bookH2("vertexPtVsEta","ele transverse momentum vs eta",eta2D_nbin,eta_min,eta_max,pt2D_nbin,0.,pt_max);
656  h2_ele_vertexPtVsPhi = bookH2("vertexPtVsPhi","ele transverse momentum vs phi",phi2D_nbin,phi_min,phi_max,pt2D_nbin,0.,pt_max);
657  h1_ele_vertexEta = bookH1withSumw2("vertexEta","ele momentum eta",eta_nbin,eta_min,eta_max,"#eta");
658  h2_ele_vertexEtaVsPhi = bookH2("vertexEtaVsPhi","ele momentum eta vs phi",eta2D_nbin,eta_min,eta_max,phi2D_nbin,phi_min,phi_max );
659  h1_ele_vertexPhi = bookH1withSumw2("vertexPhi","ele momentum #phi",phi_nbin,phi_min,phi_max,"#phi (rad)");
660  h1_ele_vertexX = bookH1withSumw2("vertexX","ele vertex x",xyz_nbin,-0.6,0.6,"x (cm)" );
661  h1_ele_vertexY = bookH1withSumw2("vertexY","ele vertex y",xyz_nbin,-0.6,0.6,"y (cm)" );
662  h1_ele_vertexZ = bookH1withSumw2("vertexZ","ele vertex z",xyz_nbin,-25, 25,"z (cm)" );
663  h1_ele_vertexTIP = bookH1withSumw2("vertexTIP","ele transverse impact parameter (wrt gen vtx)",90,0.,0.15,"TIP (cm)");
664  h2_ele_vertexTIPVsEta = bookH2("vertexTIPVsEta","ele transverse impact parameter (wrt gen vtx) vs eta",eta2D_nbin,eta_min,eta_max,45,0.,0.15,"#eta","TIP (cm)");
665  h2_ele_vertexTIPVsPhi = bookH2("vertexTIPVsPhi","ele transverse impact parameter (wrt gen vtx) vs phi",phi2D_nbin,phi_min,phi_max,45,0.,0.15,"#phi (rad)","TIP (cm)");
666  h2_ele_vertexTIPVsPt = bookH2("vertexTIPVsPt","ele transverse impact parameter (wrt gen vtx) vs transverse momentum",pt2D_nbin,0.,pt_max,45,0.,0.15,"p_{T} (GeV/c)","TIP (cm)");
667  h1_ele_PoPtrue = bookH1withSumw2("PoPtrue","ele momentum / gen momentum",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
668  h1_ele_PoPtrue_barrel = bookH1withSumw2("PoPtrue_barrel","ele momentum / gen momentum, barrel",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
669  h1_ele_PoPtrue_endcaps = bookH1withSumw2("PoPtrue_endcaps","ele momentum / gen momentum, endcaps",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
670  h2_ele_PoPtrueVsEta = bookH2withSumw2("PoPtrueVsEta","ele momentum / gen momentum vs eta",eta2D_nbin,eta_min,eta_max,50,poptrue_min,poptrue_max);
671  h2_ele_PoPtrueVsPhi = bookH2("PoPtrueVsPhi","ele momentum / gen momentum vs phi",phi2D_nbin,phi_min,phi_max,50,poptrue_min,poptrue_max);
672  h2_ele_PoPtrueVsPt = bookH2("PoPtrueVsPt","ele momentum / gen momentum vs eta",pt2D_nbin,0.,pt_max,50,poptrue_min,poptrue_max);
673  h1_ele_PoPtrue_golden_barrel = bookH1withSumw2("PoPtrue_golden_barrel","ele momentum / gen momentum, golden, barrel",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
674  h1_ele_PoPtrue_golden_endcaps = bookH1withSumw2("PoPtrue_golden_endcaps","ele momentum / gen momentum, golden, endcaps",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
675  h1_ele_PoPtrue_showering_barrel = bookH1withSumw2("PoPtrue_showering_barrel","ele momentum / gen momentum, showering, barrel",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
676  h1_ele_PoPtrue_showering_endcaps = bookH1withSumw2("PoPtrue_showering_endcaps","ele momentum / gen momentum, showering, endcaps",poptrue_nbin,poptrue_min,poptrue_max,"P/P_{gen}");
677  h1_ele_PtoPttrue = bookH1withSumw2("PtoPttrue","ele transverse momentum / gen transverse momentum",poptrue_nbin,poptrue_min,poptrue_max,"P_{T}/P_{T}^{gen}");
678  h1_ele_PtoPttrue_barrel = bookH1withSumw2("PtoPttrue_barrel","ele transverse momentum / gen transverse momentum, barrel",poptrue_nbin,poptrue_min,poptrue_max,"P_{T}/P_{T}^{gen}");
679  h1_ele_PtoPttrue_endcaps = bookH1withSumw2("PtoPttrue_endcaps","ele transverse momentum / gen transverse momentum, endcaps",poptrue_nbin,poptrue_min,poptrue_max,"P_{T}/P_{T}^{gen}");
680  h1_ele_EtaMnEtaTrue = bookH1withSumw2("EtaMnEtaTrue","ele momentum eta - gen eta",deta_nbin,deta_min,deta_max,"#eta_{rec} - #eta_{gen}");
681  h1_ele_EtaMnEtaTrue_barrel = bookH1withSumw2("EtaMnEtaTrue_barrel","ele momentum eta - gen eta barrel",deta_nbin,deta_min,deta_max,"#eta_{rec} - #eta_{gen}");
682  h1_ele_EtaMnEtaTrue_endcaps = bookH1withSumw2("EtaMnEtaTrue_endcaps","ele momentum eta - gen eta endcaps",deta_nbin,deta_min,deta_max,"#eta_{rec} - #eta_{gen}");
683  h2_ele_EtaMnEtaTrueVsEta = bookH2("EtaMnEtaTrueVsEta","ele momentum eta - gen eta vs eta",eta2D_nbin,eta_min,eta_max,deta_nbin/2,deta_min,deta_max);
684  h2_ele_EtaMnEtaTrueVsPhi = bookH2("EtaMnEtaTrueVsPhi","ele momentum eta - gen eta vs phi",phi2D_nbin,phi_min,phi_max,deta_nbin/2,deta_min,deta_max);
685  h2_ele_EtaMnEtaTrueVsPt = bookH2("EtaMnEtaTrueVsPt","ele momentum eta - gen eta vs pt",pt_nbin,0.,pt_max,deta_nbin/2,deta_min,deta_max);
686  h1_ele_PhiMnPhiTrue = bookH1withSumw2("PhiMnPhiTrue","ele momentum phi - gen phi",dphi_nbin,dphi_min,dphi_max,"#phi_{rec} - #phi_{gen} (rad)");
687  h1_ele_PhiMnPhiTrue_barrel = bookH1withSumw2("PhiMnPhiTrue_barrel","ele momentum phi - gen phi barrel",dphi_nbin,dphi_min,dphi_max,"#phi_{rec} - #phi_{gen} (rad)");
688  h1_ele_PhiMnPhiTrue_endcaps = bookH1withSumw2("PhiMnPhiTrue_endcaps","ele momentum phi - gen phi endcaps",dphi_nbin,dphi_min,dphi_max,"#phi_{rec} - #phi_{gen} (rad)");
689  h1_ele_PhiMnPhiTrue2 = bookH1("PhiMnPhiTrue2","ele momentum phi - gen phi",dphimatch2D_nbin,dphimatch_min,dphimatch_max);
690  h2_ele_PhiMnPhiTrueVsEta = bookH2("PhiMnPhiTrueVsEta","ele momentum phi - gen phi vs eta",eta2D_nbin,eta_min,eta_max,dphi_nbin/2,dphi_min,dphi_max);
691  h2_ele_PhiMnPhiTrueVsPhi = bookH2("PhiMnPhiTrueVsPhi","ele momentum phi - gen phi vs phi",phi2D_nbin,phi_min,phi_max,dphi_nbin/2,dphi_min,dphi_max);
692  h2_ele_PhiMnPhiTrueVsPt = bookH2("PhiMnPhiTrueVsPt","ele momentum phi - gen phi vs pt",pt2D_nbin,0.,pt_max,dphi_nbin/2,dphi_min,dphi_max);
693  h1_ele_ecalEnergyError = bookH1withSumw2("ecalEnergyError","",30,0,30);
694  h1_ele_ecalEnergyError_barrel = bookH1withSumw2("ecalEnergyError_barrel","",30,0,30);
695  h1_ele_ecalEnergyError_endcaps = bookH1withSumw2("ecalEnergyError_endcaps","",30,0,30);
696  h1_ele_combinedP4Error = bookH1withSumw2("combinedP4Error","",30,0,30);
697  h1_ele_combinedP4Error_barrel = bookH1withSumw2("combinedP4Error_barrel","",30,0,30);
698  h1_ele_combinedP4Error_endcaps = bookH1withSumw2("combinedP4Error_endcaps","",30,0,30);
699 
700  // matched electron, superclusters
701  setBookPrefix("h_scl") ;
702  h1_scl_En = bookH1withSumw2("energy","ele ecal energy",p_nbin,0.,p_max);
703  h1_scl_EoEtrue_barrel = bookH1withSumw2("EoEtrue_barrel","ele ecal energy / gen energy, barrel",50,0.2,1.2,"E/E_{gen}");
704  h1_scl_EoEtrue_barrel_eg = bookH1withSumw2("EoEtrue_barrel_eg","ele ecal energy / gen energy, barrel, ecal driven",50,0.2,1.2,"E/E_{gen}");
705  h1_scl_EoEtrue_barrel_etagap = bookH1withSumw2("EoEtrue_barrel_etagap","ele ecal energy / gen energy, barrel, etagap",50,0.2,1.2,"E/E_{gen}");
706  h1_scl_EoEtrue_barrel_phigap = bookH1withSumw2("EoEtrue_barrel_phigap","ele ecal energy / gen energy, barrel, phigap",50,0.2,1.2,"E/E_{gen}");
707  h1_scl_EoEtrue_ebeegap = bookH1withSumw2("EoEtrue_ebeegap","ele ecal energy / gen energy, ebeegap",50,0.2,1.2,"E/E_{gen}");
708  h1_scl_EoEtrue_endcaps = bookH1withSumw2("EoEtrue_endcaps","ele ecal energy / gen energy, endcaps",50,0.2,1.2,"E/E_{gen}");
709  h1_scl_EoEtrue_endcaps_eg = bookH1withSumw2("EoEtrue_endcaps_eg","ele ecal energy / gen energy, endcaps, ecal driven",50,0.2,1.2,"E/E_{gen}");
710  h1_scl_EoEtrue_endcaps_deegap = bookH1withSumw2("EoEtrue_endcaps_deegap","ele ecal energy / gen energy, endcaps, deegap",50,0.2,1.2,"E/E_{gen}");
711  h1_scl_EoEtrue_endcaps_ringgap = bookH1withSumw2("EoEtrue_endcaps_ringgap","ele ecal energy / gen energy, endcaps, ringgap",50,0.2,1.2,"E/E_{gen}");
712  h1_scl_EoEtrue_barrel_new = bookH1withSumw2("EoEtrue_barrel_new","ele ecal energy / gen energy, barrel",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
713  h1_scl_EoEtrue_barrel_new_eg = bookH1withSumw2("EoEtrue_barrel_new_eg","ele ecal energy / gen energy, barrel, ecal driven",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
714  h1_scl_EoEtrue_barrel_new_etagap = bookH1withSumw2("EoEtrue_barrel_new_etagap","ele ecal energy / gen energy, barrel, etagap",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
715  h1_scl_EoEtrue_barrel_new_phigap = bookH1withSumw2("EoEtrue_barrel_new_phigap","ele ecal energy / gen energy, barrel, phigap",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
716  h1_scl_EoEtrue_ebeegap_new = bookH1withSumw2("EoEtrue_ebeegap_new","ele ecal energy / gen energy, ebeegap",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
717  h1_scl_EoEtrue_endcaps_new = bookH1withSumw2("EoEtrue_endcaps_new","ele ecal energy / gen energy, endcaps",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
718  h1_scl_EoEtrue_endcaps_new_eg = bookH1withSumw2("EoEtrue_endcaps_new_eg","ele ecal energy / gen energy, endcaps, ecal driven",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
719  h1_scl_EoEtrue_endcaps_new_deegap = bookH1withSumw2("EoEtrue_endcaps_new_deegap","ele ecal energy / gen energy, endcaps, deegap",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
720  h1_scl_EoEtrue_endcaps_new_ringgap = bookH1withSumw2("EoEtrue_endcaps_new_ringgap","ele ecal energy / gen energy, endcaps, ringgap",poptrue_nbin,poptrue_min,poptrue_max,"E/E_{gen}");
721  h1_scl_Et = bookH1withSumw2("et","ele supercluster transverse energy",pt_nbin,0.,pt_max);
722  h2_scl_EtVsEta = bookH2("etVsEta","ele supercluster transverse energy vs eta",eta2D_nbin,eta_min,eta_max,pt_nbin,0.,pt_max);
723  h2_scl_EtVsPhi = bookH2("etVsPhi","ele supercluster transverse energy vs phi",phi2D_nbin,phi_min,phi_max,pt_nbin,0.,pt_max);
724  h2_scl_EtaVsPhi = bookH2("etaVsPhi","ele supercluster eta vs phi",phi2D_nbin,phi_min,phi_max,eta2D_nbin,eta_min,eta_max);
725  h1_scl_Eta = bookH1withSumw2("eta","ele supercluster eta",eta_nbin,eta_min,eta_max);
726  h1_scl_Phi = bookH1withSumw2("phi","ele supercluster phi",phi_nbin,phi_min,phi_max);
727  h1_scl_SigEtaEta = bookH1withSumw2("sigetaeta","ele supercluster sigma eta eta",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
728  h1_scl_SigEtaEta_barrel = bookH1withSumw2("sigetaeta_barrel","ele supercluster sigma eta eta barrel",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
729  h1_scl_SigEtaEta_endcaps = bookH1withSumw2("sigetaeta_endcaps","ele supercluster sigma eta eta endcaps",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
730  h1_scl_SigIEtaIEta = bookH1withSumw2("sigietaieta","ele supercluster sigma ieta ieta",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
731  h1_scl_SigIEtaIEta_barrel = bookH1withSumw2("sigietaieta_barrel","ele supercluster sigma ieta ieta, barrel",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
732  h1_scl_SigIEtaIEta_endcaps = bookH1withSumw2("sigietaieta_endcaps","ele supercluster sigma ieta ieta, endcaps",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
733  h1_scl_E1x5 = bookH1withSumw2("E1x5","ele supercluster energy in 1x5",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
734  h1_scl_E1x5_barrel = bookH1withSumw2("E1x5_barrel","ele supercluster energy in 1x5 barrel",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
735  h1_scl_E1x5_endcaps = bookH1withSumw2("E1x5_endcaps","ele supercluster energy in 1x5 endcaps",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
736  h1_scl_E2x5max = bookH1withSumw2("E2x5max","ele supercluster energy in 2x5 max",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
737  h1_scl_E2x5max_barrel = bookH1withSumw2("E2x5max_barrel","ele supercluster energy in 2x5 _max barrel",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
738  h1_scl_E2x5max_endcaps = bookH1withSumw2("E2x5max_endcaps","ele supercluster energy in 2x5 _max endcaps",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
739  h1_scl_E5x5 = bookH1withSumw2("E5x5","ele supercluster energy in 5x5",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
740  h1_scl_E5x5_barrel = bookH1withSumw2("E5x5_barrel","ele supercluster energy in 5x5 barrel",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
741  h1_scl_E5x5_endcaps = bookH1withSumw2("E5x5_endcaps","ele supercluster energy in 5x5 endcaps",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
742  h1_scl_SigEtaEta_eg = bookH1withSumw2("sigetaeta_eg","ele supercluster sigma eta eta, ecal driven",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
743  h1_scl_SigEtaEta_eg_barrel = bookH1withSumw2("sigetaeta_eg_barrel","ele supercluster sigma eta eta, ecal driven barrel",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
744  h1_scl_SigEtaEta_eg_endcaps = bookH1withSumw2("sigetaeta_eg_endcaps","ele supercluster sigma eta eta, ecal driven endcaps",100,0.,0.05,"#sigma_{#eta #eta}","Events","ELE_LOGY E1 P");
745  h1_scl_SigIEtaIEta_eg = bookH1withSumw2("sigietaieta_eg","ele supercluster sigma ieta ieta, ecal driven",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
746  h1_scl_SigIEtaIEta_eg_barrel = bookH1withSumw2("sigietaieta_barrel_eg","ele supercluster sigma ieta ieta, barrel, ecal driven",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
747  h1_scl_SigIEtaIEta_eg_endcaps = bookH1withSumw2("sigietaieta_endcaps_eg","ele supercluster sigma ieta ieta, endcaps, ecal driven",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
748  h1_scl_E1x5_eg = bookH1withSumw2("E1x5_eg","ele supercluster energy in 1x5, ecal driven",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
749  h1_scl_E1x5_eg_barrel = bookH1withSumw2("E1x5_eg_barrel","ele supercluster energy in 1x5, ecal driven barrel",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
750  h1_scl_E1x5_eg_endcaps = bookH1withSumw2("E1x5_eg_endcaps","ele supercluster energy in 1x5, ecal driven endcaps",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
751  h1_scl_E2x5max_eg = bookH1withSumw2("E2x5max_eg","ele supercluster energy in 2x5 _max, ecal driven",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
752  h1_scl_E2x5max_eg_barrel = bookH1withSumw2("E2x5max_eg_barrel","ele supercluster energy in 2x5 _max, ecal driven barrel",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
753  h1_scl_E2x5max_eg_endcaps = bookH1withSumw2("E2x5max_eg_endcaps","ele supercluster energy in 2x5 _max, ecal driven endcaps",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
754  h1_scl_E5x5_eg = bookH1withSumw2("E5x5_eg","ele supercluster energy in 5x5, ecal driven",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
755  h1_scl_E5x5_eg_barrel = bookH1withSumw2("E5x5_eg_barrel","ele supercluster energy in 5x5, ecal driven barrel",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
756  h1_scl_E5x5_eg_endcaps = bookH1withSumw2("E5x5_eg_endcaps","ele supercluster energy in 5x5, ecal driven endcaps",p_nbin,0.,p_max,"E5x5 (GeV)");
757  h2_scl_EoEtruePfVsEg = bookH2("EoEtruePfVsEg","ele supercluster energy / gen energy pflow vs eg",75,-0.1,1.4, 75, -0.1, 1.4,"E/E_{gen} (e/g)","E/E_{gen} (pflow)") ;
758 
759  // matched electron, gsf tracks
760  setBookPrefix("h_ele") ;
761  h1_ele_ambiguousTracks = bookH1withSumw2("ambiguousTracks","ele # ambiguous tracks", 5,0.,5.,"N_{ambiguous tracks}","Events","ELE_LOGY E1 P");
762  h2_ele_ambiguousTracksVsEta = bookH2("ambiguousTracksVsEta","ele # ambiguous tracks vs eta",eta2D_nbin,eta_min,eta_max,5,0.,5.);
763  h2_ele_ambiguousTracksVsPhi = bookH2("ambiguousTracksVsPhi","ele # ambiguous tracks vs phi",phi2D_nbin,phi_min,phi_max,5,0.,5.);
764  h2_ele_ambiguousTracksVsPt = bookH2("ambiguousTracksVsPt","ele # ambiguous tracks vs pt",pt2D_nbin,0.,pt_max,5,0.,5.);
765  h1_ele_foundHits = bookH1withSumw2("foundHits","ele track # found hits",fhits_nbin,0.,fhits_max,"N_{hits}");
766  h1_ele_foundHits_barrel = bookH1withSumw2("foundHits_barrel","ele track # found hits, barrel",fhits_nbin,0.,fhits_max,"N_{hits}");
767  h1_ele_foundHits_endcaps = bookH1withSumw2("foundHits_endcaps","ele track # found hits, endcaps",fhits_nbin,0.,fhits_max,"N_{hits}");
768  h2_ele_foundHitsVsEta = bookH2("foundHitsVsEta","ele track # found hits vs eta",eta2D_nbin,eta_min,eta_max,fhits_nbin,0.,fhits_max);
769  h2_ele_foundHitsVsPhi = bookH2("foundHitsVsPhi","ele track # found hits vs phi",phi2D_nbin,phi_min,phi_max,fhits_nbin,0.,fhits_max);
770  h2_ele_foundHitsVsPt = bookH2("foundHitsVsPt","ele track # found hits vs pt",pt2D_nbin,0.,pt_max,fhits_nbin,0.,fhits_max);
771  h1_ele_lostHits = bookH1withSumw2("lostHits","ele track # lost hits", 5,0.,5.,"N_{lost hits}");
772  h1_ele_lostHits_barrel = bookH1withSumw2("lostHits_barrel","ele track # lost hits, barrel", 5,0.,5.,"N_{lost hits}");
773  h1_ele_lostHits_endcaps = bookH1withSumw2("lostHits_endcaps","ele track # lost hits, endcaps", 5,0.,5.,"N_{lost hits}");
774  h2_ele_lostHitsVsEta = bookH2("lostHitsVsEta","ele track # lost hits vs eta",eta2D_nbin,eta_min,eta_max,lhits_nbin,0.,lhits_max);
775  h2_ele_lostHitsVsPhi = bookH2("lostHitsVsPhi","ele track # lost hits vs eta",phi2D_nbin,phi_min,phi_max,lhits_nbin,0.,lhits_max);
776  h2_ele_lostHitsVsPt = bookH2("lostHitsVsPt","ele track # lost hits vs eta",pt2D_nbin,0.,pt_max,lhits_nbin,0.,lhits_max);
777  h1_ele_chi2 = bookH1withSumw2("chi2","ele track #chi^{2}",100,0.,15.,"#Chi^{2}","Events","ELE_LOGY E1 P");
778  h1_ele_chi2_barrel = bookH1withSumw2("chi2_barrel","ele track #chi^{2}, barrel",100,0.,15.,"#Chi^{2}","Events","ELE_LOGY E1 P");
779  h1_ele_chi2_endcaps = bookH1withSumw2("chi2_endcaps","ele track #chi^{2}, endcaps",100,0.,15.,"#Chi^{2}","Events","ELE_LOGY E1 P");
780  h2_ele_chi2VsEta = bookH2("chi2VsEta","ele track #chi^{2} vs eta",eta2D_nbin,eta_min,eta_max,50,0.,15.);
781  h2_ele_chi2VsPhi = bookH2("chi2VsPhi","ele track #chi^{2} vs phi",phi2D_nbin,phi_min,phi_max,50,0.,15.);
782  h2_ele_chi2VsPt = bookH2("chi2VsPt","ele track #chi^{2} vs pt",pt2D_nbin,0.,pt_max,50,0.,15.);
783  h1_ele_PinMnPout = bookH1withSumw2("PinMnPout","ele track inner p - outer p, mean of GSF components" ,p_nbin,0.,200.,"P_{vertex} - P_{out} (GeV/c)");
784  h1_ele_PinMnPout_mode = bookH1withSumw2("PinMnPout_mode","ele track inner p - outer p, mode of GSF components" ,p_nbin,0.,100.,"P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
785  h2_ele_PinMnPoutVsEta_mode = bookH2("PinMnPoutVsEta_mode","ele track inner p - outer p vs eta, mode of GSF components" ,eta2D_nbin, eta_min,eta_max,p2D_nbin,0.,100.);
786  h2_ele_PinMnPoutVsPhi_mode = bookH2("PinMnPoutVsPhi_mode","ele track inner p - outer p vs phi, mode of GSF components" ,phi2D_nbin, phi_min,phi_max,p2D_nbin,0.,100.);
787  h2_ele_PinMnPoutVsPt_mode = bookH2("PinMnPoutVsPt_mode","ele track inner p - outer p vs pt, mode of GSF components" ,pt2D_nbin, 0.,pt_max,p2D_nbin,0.,100.);
788  h2_ele_PinMnPoutVsE_mode = bookH2("PinMnPoutVsE_mode","ele track inner p - outer p vs E, mode of GSF components" ,p2D_nbin, 0.,200.,p2D_nbin,0.,100.);
789  h2_ele_PinMnPoutVsChi2_mode = bookH2("PinMnPoutVsChi2_mode","ele track inner p - outer p vs track chi2, mode of GSF components" ,50, 0.,20.,p2D_nbin,0.,100.);
790  h1_ele_outerP = bookH1withSumw2("outerP","ele track outer p, mean of GSF components",p_nbin,0.,p_max,"P_{out} (GeV/c)");
791  h1_ele_outerP_mode = bookH1withSumw2("outerP_mode","ele track outer p, mode of GSF components",p_nbin,0.,p_max,"P_{out} (GeV/c)");
792  h2_ele_outerPVsEta_mode = bookH2("outerPVsEta_mode","ele track outer p vs eta mode",eta2D_nbin,eta_min,eta_max,50,0.,p_max);
793  h1_ele_outerPt = bookH1withSumw2("outerPt","ele track outer p_{T}, mean of GSF components",pt_nbin,0.,pt_max,"P_{T out} (GeV/c)");
794  h1_ele_outerPt_mode = bookH1withSumw2("outerPt_mode","ele track outer p_{T}, mode of GSF components",pt_nbin,0.,pt_max,"P_{T out} (GeV/c)");
795  h2_ele_outerPtVsEta_mode = bookH2("outerPtVsEta_mode","ele track outer p_{T} vs eta, mode of GSF components",eta2D_nbin,eta_min,eta_max,pt2D_nbin,0.,pt_max);
796  h2_ele_outerPtVsPhi_mode = bookH2("outerPtVsPhi_mode","ele track outer p_{T} vs phi, mode of GSF components",phi2D_nbin,phi_min,phi_max,pt2D_nbin,0.,pt_max);
797  h2_ele_outerPtVsPt_mode = bookH2("outerPtVsPt_mode","ele track outer p_{T} vs pt, mode of GSF components",pt2D_nbin,0.,100.,pt2D_nbin,0.,pt_max);
798 
799  // matched electrons, matching
800  h1_ele_EoP = bookH1withSumw2("EoP","ele E/P_{vertex}",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
801  h1_ele_EoP_eg = bookH1withSumw2("EoP_eg","ele E/P_{vertex}, ecal driven",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
802  h1_ele_EoP_barrel = bookH1withSumw2("EoP_barrel","ele E/P_{vertex} barrel",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
803  h1_ele_EoP_eg_barrel = bookH1withSumw2("EoP_eg_barrel","ele E/P_{vertex}, ecal driven barrel",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
804  h1_ele_EoP_endcaps = bookH1withSumw2("EoP_endcaps","ele E/P_{vertex} endcaps",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
805  h1_ele_EoP_eg_endcaps = bookH1withSumw2("EoP_eg_endcaps","ele E/P_{vertex}, ecal driven endcaps",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
806  h2_ele_EoPVsEta = bookH2("EoPVsEta","ele E/P_{vertex} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
807  h2_ele_EoPVsPhi = bookH2("EoPVsPhi","ele E/P_{vertex} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
808  h2_ele_EoPVsE = bookH2("EoPVsE","ele E/P_{vertex} vs E", 50,0.,p_max ,50,0.,5.);
809  h1_ele_EseedOP = bookH1withSumw2("EseedOP","ele E_{seed}/P_{vertex}",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
810  h1_ele_EseedOP_eg = bookH1withSumw2("EseedOP_eg","ele E_{seed}/P_{vertex}, ecal driven",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
811  h1_ele_EseedOP_barrel = bookH1withSumw2("EseedOP_barrel","ele E_{seed}/P_{vertex} barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
812  h1_ele_EseedOP_eg_barrel = bookH1withSumw2("EseedOP_eg_barrel","ele E_{seed}/P_{vertex}, ecal driven barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
813  h1_ele_EseedOP_endcaps = bookH1withSumw2("EseedOP_endcaps","ele E_{seed}/P_{vertex} endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
814  h1_ele_EseedOP_eg_endcaps = bookH1withSumw2("EseedOP_eg_endcaps","ele E_{seed}/P_{vertex}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
815  h2_ele_EseedOPVsEta = bookH2("EseedOPVsEta","ele E_{seed}/P_{vertex} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
816  h2_ele_EseedOPVsPhi = bookH2("EseedOPVsPhi","ele E_{seed}/P_{vertex} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
817  h2_ele_EseedOPVsE = bookH2("EseedOPVsE","ele E_{seed}/P_{vertex} vs E", 50,0.,p_max ,50,0.,5.);
818  h1_ele_EoPout = bookH1withSumw2("EoPout","ele E_{seed}/P_{out}",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
819  h1_ele_EoPout_eg = bookH1withSumw2("EoPout_eg","ele E_{seed}/P_{out}, ecal driven",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
820  h1_ele_EoPout_barrel = bookH1withSumw2("EoPout_barrel","ele E_{seed}/P_{out} barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
821  h1_ele_EoPout_eg_barrel = bookH1withSumw2("EoPout_eg_barrel","ele E_{seed}/P_{out}, ecal driven, barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
822  h1_ele_EoPout_endcaps = bookH1withSumw2("EoPout_endcaps","ele E_{seed}/P_{out} endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
823  h1_ele_EoPout_eg_endcaps = bookH1withSumw2("EoPout_eg_endcaps","ele E_{seed}/P_{out}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
824  h2_ele_EoPoutVsEta = bookH2("EoPoutVsEta","ele E_{seed}/P_{out} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
825  h2_ele_EoPoutVsPhi = bookH2("EoPoutVsPhi","ele E_{seed}/P_{out} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
826  h2_ele_EoPoutVsE = bookH2("EoPoutVsE","ele E_{seed}/P_{out} vs E",p2D_nbin,0.,p_max,eop2D_nbin,0.,eopmaxsht);
827  h1_ele_EeleOPout = bookH1withSumw2("EeleOPout","ele E_{ele}/P_{out}",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
828  h1_ele_EeleOPout_eg = bookH1withSumw2("EeleOPout_eg","ele E_{ele}/P_{out}, ecal driven",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
829  h1_ele_EeleOPout_barrel = bookH1withSumw2("EeleOPout_barrel","ele E_{ele}/P_{out} barrel",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
830  h1_ele_EeleOPout_eg_barrel = bookH1withSumw2("EeleOPout_eg_barrel","ele E_{ele}/P_{out}, ecal driven, barrel",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
831  h1_ele_EeleOPout_endcaps = bookH1withSumw2("EeleOPout_endcaps","ele E_{ele}/P_{out} endcaps",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
832  h1_ele_EeleOPout_eg_endcaps = bookH1withSumw2("EeleOPout_eg_endcaps","ele E_{ele}/P_{out}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
833  h2_ele_EeleOPoutVsEta = bookH2("EeleOPoutVsEta","ele E_{ele}/P_{out} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
834  h2_ele_EeleOPoutVsPhi = bookH2("EeleOPoutVsPhi","ele E_{ele}/P_{out} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
835  h2_ele_EeleOPoutVsE = bookH2("EeleOPoutVsE","ele E_{ele}/P_{out} vs E",p2D_nbin,0.,p_max,eop2D_nbin,0.,eopmaxsht);
836  h1_ele_dEtaSc_propVtx = bookH1withSumw2("dEtaSc_propVtx","ele #eta_{sc} - #eta_{tr}, prop from vertex",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
837  h1_ele_dEtaSc_propVtx_eg = bookH1withSumw2("dEtaSc_propVtx_eg","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
838  h1_ele_dEtaSc_propVtx_barrel = bookH1withSumw2("dEtaSc_propVtx_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
839  h1_ele_dEtaSc_propVtx_eg_barrel = bookH1withSumw2("dEtaSc_propVtx_eg_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
840  h1_ele_dEtaSc_propVtx_endcaps = bookH1withSumw2("dEtaSc_propVtx_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
841  h1_ele_dEtaSc_propVtx_eg_endcaps = bookH1withSumw2("dEtaSc_propVtx_eg_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
842  h2_ele_dEtaScVsEta_propVtx = bookH2("dEtaScVsEta_propVtx","ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
843  h2_ele_dEtaScVsPhi_propVtx = bookH2("dEtaScVsPhi_propVtx","ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
844  h2_ele_dEtaScVsPt_propVtx = bookH2("dEtaScVsPt_propVtx","ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
845  h1_ele_dPhiSc_propVtx = bookH1withSumw2("dPhiSc_propVtx","ele #phi_{sc} - #phi_{tr}, prop from vertex",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
846  h1_ele_dPhiSc_propVtx_eg = bookH1withSumw2("dPhiSc_propVtx_eg","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
847  h1_ele_dPhiSc_propVtx_barrel = bookH1withSumw2("dPhiSc_propVtx_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
848  h1_ele_dPhiSc_propVtx_eg_barrel = bookH1withSumw2("dPhiSc_propVtx_eg_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
849  h1_ele_dPhiSc_propVtx_endcaps = bookH1withSumw2("dPhiSc_propVtx_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
850  h1_ele_dPhiSc_propVtx_eg_endcaps = bookH1withSumw2("dPhiSc_propVtx_eg_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
851  h2_ele_dPhiScVsEta_propVtx = bookH2("dPhiScVsEta_propVtx","ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
852  h2_ele_dPhiScVsPhi_propVtx = bookH2("dPhiScVsPhi_propVtx","ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
853  h2_ele_dPhiScVsPt_propVtx = bookH2("dPhiScVsPt_propVtx","ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
854  h1_ele_dEtaCl_propOut = bookH1withSumw2("dEtaCl_propOut","ele #eta_{cl} - #eta_{tr}, prop from outermost",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
855  h1_ele_dEtaCl_propOut_eg = bookH1withSumw2("dEtaCl_propOut_eg","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
856  h1_ele_dEtaCl_propOut_barrel = bookH1withSumw2("dEtaCl_propOut_barrel","ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
857  h1_ele_dEtaCl_propOut_eg_barrel = bookH1withSumw2("dEtaCl_propOut_eg_barrel","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
858  h1_ele_dEtaCl_propOut_endcaps = bookH1withSumw2("dEtaCl_propOut_endcaps","ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
859  h1_ele_dEtaCl_propOut_eg_endcaps = bookH1withSumw2("dEtaCl_propOut_eg_endcaps","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
860  h2_ele_dEtaClVsEta_propOut = bookH2("dEtaClVsEta_propOut","ele #eta_{cl} - #eta_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
861  h2_ele_dEtaClVsPhi_propOut = bookH2("dEtaClVsPhi_propOut","ele #eta_{cl} - #eta_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
862  h2_ele_dEtaClVsPt_propOut = bookH2("dEtaScVsPt_propOut","ele #eta_{cl} - #eta_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
863  h1_ele_dPhiCl_propOut = bookH1withSumw2("dPhiCl_propOut","ele #phi_{cl} - #phi_{tr}, prop from outermost",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
864  h1_ele_dPhiCl_propOut_eg = bookH1withSumw2("dPhiCl_propOut_eg","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
865  h1_ele_dPhiCl_propOut_barrel = bookH1withSumw2("dPhiCl_propOut_barrel","ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
866  h1_ele_dPhiCl_propOut_eg_barrel = bookH1withSumw2("dPhiCl_propOut_eg_barrel","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
867  h1_ele_dPhiCl_propOut_endcaps = bookH1withSumw2("dPhiCl_propOut_endcaps","ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
868  h1_ele_dPhiCl_propOut_eg_endcaps = bookH1withSumw2("dPhiCl_propOut_eg_endcaps","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
869  h2_ele_dPhiClVsEta_propOut = bookH2("dPhiClVsEta_propOut","ele #phi_{cl} - #phi_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
870  h2_ele_dPhiClVsPhi_propOut = bookH2("dPhiClVsPhi_propOut","ele #phi_{cl} - #phi_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
871  h2_ele_dPhiClVsPt_propOut = bookH2("dPhiSClsPt_propOut","ele #phi_{cl} - #phi_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
872  h1_ele_dEtaEleCl_propOut = bookH1withSumw2("dEtaEleCl_propOut","ele #eta_{EleCl} - #eta_{tr}, prop from outermost",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
873  h1_ele_dEtaEleCl_propOut_eg = bookH1withSumw2("dEtaEleCl_propOut_eg","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
874  h1_ele_dEtaEleCl_propOut_barrel = bookH1withSumw2("dEtaEleCl_propOut_barrel","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
875  h1_ele_dEtaEleCl_propOut_eg_barrel = bookH1withSumw2("dEtaEleCl_propOut_eg_barrel","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
876  h1_ele_dEtaEleCl_propOut_endcaps = bookH1withSumw2("dEtaEleCl_propOut_endcaps","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
877  h1_ele_dEtaEleCl_propOut_eg_endcaps = bookH1withSumw2("dEtaEleCl_propOut_eg_endcaps","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
878  h2_ele_dEtaEleClVsEta_propOut = bookH2("dEtaEleClVsEta_propOut","ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
879  h2_ele_dEtaEleClVsPhi_propOut = bookH2("dEtaEleClVsPhi_propOut","ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
880  h2_ele_dEtaEleClVsPt_propOut = bookH2("dEtaScVsPt_propOut","ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
881  h1_ele_dPhiEleCl_propOut = bookH1withSumw2("dPhiEleCl_propOut","ele #phi_{EleCl} - #phi_{tr}, prop from outermost",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
882  h1_ele_dPhiEleCl_propOut_eg = bookH1withSumw2("dPhiEleCl_propOut_eg","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
883  h1_ele_dPhiEleCl_propOut_barrel = bookH1withSumw2("dPhiEleCl_propOut_barrel","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
884  h1_ele_dPhiEleCl_propOut_eg_barrel = bookH1withSumw2("dPhiEleCl_propOut_eg_barrel","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
885  h1_ele_dPhiEleCl_propOut_endcaps = bookH1withSumw2("dPhiEleCl_propOut_endcaps","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
886  h1_ele_dPhiEleCl_propOut_eg_endcaps = bookH1withSumw2("dPhiEleCl_propOut_eg_endcaps","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
887  h2_ele_dPhiEleClVsEta_propOut = bookH2("dPhiEleClVsEta_propOut","ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
888  h2_ele_dPhiEleClVsPhi_propOut = bookH2("dPhiEleClVsPhi_propOut","ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
889  h2_ele_dPhiEleClVsPt_propOut = bookH2("dPhiSEleClsPt_propOut","ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
890  h1_ele_HoE = bookH1withSumw2("HoE","ele hadronic energy / em energy",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
891  h1_ele_HoE_bc = bookH1withSumw2("HoE_bc","ele hadronic energy / em energy behind cluster",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
892  h1_ele_HoE_eg = bookH1withSumw2("HoE_eg","ele hadronic energy / em energy, ecal driven",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
893  h1_ele_HoE_barrel = bookH1withSumw2("HoE_barrel","ele hadronic energy / em energy, barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
894  h1_ele_HoE_bc_barrel = bookH1withSumw2("HoE_bc_barrel","ele hadronic energy / em energy, behind cluster barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
895  h1_ele_HoE_eg_barrel = bookH1withSumw2("HoE_eg_barrel","ele hadronic energy / em energy, ecal driven, barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
896  h1_ele_HoE_endcaps = bookH1withSumw2("HoE_endcaps","ele hadronic energy / em energy, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
897  h1_ele_HoE_bc_endcaps = bookH1withSumw2("HoE_bc_endcaps","ele hadronic energy / em energy, behind cluster, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
898  h1_ele_HoE_eg_endcaps = bookH1withSumw2("HoE_eg_endcaps","ele hadronic energy / em energy, ecal driven, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
899  h1_ele_hcalDepth1OverEcalBc = bookH1withSumw2("hcalDepth1OverEcalBc","hcalDepth1OverEcalBc",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
900  h1_ele_hcalDepth1OverEcalBc_barrel = bookH1withSumw2("hcalDepth1OverEcalBc_barrel","hcalDepth1OverEcalBc_barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
901  h1_ele_hcalDepth1OverEcalBc_endcaps = bookH1withSumw2("hcalDepth1OverEcalBc_endcaps","hcalDepth1OverEcalBc_endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
902  h1_ele_hcalDepth2OverEcalBc = bookH1withSumw2("hcalDepth2OverEcalBc","hcalDepth2OverEcalBc",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
903  h1_ele_hcalDepth2OverEcalBc_barrel = bookH1withSumw2("hcalDepth2OverEcalBc_barrel","hcalDepth2OverEcalBc_barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
904  h1_ele_hcalDepth2OverEcalBc_endcaps = bookH1withSumw2("hcalDepth2OverEcalBc_endcaps","hcalDepth2OverEcalBc_endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
905 
906  h1_ele_HoE_fiducial = bookH1withSumw2("HoE_fiducial","ele hadronic energy / em energy, fiducial region",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
907  h2_ele_HoEVsEta = bookH2("HoEVsEta","ele hadronic energy / em energy vs eta",eta_nbin,eta_min,eta_max,hoe_nbin, hoe_min, hoe_max) ;
908  h2_ele_HoEVsPhi = bookH2("HoEVsPhi","ele hadronic energy / em energy vs phi",phi2D_nbin,phi_min,phi_max,hoe_nbin, hoe_min, hoe_max) ;
909  h2_ele_HoEVsE = bookH2("HoEVsE","ele hadronic energy / em energy vs E",p_nbin, 0.,300.,hoe_nbin, hoe_min, hoe_max) ;
910 
911  // seeds
912  h1_ele_seed_subdet2 = bookH1withSumw2("seedSubdet2","ele seed subdet 2nd layer",11,-0.5,10.5,"2nd hit subdet Id") ;
913  h1_ele_seed_mask = bookH1withSumw2("seedMask","ele seed hits mask",13,-0.5,12.5) ;
914  h1_ele_seed_mask_bpix = bookH1withSumw2("seedMask_Bpix","ele seed hits mask when subdet2 is bpix",13,-0.5,12.5) ;
915  h1_ele_seed_mask_fpix = bookH1withSumw2("seedMask_Fpix","ele seed hits mask when subdet2 is fpix",13,-0.5,12.5) ;
916  h1_ele_seed_mask_tec = bookH1withSumw2("seedMask_Tec","ele seed hits mask when subdet2 is tec",13,-0.5,12.5) ;
917  h1_ele_seed_dphi2 = bookH1withSumw2("seedDphi2","ele seed dphi 2nd layer", 50,-0.010,+0.010,"#phi_{hit}-#phi_{pred} (rad)") ;
918  h2_ele_seed_dphi2VsEta = bookH2("seedDphi2_VsEta","ele seed dphi 2nd layer vs eta",eta2D_nbin,eta_min,eta_max,50,-0.003,+0.003) ;
919  h2_ele_seed_dphi2VsPt = bookH2("seedDphi2_VsPt","ele seed dphi 2nd layer vs pt",pt2D_nbin,0.,pt_max,50,-0.003,+0.003) ;
920  h1_ele_seed_dphi2pos = bookH1withSumw2("seedDphi2Pos","ele seed dphi 2nd layer positron", 50,-0.010,+0.010,"#phi_{hit}-#phi_{pred} (rad)") ;
921  h2_ele_seed_dphi2posVsEta = bookH2("seedDphi2Pos_VsEta","ele seed dphi 2nd layer positron vs eta",eta2D_nbin,eta_min,eta_max,50,-0.003,+0.003) ;
922  h2_ele_seed_dphi2posVsPt = bookH2("seedDphi2Pos_VsPt","ele seed dphi 2nd layer positron vs pt",pt2D_nbin,0.,pt_max,50,-0.003,+0.003) ;
923  h1_ele_seed_drz2 = bookH1withSumw2("seedDrz2","ele seed dr (dz) 2nd layer", 50,-0.03,+0.03,"r(z)_{hit}-r(z)_{pred} (cm)") ;
924  h2_ele_seed_drz2VsEta = bookH2("seedDrz2_VsEta","ele seed dr/dz 2nd layer vs eta",eta2D_nbin,eta_min,eta_max,50,-0.03,+0.03) ;
925  h2_ele_seed_drz2VsPt = bookH2("seedDrz2_VsPt","ele seed dr/dz 2nd layer vs pt",pt2D_nbin,0.,pt_max,50,-0.03,+0.03) ;
926  h1_ele_seed_drz2pos = bookH1withSumw2("seedDrz2Pos","ele seed dr (dz) 2nd layer positron", 50,-0.03,+0.03,"r(z)_{hit}-r(z)_{pred} (cm)") ;
927  h2_ele_seed_drz2posVsEta = bookH2("seedDrz2Pos_VsEta","ele seed dr/dz 2nd layer positron vs eta",eta2D_nbin,eta_min,eta_max,50,-0.03,+0.03) ;
928  h2_ele_seed_drz2posVsPt = bookH2("seedDrz2Pos_VsPt","ele seed dr/dz 2nd layer positron vs pt",pt2D_nbin,0.,pt_max,50,-0.03,+0.03) ;
929 
930  // classes
931  h1_ele_classes = bookH1withSumw2("classes","ele classes",20,0.0,20.,"class Id");
932  h1_ele_eta = bookH1withSumw2("eta","ele electron eta",eta_nbin/2,0.0,eta_max);
933  h1_ele_eta_golden = bookH1withSumw2("eta_golden","ele electron eta golden",eta_nbin/2,0.0,eta_max);
934  h1_ele_eta_bbrem = bookH1withSumw2("eta_bbrem","ele electron eta bbrem",eta_nbin/2,0.0,eta_max);
935  h1_ele_eta_shower = bookH1withSumw2("eta_shower","ele electron eta showering",eta_nbin/2,0.0,eta_max);
936  h2_ele_PinVsPoutGolden_mode = bookH2("PinVsPoutGolden_mode","ele track inner p vs outer p vs eta, golden, mode of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
937  h2_ele_PinVsPoutShowering_mode = bookH2("PinVsPoutShowering_mode","ele track inner p vs outer p vs eta, showering, mode of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
938  h2_ele_PinVsPoutGolden_mean = bookH2("PinVsPoutGolden_mean","ele track inner p vs outer p vs eta, golden, mean of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
939  h2_ele_PinVsPoutShowering_mean = bookH2("PinVsPoutShowering_mean","ele track inner p vs outer p vs eta, showering, mean of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
940  h2_ele_PtinVsPtoutGolden_mode = bookH2("PtinVsPtoutGolden_mode","ele track inner pt vs outer pt vs eta, golden, mode of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
941  h2_ele_PtinVsPtoutShowering_mode = bookH2("PtinVsPtoutShowering_mode","ele track inner pt vs outer pt vs eta, showering, mode of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
942  h2_ele_PtinVsPtoutGolden_mean = bookH2("PtinVsPtoutGolden_mean","ele track inner pt vs outer pt vs eta, golden, mean of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
943  h2_ele_PtinVsPtoutShowering_mean = bookH2("PtinVsPtoutShowering_mean","ele track inner pt vs outer pt vs eta, showering, mean of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
944  setBookPrefix("h_scl") ;
945  h1_scl_EoEtrueGolden_barrel = bookH1withSumw2("EoEtrue_golden_barrel","ele supercluster energy / gen energy, golden, barrel",poptrue_nbin,poptrue_min,poptrue_max);
946  h1_scl_EoEtrueGolden_endcaps = bookH1withSumw2("EoEtrue_golden_endcaps","ele supercluster energy / gen energy, golden, endcaps",poptrue_nbin,poptrue_min,poptrue_max);
947  h1_scl_EoEtrueShowering_barrel = bookH1withSumw2("EoEtrue_showering_barrel","ele supercluster energy / gen energy, showering, barrel",poptrue_nbin,poptrue_min,poptrue_max);
948  h1_scl_EoEtrueShowering_endcaps = bookH1withSumw2("EoEtrue_showering_endcaps","ele supercluster energy / gen energy, showering, endcaps",poptrue_nbin,poptrue_min,poptrue_max);
949 
950  // isolation
951  setBookPrefix("h_ele") ;
952  h1_ele_tkSumPt_dr03 = bookH1withSumw2("tkSumPt_dr03","tk isolation sum, dR=0.3",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
953  h1_ele_tkSumPt_dr03_barrel = bookH1withSumw2("tkSumPt_dr03_barrel","tk isolation sum, dR=0.3, barrel",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
954  h1_ele_tkSumPt_dr03_endcaps = bookH1withSumw2("tkSumPt_dr03_endcaps","tk isolation sum, dR=0.3, endcaps",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
955  h1_ele_ecalRecHitSumEt_dr03 = bookH1withSumw2("ecalRecHitSumEt_dr03","ecal isolation sum, dR=0.3",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
956  h1_ele_ecalRecHitSumEt_dr03_barrel = bookH1withSumw2("ecalRecHitSumEt_dr03_barrel","ecal isolation sum, dR=0.3, barrel",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
957  h1_ele_ecalRecHitSumEt_dr03_endcaps = bookH1withSumw2("ecalRecHitSumEt_dr03_endcaps","ecal isolation sum, dR=0.3, endcaps",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
958  h1_ele_hcalTowerSumEt_dr03_depth1 = bookH1withSumw2("hcalTowerSumEt_dr03_depth1","hcal depth1 isolation sum, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
959  h1_ele_hcalTowerSumEt_dr03_depth1_barrel = bookH1withSumw2("hcalTowerSumEt_dr03_depth1_barrel","hcal depth1 isolation sum, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
960  h1_ele_hcalTowerSumEt_dr03_depth1_endcaps = bookH1withSumw2("hcalTowerSumEt_dr03_depth1_endcaps","hcal depth1 isolation sum, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
961  h1_ele_hcalTowerSumEt_dr03_depth2 = bookH1withSumw2("hcalTowerSumEt_dr03_depth2","hcal depth2 isolation sum, dR=0.3",100,0.0,20.,"Hcal2IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
962  h1_ele_hcalTowerSumEt_dr03_depth2_barrel = bookH1withSumw2("hcalTowerSumEt_dr03_depth2_barrel","hcal depth2 isolation sum, dR=0.3",100,0.0,20.,"Hcal2IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
963  h1_ele_hcalTowerSumEt_dr03_depth2_endcaps = bookH1withSumw2("hcalTowerSumEt_dr03_depth2_endcaps","hcal depth2 isolation sum, dR=0.3",100,0.0,20.,"Hcal2IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
964  h1_ele_tkSumPt_dr04 = bookH1withSumw2("tkSumPt_dr04","tk isolation sum, dR=0.4",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
965  h1_ele_tkSumPt_dr04_barrel = bookH1withSumw2("tkSumPt_dr04_barrel","tk isolation sum, dR=0.4, barrel",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
966  h1_ele_tkSumPt_dr04_endcaps = bookH1withSumw2("tkSumPt_dr04_endcaps","tk isolation sum, dR=0.4, endcaps",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
967  h1_ele_ecalRecHitSumEt_dr04 = bookH1withSumw2("ecalRecHitSumEt_dr04","ecal isolation sum, dR=0.4",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
968  h1_ele_ecalRecHitSumEt_dr04_barrel = bookH1withSumw2("ecalRecHitSumEt_dr04_barrel","ecal isolation sum, dR=0.4, barrel",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
969  h1_ele_ecalRecHitSumEt_dr04_endcaps = bookH1withSumw2("ecalRecHitSumEt_dr04_endcaps","ecal isolation sum, dR=0.4, endcaps",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
970  h1_ele_hcalTowerSumEt_dr04_depth1 = bookH1withSumw2("hcalTowerSumEt_dr04_depth1","hcal depth1 isolation sum, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
971  h1_ele_hcalTowerSumEt_dr04_depth1_barrel = bookH1withSumw2("hcalTowerSumEt_dr04_depth1_barrel","hcal depth1 isolation sum, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
972  h1_ele_hcalTowerSumEt_dr04_depth1_endcaps = bookH1withSumw2("hcalTowerSumEt_dr04_depth1_endcaps","hcal depth1 isolation sum, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
973  h1_ele_hcalTowerSumEt_dr04_depth2 = bookH1withSumw2("hcalTowerSumEt_dr04_depth2","hcal depth2 isolation sum, dR=0.4",100,0.0,20.,"Hcal2IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
974  h1_ele_hcalTowerSumEt_dr04_depth2_barrel = bookH1withSumw2("hcalTowerSumEt_dr04_depth2_barrel","hcal depth2 isolation sum, dR=0.4",100,0.0,20.,"Hcal2IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
975  h1_ele_hcalTowerSumEt_dr04_depth2_endcaps = bookH1withSumw2("hcalTowerSumEt_dr04_depth2_endcaps","hcal depth2 isolation sum, dR=0.4",100,0.0,20.,"Hcal2IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
976 
977  h1_ele_dIso_tkSumPt_dr03 = bookH1withSumw2("dIso_tkSumPt_dr03","diff with iso from deposits, tk isolation sum, dR=0.3",21,-10.0,10.,"TkIsoSum diff, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
978  h1_ele_dIso_tkSumPt_dr04 = bookH1withSumw2("dIso_tkSumPt_dr04","diff with iso from deposits, tk isolation sum, dR=0.4",21,-10.0,10.,"TkIsoSum diff, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
979  h1_ele_dIso_ecalFullRecHitSumEt_dr03 = bookH1withSumw2("dIso_ecalFullRecHitSumEt_dr03","diff with iso from deposits, ecal isolation sum, dR=0.3",21,-10.0,10.,"EcalIsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
980  h1_ele_dIso_ecalFullRecHitSumEt_dr04 = bookH1withSumw2("dIso_ecalFullRecHitSumEt_dr04","diff with iso from deposits, ecal isolation sum, dR=0.4",21,-10.0,10.,"EcalIsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
981  h1_ele_dIso_ecalReducedRecHitSumEt_dr03 = bookH1withSumw2("dIso_ecalReducedRecHitSumEt_dr03","diff with iso from deposits, ecal isolation sum, dR=0.3",21,-10.0,10.,"EcalIsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
982  h1_ele_dIso_ecalReducedRecHitSumEt_dr04 = bookH1withSumw2("dIso_ecalReducedRecHitSumEt_dr04","diff with iso from deposits, ecal isolation sum, dR=0.4",21,-10.0,10.,"EcalIsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
983  h1_ele_dIso_hcalTowerSumEt_dr03 = bookH1withSumw2("dIso_hcalTowerSumEt_dr03","diff with iso from deposits, hcal depth1 isolation sum, dR=0.3",21,-10.0,10.,"Hcal1IsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
984  h1_ele_dIso_hcalTowerSumEt_dr04 = bookH1withSumw2("dIso_hcalTowerSumEt_dr04","diff with iso from deposits, hcal depth1 isolation sum, dR=0.4",21,-10.0,10.,"Hcal1IsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
985 
986  // newHCAL
987  // isolation new hcal
988  h1_ele_hcalTowerSumEtBc_dr03_depth1 = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1","hcal depth1 isolation sum behind cluster, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
989  h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1_barrel","hcal depth1 isolation sum behind cluster, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
990  h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1_endcaps","hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
991 
992  h1_ele_hcalTowerSumEtBc_dr04_depth1 = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1","hcal depth1 isolation sum behind cluster, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
993  h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1_barrel","hcal depth1 isolation sum behind cluster, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
994  h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1_endcaps","hcal depth1 isolation sum behind cluster, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
995 
996  h1_ele_hcalTowerSumEtBc_dr03_depth2 = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2","hcal depth2 isolation sum behind cluster, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
997  h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2_barrel","hcal depth2 isolation sum behind cluster, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
998  h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2_endcaps","hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
999 
1000  h1_ele_hcalTowerSumEtBc_dr04_depth2 = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2","hcal depth2 isolation sum behind cluster, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
1001  h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2_barrel","hcal depth2 isolation sum behind cluster, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
1002  h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2_endcaps","hcal depth2 isolation sum behind cluster, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
1003 
1004  // fbrem
1005  h1_ele_fbrem = bookH1withSumw2("fbrem","ele brem fraction, mode of GSF components",100,0.,1.,"P_{in} - P_{out} / P_{in}");
1006  h1_ele_fbrem_barrel = bookH1withSumw2("fbrem_barrel","ele brem fraction for barrel, mode of GSF components", 100, 0.,1.,"P_{in} - P_{out} / P_{in}");
1007  h1_ele_fbrem_endcaps = bookH1withSumw2("fbrem_endcaps", "ele brem franction for endcaps, mode of GSF components", 100, 0.,1.,"P_{in} - P_{out} / P_{in}");
1008  h1_ele_fbrem_eg = bookH1withSumw2("brem_eg","ele brem fraction, mode of GSF components, ecal driven",100,0.,1.);
1009  p1_ele_fbremVsEta_mode = bookP1("fbremvsEtamode","mean ele brem fraction vs eta, mode of GSF components",eta2D_nbin,eta_min,eta_max,0.,1.,"#eta","<P_{in} - P_{out} / P_{in}>");
1010  p1_ele_fbremVsEta_mean = bookP1("fbremvsEtamean","mean ele brem fraction vs eta, mean of GSF components",eta2D_nbin,eta_min,eta_max,0.,1.,"#eta","<P_{in} - P_{out} / P_{in}>");
1011  h1_ele_chargeInfo = bookH1withSumw2("chargeInfo","chargeInfo",5,-2.,3.);
1012 
1013  // e/g et pflow electrons
1014  h1_ele_mva = bookH1withSumw2("mva","ele identification mva",100,-1.,1.);
1015  h1_ele_mva_barrel = bookH1withSumw2("mva_barrel", "ele identification mva barrel",100,-1.,1.);
1016  h1_ele_mva_endcaps = bookH1withSumw2("mva_endcaps", "ele identification mva endcaps",100,-1.,1.);
1017  h1_ele_mva_eg = bookH1withSumw2("mva_eg","ele identification mva, ecal driven",100,-1.,1.);
1018  h1_ele_provenance = bookH1withSumw2("provenance","ele provenance",5,-2.,3.);
1019  h1_ele_provenance_barrel = bookH1withSumw2("provenance_barrel","ele provenance barrel",5,-2.,3.);
1020  h1_ele_provenance_endcaps = bookH1withSumw2("provenance_endcaps","ele provenance endcaps",5,-2.,3.);
1021 
1022  // pflow isolation variables
1023  h1_ele_chargedHadronIso = bookH1withSumw2("chargedHadronIso","chargedHadronIso",100,0.0,20.,"chargedHadronIso","Events","ELE_LOGY E1 P");
1024  h1_ele_chargedHadronIso_barrel = bookH1withSumw2("chargedHadronIso_barrel","chargedHadronIso for barrel",100,0.0,20.,"chargedHadronIso_barrel","Events","ELE_LOGY E1 P");
1025  h1_ele_chargedHadronIso_endcaps = bookH1withSumw2("chargedHadronIso_endcaps","chargedHadronIso for endcaps",100,0.0,20.,"chargedHadronIso_endcaps","Events","ELE_LOGY E1 P");
1026  h1_ele_neutralHadronIso = bookH1withSumw2("neutralHadronIso","neutralHadronIso",21,0.0,20.,"neutralHadronIso","Events", "ELE_LOGY E1 P");
1027  h1_ele_neutralHadronIso_barrel = bookH1withSumw2("neutralHadronIso_barrel","neutralHadronIso for barrel",21,0.0,20.,"neutralHadronIso_barrel","Events","ELE_LOGY E1 P");
1028  h1_ele_neutralHadronIso_endcaps = bookH1withSumw2("neutralHadronIso_endcaps","neutralHadronIso for endcaps",21,0.0,20.,"neutralHadronIso_endcaps","Events","ELE_LOGY E1 P");
1029  h1_ele_photonIso = bookH1withSumw2("photonIso","photonIso",100,0.0,20.,"photonIso","Events","ELE_LOGY E1 P");
1030  h1_ele_photonIso_barrel = bookH1withSumw2("photonIso_barrel","photonIso for barrel",100,0.0,20.,"photonIso_barrel","Events","ELE_LOGY E1 P");
1031  h1_ele_photonIso_endcaps = bookH1withSumw2("photonIso_endcaps","photonIso for endcaps",100,0.0,20.,"photonIso_endcaps","Events","ELE_LOGY E1 P");
1032 
1033  // conversion rejection information
1034  h1_ele_convFlags = bookH1withSumw2("convFlags","conversion rejection flag",5,-1.5,3.5);
1035  h1_ele_convFlags_all = bookH1withSumw2("convFlags_all","conversion rejection flag, all electrons",5,-1.5,3.5);
1036  h1_ele_convDist = bookH1withSumw2("convDist","distance to the conversion partner",100,-15.,15.);
1037  h1_ele_convDist_all = bookH1withSumw2("convDist_all","distance to the conversion partner, all electrons",100,-15.,15.);
1038  h1_ele_convDcot = bookH1withSumw2("convDcot","difference of cot(angle) with the conversion partner",100,-CLHEP::pi/2.,CLHEP::pi/2.);
1039  h1_ele_convDcot_all = bookH1withSumw2("convDcot_all","difference of cot(angle) with the conversion partner, all electrons",100,-CLHEP::pi/2.,CLHEP::pi/2.);
1040  h1_ele_convRadius = bookH1withSumw2("convRadius","signed conversion radius",100,0.,130.);
1041  h1_ele_convRadius_all = bookH1withSumw2("convRadius_all","signed conversion radius, all electrons",100,0.,130.);
1042 
1043  }
1044 
1046  {}
1047 
1049  {
1050  // get collections
1052  iEvent.getByLabel(electronCollection_,gsfElectrons) ;
1054  iEvent.getByLabel(electronCoreCollection_,gsfElectronCores) ;
1055  edm::Handle<GsfTrackCollection> gsfElectronTracks ;
1056  iEvent.getByLabel(electronTrackCollection_,gsfElectronTracks) ;
1057  edm::Handle<ElectronSeedCollection> gsfElectronSeeds ;
1058  iEvent.getByLabel(electronSeedCollection_,gsfElectronSeeds) ;
1060  iEvent.getByLabel(mcTruthCollection_, genParticles) ;
1061  edm::Handle<reco::BeamSpot> theBeamSpot ;
1062  iEvent.getByLabel(beamSpotTag_,theBeamSpot) ;
1063 
1064  edm::Handle<edm::ValueMap<double> > isoFromDepsTk03Handle ; iEvent.getByLabel( isoFromDepsTk03Tag_ , isoFromDepsTk03Handle ) ;
1065  edm::Handle<edm::ValueMap<double> > isoFromDepsTk04Handle ; iEvent.getByLabel( isoFromDepsTk04Tag_ , isoFromDepsTk04Handle ) ;
1066  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull03Handle ; iEvent.getByLabel( isoFromDepsEcalFull03Tag_ , isoFromDepsEcalFull03Handle ) ;
1067  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull04Handle ; iEvent.getByLabel( isoFromDepsEcalFull04Tag_ , isoFromDepsEcalFull04Handle ) ;
1068  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced03Handle ; iEvent.getByLabel( isoFromDepsEcalReduced03Tag_, isoFromDepsEcalReduced03Handle ) ;
1069  edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced04Handle ; iEvent.getByLabel( isoFromDepsEcalReduced04Tag_, isoFromDepsEcalReduced04Handle ) ;
1070  edm::Handle<edm::ValueMap<double> > isoFromDepsHcal03Handle ; iEvent.getByLabel( isoFromDepsHcal03Tag_ , isoFromDepsHcal03Handle ) ;
1071  edm::Handle<edm::ValueMap<double> > isoFromDepsHcal04Handle ; iEvent.getByLabel( isoFromDepsHcal04Tag_ , isoFromDepsHcal04Handle ) ;
1072 
1073  edm::LogInfo("ElectronMcSignalValidator::analyze")
1074  <<"Treating event "<<iEvent.id()
1075  <<" with "<<gsfElectrons.product()->size()<<" electrons" ;
1076  h1_recEleNum->Fill((*gsfElectrons).size()) ;
1077  h1_recCoreNum->Fill((*gsfElectronCores).size());
1078  h1_recTrackNum->Fill((*gsfElectronTracks).size());
1079  h1_recSeedNum->Fill((*gsfElectronSeeds).size());
1080 
1081  //===============================================
1082  // all rec electrons
1083  //===============================================
1084 
1085  reco::GsfElectronCollection::const_iterator gsfIter ;
1086  for ( gsfIter=gsfElectrons->begin() ; gsfIter!=gsfElectrons->end() ; gsfIter++ )
1087  {
1088  // preselect electrons
1089  if (gsfIter->pt()>maxPt_ || std::abs(gsfIter->eta())>maxAbsEta_) continue ;
1090 
1091  //
1092  h1_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP()) ;
1093  h1_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP()) ;
1094  h1_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout()) ;
1095  h1_ele_EeleOPout_all->Fill( gsfIter->eEleClusterOverPout()) ;
1096  h1_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()) ;
1097  h1_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()) ;
1098  h1_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()) ;
1099  h1_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()) ;
1100  h1_ele_HoE_all->Fill(gsfIter->hcalOverEcal()) ;
1101  h1_ele_HoE_bc_all->Fill(gsfIter->hcalOverEcalBc()) ;
1102  h1_ele_TIP_all->Fill( EleRelPoint(gsfIter->vertex(),theBeamSpot->position()).perp() );
1103  h1_ele_vertexEta_all->Fill( gsfIter->eta() );
1104  h1_ele_vertexPt_all->Fill( gsfIter->pt() );
1105  h1_ele_Et_all->Fill( gsfIter->ecalEnergy()/cosh(gsfIter->superCluster()->eta()));
1106  float enrj1=gsfIter->ecalEnergy();
1107 
1108  // mee
1109  reco::GsfElectronCollection::const_iterator gsfIter2 ;
1110  for ( gsfIter2=gsfIter+1 ; gsfIter2!=gsfElectrons->end() ; gsfIter2++ )
1111  {
1112  math::XYZTLorentzVector p12 = (*gsfIter).p4()+(*gsfIter2).p4();
1113  float mee2 = p12.Dot(p12);
1114  float enrj2=gsfIter2->ecalEnergy() ;
1115  h1_ele_mee_all->Fill(sqrt(mee2));
1116  h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2),enrj2-enrj1);
1117  if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed())
1118  { h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2),enrj2-enrj1) ; }
1119  if (gsfIter->charge()*gsfIter2->charge()<0.)
1120  {
1121  h1_ele_mee_os->Fill(sqrt(mee2));
1122  if (gsfIter->isEB() && gsfIter2->isEB()) { h1_ele_mee_os_ebeb->Fill(sqrt(mee2)) ; }
1123  if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB())) h1_ele_mee_os_ebee -> Fill(sqrt(mee2));
1124  if (gsfIter->isEE() && gsfIter2->isEE()) { h1_ele_mee_os_eeee->Fill(sqrt(mee2)) ; }
1125  if
1126  ( (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1127  (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) ||
1128  (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1129  (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM) )
1130  { h1_ele_mee_os_gg->Fill(sqrt(mee2)) ; }
1131  else if
1132  ( (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1133  (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->isGap()) ||
1134  (gsfIter->isGap() && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1135  (gsfIter->isGap() && gsfIter2->isGap()) )
1136  { h1_ele_mee_os_bb->Fill(sqrt(mee2)) ; }
1137  else
1138  { h1_ele_mee_os_gb->Fill(sqrt(mee2)) ; }
1139  }
1140  }
1141 
1142  // conversion rejection
1143  int flags = gsfIter->convFlags() ;
1144  if (flags==-9999) { flags=-1 ; }
1145  h1_ele_convFlags_all->Fill(flags);
1146  if (flags>=0.)
1147  {
1148  h1_ele_convDist_all->Fill( gsfIter->convDist() );
1149  h1_ele_convDcot_all->Fill( gsfIter->convDcot() );
1150  h1_ele_convRadius_all->Fill( gsfIter->convRadius() );
1151  }
1152  }
1153 
1154  //===============================================
1155  // charge mis-ID
1156  //===============================================
1157 
1158  int mcNum=0, gamNum=0, eleNum=0 ;
1159  bool matchingID, matchingMotherID ;
1160 
1161  reco::GenParticleCollection::const_iterator mcIter ;
1162  for
1163  ( mcIter=genParticles->begin() ; mcIter!=genParticles->end() ; mcIter++ )
1164  {
1165  // select requested matching gen particle
1166  matchingID=false;
1167  for ( unsigned int i=0 ; i<matchingIDs_.size() ; i++ )
1168  {
1169  if ( mcIter->pdgId() == matchingIDs_[i] )
1170  { matchingID=true ; }
1171  }
1172  if (matchingID)
1173  {
1174  // select requested mother matching gen particle
1175  // always include single particle with no mother
1176  const Candidate * mother = mcIter->mother() ;
1177  matchingMotherID = false ;
1178  for ( unsigned int i=0 ; i<matchingMotherIDs_.size() ; i++ )
1179  {
1180  if ((mother == 0) || ((mother != 0) && mother->pdgId() == matchingMotherIDs_[i]) )
1181  { matchingMotherID = true ; }
1182  }
1183  if (matchingMotherID)
1184  {
1185  if ( mcIter->pt()>maxPt_ || std::abs(mcIter->eta())>maxAbsEta_ )
1186  { continue ; }
1187  // suppress the endcaps
1188  //if (std::abs(mcIter->eta()) > 1.5) continue;
1189  // select central z
1190  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
1191 
1192  // looking for the best matching gsf electron
1193  bool okGsfFound = false ;
1194  double gsfOkRatio = 999999. ;
1195 
1196  // find best matched electron
1197  reco::GsfElectron bestGsfElectron ;
1198  reco::GsfElectronCollection::const_iterator gsfIter ;
1199  for
1200  ( gsfIter=gsfElectrons->begin() ; gsfIter!=gsfElectrons->end() ; gsfIter++ )
1201  {
1202  double dphi = gsfIter->phi()-mcIter->phi() ;
1203  if (std::abs(dphi)>CLHEP::pi)
1204  { dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi ; }
1205  double deltaR = sqrt(pow((gsfIter->eta()-mcIter->eta()),2) + pow(dphi,2)) ;
1206  if ( deltaR < deltaR_ )
1207  {
1208  double mc_charge = mcIter->pdgId() == 11 ? -1. : 1. ;
1209  h1_ele_ChargeMnChargeTrue->Fill( std::abs(gsfIter->charge()-mc_charge));
1210  // require here a charge mismatch
1211  if
1212  ( ( (mcIter->pdgId() == 11) && (gsfIter->charge() > 0.) ) ||
1213  ( (mcIter->pdgId() == -11) && (gsfIter->charge() < 0.) ) )
1214  {
1215  double tmpGsfRatio = gsfIter->p()/mcIter->p();
1216  if ( std::abs(tmpGsfRatio-1) < std::abs(gsfOkRatio-1) )
1217  {
1218  gsfOkRatio = tmpGsfRatio;
1219  bestGsfElectron=*gsfIter;
1220  okGsfFound = true;
1221  }
1222  }
1223  }
1224  } // loop over rec ele to look for the best one
1225 
1226  // analysis when the mc track is found
1227  if (okGsfFound)
1228  {
1229  // generated distributions for matched electrons
1230  h1_mc_Pt_matched_qmisid->Fill( mcIter->pt() ) ;
1231  h1_mc_Phi_matched_qmisid->Fill( mcIter->phi() ) ;
1232  h1_mc_AbsEta_matched_qmisid->Fill( std::abs(mcIter->eta()) ) ;
1233  h1_mc_Eta_matched_qmisid->Fill( mcIter->eta() ) ;
1234  h1_mc_Z_matched_qmisid->Fill( mcIter->vz() ) ;
1235  }
1236  }
1237  }
1238  }
1239 
1240  //===============================================
1241  // association mc-reco
1242  //===============================================
1243 
1244  for ( mcIter=genParticles->begin() ; mcIter!=genParticles->end() ; mcIter++ )
1245  {
1246  // number of mc particles
1247  mcNum++ ;
1248 
1249  // counts photons
1250  if (mcIter->pdgId() == 22 )
1251  { gamNum++ ; }
1252 
1253  // select requested matching gen particle
1254  matchingID = false ;
1255  for ( unsigned int i=0 ; i<matchingIDs_.size() ; i++ )
1256  {
1257  if ( mcIter->pdgId() == matchingIDs_[i] )
1258  { matchingID=true ; }
1259  }
1260  if (!matchingID) continue ;
1261 
1262  // select requested mother matching gen particle
1263  // always include single particle with no mother
1264  const Candidate * mother = mcIter->mother() ;
1265  matchingMotherID = false ;
1266  for ( unsigned int i=0 ; i<matchingMotherIDs_.size() ; i++ )
1267  {
1268  if ( (mother == 0) || ((mother != 0) && mother->pdgId() == matchingMotherIDs_[i]) )
1269  { matchingMotherID = true ; }
1270  }
1271  if (!matchingMotherID) continue ;
1272 
1273  // electron preselection
1274  if (mcIter->pt()> maxPt_ || std::abs(mcIter->eta())> maxAbsEta_)
1275  { continue ; }
1276 
1277  // suppress the endcaps
1278  //if (std::abs(mcIter->eta()) > 1.5) continue;
1279  // select central z
1280  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
1281 
1282  eleNum++;
1283  h1_mc_Eta->Fill( mcIter->eta() );
1284  h1_mc_AbsEta->Fill( std::abs(mcIter->eta()) );
1285  h1_mc_P->Fill( mcIter->p() );
1286  h1_mc_Pt->Fill( mcIter->pt() );
1287  h1_mc_Phi->Fill( mcIter->phi() );
1288  h1_mc_Z->Fill( mcIter->vz() );
1289  h2_mc_PtEta->Fill( mcIter->eta(),mcIter->pt() );
1290 
1291  // find best matched electron
1292  bool okGsfFound = false ;
1293  double gsfOkRatio = 999999. ;
1294  reco::GsfElectron bestGsfElectron ;
1295  reco::GsfElectronRef bestGsfElectronRef ;
1296  reco::GsfElectronCollection::const_iterator gsfIter ;
1298  for ( gsfIter=gsfElectrons->begin(), iElectron=0 ; gsfIter!=gsfElectrons->end() ; gsfIter++, iElectron++ )
1299  {
1300  double dphi = gsfIter->phi()-mcIter->phi() ;
1301  if (std::abs(dphi)>CLHEP::pi)
1302  { dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi ; }
1303  double deltaR = sqrt(pow((gsfIter->eta()-mcIter->eta()),2) + pow(dphi,2));
1304  if ( deltaR < deltaR_ )
1305  {
1306  if ( ( (mcIter->pdgId() == 11) && (gsfIter->charge() < 0.) ) ||
1307  ( (mcIter->pdgId() == -11) && (gsfIter->charge() > 0.) ) )
1308  {
1309  double tmpGsfRatio = gsfIter->p()/mcIter->p() ;
1310  if ( std::abs(tmpGsfRatio-1) < std::abs(gsfOkRatio-1) )
1311  {
1312  gsfOkRatio = tmpGsfRatio;
1313  bestGsfElectron=*gsfIter;
1314  bestGsfElectronRef=reco::GsfElectronRef(gsfElectrons,iElectron);
1315  okGsfFound = true;
1316  }
1317  }
1318  }
1319  } // loop over rec ele to look for the best one
1320  if (! okGsfFound) continue ;
1321 
1322  //------------------------------------
1323  // analysis when the mc track is found
1324  //------------------------------------
1325 
1326  // electron related distributions
1327  h1_ele_charge->Fill( bestGsfElectron.charge() );
1328  h2_ele_chargeVsEta->Fill( bestGsfElectron.eta(),bestGsfElectron.charge() );
1329  h2_ele_chargeVsPhi->Fill( bestGsfElectron.phi(),bestGsfElectron.charge() );
1330  h2_ele_chargeVsPt->Fill( bestGsfElectron.pt(),bestGsfElectron.charge() );
1331  h1_ele_vertexP->Fill( bestGsfElectron.p() );
1332  h1_ele_vertexPt->Fill( bestGsfElectron.pt() );
1333  h1_ele_Et->Fill( bestGsfElectron.ecalEnergy()/cosh(bestGsfElectron.superCluster()->eta()));
1334  h2_ele_vertexPtVsEta->Fill( bestGsfElectron.eta(),bestGsfElectron.pt() );
1335  h2_ele_vertexPtVsPhi->Fill( bestGsfElectron.phi(),bestGsfElectron.pt() );
1336  h1_ele_vertexEta->Fill( bestGsfElectron.eta() );
1337  // generated distributions for matched electrons
1338  h1_mc_Pt_matched->Fill( mcIter->pt() );
1339  h1_mc_Phi_matched->Fill( mcIter->phi() );
1340  h1_mc_AbsEta_matched->Fill( std::abs(mcIter->eta()) );
1341  h1_mc_Eta_matched->Fill( mcIter->eta() );
1342  h2_mc_PtEta_matched->Fill( mcIter->eta(),mcIter->pt() );
1343  h2_ele_vertexEtaVsPhi->Fill( bestGsfElectron.phi(),bestGsfElectron.eta() );
1344  h1_ele_vertexPhi->Fill( bestGsfElectron.phi() );
1345  h1_ele_vertexX->Fill( bestGsfElectron.vertex().x() );
1346  h1_ele_vertexY->Fill( bestGsfElectron.vertex().y() );
1347  h1_ele_vertexZ->Fill( bestGsfElectron.vertex().z() );
1348  h1_mc_Z_matched->Fill( mcIter->vz() );
1349  double d =
1350  (bestGsfElectron.vertex().x()-mcIter->vx())*(bestGsfElectron.vertex().x()-mcIter->vx()) +
1351  (bestGsfElectron.vertex().y()-mcIter->vy())*(bestGsfElectron.vertex().y()-mcIter->vy()) ;
1352  d = sqrt(d) ;
1353  h1_ele_vertexTIP->Fill( d );
1354  h2_ele_vertexTIPVsEta->Fill( bestGsfElectron.eta(), d );
1355  h2_ele_vertexTIPVsPhi->Fill( bestGsfElectron.phi(), d );
1356  h2_ele_vertexTIPVsPt->Fill( bestGsfElectron.pt(), d );
1357  h1_ele_EtaMnEtaTrue->Fill( bestGsfElectron.eta()-mcIter->eta());
1358  if (bestGsfElectron.isEB()) h1_ele_EtaMnEtaTrue_barrel->Fill( bestGsfElectron.eta()-mcIter->eta());
1359  if (bestGsfElectron.isEE()) h1_ele_EtaMnEtaTrue_endcaps->Fill( bestGsfElectron.eta()-mcIter->eta());
1360  h2_ele_EtaMnEtaTrueVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eta()-mcIter->eta());
1361  h2_ele_EtaMnEtaTrueVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eta()-mcIter->eta());
1362  h2_ele_EtaMnEtaTrueVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.eta()-mcIter->eta());
1363  h1_ele_PhiMnPhiTrue->Fill( bestGsfElectron.phi()-mcIter->phi());
1364  if (bestGsfElectron.isEB()) h1_ele_PhiMnPhiTrue_barrel->Fill( bestGsfElectron.phi()-mcIter->phi());
1365  if (bestGsfElectron.isEE()) h1_ele_PhiMnPhiTrue_endcaps->Fill( bestGsfElectron.phi()-mcIter->phi());
1366  h1_ele_PhiMnPhiTrue2->Fill( bestGsfElectron.phi()-mcIter->phi());
1367  h2_ele_PhiMnPhiTrueVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.phi()-mcIter->phi());
1368  h2_ele_PhiMnPhiTrueVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.phi()-mcIter->phi());
1369  h2_ele_PhiMnPhiTrueVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.phi()-mcIter->phi());
1370  h1_ele_PoPtrue->Fill( bestGsfElectron.p()/mcIter->p());
1371  h1_ele_PtoPttrue->Fill( bestGsfElectron.pt()/mcIter->pt());
1372  h2_ele_PoPtrueVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.p()/mcIter->p());
1373  h2_ele_PoPtrueVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.p()/mcIter->p());
1374  h2_ele_PoPtrueVsPt->Fill( bestGsfElectron.py(), bestGsfElectron.p()/mcIter->p());
1375  if (bestGsfElectron.isEB()) h1_ele_PoPtrue_barrel->Fill( bestGsfElectron.p()/mcIter->p());
1376  if (bestGsfElectron.isEE()) h1_ele_PoPtrue_endcaps->Fill( bestGsfElectron.p()/mcIter->p());
1377  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::GOLDEN) h1_ele_PoPtrue_golden_barrel->Fill( bestGsfElectron.p()/mcIter->p());
1378  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::GOLDEN) h1_ele_PoPtrue_golden_endcaps->Fill( bestGsfElectron.p()/mcIter->p());
1379  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::SHOWERING) h1_ele_PoPtrue_showering_barrel->Fill( bestGsfElectron.p()/mcIter->p());
1380  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::SHOWERING) h1_ele_PoPtrue_showering_endcaps->Fill( bestGsfElectron.p()/mcIter->p());
1381  if (bestGsfElectron.isEB()) h1_ele_PtoPttrue_barrel->Fill( bestGsfElectron.pt()/mcIter->pt());
1382  if (bestGsfElectron.isEE()) h1_ele_PtoPttrue_endcaps->Fill( bestGsfElectron.pt()/mcIter->pt());
1384  if (bestGsfElectron.isEB()) h1_ele_ecalEnergyError_barrel->Fill(bestGsfElectron.correctedEcalEnergyError());
1385  if (bestGsfElectron.isEE()) h1_ele_ecalEnergyError_endcaps->Fill(bestGsfElectron.correctedEcalEnergyError());
1386  h1_ele_combinedP4Error->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
1387  if (bestGsfElectron.isEB()) h1_ele_combinedP4Error_barrel->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
1388  if (bestGsfElectron.isEE()) h1_ele_combinedP4Error_endcaps->Fill(bestGsfElectron.p4Error(bestGsfElectron.P4_COMBINATION));
1389 
1390  // supercluster related distributions
1391  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
1392  //if (!bestGsfElectron.ecalDrivenSeed()&&bestGsfElectron.trackerDrivenSeed())
1393  // { sclRef = bestGsfElectron.pflowSuperCluster() ; }
1394 
1395  h1_scl_En->Fill(bestGsfElectron.ecalEnergy());
1396  if (bestGsfElectron.isEB()) h1_scl_EoEtrue_barrel->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1397  if (bestGsfElectron.isEE()) h1_scl_EoEtrue_endcaps->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1398  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) h1_scl_EoEtrue_barrel_eg->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1399  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) h1_scl_EoEtrue_endcaps_eg->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1400  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap()) h1_scl_EoEtrue_barrel_etagap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1401  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap()) h1_scl_EoEtrue_barrel_phigap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1402  if (bestGsfElectron.isEBEEGap()) h1_scl_EoEtrue_ebeegap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1403  //if (bestGsfElectron.isEE()) h1_scl_EoEtrue_endcaps->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1404  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap()) h1_scl_EoEtrue_endcaps_deegap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1405  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap()) h1_scl_EoEtrue_endcaps_ringgap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1406  if (bestGsfElectron.isEB()) h1_scl_EoEtrue_barrel_new->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1407  if (bestGsfElectron.isEE()) h1_scl_EoEtrue_endcaps_new->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1408  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) h1_scl_EoEtrue_barrel_new_eg->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1409  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) h1_scl_EoEtrue_endcaps_new_eg->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1410  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap()) h1_scl_EoEtrue_barrel_new_etagap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1411  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap()) h1_scl_EoEtrue_barrel_new_phigap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1412  if (bestGsfElectron.isEBEEGap()) h1_scl_EoEtrue_ebeegap_new->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1413  //if (bestGsfElectron.isEE()) h1_scl_EoEtrue_endcaps_new->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1414  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap()) h1_scl_EoEtrue_endcaps_new_deegap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1415  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap()) h1_scl_EoEtrue_endcaps_new_ringgap->Fill(bestGsfElectron.ecalEnergy()/mcIter->p());
1416 
1417  double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
1418  double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
1419  h1_scl_Et->Fill(sclRef->energy()*(Rt/R));
1420  h2_scl_EtVsEta->Fill(sclRef->eta(),sclRef->energy()*(Rt/R));
1421  h2_scl_EtVsPhi->Fill(sclRef->phi(),sclRef->energy()*(Rt/R));
1422  h1_scl_Eta->Fill(sclRef->eta());
1423  h2_scl_EtaVsPhi->Fill(sclRef->phi(),sclRef->eta());
1424  h1_scl_Phi->Fill(sclRef->phi());
1425  h1_scl_SigEtaEta->Fill(bestGsfElectron.scSigmaEtaEta());
1426  if (bestGsfElectron.isEB()) h1_scl_SigEtaEta_barrel->Fill(bestGsfElectron.scSigmaEtaEta());
1427  if (bestGsfElectron.isEE()) h1_scl_SigEtaEta_endcaps->Fill(bestGsfElectron.scSigmaEtaEta());
1428  h1_scl_SigIEtaIEta->Fill(bestGsfElectron.scSigmaIEtaIEta());
1429  if (bestGsfElectron.isEB()) h1_scl_SigIEtaIEta_barrel->Fill(bestGsfElectron.scSigmaIEtaIEta());
1430  if (bestGsfElectron.isEE()) h1_scl_SigIEtaIEta_endcaps->Fill(bestGsfElectron.scSigmaIEtaIEta());
1431  h1_scl_E1x5->Fill(bestGsfElectron.scE1x5());
1432  if (bestGsfElectron.isEB()) h1_scl_E1x5_barrel->Fill(bestGsfElectron.scE1x5());
1433  if (bestGsfElectron.isEE()) h1_scl_E1x5_endcaps->Fill(bestGsfElectron.scE1x5());
1434  h1_scl_E2x5max->Fill(bestGsfElectron.scE2x5Max());
1435  if (bestGsfElectron.isEB()) h1_scl_E2x5max_barrel->Fill(bestGsfElectron.scE2x5Max());
1436  if (bestGsfElectron.isEE()) h1_scl_E2x5max_endcaps->Fill(bestGsfElectron.scE2x5Max());
1437  h1_scl_E5x5->Fill(bestGsfElectron.scE5x5());
1438  if (bestGsfElectron.isEB()) h1_scl_E5x5_barrel->Fill(bestGsfElectron.scE5x5());
1439  if (bestGsfElectron.isEE()) h1_scl_E5x5_endcaps->Fill(bestGsfElectron.scE5x5());
1440  if (bestGsfElectron.ecalDrivenSeed()) h1_scl_SigIEtaIEta_eg->Fill(bestGsfElectron.scSigmaIEtaIEta());
1441  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_scl_SigIEtaIEta_eg_barrel->Fill(bestGsfElectron.scSigmaIEtaIEta());
1442  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_scl_SigIEtaIEta_eg_endcaps->Fill(bestGsfElectron.scSigmaIEtaIEta());
1443  if (bestGsfElectron.ecalDrivenSeed())h1_scl_E1x5_eg->Fill(bestGsfElectron.scE1x5());
1444  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())h1_scl_E1x5_eg_barrel->Fill(bestGsfElectron.scE1x5());
1445  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())h1_scl_E1x5_eg_endcaps->Fill(bestGsfElectron.scE1x5());
1446  if (bestGsfElectron.ecalDrivenSeed())h1_scl_E2x5max_eg->Fill(bestGsfElectron.scE2x5Max());
1447  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())h1_scl_E2x5max_eg_barrel->Fill(bestGsfElectron.scE2x5Max());
1448  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())h1_scl_E2x5max_eg_endcaps->Fill(bestGsfElectron.scE2x5Max());
1449  if (bestGsfElectron.ecalDrivenSeed())h1_scl_E5x5_eg->Fill(bestGsfElectron.scE5x5());
1450  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())h1_scl_E5x5_eg_barrel->Fill(bestGsfElectron.scE5x5());
1451  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())h1_scl_E5x5_eg_endcaps->Fill(bestGsfElectron.scE5x5());
1452  float pfEnergy=0. ;
1453  if (!bestGsfElectron.pflowSuperCluster().isNull()) pfEnergy = bestGsfElectron.pflowSuperCluster()->energy();
1454  h2_scl_EoEtruePfVsEg->Fill(bestGsfElectron.ecalEnergy()/mcIter->p(),pfEnergy/mcIter->p());
1455 
1456  // track related distributions
1457  h1_ele_ambiguousTracks->Fill( bestGsfElectron.ambiguousGsfTracksSize() );
1458  h2_ele_ambiguousTracksVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize() );
1459  h2_ele_ambiguousTracksVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize() );
1460  h2_ele_ambiguousTracksVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize() );
1461  if (!readAOD_) // track extra does not exist in AOD
1462  {
1463  h1_ele_foundHits->Fill( bestGsfElectron.gsfTrack()->numberOfValidHits() );
1464  if (bestGsfElectron.isEB()) h1_ele_foundHits_barrel->Fill( bestGsfElectron.gsfTrack()->numberOfValidHits() );
1465  if (bestGsfElectron.isEE()) h1_ele_foundHits_endcaps->Fill( bestGsfElectron.gsfTrack()->numberOfValidHits() );
1466  h2_ele_foundHitsVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
1467  h2_ele_foundHitsVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
1468  h2_ele_foundHitsVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
1469  h1_ele_lostHits->Fill( bestGsfElectron.gsfTrack()->numberOfLostHits() );
1470  if (bestGsfElectron.isEB()) h1_ele_lostHits_barrel->Fill( bestGsfElectron.gsfTrack()->numberOfLostHits() );
1471  if (bestGsfElectron.isEE()) h1_ele_lostHits_endcaps->Fill( bestGsfElectron.gsfTrack()->numberOfLostHits() );
1472  h2_ele_lostHitsVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
1473  h2_ele_lostHitsVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
1474  h2_ele_lostHitsVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
1475  h1_ele_chi2->Fill( bestGsfElectron.gsfTrack()->normalizedChi2() );
1476  if (bestGsfElectron.isEB()) h1_ele_chi2_barrel->Fill( bestGsfElectron.gsfTrack()->normalizedChi2() );
1477  if (bestGsfElectron.isEE()) h1_ele_chi2_endcaps->Fill( bestGsfElectron.gsfTrack()->normalizedChi2() );
1478  h2_ele_chi2VsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2() );
1479  h2_ele_chi2VsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2() );
1480  h2_ele_chi2VsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2() );
1481  }
1482  // from gsf track interface, hence using mean
1483  if (!readAOD_) // track extra does not exist in AOD
1484  {
1485  h1_ele_PinMnPout->Fill( bestGsfElectron.gsfTrack()->innerMomentum().R() - bestGsfElectron.gsfTrack()->outerMomentum().R() );
1486  h1_ele_outerP->Fill( bestGsfElectron.gsfTrack()->outerMomentum().R() );
1487  h1_ele_outerPt->Fill( bestGsfElectron.gsfTrack()->outerMomentum().Rho() );
1488  }
1489  // from electron interface, hence using mode
1490  h1_ele_PinMnPout_mode->Fill( bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
1491  h2_ele_PinMnPoutVsEta_mode->Fill( bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
1492  h2_ele_PinMnPoutVsPhi_mode->Fill( bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
1493  h2_ele_PinMnPoutVsPt_mode->Fill( bestGsfElectron.pt(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
1494  h2_ele_PinMnPoutVsE_mode->Fill( bestGsfElectron.caloEnergy(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
1495  if (!readAOD_) // track extra does not exist in AOD
1496  {
1498  ( bestGsfElectron.gsfTrack()->normalizedChi2(),
1499  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() ) ;
1500  }
1501  h1_ele_outerP_mode->Fill( bestGsfElectron.trackMomentumOut().R() );
1502  h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R() );
1503  h1_ele_outerPt_mode->Fill( bestGsfElectron.trackMomentumOut().Rho() );
1504  h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho() );
1505  h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho() );
1506  h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho() );
1507 
1508  if (!readAOD_) // track extra does not exist in AOD
1509  {
1510  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
1511  ElectronSeedRef elseed=seed.castTo<ElectronSeedRef>();
1512  h1_ele_seed_subdet2->Fill(elseed->subDet2());
1513  h1_ele_seed_mask->Fill(elseed->hitsMask());
1514  if (elseed->subDet2()==1)
1515  { h1_ele_seed_mask_bpix->Fill(elseed->hitsMask()); }
1516  else if (elseed->subDet2()==2)
1517  { h1_ele_seed_mask_fpix->Fill(elseed->hitsMask()); }
1518  else if (elseed->subDet2()==6)
1519  { h1_ele_seed_mask_tec->Fill(elseed->hitsMask()); }
1520  h1_ele_seed_dphi2->Fill(elseed->dPhi2());
1521  h2_ele_seed_dphi2VsEta->Fill(bestGsfElectron.eta(), elseed->dPhi2());
1522  h2_ele_seed_dphi2VsPt->Fill(bestGsfElectron.pt(), elseed->dPhi2());
1523  h1_ele_seed_dphi2pos->Fill(elseed->dPhi2Pos());
1524  h2_ele_seed_dphi2posVsEta->Fill(bestGsfElectron.eta(), elseed->dPhi2Pos());
1525  h2_ele_seed_dphi2posVsPt->Fill(bestGsfElectron.pt(), elseed->dPhi2Pos());
1526  h1_ele_seed_drz2->Fill(elseed->dRz2());
1527  h2_ele_seed_drz2VsEta->Fill(bestGsfElectron.eta(), elseed->dRz2());
1528  h2_ele_seed_drz2VsPt->Fill(bestGsfElectron.pt(), elseed->dRz2());
1529  h1_ele_seed_drz2pos->Fill(elseed->dRz2Pos());
1530  h2_ele_seed_drz2posVsEta->Fill(bestGsfElectron.eta(), elseed->dRz2Pos());
1531  h2_ele_seed_drz2posVsPt->Fill(bestGsfElectron.pt(), elseed->dRz2Pos());
1532  }
1533 
1534  // match distributions
1535  h1_ele_EoP->Fill( bestGsfElectron.eSuperClusterOverP() );
1536  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg->Fill( bestGsfElectron.eSuperClusterOverP() );
1537  if (bestGsfElectron.isEB()) h1_ele_EoP_barrel->Fill( bestGsfElectron.eSuperClusterOverP() );
1538  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg_barrel->Fill( bestGsfElectron.eSuperClusterOverP() );
1539  if (bestGsfElectron.isEE()) h1_ele_EoP_endcaps->Fill( bestGsfElectron.eSuperClusterOverP() );
1540  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg_endcaps->Fill( bestGsfElectron.eSuperClusterOverP() );
1541  h2_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP() );
1542  h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP() );
1543  h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP() );
1544  h1_ele_EseedOP->Fill( bestGsfElectron.eSeedClusterOverP() );
1545  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg->Fill( bestGsfElectron.eSeedClusterOverP() );
1546  if (bestGsfElectron.isEB()) h1_ele_EseedOP_barrel->Fill( bestGsfElectron.eSeedClusterOverP() );
1547  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg_barrel->Fill( bestGsfElectron.eSeedClusterOverP() );
1548  if (bestGsfElectron.isEE()) h1_ele_EseedOP_endcaps->Fill( bestGsfElectron.eSeedClusterOverP() );
1549  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg_endcaps->Fill( bestGsfElectron.eSeedClusterOverP() );
1550  h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP() );
1551  h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP() );
1552  h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP() );
1553  h1_ele_EoPout->Fill( bestGsfElectron.eSeedClusterOverPout() );
1554  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg->Fill( bestGsfElectron.eSeedClusterOverPout() );
1555  if (bestGsfElectron.isEB()) h1_ele_EoPout_barrel->Fill( bestGsfElectron.eSeedClusterOverPout() );
1556  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg_barrel->Fill( bestGsfElectron.eSeedClusterOverPout() );
1557  if (bestGsfElectron.isEE()) h1_ele_EoPout_endcaps->Fill( bestGsfElectron.eSeedClusterOverPout() );
1558  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg_endcaps->Fill( bestGsfElectron.eSeedClusterOverPout() );
1559  h2_ele_EoPoutVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout() );
1560  h2_ele_EoPoutVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout() );
1561  h2_ele_EoPoutVsE->Fill( bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout() );
1562  h1_ele_EeleOPout->Fill( bestGsfElectron.eEleClusterOverPout() );
1563  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg->Fill( bestGsfElectron.eEleClusterOverPout() );
1564  if (bestGsfElectron.isEB()) h1_ele_EeleOPout_barrel->Fill( bestGsfElectron.eEleClusterOverPout() );
1565  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg_barrel->Fill( bestGsfElectron.eEleClusterOverPout() );
1566  if (bestGsfElectron.isEE()) h1_ele_EeleOPout_endcaps->Fill( bestGsfElectron.eEleClusterOverPout() );
1567  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg_endcaps->Fill( bestGsfElectron.eEleClusterOverPout() );
1568  h2_ele_EeleOPoutVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout() );
1569  h2_ele_EeleOPoutVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout() );
1570  h2_ele_EeleOPoutVsE->Fill( bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout() );
1572  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1573  if (bestGsfElectron.isEB()) h1_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1574  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1575  if (bestGsfElectron.isEE())h1_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1576  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1577  h2_ele_dEtaScVsEta_propVtx->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1578  h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1579  h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
1581  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1582  if (bestGsfElectron.isEB()) h1_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1583  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1584  if (bestGsfElectron.isEE())h1_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1585  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1586  h2_ele_dPhiScVsEta_propVtx->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1587  h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1588  h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
1590  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1591  if (bestGsfElectron.isEB()) h1_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1592  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1593  if (bestGsfElectron.isEE()) h1_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1594  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1595  h2_ele_dEtaClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1596  h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1597  h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
1599  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1600  if (bestGsfElectron.isEB()) h1_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1601  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1602  if (bestGsfElectron.isEE()) h1_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1603  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1604  h2_ele_dPhiClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1605  h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1606  h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
1608  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1609  if (bestGsfElectron.isEB()) h1_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1610  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1611  if (bestGsfElectron.isEE()) h1_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1612  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1613  h2_ele_dEtaEleClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1614  h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1615  h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
1617  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1618  if (bestGsfElectron.isEB()) h1_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1619  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1620  if (bestGsfElectron.isEE()) h1_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1621  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1622  h2_ele_dPhiEleClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1623  h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1624  h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
1625  h1_ele_HoE->Fill(bestGsfElectron.hcalOverEcal());
1626  h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
1627  if (bestGsfElectron.isEB()) h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
1628  if (bestGsfElectron.isEE()) h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
1629  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg->Fill(bestGsfElectron.hcalOverEcal());
1630  if (bestGsfElectron.isEB()) h1_ele_HoE_barrel->Fill(bestGsfElectron.hcalOverEcal());
1631  if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg_barrel->Fill(bestGsfElectron.hcalOverEcal());
1632  if (bestGsfElectron.isEE()) h1_ele_HoE_endcaps->Fill(bestGsfElectron.hcalOverEcal());
1633  if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hcalOverEcal());
1634  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap()&& !bestGsfElectron.isEBEEGap() &&
1635  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap()) h1_ele_HoE_fiducial->Fill(bestGsfElectron.hcalOverEcal());
1636  h2_ele_HoEVsEta->Fill( bestGsfElectron.eta(),bestGsfElectron.hcalOverEcal());
1637  h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(),bestGsfElectron.hcalOverEcal());
1638  h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(),bestGsfElectron.hcalOverEcal());
1639 
1640  //classes
1641  int eleClass = bestGsfElectron.classification();
1642  if (bestGsfElectron.isEE()) eleClass+=10;
1643  h1_ele_classes->Fill(eleClass);
1644 
1645  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEB()) h1_scl_EoEtrueGolden_barrel->Fill(sclRef->energy()/mcIter->p());
1646  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEE()) h1_scl_EoEtrueGolden_endcaps->Fill(sclRef->energy()/mcIter->p());
1647  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEB()) h1_scl_EoEtrueShowering_barrel->Fill(sclRef->energy()/mcIter->p());
1648  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEE()) h1_scl_EoEtrueShowering_endcaps->Fill(sclRef->energy()/mcIter->p());
1649 
1650  //eleClass = eleClass%100; // get rid of barrel/endcap distinction
1651  h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
1652  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
1653  if (bestGsfElectron.classification() == GsfElectron::BIGBREM) h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
1654  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
1655 
1656  // fbrem
1657 
1658  double fbrem_mode = bestGsfElectron.fbrem();
1659  h1_ele_fbrem->Fill(fbrem_mode);
1660 
1661  if (bestGsfElectron.isEB())
1662  {
1663  double fbrem_mode_barrel = bestGsfElectron.fbrem();
1664  h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
1665  }
1666 
1667  if (bestGsfElectron.isEE())
1668  {
1669  double fbrem_mode_endcaps = bestGsfElectron.fbrem();
1670  h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
1671  }
1672 
1673  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_fbrem_eg->Fill(fbrem_mode);
1674  p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(),fbrem_mode);
1675 
1676  if (!readAOD_) // track extra does not exist in AOD
1677  {
1678  double fbrem_mean = 1. - bestGsfElectron.gsfTrack()->outerMomentum().R()/bestGsfElectron.gsfTrack()->innerMomentum().R() ;
1679  p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(),fbrem_mean) ;
1680  }
1681 
1682  //
1683 
1684  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(), bestGsfElectron.trackMomentumAtVtx().R());
1685  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(), bestGsfElectron.trackMomentumAtVtx().R());
1686  if (!readAOD_) // track extra not available in AOD
1687  {
1688  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), bestGsfElectron.gsfTrack()->innerMomentum().R());
1689  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), bestGsfElectron.gsfTrack()->innerMomentum().R());
1690  }
1691  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), bestGsfElectron.trackMomentumAtVtx().Rho());
1692  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), bestGsfElectron.trackMomentumAtVtx().Rho());
1693  if (!readAOD_) // track extra not available in AOD
1694  {
1695  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), bestGsfElectron.gsfTrack()->innerMomentum().Rho());
1696  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), bestGsfElectron.gsfTrack()->innerMomentum().Rho());
1697  }
1698 
1699  // provenance and pflow data
1700  h1_ele_mva->Fill(bestGsfElectron.mva());
1701  if (bestGsfElectron.isEB()) h1_ele_mva_barrel->Fill(bestGsfElectron.mva());
1702  if (bestGsfElectron.isEE()) h1_ele_mva_endcaps->Fill(bestGsfElectron.mva());
1703  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_mva_eg->Fill(bestGsfElectron.mva());
1704  if (bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(1.);
1705  if (bestGsfElectron.trackerDrivenSeed()) h1_ele_provenance->Fill(-1.);
1706  if (bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(0.);
1707  if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(-2.);
1708  if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(2.);
1709 
1710  if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(1.);
1711  if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(-1.);
1712  if ((bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(0.);
1713  if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(-2.);
1714  if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(2.);
1715  if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(1.);
1716  if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(-1.);
1717  if ((bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(0.);
1718  if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(-2.);
1719  if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(2.);
1720 
1721  if (bestGsfElectron.isGsfCtfScPixChargeConsistent()) h1_ele_chargeInfo->Fill(-1.0);
1722  if (bestGsfElectron.isGsfScPixChargeConsistent()) h1_ele_chargeInfo->Fill(0.);
1723  if (bestGsfElectron.isGsfCtfChargeConsistent()) h1_ele_chargeInfo->Fill(1.0);
1724 
1725  // Pflow isolation
1727  if (bestGsfElectron.isEB()) h1_ele_chargedHadronIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().chargedHadronIso);
1728  if (bestGsfElectron.isEE()) h1_ele_chargedHadronIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().chargedHadronIso);
1729 
1731  if (bestGsfElectron.isEB()) h1_ele_neutralHadronIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().neutralHadronIso);
1732  if (bestGsfElectron.isEE()) h1_ele_neutralHadronIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().neutralHadronIso);
1733 
1735  if (bestGsfElectron.isEB()) h1_ele_photonIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().photonIso);
1736  if (bestGsfElectron.isEE()) h1_ele_photonIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().photonIso);
1737 
1738  // isolation
1739  h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
1740  if (bestGsfElectron.isEB()) h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
1741  if (bestGsfElectron.isEE()) h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
1743  if (bestGsfElectron.isEB()) h1_ele_ecalRecHitSumEt_dr03_barrel->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
1744  if (bestGsfElectron.isEE()) h1_ele_ecalRecHitSumEt_dr03_endcaps->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
1746  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr03_depth1_barrel->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEt());
1747  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr03_depth1_endcaps->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEt());
1749  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr03_depth2_barrel->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEt());
1750  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr03_depth2_endcaps->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEt());
1752  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEtBc());
1753  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEtBc());
1755  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEtBc());
1756  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEtBc());
1757  h1_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt());
1758  if (bestGsfElectron.isEB()) h1_ele_tkSumPt_dr04_barrel->Fill(bestGsfElectron.dr04TkSumPt());
1759  if (bestGsfElectron.isEE()) h1_ele_tkSumPt_dr04_endcaps->Fill(bestGsfElectron.dr04TkSumPt());
1761  if (bestGsfElectron.isEB()) h1_ele_ecalRecHitSumEt_dr04_barrel->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
1762  if (bestGsfElectron.isEE()) h1_ele_ecalRecHitSumEt_dr04_endcaps->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
1764  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr04_depth1_barrel->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEt());
1765  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr04_depth1_endcaps->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEt());
1767  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr04_depth2_barrel->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEt());
1768  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr04_depth2_endcaps->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEt());
1769 
1771  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEtBc());
1772  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEtBc());
1774  if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEtBc());
1775  if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEtBc());
1776 
1778  if (bestGsfElectron.isEB()) h1_ele_hcalDepth1OverEcalBc_barrel->Fill(bestGsfElectron.hcalDepth1OverEcalBc());
1779  if (bestGsfElectron.isEE()) h1_ele_hcalDepth1OverEcalBc_endcaps->Fill(bestGsfElectron.hcalDepth1OverEcalBc());
1781  if (bestGsfElectron.isEB()) h1_ele_hcalDepth2OverEcalBc_barrel->Fill(bestGsfElectron.hcalDepth2OverEcalBc());
1782  if (bestGsfElectron.isEE()) h1_ele_hcalDepth2OverEcalBc_endcaps->Fill(bestGsfElectron.hcalDepth2OverEcalBc());
1783 
1784  // isolation : difference with iso deposits
1785  if ( isoFromDepsTk03Handle.isValid() )
1786  { h1_ele_dIso_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt()-((*isoFromDepsTk03Handle)[bestGsfElectronRef])) ; }
1787  if ( isoFromDepsTk04Handle.isValid() )
1788  { h1_ele_dIso_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt()-((*isoFromDepsTk04Handle)[bestGsfElectronRef])) ; }
1789  if ( isoFromDepsEcalFull03Handle.isValid() )
1790  { h1_ele_dIso_ecalFullRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()-((*isoFromDepsEcalFull03Handle)[bestGsfElectronRef])) ; }
1791  if ( isoFromDepsEcalFull04Handle.isValid() )
1792  { h1_ele_dIso_ecalFullRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()-((*isoFromDepsEcalFull04Handle)[bestGsfElectronRef])) ; }
1793  if ( isoFromDepsEcalReduced03Handle.isValid() )
1794  { h1_ele_dIso_ecalReducedRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()-((*isoFromDepsEcalReduced03Handle)[bestGsfElectronRef])) ; }
1795  if ( isoFromDepsEcalReduced04Handle.isValid() )
1796  { h1_ele_dIso_ecalReducedRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()-((*isoFromDepsEcalReduced04Handle)[bestGsfElectronRef])) ; }
1797  if ( isoFromDepsHcal03Handle.isValid() )
1798  { h1_ele_dIso_hcalTowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt()-((*isoFromDepsHcal03Handle)[bestGsfElectronRef])) ; }
1799  if ( isoFromDepsHcal04Handle.isValid() )
1800  { h1_ele_dIso_hcalTowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt()-((*isoFromDepsHcal04Handle)[bestGsfElectronRef])) ; }
1801 
1802  // conversion rejection
1803  int flags = bestGsfElectron.convFlags() ;
1804  if (flags==-9999) { flags=-1 ; }
1805  h1_ele_convFlags->Fill(flags);
1806  if (flags>=0.)
1807  {
1808  h1_ele_convDist->Fill( bestGsfElectron.convDist() );
1809  h1_ele_convDcot->Fill( bestGsfElectron.convDcot() );
1810  h1_ele_convRadius->Fill( bestGsfElectron.convRadius() );
1811  }
1812 
1813  } // loop over mc particle
1814  h1_mcNum->Fill(mcNum) ;
1815  h1_eleNum->Fill(eleNum) ;
1816  }
1817 
1818 
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:556
MonitorElement * h1_ele_dIso_hcalTowerSumEt_dr03
MonitorElement * h1_ele_ecalEnergyError_endcaps
MonitorElement * h1_scl_EoEtrue_endcaps_ringgap
MonitorElement * h1_ele_dPhiCl_propOut_eg_barrel
T getParameter(std::string const &) const
float dr04HcalTowerSumEt() const
Definition: GsfElectron.h:451
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_endcaps
int i
Definition: DBlmapReader.cc:9
virtual double p() const
magnitude of momentum vector
MonitorElement * bookP1(const std::string &name, const std::string &title, int nchX, double lowX, double highX, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="E1 P")
MonitorElement * bookH1(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_hcalTowerSumEt_dr04_depth1_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_barrel
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1_barrel
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_endcaps
float scSigmaEtaEta() const
Definition: GsfElectron.h:398
bool isEBEtaGap() const
Definition: GsfElectron.h:335
float dr03HcalDepth1TowerSumEtBc() const
Definition: GsfElectron.h:441
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2
float eSuperClusterOverP() const
Definition: GsfElectron.h:229
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
MonitorElement * h1_scl_EoEtrue_endcaps_new_eg
bool isEBEEGap() const
Definition: GsfElectron.h:333
float dr04HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:449
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * h1_ele_hcalDepth1OverEcalBc_barrel
virtual const Point & vertex() const
vertex position
MonitorElement * h1_ele_dPhiEleCl_propOut_endcaps
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:272
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_endcaps
MonitorElement * h2_ele_dEtaEleClVsEta_propOut
MonitorElement * h1_ele_dEtaSc_propVtx_endcaps
float p4Error(P4Kind kind) const
Definition: GsfElectron.cc:216
MonitorElement * h1_ele_dEtaSc_propVtx_all_endcaps
MonitorElement * h1_ele_dPhiCl_propOut_all_endcaps
MonitorElement * h1_ele_dIso_ecalReducedRecHitSumEt_dr03
#define abs(x)
Definition: mlp_lapack.h:159
MonitorElement * h1_ele_dIso_ecalFullRecHitSumEt_dr04
float dr04TkSumPt() const
Definition: GsfElectron.h:447
std::vector< Variable::Flags > flags
Definition: MVATrainer.cc:135
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps
bool isEERingGap() const
Definition: GsfElectron.h:339
MonitorElement * h1_ele_dEtaCl_propOut_eg_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1
MonitorElement * h2_ele_PtinVsPtoutShowering_mode
MonitorElement * h1_ele_PoPtrue_showering_barrel
float dr03HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:439
float fbrem() const
Definition: GsfElectron.h:639
MonitorElement * h1_ele_hcalDepth2OverEcalBc_barrel
float scE2x5Max() const
Definition: GsfElectron.h:401
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1_endcaps
float convDist() const
Definition: GsfElectron.h:498
float convRadius() const
Definition: GsfElectron.h:500
uint16_t size_type
bool isEEDeeGap() const
Definition: GsfElectron.h:338
MonitorElement * h1_ele_chargedHadronIso_endcaps
MonitorElement * bookH1withSumw2(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")
virtual double eta() const
momentum pseudorapidity
MonitorElement * h2_ele_dPhiEleClVsPhi_propOut
bool isEE() const
Definition: GsfElectron.h:331
bool isEB() const
Definition: GsfElectron.h:330
MonitorElement * h1_ele_neutralHadronIso_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mean
MonitorElement * h2_ele_dEtaEleClVsPhi_propOut
MonitorElement * h1_ele_dPhiSc_propVtx_all_endcaps
void Fill(long long x)
const Double_t pi
float convDcot() const
Definition: GsfElectron.h:499
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth1
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2
bool isGsfScPixChargeConsistent() const
Definition: GsfElectron.h:140
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel
MonitorElement * h1_ele_dIso_hcalTowerSumEt_dr04
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
float dr04HcalDepth2TowerSumEt() const
Definition: GsfElectron.h:450
MonitorElement * h1_ele_PoPtrue_showering_endcaps
MonitorElement * h1_ele_hcalDepth2OverEcalBc_endcaps
MonitorElement * h2_ele_PtinVsPtoutGolden_mode
MonitorElement * h1_ele_neutralHadronIso_barrel
float mva() const
Definition: GsfElectron.h:567
bool isGsfCtfChargeConsistent() const
Definition: GsfElectron.h:141
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:233
int iEvent
Definition: GenABIO.cc:243
MonitorElement * h1_ele_dEtaEleCl_propOut_endcaps
bool isNull() const
Checks for null.
Definition: Ref.h:247
float dr03HcalDepth2TowerSumEtBc() const
Definition: GsfElectron.h:442
float eSeedClusterOverP() const
Definition: GsfElectron.h:230
MonitorElement * h1_ele_dPhiSc_propVtx_endcaps
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:448
MonitorElement * h1_ele_dEtaSc_propVtx_eg_endcaps
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:237
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:46
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
Definition: GsfElectron.h:168
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:274
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:236
MonitorElement * h1_ele_dPhiSc_propVtx_eg_barrel
MonitorElement * h2_ele_dPhiEleClVsEta_propOut
virtual int charge() const
electric charge
float hcalOverEcal() const
Definition: GsfElectron.h:390
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps
float dr04HcalDepth1TowerSumEtBc() const
Definition: GsfElectron.h:452
float dr03TkSumPt() const
Definition: GsfElectron.h:436
MonitorElement * h1_scl_EoEtrueShowering_endcaps
float dr03HcalDepth1TowerSumEt() const
Definition: GsfElectron.h:438
MonitorElement * h1_ele_hcalDepth1OverEcalBc_endcaps
float eEleClusterOverPout() const
Definition: GsfElectron.h:232
MonitorElement * h1_ele_chargedHadronIso_barrel
MonitorElement * h1_ele_dEtaSc_propVtx_all_barrel
void setBookPrefix(const std::string &)
float eSeedClusterOverPout() const
Definition: GsfElectron.h:231
MonitorElement * h1_ele_ecalEnergyError_barrel
MonitorElement * h1_ele_dPhiSc_propVtx_eg_endcaps
bool isValid() const
Definition: HandleBase.h:76
float hcalOverEcalBc() const
Definition: GsfElectron.h:394
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:399
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth1
MonitorElement * h1_ele_combinedP4Error_barrel
edm::Ref< GsfElectronCollection > GsfElectronRef
reference to an object in a collection of GsfElectron objects
MonitorElement * h1_ele_dIso_ecalReducedRecHitSumEt_dr04
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:238
MonitorElement * h1_ele_dPhiSc_propVtx_all_barrel
tuple conf
Definition: dbtoconf.py:185
MonitorElement * h1_ele_dEtaCl_propOut_eg_endcaps
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1
MonitorElement * h1_scl_EoEtrueShowering_barrel
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
virtual int pdgId() const =0
PDG identifier.
MonitorElement * h1_ele_dPhiEleCl_propOut_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel
MonitorElement * h1_scl_EoEtrue_barrel_new_etagap
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2
MonitorElement * h1_ele_dPhiEleCl_propOut_eg_barrel
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:235
virtual double pt() const
transverse momentum
Classification classification() const
Definition: GsfElectron.h:635
float hcalDepth2OverEcalBc() const
Definition: GsfElectron.h:393
REF castTo() const
cast to a concrete type
Definition: RefToBase.h:241
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:588
float dr04HcalDepth2TowerSumEtBc() const
Definition: GsfElectron.h:453
MonitorElement * h1_ele_dEtaCl_propOut_endcaps
ElectronMcSignalValidator(const edm::ParameterSet &conf)
MonitorElement * h2_ele_PinVsPoutShowering_mean
MonitorElement * h1_scl_SigIEtaIEta_eg_endcaps
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps
T const * product() const
Definition: Handle.h:74
MonitorElement * bookH2(const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel
float ecalEnergy() const
Definition: GsfElectron.h:724
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:437
MonitorElement * h1_ele_dPhiCl_propOut_all_barrel
MonitorElement * h1_ele_dEtaCl_propOut_all_barrel
float correctedEcalEnergyError() const
Definition: GsfElectron.h:714
MonitorElement * h1_ele_dEtaEleCl_propOut_eg_barrel
MonitorElement * h1_ele_dIso_ecalFullRecHitSumEt_dr03
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2_barrel
edm::EventID id() const
Definition: EventBase.h:56
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:234
MonitorElement * h1_ele_dEtaEleCl_propOut_eg_endcaps
T perp() const
Magnitude of transverse component.
MonitorElement * h1_ele_combinedP4Error_endcaps
int convFlags() const
Definition: GsfElectron.h:496
MonitorElement * h1_ele_ecalRecHitSumEt_dr03_barrel
bool isEBPhiGap() const
Definition: GsfElectron.h:336
MonitorElement * h1_scl_EoEtrue_endcaps_new_deegap
bool isGsfCtfScPixChargeConsistent() const
Definition: GsfElectron.h:139
bool trackerDrivenSeed() const
Definition: GsfElectron.h:173
MonitorElement * h2_ele_PinVsPoutShowering_mode
MonitorElement * h1_ele_hcalTowerSumEt_dr04_depth2_endcaps
float dr03HcalTowerSumEt() const
Definition: GsfElectron.h:440
MonitorElement * h1_ele_ecalRecHitSumEt_dr04_endcaps
MonitorElement * h1_ele_dEtaCl_propOut_all_endcaps
float scE5x5() const
Definition: GsfElectron.h:402
float hcalDepth1OverEcalBc() const
Definition: GsfElectron.h:392
MonitorElement * bookH2withSumw2(const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
MonitorElement * h1_ele_dPhiEleCl_propOut_eg_endcaps
float caloEnergy() const
Definition: GsfElectron.h:727
virtual double phi() const
momentum azimuthal angle
MonitorElement * h1_ele_hcalTowerSumEtBc_dr04_depth2
MonitorElement * h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps
MonitorElement * h1_scl_EoEtrue_barrel_new_phigap
MonitorElement * h2_ele_PtinVsPtoutShowering_mean
MonitorElement * h1_scl_EoEtrue_endcaps_new_ringgap
MonitorElement * h1_scl_EoEtrue_endcaps_deegap
MonitorElement * h1_ele_dEtaEleCl_propOut_barrel
SuperClusterRef pflowSuperCluster() const
Definition: GsfElectron.h:174
MonitorElement * h1_ele_dEtaSc_propVtx_eg_barrel
MonitorElement * h1_ele_dPhiCl_propOut_endcaps
virtual double py() const
y coordinate of momentum vector
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
MonitorElement * h1_ele_PoPtrue_golden_endcaps
float scE1x5() const
Definition: GsfElectron.h:400
virtual GsfTrackRef gsfTrack() const
reference to a GsfTrack
Definition: GsfElectron.h:169
MonitorElement * h1_ele_dPhiCl_propOut_eg_endcaps
bool ecalDrivenSeed() const
Definition: GsfElectron.h:172
MonitorElement * h1_ele_hcalTowerSumEt_dr03_depth2_barrel