CMS 3D CMS Logo

GsfElectronMCAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: RecoEgamma/Examples
4 // Class: GsfElectronMCAnalyzer
5 //
13 //
14 // Original Author: Ursula Berthon, Claude Charlot
15 // Created: Mon Mar 27 13:22:06 CEST 2006
16 //
17 //
18 
36 
37 #include "CLHEP/Units/GlobalPhysicalConstants.h"
38 
39 #include "TFile.h"
40 #include "TH1F.h"
41 #include "TH1I.h"
42 #include "TH2F.h"
43 #include "TProfile.h"
44 #include "TTree.h"
45 
46 #include <iostream>
47 #include <vector>
48 
50 public:
51  explicit GsfElectronMCAnalyzer(const edm::ParameterSet &conf);
52 
53  ~GsfElectronMCAnalyzer() override;
54 
55  void beginJob() override;
56  void endJob() override;
57  void analyze(const edm::Event &e, const edm::EventSetup &c) override;
58 
59 private:
63  TFile *histfile_;
64  TTree *tree_;
65  float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10];
67  float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10];
68 
69  TH1F *h_mcNum;
70  TH1F *h_eleNum;
71  TH1F *h_gamNum;
72 
73  TH1F *h_simEta;
74  TH1F *h_simAbsEta;
75  TH1F *h_simP;
76  TH1F *h_simPt;
77  TH1F *h_simPhi;
78  TH1F *h_simZ;
79  TH2F *h_simPtEta;
80 
87 
93 
135 
138 
145  TH1F *h_ele_Et;
160 
161  TH1F *histNum_;
162 
163  TH1F *histSclEn_;
182  TH1F *histSclEt_;
186  TH1F *histSclEta_;
187  TH1F *histSclPhi_;
188 
190 
221 
238  TH1F *h_ele_chi2;
244 
279 
288  TH1F *h_ele_EoP;
324 
379 
387 
389  TH1F *h_ele_eta;
394 
395  TH1F *h_ele_HoE;
405 
406  TH1F *h_ele_fbrem;
410 
423 
424  TH1F *h_ele_mva;
427 
436 
440  bool readAOD_;
441 
442  double maxPt_;
443  double maxAbsEta_;
444  double deltaR_;
445  std::vector<int> matchingIDs_;
446  std::vector<int> matchingMotherIDs_;
447 
448  // histos limits and binning
449  double etamin;
450  double etamax;
451  double phimin;
452  double phimax;
453  double ptmax;
454  double pmax;
455  double eopmax;
456  double eopmaxsht;
457  double detamin;
458  double detamax;
459  double dphimin;
460  double dphimax;
461  double detamatchmin;
462  double detamatchmax;
463  double dphimatchmin;
464  double dphimatchmax;
465  double fhitsmax;
466  double lhitsmax;
467  double poptruemin;
468  double poptruemax;
469  double meemin;
470  double meemax;
471  double hoemin;
472  double hoemax;
473  int nbineta;
474  int nbinp;
475  int nbinpt;
477  int nbinphi;
478  int nbinp2D;
479  int nbinpt2D;
482  int nbineop;
486  int nbinxyz;
487  int nbindeta;
488  int nbindphi;
494  int nbinmee;
495  int nbinhoe;
496 };
497 
500 
501 using namespace reco;
502 
504  outputFile_ = conf.getParameter<std::string>("outputFile");
505  histfile_ = new TFile(outputFile_.c_str(), "RECREATE");
506  electronCollection_ = conf.getParameter<edm::InputTag>("electronCollection");
507  mcTruthCollection_ = conf.getParameter<edm::InputTag>("mcTruthCollection");
508  readAOD_ = conf.getParameter<bool>("readAOD");
509  maxPt_ = conf.getParameter<double>("MaxPt");
510  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
511  deltaR_ = conf.getParameter<double>("DeltaR");
512  matchingIDs_ = conf.getParameter<std::vector<int> >("MatchingID");
513  matchingMotherIDs_ = conf.getParameter<std::vector<int> >("MatchingMotherID");
514  edm::ParameterSet pset = conf.getParameter<edm::ParameterSet>("HistosConfigurationMC");
515 
516  etamin = pset.getParameter<double>("Etamin");
517  etamax = pset.getParameter<double>("Etamax");
518  phimin = pset.getParameter<double>("Phimin");
519  phimax = pset.getParameter<double>("Phimax");
520  ptmax = pset.getParameter<double>("Ptmax");
521  pmax = pset.getParameter<double>("Pmax");
522  eopmax = pset.getParameter<double>("Eopmax");
523  eopmaxsht = pset.getParameter<double>("Eopmaxsht");
524  detamin = pset.getParameter<double>("Detamin");
525  detamax = pset.getParameter<double>("Detamax");
526  dphimin = pset.getParameter<double>("Dphimin");
527  dphimax = pset.getParameter<double>("Dphimax");
528  detamatchmin = pset.getParameter<double>("Detamatchmin");
529  detamatchmax = pset.getParameter<double>("Detamatchmax");
530  dphimatchmin = pset.getParameter<double>("Dphimatchmin");
531  dphimatchmax = pset.getParameter<double>("Dphimatchmax");
532  fhitsmax = pset.getParameter<double>("Fhitsmax");
533  lhitsmax = pset.getParameter<double>("Lhitsmax");
534  nbineta = pset.getParameter<int>("Nbineta");
535  nbineta2D = pset.getParameter<int>("Nbineta2D");
536  nbinp = pset.getParameter<int>("Nbinp");
537  nbinpt = pset.getParameter<int>("Nbinpt");
538  nbinp2D = pset.getParameter<int>("Nbinp2D");
539  nbinpt2D = pset.getParameter<int>("Nbinpt2D");
540  nbinpteff = pset.getParameter<int>("Nbinpteff");
541  nbinphi = pset.getParameter<int>("Nbinphi");
542  nbinphi2D = pset.getParameter<int>("Nbinphi2D");
543  nbineop = pset.getParameter<int>("Nbineop");
544  nbineop2D = pset.getParameter<int>("Nbineop2D");
545  nbinfhits = pset.getParameter<int>("Nbinfhits");
546  nbinlhits = pset.getParameter<int>("Nbinlhits");
547  nbinxyz = pset.getParameter<int>("Nbinxyz");
548  nbindeta = pset.getParameter<int>("Nbindeta");
549  nbindphi = pset.getParameter<int>("Nbindphi");
550  nbindetamatch = pset.getParameter<int>("Nbindetamatch");
551  nbindphimatch = pset.getParameter<int>("Nbindphimatch");
552  nbindetamatch2D = pset.getParameter<int>("Nbindetamatch2D");
553  nbindphimatch2D = pset.getParameter<int>("Nbindphimatch2D");
554  nbinpoptrue = pset.getParameter<int>("Nbinpoptrue");
555  poptruemin = pset.getParameter<double>("Poptruemin");
556  poptruemax = pset.getParameter<double>("Poptruemax");
557  nbinmee = pset.getParameter<int>("Nbinmee");
558  meemin = pset.getParameter<double>("Meemin");
559  meemax = pset.getParameter<double>("Meemax");
560  nbinhoe = pset.getParameter<int>("Nbinhoe");
561  hoemin = pset.getParameter<double>("Hoemin");
562  hoemax = pset.getParameter<double>("Hoemax");
563 }
564 
566  histfile_->cd();
567 
568  // mc truth
569  h_mcNum = new TH1F("h_mcNum", "# mc particles", nbinfhits, 0., fhitsmax);
570  h_mcNum->Sumw2();
571  h_eleNum = new TH1F("h_mcNum_ele", "# mc electrons", nbinfhits, 0., fhitsmax);
572  h_eleNum->Sumw2();
573  h_gamNum = new TH1F("h_mcNum_gam", "# mc gammas", nbinfhits, 0., fhitsmax);
574  h_gamNum->Sumw2();
575 
576  // rec event
577  histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.);
578 
579  // mc
580  h_simEta = new TH1F("h_mc_eta", "gen #eta", nbineta, etamin, etamax);
581  h_simEta->Sumw2();
582  h_simAbsEta = new TH1F("h_mc_abseta", "gen |#eta|", nbineta / 2, 0., etamax);
583  h_simAbsEta->Sumw2();
584  h_simP = new TH1F("h_mc_P", "gen p", nbinp, 0., pmax);
585  h_simP->Sumw2();
586  h_simPt = new TH1F("h_mc_Pt", "gen pt", nbinpteff, 5., ptmax);
587  h_simPt->Sumw2();
588  h_simPhi = new TH1F("h_mc_phi", "gen phi", nbinphi, phimin, phimax);
589  h_simPhi->Sumw2();
590  h_simZ = new TH1F("h_mc_z", "gen z ", nbinxyz, -25, 25);
591  h_simZ->Sumw2();
592  h_simPtEta = new TH2F("h_mc_pteta", "gen pt vs #eta", nbineta2D, etamin, etamax, nbinpt2D, 5., ptmax);
593  h_simPtEta->Sumw2();
594 
595  // all electrons
596  h_ele_EoverP_all = new TH1F("h_ele_EoverP_all", "ele E/P_{vertex}, all reco electrons", nbineop, 0., eopmax);
597  h_ele_EoverP_all->Sumw2();
598  h_ele_EoverP_all_barrel =
599  new TH1F("h_ele_EoverP_all_barrel", "ele E/P_{vertex}, all reco electrons, barrel", nbineop, 0., eopmax);
600  h_ele_EoverP_all_barrel->Sumw2();
601  h_ele_EoverP_all_endcaps =
602  new TH1F("h_ele_EoverP_all_endcaps", "ele E/P_{vertex}, all reco electrons, endcaps", nbineop, 0., eopmax);
603  h_ele_EoverP_all_endcaps->Sumw2();
604  h_ele_EseedOP_all = new TH1F("h_ele_EseedOP_all", "ele E_{seed}/P_{vertex}, all reco electrons", nbineop, 0., eopmax);
605  h_ele_EseedOP_all->Sumw2();
606  h_ele_EseedOP_all_barrel =
607  new TH1F("h_ele_EseedOP_all_barrel", "ele E_{seed}/P_{vertex}, all reco electrons, barrel", nbineop, 0., eopmax);
608  h_ele_EseedOP_all_barrel->Sumw2();
609  h_ele_EseedOP_all_endcaps = new TH1F(
610  "h_ele_EseedOP_all_endcaps", "ele E_{seed}/P_{vertex}, all reco electrons, endcaps", nbineop, 0., eopmax);
611  h_ele_EseedOP_all_endcaps->Sumw2();
612  h_ele_EoPout_all = new TH1F("h_ele_EoPout_all", "ele E_{seed}/P_{out}, all reco electrons", nbineop, 0., eopmax);
613  h_ele_EoPout_all->Sumw2();
614  h_ele_EoPout_all_barrel =
615  new TH1F("h_ele_EoPout_all_barrel", "ele E_{seed}/P_{out}, all reco electrons barrel", nbineop, 0., eopmax);
616  h_ele_EoPout_all_barrel->Sumw2();
617  h_ele_EoPout_all_endcaps =
618  new TH1F("h_ele_EoPout_all_endcaps", "ele E_{seed}/P_{out}, all reco electrons endcaps", nbineop, 0., eopmax);
619  h_ele_EoPout_all_endcaps->Sumw2();
620  h_ele_EeleOPout_all = new TH1F("h_ele_EeleOPout_all", "ele E_{ele}/P_{out}, all reco electrons", nbineop, 0., eopmax);
621  h_ele_EeleOPout_all->Sumw2();
622  h_ele_EeleOPout_all_barrel =
623  new TH1F("h_ele_EeleOPout_all_barrel", "ele E_{ele}/P_{out}, all reco electrons barrel", nbineop, 0., eopmax);
624  h_ele_EeleOPout_all_barrel->Sumw2();
625  h_ele_EeleOPout_all_endcaps =
626  new TH1F("h_ele_EeleOPout_all_endcaps", "ele E_{ele}/P_{out}, all reco electrons endcaps", nbineop, 0., eopmax);
627  h_ele_EeleOPout_all_endcaps->Sumw2();
628  h_ele_dEtaSc_propVtx_all = new TH1F("h_ele_dEtaSc_propVtx_all",
629  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",
630  nbindetamatch,
631  detamatchmin,
632  detamatchmax);
633  h_ele_dEtaSc_propVtx_all->Sumw2();
634  h_ele_dEtaSc_propVtx_all_barrel = new TH1F("h_ele_dEtaSc_propVtx_all_barrel",
635  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel",
636  nbindetamatch,
637  detamatchmin,
638  detamatchmax);
639  h_ele_dEtaSc_propVtx_all_barrel->Sumw2();
640  h_ele_dEtaSc_propVtx_all_endcaps = new TH1F("h_ele_dEtaSc_propVtx_all_endcaps",
641  "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps",
642  nbindetamatch,
643  detamatchmin,
644  detamatchmax);
645  h_ele_dEtaSc_propVtx_all_endcaps->Sumw2();
646  h_ele_dPhiSc_propVtx_all = new TH1F("h_ele_dPhiSc_propVtx_all",
647  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",
648  nbindphimatch,
649  dphimatchmin,
650  dphimatchmax);
651  h_ele_dPhiSc_propVtx_all->Sumw2();
652  h_ele_dPhiSc_propVtx_all_barrel = new TH1F("h_ele_dPhiSc_propVtx_all_barrel",
653  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel",
654  nbindphimatch,
655  dphimatchmin,
656  dphimatchmax);
657  h_ele_dPhiSc_propVtx_all_barrel->Sumw2();
658  h_ele_dPhiSc_propVtx_all_endcaps = new TH1F("h_ele_dPhiSc_propVtx_all_endcaps",
659  "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps",
660  nbindphimatch,
661  dphimatchmin,
662  dphimatchmax);
663  h_ele_dPhiSc_propVtx_all_endcaps->Sumw2();
664  h_ele_dEtaCl_propOut_all = new TH1F("h_ele_dEtaCl_propOut_all",
665  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",
666  nbindetamatch,
667  detamatchmin,
668  detamatchmax);
669  h_ele_dEtaCl_propOut_all->Sumw2();
670  h_ele_dEtaCl_propOut_all_barrel =
671  new TH1F("h_ele_dEtaCl_propOut_all_barrel",
672  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel",
673  nbindetamatch,
674  detamatchmin,
675  detamatchmax);
676  h_ele_dEtaCl_propOut_all_barrel->Sumw2();
677  h_ele_dEtaCl_propOut_all_endcaps =
678  new TH1F("h_ele_dEtaCl_propOut_all_endcaps",
679  "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps",
680  nbindetamatch,
681  detamatchmin,
682  detamatchmax);
683  h_ele_dEtaCl_propOut_all_endcaps->Sumw2();
684  h_ele_dPhiCl_propOut_all = new TH1F("h_ele_dPhiCl_propOut_all",
685  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",
686  nbindphimatch,
687  dphimatchmin,
688  dphimatchmax);
689  h_ele_dPhiCl_propOut_all->Sumw2();
690  h_ele_dPhiCl_propOut_all_barrel =
691  new TH1F("h_ele_dPhiCl_propOut_all_barrel",
692  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel",
693  nbindphimatch,
694  dphimatchmin,
695  dphimatchmax);
696  h_ele_dPhiCl_propOut_all_endcaps =
697  new TH1F("h_ele_dPhiCl_propOut_all_endcaps",
698  "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps",
699  nbindphimatch,
700  dphimatchmin,
701  dphimatchmax);
702  h_ele_dPhiCl_propOut_all_barrel->Sumw2();
703  h_ele_dPhiCl_propOut_all_endcaps->Sumw2();
704  h_ele_HoE_all =
705  new TH1F("h_ele_HoE_all", "ele hadronic energy / em energy, all reco electrons", nbinhoe, hoemin, hoemax);
706  h_ele_HoE_all->Sumw2();
707  h_ele_HoE_all_barrel = new TH1F(
708  "h_ele_HoE_all_barrel", "ele hadronic energy / em energy, all reco electrons barrel", nbinhoe, hoemin, hoemax);
709  h_ele_HoE_all_barrel->Sumw2();
710  h_ele_HoE_all_endcaps = new TH1F(
711  "h_ele_HoE_all_endcaps", "ele hadronic energy / em energy, all reco electrons endcaps", nbinhoe, hoemin, hoemax);
712  h_ele_HoE_all_endcaps->Sumw2();
713  h_ele_vertexPt_all = new TH1F("h_ele_vertexPt_all", "ele p_{T}, all reco electrons", nbinpteff, 5., ptmax);
714  h_ele_vertexPt_all->Sumw2();
715  h_ele_Et_all = new TH1F("h_ele_Et_all", "ele SC E_{T}, all reco electrons", nbinpteff, 5., ptmax);
716  h_ele_Et_all->Sumw2();
717  h_ele_vertexEta_all = new TH1F("h_ele_vertexEta_all", "ele eta, all reco electrons", nbineta, etamin, etamax);
718  h_ele_vertexEta_all->Sumw2();
719  h_ele_TIP_all = new TH1F("h_ele_TIP_all", "ele vertex transverse radius, all reco electrons", 100, 0., 0.2);
720  h_ele_TIP_all->Sumw2();
721  h_ele_TIP_all_barrel =
722  new TH1F("h_ele_TIP_all_barrel", "ele vertex transverse radius, all reco electrons barrel", 100, 0., 0.2);
723  h_ele_TIP_all_barrel->Sumw2();
724  h_ele_TIP_all_endcaps =
725  new TH1F("h_ele_TIP_all_endcaps", "ele vertex transverse radius, all reco electrons endcaps", 100, 0., 0.2);
726  h_ele_TIP_all_endcaps->Sumw2();
727  h_ele_mee_all = new TH1F("h_ele_mee_all", "ele pairs invariant mass, all reco electrons", nbinmee, meemin, meemax);
728  h_ele_mee_all->Sumw2();
729  h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opp. sign", nbinmee, meemin, meemax);
730  h_ele_mee_os->Sumw2();
731  h_ele_mee_os_ebeb =
732  new TH1F("h_ele_mee_os_ebeb", "ele pairs invariant mass, opp. sign, EB-EB", nbinmee, meemin, meemax);
733  h_ele_mee_os_ebeb->Sumw2();
734  h_ele_mee_os_ebee =
735  new TH1F("h_ele_mee_os_ebee", "ele pairs invariant mass, opp. sign, EB-EE", nbinmee, meemin, meemax);
736  h_ele_mee_os_ebee->Sumw2();
737  h_ele_mee_os_eeee =
738  new TH1F("h_ele_mee_os_eeee", "ele pairs invariant mass, opp. sign, EE-EE", nbinmee, meemin, meemax);
739  h_ele_mee_os_eeee->Sumw2();
740  h_ele_mee_os_gg =
741  new TH1F("h_ele_mee_os_gg", "ele pairs invariant mass, opp. sign, good-good", nbinmee, meemin, meemax);
742  h_ele_mee_os_gg->Sumw2();
743  h_ele_mee_os_gb =
744  new TH1F("h_ele_mee_os_gb", "ele pairs invariant mass, opp. sign, good-bad", nbinmee, meemin, meemax);
745  h_ele_mee_os_gb->Sumw2();
746  h_ele_mee_os_bb =
747  new TH1F("h_ele_mee_os_bb", "ele pairs invariant mass, opp. sign, bad-bad", nbinmee, meemin, meemax);
748  h_ele_mee_os_bb->Sumw2();
749 
750  // duplicates
751  h_ele_E2mnE1vsMee_all = new TH2F("h_ele_E2mnE1vsMee_all",
752  "E2 - E1 vs ele pairs invariant mass, all electrons",
753  nbinmee,
754  meemin,
755  meemax,
756  100,
757  -50.,
758  50.);
759  h_ele_E2mnE1vsMee_egeg_all = new TH2F("h_ele_E2mnE1vsMee_egeg_all",
760  "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
761  nbinmee,
762  meemin,
763  meemax,
764  100,
765  -50.,
766  50.);
767 
768  // charge ID
769  h_ele_ChargeMnChargeTrue = new TH1F("h_ele_ChargeMnChargeTrue", "ele charge - gen charge ", 5, -1., 4.);
770  h_ele_ChargeMnChargeTrue->Sumw2();
771  h_ele_simEta_matched_qmisid =
772  new TH1F("h_ele_eta_matched_qmisid", "charge misid vs gen eta", nbineta, etamin, etamax);
773  h_ele_simEta_matched_qmisid->Sumw2();
774  h_ele_simAbsEta_matched_qmisid =
775  new TH1F("h_ele_abseta_matched_qmisid", "charge misid vs gen |eta|", nbineta / 2, 0., etamax);
776  h_ele_simAbsEta_matched_qmisid->Sumw2();
777  h_ele_simPt_matched_qmisid =
778  new TH1F("h_ele_Pt_matched_qmisid", "charge misid vs gen transverse momentum", nbinpteff, 5., ptmax);
779  h_ele_simPt_matched_qmisid->Sumw2();
780  h_ele_simPhi_matched_qmisid =
781  new TH1F("h_ele_phi_matched_qmisid", "charge misid vs gen phi", nbinphi, phimin, phimax);
782  h_ele_simPhi_matched_qmisid->Sumw2();
783  h_ele_simZ_matched_qmisid = new TH1F("h_ele_z_matched_qmisid", "charge misid vs gen z", nbinxyz, -25, 25);
784  h_ele_simZ_matched_qmisid->Sumw2();
785 
786  // matched electrons
787  h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.);
788  h_ele_charge->Sumw2();
789  h_ele_chargeVsEta = new TH2F("h_ele_chargeVsEta", "ele charge vs eta", nbineta2D, etamin, etamax, 5, -2., 2.);
790  h_ele_chargeVsPhi = new TH2F("h_ele_chargeVsPhi", "ele charge vs phi", nbinphi2D, phimin, phimax, 5, -2., 2.);
791  h_ele_chargeVsPt = new TH2F("h_ele_chargeVsPt", "ele charge vs pt", nbinpt, 0., 100., 5, -2., 2.);
792  h_ele_vertexP = new TH1F("h_ele_vertexP", "ele momentum", nbinp, 0., pmax);
793  h_ele_vertexP->Sumw2();
794  h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax);
795  h_ele_vertexPt->Sumw2();
796  h_ele_Et = new TH1F("h_ele_Et", "ele transverse energy", nbinpt, 0., ptmax);
797  h_ele_Et->Sumw2();
798  h_ele_vertexPtVsEta =
799  new TH2F("h_ele_vertexPtVsEta", "ele transverse momentum vs eta", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax);
800  h_ele_vertexPtVsPhi =
801  new TH2F("h_ele_vertexPtVsPhi", "ele transverse momentum vs phi", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax);
802  h_ele_simPt_matched = new TH1F("h_ele_simPt_matched", "Efficiency vs gen transverse momentum", nbinpteff, 5., ptmax);
803  h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax);
804  h_ele_vertexEta->Sumw2();
805  h_ele_vertexEtaVsPhi =
806  new TH2F("h_ele_vertexEtaVsPhi", "ele momentum eta vs phi", nbineta2D, etamin, etamax, nbinphi2D, phimin, phimax);
807  h_ele_simAbsEta_matched = new TH1F("h_ele_simAbsEta_matched", "Efficiency vs gen |eta|", nbineta / 2, 0., 2.5);
808  h_ele_simAbsEta_matched->Sumw2();
809  h_ele_simEta_matched = new TH1F("h_ele_simEta_matched", "Efficiency vs gen eta", nbineta, etamin, etamax);
810  h_ele_simEta_matched->Sumw2();
811  h_ele_simPtEta_matched =
812  new TH2F("h_ele_simPtEta_matched", "Efficiency vs pt #eta", nbineta2D, etamin, etamax, nbinpt2D, 5., ptmax);
813  h_ele_simPtEta_matched->Sumw2();
814  h_ele_simPhi_matched = new TH1F("h_ele_simPhi_matched", "Efficiency vs gen phi", nbinphi, phimin, phimax);
815  h_ele_simPhi_matched->Sumw2();
816  h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax);
817  h_ele_vertexPhi->Sumw2();
818  h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1);
819  h_ele_vertexX->Sumw2();
820  h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1);
821  h_ele_vertexY->Sumw2();
822  h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25);
823  h_ele_vertexZ->Sumw2();
824  h_ele_simZ_matched = new TH1F("h_ele_simZ_matched", "Efficiency vs gen vertex z", nbinxyz, -25, 25);
825  h_ele_simZ_matched->Sumw2();
826  h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt gen vtx)", 90, 0., 0.15);
827  h_ele_vertexTIP->Sumw2();
828  h_ele_vertexTIPVsEta = new TH2F("h_ele_vertexTIPVsEta",
829  "ele transverse impact parameter (wrt gen vtx) vs eta",
830  nbineta2D,
831  etamin,
832  etamax,
833  45,
834  0.,
835  0.15);
836  h_ele_vertexTIPVsPhi = new TH2F("h_ele_vertexTIPVsPhi",
837  "ele transverse impact parameter (wrt gen vtx) vs phi",
838  nbinphi2D,
839  phimin,
840  phimax,
841  45,
842  0.,
843  0.15);
844  h_ele_vertexTIPVsPt = new TH2F("h_ele_vertexTIPVsPt",
845  "ele transverse impact parameter (wrt gen vtx) vs transverse momentum",
846  nbinpt2D,
847  0.,
848  ptmax,
849  45,
850  0.,
851  0.15);
852  h_ele_PoPtrue = new TH1F("h_ele_PoPtrue", "ele momentum / gen momentum", nbinpoptrue, poptruemin, poptruemax);
853  h_ele_PoPtrue->Sumw2();
854  h_ele_PtoPttrue = new TH1F(
855  "h_ele_PtoPttrue", "ele transverse momentum / gen transverse momentum", nbinpoptrue, poptruemin, poptruemax);
856  h_ele_PtoPttrue->Sumw2();
857  h_ele_PoPtrueVsEta = new TH2F(
858  "h_ele_PoPtrueVsEta", "ele momentum / gen momentum vs eta", nbineta2D, etamin, etamax, 50, poptruemin, poptruemax);
859  h_ele_PoPtrueVsPhi = new TH2F(
860  "h_ele_PoPtrueVsPhi", "ele momentum / gen momentum vs phi", nbinphi2D, phimin, phimax, 50, poptruemin, poptruemax);
861  h_ele_PoPtrueVsPt = new TH2F(
862  "h_ele_PoPtrueVsPt", "ele momentum / gen momentum vs eta", nbinpt2D, 0., ptmax, 50, poptruemin, poptruemax);
863  h_ele_PoPtrue_barrel =
864  new TH1F("h_ele_PoPtrue_barrel", "ele momentum / gen momentum, barrel", nbinpoptrue, poptruemin, poptruemax);
865  h_ele_PoPtrue_barrel->Sumw2();
866  h_ele_PoPtrue_endcaps =
867  new TH1F("h_ele_PoPtrue_endcaps", "ele momentum / gen momentum, endcaps", nbinpoptrue, poptruemin, poptruemax);
868  h_ele_PoPtrue_endcaps->Sumw2();
869  h_ele_PoPtrue_golden_barrel = new TH1F(
870  "h_ele_PoPtrue_golden_barrel", "ele momentum / gen momentum, golden, barrel", nbinpoptrue, poptruemin, poptruemax);
871  h_ele_PoPtrue_golden_barrel->Sumw2();
872  h_ele_PoPtrue_golden_endcaps = new TH1F("h_ele_PoPtrue_golden_endcaps",
873  "ele momentum / gen momentum, golden, endcaps",
874  nbinpoptrue,
875  poptruemin,
876  poptruemax);
877  h_ele_PoPtrue_golden_endcaps->Sumw2();
878  h_ele_PoPtrue_showering_barrel = new TH1F("h_ele_PoPtrue_showering_barrel",
879  "ele momentum / gen momentum, showering, barrel",
880  nbinpoptrue,
881  poptruemin,
882  poptruemax);
883  h_ele_PoPtrue_showering_barrel->Sumw2();
884  h_ele_PoPtrue_showering_endcaps = new TH1F("h_ele_PoPtrue_showering_endcaps",
885  "ele momentum / gen momentum, showering, endcaps",
886  nbinpoptrue,
887  poptruemin,
888  poptruemax);
889  h_ele_PoPtrue_showering_endcaps->Sumw2();
890  h_ele_PtoPttrue_barrel = new TH1F("h_ele_PtoPttrue_barrel",
891  "ele transverse momentum / gen transverse momentum, barrel",
892  nbinpoptrue,
893  poptruemin,
894  poptruemax);
895  h_ele_PtoPttrue_barrel->Sumw2();
896  h_ele_PtoPttrue_endcaps = new TH1F("h_ele_PtoPttrue_endcaps",
897  "ele transverse momentum / gen transverse momentum, endcaps",
898  nbinpoptrue,
899  poptruemin,
900  poptruemax);
901  h_ele_PtoPttrue_endcaps->Sumw2();
902  h_ele_EtaMnEtaTrue = new TH1F("h_ele_EtaMnEtaTrue", "ele momentum eta - gen eta", nbindeta, detamin, detamax);
903  h_ele_EtaMnEtaTrue->Sumw2();
904  h_ele_EtaMnEtaTrue_barrel =
905  new TH1F("h_ele_EtaMnEtaTrue_barrel", "ele momentum eta - gen eta barrel", nbindeta, detamin, detamax);
906  h_ele_EtaMnEtaTrue_barrel->Sumw2();
907  h_ele_EtaMnEtaTrue_endcaps =
908  new TH1F("h_ele_EtaMnEtaTrue_endcaps", "ele momentum eta - gen eta endcaps", nbindeta, detamin, detamax);
909  h_ele_EtaMnEtaTrue_endcaps->Sumw2();
910  h_ele_EtaMnEtaTrueVsEta = new TH2F("h_ele_EtaMnEtaTrueVsEta",
911  "ele momentum eta - gen eta vs eta",
912  nbineta2D,
913  etamin,
914  etamax,
915  nbindeta / 2,
916  detamin,
917  detamax);
918  h_ele_EtaMnEtaTrueVsPhi = new TH2F("h_ele_EtaMnEtaTrueVsPhi",
919  "ele momentum eta - gen eta vs phi",
920  nbinphi2D,
921  phimin,
922  phimax,
923  nbindeta / 2,
924  detamin,
925  detamax);
926  h_ele_EtaMnEtaTrueVsPt = new TH2F(
927  "h_ele_EtaMnEtaTrueVsPt", "ele momentum eta - gen eta vs pt", nbinpt, 0., ptmax, nbindeta / 2, detamin, detamax);
928  h_ele_PhiMnPhiTrue = new TH1F("h_ele_PhiMnPhiTrue", "ele momentum phi - gen phi", nbindphi, dphimin, dphimax);
929  h_ele_PhiMnPhiTrue->Sumw2();
930  h_ele_PhiMnPhiTrue_barrel =
931  new TH1F("h_ele_PhiMnPhiTrue_barrel", "ele momentum phi - gen phi barrel", nbindphi, dphimin, dphimax);
932  h_ele_PhiMnPhiTrue_barrel->Sumw2();
933  h_ele_PhiMnPhiTrue_endcaps =
934  new TH1F("h_ele_PhiMnPhiTrue_endcaps", "ele momentum phi - gen phi endcaps", nbindphi, dphimin, dphimax);
935  h_ele_PhiMnPhiTrue_endcaps->Sumw2();
936  h_ele_PhiMnPhiTrue2 =
937  new TH1F("h_ele_PhiMnPhiTrue2", "ele momentum phi - gen phi", nbindphimatch2D, dphimatchmin, dphimatchmax);
938  h_ele_PhiMnPhiTrueVsEta = new TH2F("h_ele_PhiMnPhiTrueVsEta",
939  "ele momentum phi - gen phi vs eta",
940  nbineta2D,
941  etamin,
942  etamax,
943  nbindphi / 2,
944  dphimin,
945  dphimax);
946  h_ele_PhiMnPhiTrueVsPhi = new TH2F("h_ele_PhiMnPhiTrueVsPhi",
947  "ele momentum phi - gen phi vs phi",
948  nbinphi2D,
949  phimin,
950  phimax,
951  nbindphi / 2,
952  dphimin,
953  dphimax);
954  h_ele_PhiMnPhiTrueVsPt = new TH2F("h_ele_PhiMnPhiTrueVsPt",
955  "ele momentum phi - gen phi vs pt",
956  nbinpt2D,
957  0.,
958  ptmax,
959  nbindphi / 2,
960  dphimin,
961  dphimax);
962 
963  // matched electron, superclusters
964  histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax);
965  histSclEn_->Sumw2();
966  histSclEoEtrue_barrel =
967  new TH1F("h_scl_EoEtrue_barrel", "ele supercluster energy / gen energy, barrel", 50, 0.2, 1.2);
968  histSclEoEtrue_barrel->Sumw2();
969  histSclEoEtrue_barrel_eg =
970  new TH1F("h_scl_EoEtrue_barrel_eg", "ele supercluster energy / gen energy, barrel, ecal driven", 50, 0.2, 1.2);
971  histSclEoEtrue_barrel_eg->Sumw2();
972  histSclEoEtrue_barrel_etagap =
973  new TH1F("h_scl_EoEtrue_barrel_etagap", "ele supercluster energy / gen energy, barrel, etagap", 50, 0.2, 1.2);
974  histSclEoEtrue_barrel_etagap->Sumw2();
975  histSclEoEtrue_barrel_phigap =
976  new TH1F("h_scl_EoEtrue_barrel_phigap", "ele supercluster energy / gen energy, barrel, phigap", 50, 0.2, 1.2);
977  histSclEoEtrue_barrel_phigap->Sumw2();
978  histSclEoEtrue_ebeegap =
979  new TH1F("h_scl_EoEtrue_ebeegap", "ele supercluster energy / gen energy, ebeegap", 50, 0.2, 1.2);
980  histSclEoEtrue_ebeegap->Sumw2();
981  histSclEoEtrue_endcaps =
982  new TH1F("h_scl_EoEtrue_endcaps", "ele supercluster energy / gen energy, endcaps", 50, 0.2, 1.2);
983  histSclEoEtrue_endcaps->Sumw2();
984  histSclEoEtrue_endcaps_eg =
985  new TH1F("h_scl_EoEtrue_endcaps_eg", "ele supercluster energy / gen energy, endcaps, ecal driven", 50, 0.2, 1.2);
986  histSclEoEtrue_endcaps_eg->Sumw2();
987  histSclEoEtrue_endcaps_deegap =
988  new TH1F("h_scl_EoEtrue_endcaps_deegap", "ele supercluster energy / gen energy, endcaps, deegap", 50, 0.2, 1.2);
989  histSclEoEtrue_endcaps_deegap->Sumw2();
990  histSclEoEtrue_endcaps_ringgap =
991  new TH1F("h_scl_EoEtrue_endcaps_ringgap", "ele supercluster energy / gen energy, endcaps, ringgap", 50, 0.2, 1.2);
992  histSclEoEtrue_endcaps_ringgap->Sumw2();
993  histSclEoEtrue_barrel_new = new TH1F(
994  "h_scl_EoEtrue_barrel_new", "ele supercluster energy / gen energy, barrel", nbinpoptrue, poptruemin, poptruemax);
995  histSclEoEtrue_barrel_new->Sumw2();
996  histSclEoEtrue_barrel_eg_new = new TH1F("h_scl_EoEtrue_barrel_eg_new",
997  "ele supercluster energy / gen energy, barrel, ecal driven",
998  nbinpoptrue,
999  poptruemin,
1000  poptruemax);
1001  histSclEoEtrue_barrel_eg_new->Sumw2();
1002  histSclEoEtrue_barrel_etagap_new = new TH1F("h_scl_EoEtrue_barrel_etagap_new",
1003  "ele supercluster energy / gen energy, barrel, etagap",
1004  nbinpoptrue,
1005  poptruemin,
1006  poptruemax);
1007  histSclEoEtrue_barrel_etagap_new->Sumw2();
1008  histSclEoEtrue_barrel_phigap_new = new TH1F("h_scl_EoEtrue_barrel_phigap_new",
1009  "ele supercluster energy / gen energy, barrel, phigap",
1010  nbinpoptrue,
1011  poptruemin,
1012  poptruemax);
1013  histSclEoEtrue_barrel_phigap_new->Sumw2();
1014  histSclEoEtrue_ebeegap_new = new TH1F(
1015  "h_scl_EoEtrue_ebeegap_new", "ele supercluster energy / gen energy, ebeegap", nbinpoptrue, poptruemin, poptruemax);
1016  histSclEoEtrue_ebeegap_new->Sumw2();
1017  histSclEoEtrue_endcaps_new = new TH1F(
1018  "h_scl_EoEtrue_endcaps_new", "ele supercluster energy / gen energy, endcaps", nbinpoptrue, poptruemin, poptruemax);
1019  histSclEoEtrue_endcaps_new->Sumw2();
1020  histSclEoEtrue_endcaps_eg_new = new TH1F("h_scl_EoEtrue_endcaps_eg_new",
1021  "ele supercluster energy / gen energy, endcaps, ecal driven",
1022  nbinpoptrue,
1023  poptruemin,
1024  poptruemax);
1025  histSclEoEtrue_endcaps_eg_new->Sumw2();
1026  histSclEoEtrue_endcaps_deegap_new = new TH1F("h_scl_EoEtrue_endcaps_deegap_new",
1027  "ele supercluster energy / gen energy, endcaps, deegap",
1028  nbinpoptrue,
1029  poptruemin,
1030  poptruemax);
1031  histSclEoEtrue_endcaps_deegap_new->Sumw2();
1032  histSclEoEtrue_endcaps_ringgap_new = new TH1F("h_scl_EoEtrue_endcaps_ringgap_new",
1033  "ele supercluster energy / gen energy, endcaps, ringgap",
1034  nbinpoptrue,
1035  poptruemin,
1036  poptruemax);
1037  histSclEoEtrue_endcaps_ringgap_new->Sumw2();
1038  histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax);
1039  histSclEt_->Sumw2();
1040  histSclEtVsEta_ = new TH2F(
1041  "h_scl_etVsEta", "ele supercluster transverse energy vs eta", nbineta2D, etamin, etamax, nbinpt, 0., ptmax);
1042  histSclEtVsPhi_ = new TH2F(
1043  "h_scl_etVsPhi", "ele supercluster transverse energy vs phi", nbinphi2D, phimin, phimax, nbinpt, 0., ptmax);
1044  histSclEtaVsPhi_ =
1045  new TH2F("h_scl_etaVsPhi", "ele supercluster eta vs phi", nbinphi2D, phimin, phimax, nbineta2D, etamin, etamax);
1046  histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax);
1047  histSclEta_->Sumw2();
1048  histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax);
1049  histSclPhi_->Sumw2();
1050 
1051  histSclSigEtaEta_ = new TH1F("h_scl_sigetaeta", "ele supercluster sigma eta eta", 100, 0., 0.05);
1052  histSclSigEtaEta_->Sumw2();
1053  histSclSigEtaEta_barrel_ = new TH1F("h_scl_sigetaeta_barrel", "ele supercluster sigma eta eta barrel", 100, 0., 0.05);
1054  histSclSigEtaEta_barrel_->Sumw2();
1055  histSclSigEtaEta_endcaps_ =
1056  new TH1F("h_scl_sigetaeta_endcaps", "ele supercluster sigma eta eta endcaps", 100, 0., 0.05);
1057  histSclSigEtaEta_endcaps_->Sumw2();
1058  histSclSigIEtaIEta_ = new TH1F("h_scl_sigietaieta", "ele supercluster sigma ieta ieta", 100, 0., 0.05);
1059  histSclSigIEtaIEta_->Sumw2();
1060  histSclSigIEtaIEta_barrel_ =
1061  new TH1F("h_scl_sigietaieta_barrel", "ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05);
1062  histSclSigIEtaIEta_barrel_->Sumw2();
1063  histSclSigIEtaIEta_endcaps_ =
1064  new TH1F("h_scl_sigietaieta_endcaps", "ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05);
1065  histSclSigIEtaIEta_endcaps_->Sumw2();
1066  histSclE1x5_ = new TH1F("h_scl_E1x5", "ele supercluster energy in 1x5", nbinp, 0., pmax);
1067  histSclE1x5_->Sumw2();
1068  histSclE1x5_barrel_ = new TH1F("h_scl_E1x5_barrel", "ele supercluster energy in 1x5 barrel", nbinp, 0., pmax);
1069  histSclE1x5_barrel_->Sumw2();
1070  histSclE1x5_endcaps_ = new TH1F("h_scl_E1x5_endcaps", "ele supercluster energy in 1x5 endcaps", nbinp, 0., pmax);
1071  histSclE1x5_endcaps_->Sumw2();
1072  histSclE2x5max_ = new TH1F("h_scl_E2x5max", "ele supercluster energy in 2x5 max", nbinp, 0., pmax);
1073  histSclE2x5max_->Sumw2();
1074  histSclE2x5max_barrel_ =
1075  new TH1F("h_scl_E2x5max_barrel", "ele supercluster energy in 2x5 max barrel", nbinp, 0., pmax);
1076  histSclE2x5max_barrel_->Sumw2();
1077  histSclE2x5max_endcaps_ =
1078  new TH1F("h_scl_E2x5max_endcaps", "ele supercluster energy in 2x5 max endcaps", nbinp, 0., pmax);
1079  histSclE2x5max_endcaps_->Sumw2();
1080  histSclE5x5_ = new TH1F("h_scl_E5x5", "ele supercluster energy in 5x5", nbinp, 0., pmax);
1081  histSclE5x5_->Sumw2();
1082  histSclE5x5_barrel_ = new TH1F("h_scl_E5x5_barrel", "ele supercluster energy in 5x5 barrel", nbinp, 0., pmax);
1083  histSclE5x5_barrel_->Sumw2();
1084  histSclE5x5_endcaps_ = new TH1F("h_scl_E5x5_endcaps", "ele supercluster energy in 5x5 endcaps", nbinp, 0., pmax);
1085  histSclE5x5_endcaps_->Sumw2();
1086  histSclSigEtaEta_eg_ = new TH1F("h_scl_sigetaeta_eg", "ele supercluster sigma eta eta, ecal driven", 100, 0., 0.05);
1087  histSclSigEtaEta_eg_->Sumw2();
1088  histSclSigEtaEta_eg_barrel_ =
1089  new TH1F("h_scl_sigetaeta_eg_barrel", "ele supercluster sigma eta eta, ecal driven barrel", 100, 0., 0.05);
1090  histSclSigEtaEta_eg_barrel_->Sumw2();
1091  histSclSigEtaEta_eg_endcaps_ =
1092  new TH1F("h_scl_sigetaeta_eg_endcaps", "ele supercluster sigma eta eta, ecal driven endcaps", 100, 0., 0.05);
1093  histSclSigEtaEta_eg_endcaps_->Sumw2();
1094  histSclSigIEtaIEta_eg_ =
1095  new TH1F("h_scl_sigietaieta_eg", "ele supercluster sigma ieta ieta, ecal driven", 100, 0., 0.05);
1096  histSclSigIEtaIEta_eg_->Sumw2();
1097  histSclSigIEtaIEta_eg_barrel_ =
1098  new TH1F("h_scl_sigietaieta_barrel_eg", "ele supercluster sigma ieta ieta, barrel, ecal driven", 100, 0., 0.05);
1099  histSclSigIEtaIEta_eg_barrel_->Sumw2();
1100  histSclSigIEtaIEta_eg_endcaps_ =
1101  new TH1F("h_scl_sigietaieta_endcaps_eg", "ele supercluster sigma ieta ieta, endcaps, ecal driven", 100, 0., 0.05);
1102  histSclSigIEtaIEta_eg_endcaps_->Sumw2();
1103  histSclE1x5_eg_ = new TH1F("h_scl_E1x5_eg", "ele supercluster energy in 1x5, ecal driven", nbinp, 0., pmax);
1104  histSclE1x5_eg_->Sumw2();
1105  histSclE1x5_eg_barrel_ =
1106  new TH1F("h_scl_E1x5_eg_barrel", "ele supercluster energy in 1x5, ecal driven barrel", nbinp, 0., pmax);
1107  histSclE1x5_eg_barrel_->Sumw2();
1108  histSclE1x5_eg_endcaps_ =
1109  new TH1F("h_scl_E1x5_eg_endcaps", "ele supercluster energy in 1x5, ecal driven endcaps", nbinp, 0., pmax);
1110  histSclE1x5_eg_endcaps_->Sumw2();
1111  histSclE2x5max_eg_ = new TH1F("h_scl_E2x5max_eg", "ele supercluster energy in 2x5 max, ecal driven", nbinp, 0., pmax);
1112  histSclE2x5max_eg_->Sumw2();
1113  histSclE2x5max_eg_barrel_ =
1114  new TH1F("h_scl_E2x5max_eg_barrel", "ele supercluster energy in 2x5 max, ecal driven barrel", nbinp, 0., pmax);
1115  histSclE2x5max_eg_barrel_->Sumw2();
1116  histSclE2x5max_eg_endcaps_ =
1117  new TH1F("h_scl_E2x5max_eg_endcaps", "ele supercluster energy in 2x5 max, ecal driven endcaps", nbinp, 0., pmax);
1118  histSclE2x5max_eg_endcaps_->Sumw2();
1119  histSclE5x5_eg_ = new TH1F("h_scl_E5x5_eg", "ele supercluster energy in 5x5, ecal driven", nbinp, 0., pmax);
1120  histSclE5x5_eg_->Sumw2();
1121  histSclE5x5_eg_barrel_ =
1122  new TH1F("h_scl_E5x5_eg_barrel", "ele supercluster energy in 5x5, ecal driven barrel", nbinp, 0., pmax);
1123  histSclE5x5_eg_barrel_->Sumw2();
1124  histSclE5x5_eg_endcaps_ =
1125  new TH1F("h_scl_E5x5_eg_endcaps", "ele supercluster energy in 5x5, ecal driven endcaps", nbinp, 0., pmax);
1126  histSclE5x5_eg_endcaps_->Sumw2();
1127 
1128  histSclEoEtruePfVsEg =
1129  new TH2F("h_scl_EoEtruePfVsEg", "ele supercluster energy / gen energy pflow vs eg", 75, -0.1, 1.4, 75, -0.1, 1.4);
1130 
1131  // matched electron, gsf tracks
1132  h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.);
1133  h_ele_ambiguousTracks->Sumw2();
1134  h_ele_ambiguousTracksVsEta =
1135  new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.);
1136  h_ele_ambiguousTracksVsPhi =
1137  new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.);
1138  h_ele_ambiguousTracksVsPt =
1139  new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.);
1140  h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax);
1141  h_ele_foundHits->Sumw2();
1142  h_ele_foundHits_barrel =
1143  new TH1F("h_ele_foundHits_barrel", "ele track # found hits, barrel", nbinfhits, 0., fhitsmax);
1144  h_ele_foundHits_barrel->Sumw2();
1145  h_ele_foundHits_endcaps =
1146  new TH1F("h_ele_foundHits_endcaps", "ele track # found hits, endcaps", nbinfhits, 0., fhitsmax);
1147  h_ele_foundHits_endcaps->Sumw2();
1148  h_ele_foundHitsVsEta = new TH2F(
1149  "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax);
1150  h_ele_foundHitsVsPhi = new TH2F(
1151  "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax);
1152  h_ele_foundHitsVsPt =
1153  new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax);
1154  h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.);
1155  h_ele_lostHits->Sumw2();
1156  h_ele_lostHits_barrel = new TH1F("h_ele_lostHits_barrel", "ele track # lost hits, barrel", 5, 0., 5.);
1157  h_ele_lostHits_barrel->Sumw2();
1158  h_ele_lostHits_endcaps = new TH1F("h_ele_lostHits_endcaps", "ele track # lost hits, endcaps", 5, 0., 5.);
1159  h_ele_lostHits_endcaps->Sumw2();
1160  h_ele_lostHitsVsEta = new TH2F(
1161  "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax);
1162  h_ele_lostHitsVsPhi = new TH2F(
1163  "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax);
1164  h_ele_lostHitsVsPt =
1165  new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax);
1166  h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.);
1167  h_ele_chi2->Sumw2();
1168  h_ele_chi2_barrel = new TH1F("h_ele_chi2_barrel", "ele track #chi^{2}, barrel", 100, 0., 15.);
1169  h_ele_chi2_barrel->Sumw2();
1170  h_ele_chi2_endcaps = new TH1F("h_ele_chi2_endcaps", "ele track #chi^{2}, endcaps", 100, 0., 15.);
1171  h_ele_chi2_endcaps->Sumw2();
1172  h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.);
1173  h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.);
1174  h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.);
1175  h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean of GSF components", nbinp, 0., 200.);
1176  h_ele_PinMnPout->Sumw2();
1177  h_ele_PinMnPout_mode =
1178  new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode of GSF components", nbinp, 0., 100.);
1179  h_ele_PinMnPout_mode->Sumw2();
1180  h_ele_PinMnPoutVsEta_mode = new TH2F("h_ele_PinMnPoutVsEta_mode",
1181  "ele track inner p - outer p vs eta, mode of GSF components",
1182  nbineta2D,
1183  etamin,
1184  etamax,
1185  nbinp2D,
1186  0.,
1187  100.);
1188  h_ele_PinMnPoutVsPhi_mode = new TH2F("h_ele_PinMnPoutVsPhi_mode",
1189  "ele track inner p - outer p vs phi, mode of GSF components",
1190  nbinphi2D,
1191  phimin,
1192  phimax,
1193  nbinp2D,
1194  0.,
1195  100.);
1196  h_ele_PinMnPoutVsPt_mode = new TH2F("h_ele_PinMnPoutVsPt_mode",
1197  "ele track inner p - outer p vs pt, mode of GSF components",
1198  nbinpt2D,
1199  0.,
1200  ptmax,
1201  nbinp2D,
1202  0.,
1203  100.);
1204  h_ele_PinMnPoutVsE_mode = new TH2F("h_ele_PinMnPoutVsE_mode",
1205  "ele track inner p - outer p vs E, mode of GSF components",
1206  nbinp2D,
1207  0.,
1208  200.,
1209  nbinp2D,
1210  0.,
1211  100.);
1212  h_ele_PinMnPoutVsChi2_mode = new TH2F("h_ele_PinMnPoutVsChi2_mode",
1213  "ele track inner p - outer p vs track chi2, mode of GSF components",
1214  50,
1215  0.,
1216  20.,
1217  nbinp2D,
1218  0.,
1219  100.);
1220  h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean of GSF components", nbinp, 0., pmax);
1221  h_ele_outerP->Sumw2();
1222  h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode of GSF components", nbinp, 0., pmax);
1223  h_ele_outerP_mode->Sumw2();
1224  h_ele_outerPVsEta_mode =
1225  new TH2F("h_ele_outerPVsEta_mode", "ele track outer p vs eta mode", nbineta2D, etamin, etamax, 50, 0., pmax);
1226  h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean of GSF components", nbinpt, 0., ptmax);
1227  h_ele_outerPt->Sumw2();
1228  h_ele_outerPt_mode =
1229  new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode of GSF components", nbinpt, 0., ptmax);
1230  h_ele_outerPt_mode->Sumw2();
1231  h_ele_outerPtVsEta_mode = new TH2F("h_ele_outerPtVsEta_mode",
1232  "ele track outer p_{T} vs eta, mode of GSF components",
1233  nbineta2D,
1234  etamin,
1235  etamax,
1236  nbinpt2D,
1237  0.,
1238  ptmax);
1239  h_ele_outerPtVsPhi_mode = new TH2F("h_ele_outerPtVsPhi_mode",
1240  "ele track outer p_{T} vs phi, mode of GSF components",
1241  nbinphi2D,
1242  phimin,
1243  phimax,
1244  nbinpt2D,
1245  0.,
1246  ptmax);
1247  h_ele_outerPtVsPt_mode = new TH2F("h_ele_outerPtVsPt_mode",
1248  "ele track outer p_{T} vs pt, mode of GSF components",
1249  nbinpt2D,
1250  0.,
1251  100.,
1252  nbinpt2D,
1253  0.,
1254  ptmax);
1255 
1256  // matched electrons, matching
1257  h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax);
1258  h_ele_EoP->Sumw2();
1259  h_ele_EoP_eg = new TH1F("h_ele_EoP_eg", "ele E/P_{vertex}, ecal driven", nbineop, 0., eopmax);
1260  h_ele_EoP_eg->Sumw2();
1261  h_ele_EoP_barrel = new TH1F("h_ele_EoP_barrel", "ele E/P_{vertex} barrel", nbineop, 0., eopmax);
1262  h_ele_EoP_barrel->Sumw2();
1263  h_ele_EoP_eg_barrel = new TH1F("h_ele_EoP_eg_barrel", "ele E/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax);
1264  h_ele_EoP_eg_barrel->Sumw2();
1265  h_ele_EoP_endcaps = new TH1F("h_ele_EoP_endcaps", "ele E/P_{vertex} endcaps", nbineop, 0., eopmax);
1266  h_ele_EoP_endcaps->Sumw2();
1267  h_ele_EoP_eg_endcaps = new TH1F("h_ele_EoP_eg_endcaps", "ele E/P_{vertex}, ecal driven endcaps", nbineop, 0., eopmax);
1268  h_ele_EoP_eg_endcaps->Sumw2();
1269  h_ele_EoPVsEta =
1270  new TH2F("h_ele_EoPVsEta", "ele E/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht);
1271  h_ele_EoPVsPhi =
1272  new TH2F("h_ele_EoPVsPhi", "ele E/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht);
1273  h_ele_EoPVsE = new TH2F("h_ele_EoPVsE", "ele E/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.);
1274  h_ele_EseedOP = new TH1F("h_ele_EseedOP", "ele E_{seed}/P_{vertex}", nbineop, 0., eopmax);
1275  h_ele_EseedOP->Sumw2();
1276  h_ele_EseedOP_eg = new TH1F("h_ele_EseedOP_eg", "ele E_{seed}/P_{vertex}, ecal driven", nbineop, 0., eopmax);
1277  h_ele_EseedOP_eg->Sumw2();
1278  h_ele_EseedOP_barrel = new TH1F("h_ele_EseedOP_barrel", "ele E_{seed}/P_{vertex} barrel", nbineop, 0., eopmax);
1279  h_ele_EseedOP_barrel->Sumw2();
1280  h_ele_EseedOP_eg_barrel =
1281  new TH1F("h_ele_EseedOP_eg_barrel", "ele E_{seed}/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax);
1282  h_ele_EseedOP_eg_barrel->Sumw2();
1283  h_ele_EseedOP_endcaps = new TH1F("h_ele_EseedOP_endcaps", "ele E_{seed}/P_{vertex} endcaps", nbineop, 0., eopmax);
1284  h_ele_EseedOP_endcaps->Sumw2();
1285  h_ele_EseedOP_eg_endcaps =
1286  new TH1F("h_ele_EseedOP_eg_endcaps", "ele E_{seed}/P_{vertex}, ecal driven, endcaps", nbineop, 0., eopmax);
1287  h_ele_EseedOP_eg_endcaps->Sumw2();
1288  h_ele_EseedOPVsEta = new TH2F(
1289  "h_ele_EseedOPVsEta", "ele E_{seed}/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht);
1290  h_ele_EseedOPVsPhi = new TH2F(
1291  "h_ele_EseedOPVsPhi", "ele E_{seed}/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht);
1292  h_ele_EseedOPVsE = new TH2F("h_ele_EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.);
1293  h_ele_EoPout = new TH1F("h_ele_EoPout", "ele E_{seed}/P_{out}", nbineop, 0., eopmax);
1294  h_ele_EoPout->Sumw2();
1295  h_ele_EoPout_eg = new TH1F("h_ele_EoPout_eg", "ele E_{seed}/P_{out}, ecal driven", nbineop, 0., eopmax);
1296  h_ele_EoPout_eg->Sumw2();
1297  h_ele_EoPout_barrel = new TH1F("h_ele_EoPout_barrel", "ele E_{seed}/P_{out} barrel", nbineop, 0., eopmax);
1298  h_ele_EoPout_barrel->Sumw2();
1299  h_ele_EoPout_eg_barrel =
1300  new TH1F("h_ele_EoPout_eg_barrel", "ele E_{seed}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax);
1301  h_ele_EoPout_eg_barrel->Sumw2();
1302  h_ele_EoPout_endcaps = new TH1F("h_ele_EoPout_endcaps", "ele E_{seed}/P_{out} endcaps", nbineop, 0., eopmax);
1303  h_ele_EoPout_endcaps->Sumw2();
1304  h_ele_EoPout_eg_endcaps =
1305  new TH1F("h_ele_EoPout_eg_endcaps", "ele E_{seed}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax);
1306  h_ele_EoPout_eg_endcaps->Sumw2();
1307  h_ele_EoPoutVsEta =
1308  new TH2F("h_ele_EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht);
1309  h_ele_EoPoutVsPhi =
1310  new TH2F("h_ele_EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht);
1311  h_ele_EoPoutVsE =
1312  new TH2F("h_ele_EoPoutVsE", "ele E_{seed}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht);
1313  h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax);
1314  h_ele_EeleOPout->Sumw2();
1315  h_ele_EeleOPout_eg = new TH1F("h_ele_EeleOPout_eg", "ele E_{ele}/P_{out}, ecal driven", nbineop, 0., eopmax);
1316  h_ele_EeleOPout_eg->Sumw2();
1317  h_ele_EeleOPout_barrel = new TH1F("h_ele_EeleOPout_barrel", "ele E_{ele}/P_{out} barrel", nbineop, 0., eopmax);
1318  h_ele_EeleOPout_barrel->Sumw2();
1319  h_ele_EeleOPout_eg_barrel =
1320  new TH1F("h_ele_EeleOPout_eg_barrel", "ele E_{ele}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax);
1321  h_ele_EeleOPout_eg_barrel->Sumw2();
1322  h_ele_EeleOPout_endcaps = new TH1F("h_ele_EeleOPout_endcaps", "ele E_{ele}/P_{out} endcaps", nbineop, 0., eopmax);
1323  h_ele_EeleOPout_endcaps->Sumw2();
1324  h_ele_EeleOPout_eg_endcaps =
1325  new TH1F("h_ele_EeleOPout_eg_endcaps", "ele E_{ele}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax);
1326  h_ele_EeleOPout_eg_endcaps->Sumw2();
1327  h_ele_EeleOPoutVsEta = new TH2F(
1328  "h_ele_EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht);
1329  h_ele_EeleOPoutVsPhi = new TH2F(
1330  "h_ele_EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht);
1331  h_ele_EeleOPoutVsE =
1332  new TH2F("h_ele_EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht);
1333  h_ele_dEtaSc_propVtx = new TH1F(
1334  "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax);
1335  h_ele_dEtaSc_propVtx->Sumw2();
1336  h_ele_dEtaSc_propVtx_eg = new TH1F("h_ele_dEtaSc_propVtx_eg",
1337  "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven",
1338  nbindetamatch,
1339  detamatchmin,
1340  detamatchmax);
1341  h_ele_dEtaSc_propVtx_eg->Sumw2();
1342  h_ele_dEtaSc_propVtx_barrel = new TH1F("h_ele_dEtaSc_propVtx_barrel",
1343  "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",
1344  nbindetamatch,
1345  detamatchmin,
1346  detamatchmax);
1347  h_ele_dEtaSc_propVtx_barrel->Sumw2();
1348  h_ele_dEtaSc_propVtx_eg_barrel = new TH1F("h_ele_dEtaSc_propVtx_eg_barrel",
1349  "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel",
1350  nbindetamatch,
1351  detamatchmin,
1352  detamatchmax);
1353  h_ele_dEtaSc_propVtx_eg_barrel->Sumw2();
1354  h_ele_dEtaSc_propVtx_endcaps = new TH1F("h_ele_dEtaSc_propVtx_endcaps",
1355  "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",
1356  nbindetamatch,
1357  detamatchmin,
1358  detamatchmax);
1359  h_ele_dEtaSc_propVtx_endcaps->Sumw2();
1360  h_ele_dEtaSc_propVtx_eg_endcaps = new TH1F("h_ele_dEtaSc_propVtx_eg_endcaps",
1361  "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps",
1362  nbindetamatch,
1363  detamatchmin,
1364  detamatchmax);
1365  h_ele_dEtaSc_propVtx_eg_endcaps->Sumw2();
1366  h_ele_dEtaScVsEta_propVtx = new TH2F("h_ele_dEtaScVsEta_propVtx",
1367  "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
1368  nbineta2D,
1369  etamin,
1370  etamax,
1371  nbindetamatch2D,
1372  detamatchmin,
1373  detamatchmax);
1374  h_ele_dEtaScVsPhi_propVtx = new TH2F("h_ele_dEtaScVsPhi_propVtx",
1375  "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
1376  nbinphi2D,
1377  phimin,
1378  phimax,
1379  nbindetamatch2D,
1380  detamatchmin,
1381  detamatchmax);
1382  h_ele_dEtaScVsPt_propVtx = new TH2F("h_ele_dEtaScVsPt_propVtx",
1383  "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
1384  nbinpt2D,
1385  0.,
1386  ptmax,
1387  nbindetamatch2D,
1388  detamatchmin,
1389  detamatchmax);
1390  h_ele_dPhiSc_propVtx = new TH1F(
1391  "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax);
1392  h_ele_dPhiSc_propVtx->Sumw2();
1393  h_ele_dPhiSc_propVtx_eg = new TH1F("h_ele_dPhiSc_propVtx_eg",
1394  "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven",
1395  nbindphimatch,
1396  dphimatchmin,
1397  dphimatchmax);
1398  h_ele_dPhiSc_propVtx_eg->Sumw2();
1399  h_ele_dPhiSc_propVtx_barrel = new TH1F("h_ele_dPhiSc_propVtx_barrel",
1400  "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",
1401  nbindphimatch,
1402  dphimatchmin,
1403  dphimatchmax);
1404  h_ele_dPhiSc_propVtx_barrel->Sumw2();
1405  h_ele_dPhiSc_propVtx_eg_barrel = new TH1F("h_ele_dPhiSc_propVtx_eg_barrel",
1406  "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel",
1407  nbindphimatch,
1408  dphimatchmin,
1409  dphimatchmax);
1410  h_ele_dPhiSc_propVtx_eg_barrel->Sumw2();
1411  h_ele_dPhiSc_propVtx_endcaps = new TH1F("h_ele_dPhiSc_propVtx_endcaps",
1412  "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",
1413  nbindphimatch,
1414  dphimatchmin,
1415  dphimatchmax);
1416  h_ele_dPhiSc_propVtx_endcaps->Sumw2();
1417  h_ele_dPhiSc_propVtx_eg_endcaps = new TH1F("h_ele_dPhiSc_propVtx_eg_endcaps",
1418  "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps",
1419  nbindphimatch,
1420  dphimatchmin,
1421  dphimatchmax);
1422  h_ele_dPhiSc_propVtx_eg_endcaps->Sumw2();
1423  h_ele_dPhiScVsEta_propVtx = new TH2F("h_ele_dPhiScVsEta_propVtx",
1424  "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
1425  nbineta2D,
1426  etamin,
1427  etamax,
1428  nbindphimatch2D,
1429  dphimatchmin,
1430  dphimatchmax);
1431  h_ele_dPhiScVsPhi_propVtx = new TH2F("h_ele_dPhiScVsPhi_propVtx",
1432  "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
1433  nbinphi2D,
1434  phimin,
1435  phimax,
1436  nbindphimatch2D,
1437  dphimatchmin,
1438  dphimatchmax);
1439  h_ele_dPhiScVsPt_propVtx = new TH2F("h_ele_dPhiScVsPt_propVtx",
1440  "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
1441  nbinpt2D,
1442  0.,
1443  ptmax,
1444  nbindphimatch2D,
1445  dphimatchmin,
1446  dphimatchmax);
1447  h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut",
1448  "ele #eta_{cl} - #eta_{tr}, prop from outermost",
1449  nbindetamatch,
1450  detamatchmin,
1451  detamatchmax);
1452  h_ele_dEtaCl_propOut->Sumw2();
1453  h_ele_dEtaCl_propOut_eg = new TH1F("h_ele_dEtaCl_propOut_eg",
1454  "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven",
1455  nbindetamatch,
1456  detamatchmin,
1457  detamatchmax);
1458  h_ele_dEtaCl_propOut_eg->Sumw2();
1459  h_ele_dEtaCl_propOut_barrel = new TH1F("h_ele_dEtaCl_propOut_barrel",
1460  "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",
1461  nbindetamatch,
1462  detamatchmin,
1463  detamatchmax);
1464  h_ele_dEtaCl_propOut_barrel->Sumw2();
1465  h_ele_dEtaCl_propOut_eg_barrel = new TH1F("h_ele_dEtaCl_propOut_eg_barrel",
1466  "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel",
1467  nbindetamatch,
1468  detamatchmin,
1469  detamatchmax);
1470  h_ele_dEtaCl_propOut_eg_barrel->Sumw2();
1471  h_ele_dEtaCl_propOut_endcaps = new TH1F("h_ele_dEtaCl_propOut_endcaps",
1472  "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",
1473  nbindetamatch,
1474  detamatchmin,
1475  detamatchmax);
1476  h_ele_dEtaCl_propOut_endcaps->Sumw2();
1477  h_ele_dEtaCl_propOut_eg_endcaps = new TH1F("h_ele_dEtaCl_propOut_eg_endcaps",
1478  "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",
1479  nbindetamatch,
1480  detamatchmin,
1481  detamatchmax);
1482  h_ele_dEtaCl_propOut_eg_endcaps->Sumw2();
1483  h_ele_dEtaClVsEta_propOut = new TH2F("h_ele_dEtaClVsEta_propOut",
1484  "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
1485  nbineta2D,
1486  etamin,
1487  etamax,
1488  nbindetamatch2D,
1489  detamatchmin,
1490  detamatchmax);
1491  h_ele_dEtaClVsPhi_propOut = new TH2F("h_ele_dEtaClVsPhi_propOut",
1492  "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
1493  nbinphi2D,
1494  phimin,
1495  phimax,
1496  nbindetamatch2D,
1497  detamatchmin,
1498  detamatchmax);
1499  h_ele_dEtaClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut",
1500  "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
1501  nbinpt2D,
1502  0.,
1503  ptmax,
1504  nbindetamatch2D,
1505  detamatchmin,
1506  detamatchmax);
1507  h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut",
1508  "ele #phi_{cl} - #phi_{tr}, prop from outermost",
1509  nbindphimatch,
1510  dphimatchmin,
1511  dphimatchmax);
1512  h_ele_dPhiCl_propOut->Sumw2();
1513  h_ele_dPhiCl_propOut_eg = new TH1F("h_ele_dPhiCl_propOut_eg",
1514  "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven",
1515  nbindphimatch,
1516  dphimatchmin,
1517  dphimatchmax);
1518  h_ele_dPhiCl_propOut_eg->Sumw2();
1519  h_ele_dPhiCl_propOut_barrel = new TH1F("h_ele_dPhiCl_propOut_barrel",
1520  "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",
1521  nbindphimatch,
1522  dphimatchmin,
1523  dphimatchmax);
1524  h_ele_dPhiCl_propOut_barrel->Sumw2();
1525  h_ele_dPhiCl_propOut_eg_barrel = new TH1F("h_ele_dPhiCl_propOut_eg_barrel",
1526  "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel",
1527  nbindphimatch,
1528  dphimatchmin,
1529  dphimatchmax);
1530  h_ele_dPhiCl_propOut_eg_barrel->Sumw2();
1531  h_ele_dPhiCl_propOut_endcaps = new TH1F("h_ele_dPhiCl_propOut_endcaps",
1532  "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",
1533  nbindphimatch,
1534  dphimatchmin,
1535  dphimatchmax);
1536  h_ele_dPhiCl_propOut_endcaps->Sumw2();
1537  h_ele_dPhiCl_propOut_eg_endcaps = new TH1F("h_ele_dPhiCl_propOut_eg_endcaps",
1538  "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",
1539  nbindphimatch,
1540  dphimatchmin,
1541  dphimatchmax);
1542  h_ele_dPhiCl_propOut_eg_endcaps->Sumw2();
1543  h_ele_dPhiClVsEta_propOut = new TH2F("h_ele_dPhiClVsEta_propOut",
1544  "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
1545  nbineta2D,
1546  etamin,
1547  etamax,
1548  nbindphimatch2D,
1549  dphimatchmin,
1550  dphimatchmax);
1551  h_ele_dPhiClVsPhi_propOut = new TH2F("h_ele_dPhiClVsPhi_propOut",
1552  "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
1553  nbinphi2D,
1554  phimin,
1555  phimax,
1556  nbindphimatch2D,
1557  dphimatchmin,
1558  dphimatchmax);
1559  h_ele_dPhiClVsPt_propOut = new TH2F("h_ele_dPhiSClsPt_propOut",
1560  "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
1561  nbinpt2D,
1562  0.,
1563  ptmax,
1564  nbindphimatch2D,
1565  dphimatchmin,
1566  dphimatchmax);
1567  h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut",
1568  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
1569  nbindetamatch,
1570  detamatchmin,
1571  detamatchmax);
1572  h_ele_dEtaEleCl_propOut->Sumw2();
1573  h_ele_dEtaEleCl_propOut_eg = new TH1F("h_ele_dEtaEleCl_propOut_eg",
1574  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven",
1575  nbindetamatch,
1576  detamatchmin,
1577  detamatchmax);
1578  h_ele_dEtaEleCl_propOut_eg->Sumw2();
1579  h_ele_dEtaEleCl_propOut_barrel = new TH1F("h_ele_dEtaEleCl_propOut_barrel",
1580  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",
1581  nbindetamatch,
1582  detamatchmin,
1583  detamatchmax);
1584  h_ele_dEtaEleCl_propOut_barrel->Sumw2();
1585  h_ele_dEtaEleCl_propOut_eg_barrel = new TH1F("h_ele_dEtaEleCl_propOut_eg_barrel",
1586  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel",
1587  nbindetamatch,
1588  detamatchmin,
1589  detamatchmax);
1590  h_ele_dEtaEleCl_propOut_eg_barrel->Sumw2();
1591  h_ele_dEtaEleCl_propOut_endcaps = new TH1F("h_ele_dEtaEleCl_propOut_endcaps",
1592  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",
1593  nbindetamatch,
1594  detamatchmin,
1595  detamatchmax);
1596  h_ele_dEtaEleCl_propOut_endcaps->Sumw2();
1597  h_ele_dEtaEleCl_propOut_eg_endcaps =
1598  new TH1F("h_ele_dEtaEleCl_propOut_eg_endcaps",
1599  "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",
1600  nbindetamatch,
1601  detamatchmin,
1602  detamatchmax);
1603  h_ele_dEtaEleCl_propOut_eg_endcaps->Sumw2();
1604  h_ele_dEtaEleClVsEta_propOut = new TH2F("h_ele_dEtaEleClVsEta_propOut",
1605  "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
1606  nbineta2D,
1607  etamin,
1608  etamax,
1609  nbindetamatch2D,
1610  detamatchmin,
1611  detamatchmax);
1612  h_ele_dEtaEleClVsPhi_propOut = new TH2F("h_ele_dEtaEleClVsPhi_propOut",
1613  "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
1614  nbinphi2D,
1615  phimin,
1616  phimax,
1617  nbindetamatch2D,
1618  detamatchmin,
1619  detamatchmax);
1620  h_ele_dEtaEleClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut",
1621  "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
1622  nbinpt2D,
1623  0.,
1624  ptmax,
1625  nbindetamatch2D,
1626  detamatchmin,
1627  detamatchmax);
1628  h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut",
1629  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
1630  nbindphimatch,
1631  dphimatchmin,
1632  dphimatchmax);
1633  h_ele_dPhiEleCl_propOut->Sumw2();
1634  h_ele_dPhiEleCl_propOut_eg = new TH1F("h_ele_dPhiEleCl_propOut_eg",
1635  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven",
1636  nbindphimatch,
1637  dphimatchmin,
1638  dphimatchmax);
1639  h_ele_dPhiEleCl_propOut_eg->Sumw2();
1640  h_ele_dPhiEleCl_propOut_barrel = new TH1F("h_ele_dPhiEleCl_propOut_barrel",
1641  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",
1642  nbindphimatch,
1643  dphimatchmin,
1644  dphimatchmax);
1645  h_ele_dPhiEleCl_propOut_barrel->Sumw2();
1646  h_ele_dPhiEleCl_propOut_eg_barrel = new TH1F("h_ele_dPhiEleCl_propOut_eg_barrel",
1647  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel",
1648  nbindphimatch,
1649  dphimatchmin,
1650  dphimatchmax);
1651  h_ele_dPhiEleCl_propOut_eg_barrel->Sumw2();
1652  h_ele_dPhiEleCl_propOut_endcaps = new TH1F("h_ele_dPhiEleCl_propOut_endcaps",
1653  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",
1654  nbindphimatch,
1655  dphimatchmin,
1656  dphimatchmax);
1657  h_ele_dPhiEleCl_propOut_endcaps->Sumw2();
1658  h_ele_dPhiEleCl_propOut_eg_endcaps =
1659  new TH1F("h_ele_dPhiEleCl_propOut_eg_endcaps",
1660  "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",
1661  nbindphimatch,
1662  dphimatchmin,
1663  dphimatchmax);
1664  h_ele_dPhiEleCl_propOut_eg_endcaps->Sumw2();
1665  h_ele_dPhiEleClVsEta_propOut = new TH2F("h_ele_dPhiEleClVsEta_propOut",
1666  "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
1667  nbineta2D,
1668  etamin,
1669  etamax,
1670  nbindphimatch2D,
1671  dphimatchmin,
1672  dphimatchmax);
1673  h_ele_dPhiEleClVsPhi_propOut = new TH2F("h_ele_dPhiEleClVsPhi_propOut",
1674  "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
1675  nbinphi2D,
1676  phimin,
1677  phimax,
1678  nbindphimatch2D,
1679  dphimatchmin,
1680  dphimatchmax);
1681  h_ele_dPhiEleClVsPt_propOut = new TH2F("h_ele_dPhiSEleClsPt_propOut",
1682  "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
1683  nbinpt2D,
1684  0.,
1685  ptmax,
1686  nbindphimatch2D,
1687  dphimatchmin,
1688  dphimatchmax);
1689 
1690  h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax);
1691  h_ele_HoE->Sumw2();
1692  h_ele_HoE_eg = new TH1F("h_ele_HoE_eg", "ele hadronic energy / em energy, ecal driven", nbinhoe, hoemin, hoemax);
1693  h_ele_HoE_eg->Sumw2();
1694  h_ele_HoE_barrel = new TH1F("h_ele_HoE_barrel", "ele hadronic energy / em energy, barrel", nbinhoe, hoemin, hoemax);
1695  h_ele_HoE_barrel->Sumw2();
1696  h_ele_HoE_eg_barrel =
1697  new TH1F("h_ele_HoE_eg_barrel", "ele hadronic energy / em energy, ecal driven, barrel", nbinhoe, hoemin, hoemax);
1698  h_ele_HoE_eg_barrel->Sumw2();
1699  h_ele_HoE_endcaps =
1700  new TH1F("h_ele_HoE_endcaps", "ele hadronic energy / em energy, endcaps", nbinhoe, hoemin, hoemax);
1701  h_ele_HoE_endcaps->Sumw2();
1702  h_ele_HoE_eg_endcaps = new TH1F(
1703  "h_ele_HoE_eg_endcaps", "ele hadronic energy / em energy, ecal driven, endcaps", nbinhoe, hoemin, hoemax);
1704  h_ele_HoE_eg_endcaps->Sumw2();
1705  h_ele_HoE_fiducial =
1706  new TH1F("h_ele_HoE_fiducial", "ele hadronic energy / em energy, fiducial region", nbinhoe, hoemin, hoemax);
1707  h_ele_HoE_fiducial->Sumw2();
1708  h_ele_HoEVsEta = new TH2F(
1709  "h_ele_HoEVsEta", "ele hadronic energy / em energy vs eta", nbineta, etamin, etamax, nbinhoe, hoemin, hoemax);
1710  h_ele_HoEVsPhi = new TH2F(
1711  "h_ele_HoEVsPhi", "ele hadronic energy / em energy vs phi", nbinphi2D, phimin, phimax, nbinhoe, hoemin, hoemax);
1712  h_ele_HoEVsE =
1713  new TH2F("h_ele_HoEVsE", "ele hadronic energy / em energy vs E", nbinp, 0., 300., nbinhoe, hoemin, hoemax);
1714 
1715  h_ele_seed_dphi2_ = new TH1F("h_ele_seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003);
1716  h_ele_seed_dphi2_->Sumw2();
1717  h_ele_seed_dphi2VsEta_ =
1718  new TH2F("h_ele_seedDphi2VsEta", "ele seed dphi 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.003, +0.003);
1719  h_ele_seed_dphi2VsPt_ =
1720  new TH2F("h_ele_seedDphi2VsPt", "ele seed dphi 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.003, +0.003);
1721  h_ele_seed_drz2_ = new TH1F("h_ele_seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03);
1722  h_ele_seed_drz2_->Sumw2();
1723  h_ele_seed_drz2VsEta_ =
1724  new TH2F("h_ele_seedDrz2VsEta", "ele seed dr/dz 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.03, +0.03);
1725  h_ele_seed_drz2VsPt_ =
1726  new TH2F("h_ele_seedDrz2VsPt", "ele seed dr/dz 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.03, +0.03);
1727  h_ele_seed_subdet2_ = new TH1F("h_ele_seedSubdet2", "ele seed subdet 2nd layer", 10, 0., 10.);
1728  h_ele_seed_subdet2_->Sumw2();
1729 
1730  // classes
1731  h_ele_classes = new TH1F("h_ele_classes", "ele classes", 20, 0.0, 20.);
1732  h_ele_classes->Sumw2();
1733  h_ele_eta = new TH1F("h_ele_eta", "ele electron eta", nbineta / 2, 0.0, etamax);
1734  h_ele_eta->Sumw2();
1735  h_ele_eta_golden = new TH1F("h_ele_eta_golden", "ele electron eta golden", nbineta / 2, 0.0, etamax);
1736  h_ele_eta_golden->Sumw2();
1737  h_ele_eta_bbrem = new TH1F("h_ele_eta_bbrem", "ele electron eta bbrem", nbineta / 2, 0.0, etamax);
1738  h_ele_eta_bbrem->Sumw2();
1739  h_ele_eta_narrow = new TH1F("h_ele_eta_narrow", "ele electron eta narrow", nbineta / 2, 0.0, etamax);
1740  h_ele_eta_narrow->Sumw2();
1741  h_ele_eta_shower = new TH1F("h_ele_eta_show", "ele electron eta showering", nbineta / 2, 0.0, etamax);
1742  h_ele_eta_shower->Sumw2();
1743  h_ele_PinVsPoutGolden_mode = new TH2F("h_ele_PinVsPoutGolden_mode",
1744  "ele track inner p vs outer p vs eta, golden, mode of GSF components",
1745  nbinp2D,
1746  0.,
1747  pmax,
1748  50,
1749  0.,
1750  pmax);
1751  h_ele_PinVsPoutShowering_mode = new TH2F("h_ele_PinVsPoutShowering_mode",
1752  "ele track inner p vs outer p vs eta, showering, mode of GSF components",
1753  nbinp2D,
1754  0.,
1755  pmax,
1756  50,
1757  0.,
1758  pmax);
1759  h_ele_PinVsPoutGolden_mean = new TH2F("h_ele_PinVsPoutGolden_mean",
1760  "ele track inner p vs outer p vs eta, golden, mean of GSF components",
1761  nbinp2D,
1762  0.,
1763  pmax,
1764  50,
1765  0.,
1766  pmax);
1767  h_ele_PinVsPoutShowering_mean = new TH2F("h_ele_PinVsPoutShowering_mean",
1768  "ele track inner p vs outer p vs eta, showering, mean of GSF components",
1769  nbinp2D,
1770  0.,
1771  pmax,
1772  50,
1773  0.,
1774  pmax);
1775  h_ele_PtinVsPtoutGolden_mode = new TH2F("h_ele_PtinVsPtoutGolden_mode",
1776  "ele track inner pt vs outer pt vs eta, golden, mode of GSF components",
1777  nbinpt2D,
1778  0.,
1779  ptmax,
1780  50,
1781  0.,
1782  ptmax);
1783  h_ele_PtinVsPtoutShowering_mode = new TH2F("h_ele_PtinVsPtoutShowering_mode",
1784  "ele track inner pt vs outer pt vs eta, showering, mode of GSF components",
1785  nbinpt2D,
1786  0.,
1787  ptmax,
1788  50,
1789  0.,
1790  ptmax);
1791  h_ele_PtinVsPtoutGolden_mean = new TH2F("h_ele_PtinVsPtoutGolden_mean",
1792  "ele track inner pt vs outer pt vs eta, golden, mean of GSF components",
1793  nbinpt2D,
1794  0.,
1795  ptmax,
1796  50,
1797  0.,
1798  ptmax);
1799  h_ele_PtinVsPtoutShowering_mean = new TH2F("h_ele_PtinVsPtoutShowering_mean",
1800  "ele track inner pt vs outer pt vs eta, showering, mean of GSF components",
1801  nbinpt2D,
1802  0.,
1803  ptmax,
1804  50,
1805  0.,
1806  ptmax);
1807  histSclEoEtrueGolden_barrel = new TH1F("h_scl_EoEtrue_golden_barrel",
1808  "ele supercluster energy / gen energy, golden, barrel",
1809  nbinpoptrue,
1810  poptruemin,
1811  poptruemax);
1812  histSclEoEtrueGolden_barrel->Sumw2();
1813  histSclEoEtrueGolden_endcaps = new TH1F("h_scl_EoEtrue_golden_endcaps",
1814  "ele supercluster energy / gen energy, golden, endcaps",
1815  nbinpoptrue,
1816  poptruemin,
1817  poptruemax);
1818  histSclEoEtrueGolden_endcaps->Sumw2();
1819  histSclEoEtrueShowering_barrel = new TH1F("h_scl_EoEtrue_showering_barrel",
1820  "ele supercluster energy / gen energy, showering, barrel",
1821  nbinpoptrue,
1822  poptruemin,
1823  poptruemax);
1824  histSclEoEtrueShowering_barrel->Sumw2();
1825  histSclEoEtrueShowering_endcaps = new TH1F("h_scl_EoEtrue_showering_endcaps",
1826  "ele supercluster energy / gen energy, showering, endcaps",
1827  nbinpoptrue,
1828  poptruemin,
1829  poptruemax);
1830  histSclEoEtrueShowering_endcaps->Sumw2();
1831 
1832  // isolation
1833  h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.);
1834  h_ele_tkSumPt_dr03->Sumw2();
1835  h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.);
1836  h_ele_ecalRecHitSumEt_dr03->Sumw2();
1837  h_ele_hcalDepth1TowerSumEt_dr03 =
1838  new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.);
1839  h_ele_hcalDepth1TowerSumEt_dr03->Sumw2();
1840  h_ele_hcalDepth2TowerSumEt_dr03 =
1841  new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.);
1842  h_ele_hcalDepth2TowerSumEt_dr03->Sumw2();
1843  h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "tk isolation sum, dR=0.4", 100, 0.0, 20.);
1844  h_ele_tkSumPt_dr04->Sumw2();
1845  h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.);
1846  h_ele_ecalRecHitSumEt_dr04->Sumw2();
1847  h_ele_hcalDepth1TowerSumEt_dr04 =
1848  new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.);
1849  h_ele_hcalDepth1TowerSumEt_dr04->Sumw2();
1850  h_ele_hcalDepth2TowerSumEt_dr04 =
1851  new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.);
1852  h_ele_hcalDepth2TowerSumEt_dr04->Sumw2();
1853 
1854  // fbrem
1855  h_ele_fbrem = new TH1F("h_ele_fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1.);
1856  h_ele_fbrem->Sumw2();
1857  h_ele_fbrem_eg = new TH1F("h_ele_fbrem_eg", "ele brem fraction, mode of GSF components, ecal driven", 100, 0., 1.);
1858  h_ele_fbrem_eg->Sumw2();
1859  h_ele_fbremVsEta_mode = new TProfile("h_ele_fbremvsEtamode",
1860  "mean ele brem fraction vs eta, mode of GSF components",
1861  nbineta2D,
1862  etamin,
1863  etamax,
1864  0.,
1865  1.);
1866  h_ele_fbremVsEta_mean = new TProfile("h_ele_fbremvsEtamean",
1867  "mean ele brem fraction vs eta, mean of GSF components",
1868  nbineta2D,
1869  etamin,
1870  etamax,
1871  0.,
1872  1.);
1873 
1874  // e/g et pflow electrons
1875  h_ele_mva = new TH1F("h_ele_mva", "ele identification mva", 100, -1., 1.);
1876  h_ele_mva->Sumw2();
1877  h_ele_mva_eg = new TH1F("h_ele_mva_eg", "ele identification mva, ecal driven", 100, -1., 1.);
1878  h_ele_mva_eg->Sumw2();
1879  h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.);
1880  h_ele_provenance->Sumw2();
1881 
1882  // histos titles
1883  h_mcNum->GetXaxis()->SetTitle("N_{gen}");
1884  h_mcNum->GetYaxis()->SetTitle("Events");
1885  h_eleNum->GetXaxis()->SetTitle("# gen ele");
1886  h_eleNum->GetYaxis()->SetTitle("Events");
1887  h_gamNum->GetXaxis()->SetTitle("N_{gen #gamma}");
1888  h_gamNum->GetYaxis()->SetTitle("Events");
1889  h_simEta->GetXaxis()->SetTitle("#eta");
1890  h_simEta->GetYaxis()->SetTitle("Events");
1891  h_simP->GetXaxis()->SetTitle("p (GeV/c)");
1892  h_simP->GetYaxis()->SetTitle("Events");
1893  h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}");
1894  h_ele_foundHits->GetYaxis()->SetTitle("Events");
1895  h_ele_foundHits_barrel->GetXaxis()->SetTitle("N_{hits}");
1896  h_ele_foundHits_barrel->GetYaxis()->SetTitle("Events");
1897  h_ele_foundHits_endcaps->GetXaxis()->SetTitle("N_{hits}");
1898  h_ele_foundHits_endcaps->GetYaxis()->SetTitle("Events");
1899  h_ele_ambiguousTracks->GetXaxis()->SetTitle("N_{ambiguous tracks}");
1900  h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events");
1901  h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}");
1902  h_ele_lostHits->GetYaxis()->SetTitle("Events");
1903  h_ele_lostHits_barrel->GetXaxis()->SetTitle("N_{lost hits}");
1904  h_ele_lostHits_barrel->GetYaxis()->SetTitle("Events");
1905  h_ele_lostHits_endcaps->GetXaxis()->SetTitle("N_{lost hits}");
1906  h_ele_lostHits_endcaps->GetYaxis()->SetTitle("Events");
1907  h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}");
1908  h_ele_chi2->GetYaxis()->SetTitle("Events");
1909  h_ele_chi2_barrel->GetXaxis()->SetTitle("#Chi^{2}");
1910  h_ele_chi2_barrel->GetYaxis()->SetTitle("Events");
1911  h_ele_chi2_endcaps->GetXaxis()->SetTitle("#Chi^{2}");
1912  h_ele_chi2_endcaps->GetYaxis()->SetTitle("Events");
1913  h_ele_charge->GetXaxis()->SetTitle("charge");
1914  h_ele_charge->GetYaxis()->SetTitle("Events");
1915  h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex} (GeV/c)");
1916  h_ele_vertexP->GetYaxis()->SetTitle("Events");
1917  h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)");
1918  h_ele_vertexPt->GetYaxis()->SetTitle("Events");
1919  h_ele_Et->GetXaxis()->SetTitle("E_{T} (GeV)");
1920  h_ele_Et->GetYaxis()->SetTitle("Events");
1921  h_ele_Et_all->GetXaxis()->SetTitle("E_{T} (GeV)");
1922  h_ele_Et_all->GetYaxis()->SetTitle("Events");
1923  h_ele_vertexEta->GetXaxis()->SetTitle("#eta");
1924  h_ele_vertexEta->GetYaxis()->SetTitle("Events");
1925  h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)");
1926  h_ele_vertexPhi->GetYaxis()->SetTitle("Events");
1927  h_ele_PoPtrue->GetXaxis()->SetTitle("P/P_{gen}");
1928  h_ele_PoPtrue->GetYaxis()->SetTitle("Events");
1929  h_ele_PoPtrue_barrel->GetXaxis()->SetTitle("P/P_{gen}");
1930  h_ele_PoPtrue_barrel->GetYaxis()->SetTitle("Events");
1931  h_ele_PoPtrue_endcaps->GetXaxis()->SetTitle("P/P_{gen}");
1932  h_ele_PoPtrue_endcaps->GetYaxis()->SetTitle("Events");
1933  h_ele_PoPtrue_golden_barrel->GetXaxis()->SetTitle("P/P_{gen}");
1934  h_ele_PoPtrue_golden_barrel->GetYaxis()->SetTitle("Events");
1935  h_ele_PoPtrue_showering_barrel->GetXaxis()->SetTitle("P/P_{gen}");
1936  h_ele_PoPtrue_showering_barrel->GetYaxis()->SetTitle("Events");
1937  h_ele_PoPtrue_golden_endcaps->GetXaxis()->SetTitle("P/P_{gen}");
1938  h_ele_PoPtrue_golden_endcaps->GetYaxis()->SetTitle("Events");
1939  h_ele_PoPtrue_showering_endcaps->GetXaxis()->SetTitle("P/P_{gen}");
1940  h_ele_PoPtrue_showering_endcaps->GetYaxis()->SetTitle("Events");
1941  h_ele_PtoPttrue->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}");
1942  h_ele_PtoPttrue->GetYaxis()->SetTitle("Events");
1943  h_ele_PtoPttrue_barrel->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}");
1944  h_ele_PtoPttrue_barrel->GetYaxis()->SetTitle("Events");
1945  h_ele_PtoPttrue_endcaps->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}");
1946  h_ele_PtoPttrue_endcaps->GetYaxis()->SetTitle("Events");
1947  histSclEoEtrue_barrel->GetXaxis()->SetTitle("E/E_{gen}");
1948  histSclEoEtrue_barrel->GetYaxis()->SetTitle("Events");
1949  histSclEoEtrue_endcaps->GetXaxis()->SetTitle("E/E_{gen}");
1950  histSclEoEtrue_endcaps->GetYaxis()->SetTitle("Events");
1951  histSclEoEtrueGolden_barrel->GetXaxis()->SetTitle("E/E_{gen}");
1952  histSclEoEtrueGolden_barrel->GetYaxis()->SetTitle("Events");
1953  histSclEoEtrueShowering_barrel->GetXaxis()->SetTitle("E/E_{gen}");
1954  histSclEoEtrueShowering_barrel->GetYaxis()->SetTitle("Events");
1955  histSclEoEtrueGolden_endcaps->GetXaxis()->SetTitle("E/E_{gen}");
1956  histSclEoEtrueGolden_endcaps->GetYaxis()->SetTitle("Events");
1957  histSclEoEtrueShowering_endcaps->GetXaxis()->SetTitle("E/E_{gen}");
1958  histSclEoEtrueShowering_endcaps->GetYaxis()->SetTitle("Events");
1959  histSclEoEtrue_barrel_etagap->GetXaxis()->SetTitle("E/E_{gen}");
1960  histSclEoEtrue_barrel_etagap->GetYaxis()->SetTitle("Events");
1961  histSclEoEtrue_barrel_phigap->GetXaxis()->SetTitle("E/E_{gen}");
1962  histSclEoEtrue_barrel_phigap->GetYaxis()->SetTitle("Events");
1963  histSclEoEtrue_ebeegap->GetXaxis()->SetTitle("E/E_{gen}");
1964  histSclEoEtrue_ebeegap->GetYaxis()->SetTitle("Events");
1965  histSclEoEtrue_endcaps_deegap->GetXaxis()->SetTitle("E/E_{gen}");
1966  histSclEoEtrue_endcaps_deegap->GetYaxis()->SetTitle("Events");
1967  histSclEoEtrue_endcaps_ringgap->GetXaxis()->SetTitle("E/E_{gen}");
1968  histSclEoEtrue_endcaps_ringgap->GetYaxis()->SetTitle("Events");
1969  histSclEoEtrue_barrel_new->GetXaxis()->SetTitle("E/E_{gen}");
1970  histSclEoEtrue_barrel_new->GetYaxis()->SetTitle("Events");
1971  histSclEoEtrue_endcaps_new->GetXaxis()->SetTitle("E/E_{gen}");
1972  histSclEoEtrue_endcaps_new->GetYaxis()->SetTitle("Events");
1973  histSclEoEtrue_barrel_etagap_new->GetXaxis()->SetTitle("E/E_{gen}");
1974  histSclEoEtrue_barrel_etagap_new->GetYaxis()->SetTitle("Events");
1975  histSclEoEtrue_barrel_phigap_new->GetXaxis()->SetTitle("E/E_{gen}");
1976  histSclEoEtrue_barrel_phigap_new->GetYaxis()->SetTitle("Events");
1977  histSclEoEtrue_ebeegap_new->GetXaxis()->SetTitle("E/E_{gen}");
1978  histSclEoEtrue_ebeegap_new->GetYaxis()->SetTitle("Events");
1979  histSclEoEtrue_endcaps_deegap_new->GetXaxis()->SetTitle("E/E_{gen}");
1980  histSclEoEtrue_endcaps_deegap_new->GetYaxis()->SetTitle("Events");
1981  histSclEoEtrue_endcaps_ringgap_new->GetXaxis()->SetTitle("E/E_{gen}");
1982  histSclEoEtrue_endcaps_ringgap_new->GetYaxis()->SetTitle("Events");
1983  histSclSigEtaEta_->GetXaxis()->SetTitle("#sigma_{#eta #eta}");
1984  histSclSigEtaEta_->GetYaxis()->SetTitle("Events");
1985  histSclSigEtaEta_barrel_->GetXaxis()->SetTitle("#sigma_{#eta #eta}");
1986  histSclSigEtaEta_barrel_->GetYaxis()->SetTitle("Events");
1987  histSclSigEtaEta_endcaps_->GetXaxis()->SetTitle("#sigma_{#eta #eta}");
1988  histSclSigEtaEta_endcaps_->GetYaxis()->SetTitle("Events");
1989  histSclSigIEtaIEta_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}");
1990  histSclSigIEtaIEta_->GetYaxis()->SetTitle("Events");
1991  histSclSigIEtaIEta_barrel_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}");
1992  histSclSigIEtaIEta_barrel_->GetYaxis()->SetTitle("Events");
1993  histSclSigIEtaIEta_endcaps_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}");
1994  histSclSigIEtaIEta_endcaps_->GetYaxis()->SetTitle("Events");
1995  histSclE1x5_->GetXaxis()->SetTitle("E1x5 (GeV)");
1996  histSclE1x5_->GetYaxis()->SetTitle("Events");
1997  histSclE1x5_barrel_->GetXaxis()->SetTitle("E1x5 (GeV)");
1998  histSclE1x5_barrel_->GetYaxis()->SetTitle("Events");
1999  histSclE1x5_endcaps_->GetXaxis()->SetTitle("E1x5 (GeV)");
2000  histSclE1x5_endcaps_->GetYaxis()->SetTitle("Events");
2001  histSclE2x5max_->GetXaxis()->SetTitle("E2x5 (GeV)");
2002  histSclE2x5max_->GetYaxis()->SetTitle("Events");
2003  histSclE2x5max_barrel_->GetXaxis()->SetTitle("E2x5 (GeV)");
2004  histSclE2x5max_barrel_->GetYaxis()->SetTitle("Events");
2005  histSclE2x5max_endcaps_->GetXaxis()->SetTitle("E2x5 (GeV)");
2006  histSclE2x5max_endcaps_->GetYaxis()->SetTitle("Events");
2007  histSclE5x5_->GetXaxis()->SetTitle("E5x5 (GeV)");
2008  histSclE5x5_->GetYaxis()->SetTitle("Events");
2009  histSclE5x5_barrel_->GetXaxis()->SetTitle("E5x5 (GeV)");
2010  histSclE5x5_barrel_->GetYaxis()->SetTitle("Events");
2011  histSclE5x5_endcaps_->GetXaxis()->SetTitle("E5x5 (GeV)");
2012  histSclE5x5_endcaps_->GetYaxis()->SetTitle("Events");
2013  histSclEoEtruePfVsEg->GetXaxis()->SetTitle("E/E_{gen} (e/g)");
2014  histSclEoEtruePfVsEg->GetYaxis()->SetTitle("E/E_{gen} (pflow)");
2015  h_ele_ChargeMnChargeTrue->GetXaxis()->SetTitle("q_{rec} - q_{gen}");
2016  h_ele_ChargeMnChargeTrue->GetYaxis()->SetTitle("Events");
2017  h_ele_EtaMnEtaTrue->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}");
2018  h_ele_EtaMnEtaTrue->GetYaxis()->SetTitle("Events");
2019  h_ele_EtaMnEtaTrue_barrel->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}");
2020  h_ele_EtaMnEtaTrue_barrel->GetYaxis()->SetTitle("Events");
2021  h_ele_EtaMnEtaTrue_endcaps->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}");
2022  h_ele_EtaMnEtaTrue_endcaps->GetYaxis()->SetTitle("Events");
2023  h_ele_PhiMnPhiTrue->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)");
2024  h_ele_PhiMnPhiTrue->GetYaxis()->SetTitle("Events");
2025  h_ele_PhiMnPhiTrue_barrel->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)");
2026  h_ele_PhiMnPhiTrue_barrel->GetYaxis()->SetTitle("Events");
2027  h_ele_PhiMnPhiTrue_endcaps->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)");
2028  h_ele_PhiMnPhiTrue_endcaps->GetYaxis()->SetTitle("Events");
2029  h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)");
2030  h_ele_PinMnPout->GetYaxis()->SetTitle("Events");
2031  h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
2032  h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events");
2033  h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)");
2034  h_ele_outerP->GetYaxis()->SetTitle("Events");
2035  h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)");
2036  h_ele_outerP_mode->GetYaxis()->SetTitle("Events");
2037  h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)");
2038  h_ele_outerPt->GetYaxis()->SetTitle("Events");
2039  h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)");
2040  h_ele_outerPt_mode->GetYaxis()->SetTitle("Events");
2041  h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}");
2042  h_ele_EoP->GetYaxis()->SetTitle("Events");
2043  h_ele_EseedOP->GetXaxis()->SetTitle("E_{seed}/P_{vertex}");
2044  h_ele_EseedOP->GetYaxis()->SetTitle("Events");
2045  h_ele_EoPout->GetXaxis()->SetTitle("E_{seed}/P_{out}");
2046  h_ele_EoPout->GetYaxis()->SetTitle("Events");
2047  h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}");
2048  h_ele_EeleOPout->GetYaxis()->SetTitle("Events");
2049  h_ele_EoP_barrel->GetXaxis()->SetTitle("E/P_{vertex}");
2050  h_ele_EoP_barrel->GetYaxis()->SetTitle("Events");
2051  h_ele_EseedOP_barrel->GetXaxis()->SetTitle("E_{seed}/P_{vertex}");
2052  h_ele_EseedOP_barrel->GetYaxis()->SetTitle("Events");
2053  h_ele_EoPout_barrel->GetXaxis()->SetTitle("E_{seed}/P_{out}");
2054  h_ele_EoPout_barrel->GetYaxis()->SetTitle("Events");
2055  h_ele_EeleOPout_barrel->GetXaxis()->SetTitle("E_{ele}/P_{out}");
2056  h_ele_EeleOPout_barrel->GetYaxis()->SetTitle("Events");
2057  h_ele_EoP_endcaps->GetXaxis()->SetTitle("E/P_{vertex}");
2058  h_ele_EoP_endcaps->GetYaxis()->SetTitle("Events");
2059  h_ele_EseedOP_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{vertex}");
2060  h_ele_EseedOP_endcaps->GetYaxis()->SetTitle("Events");
2061  h_ele_EoPout_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{out}");
2062  h_ele_EoPout_endcaps->GetYaxis()->SetTitle("Events");
2063  h_ele_EeleOPout_endcaps->GetXaxis()->SetTitle("E_{ele}/P_{out}");
2064  h_ele_EeleOPout_endcaps->GetYaxis()->SetTitle("Events");
2065  h_ele_vertexX->GetXaxis()->SetTitle("x (cm)");
2066  h_ele_vertexX->GetYaxis()->SetTitle("Events");
2067  h_ele_vertexY->GetXaxis()->SetTitle("y (cm)");
2068  h_ele_vertexY->GetYaxis()->SetTitle("Events");
2069  h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)");
2070  h_ele_vertexZ->GetYaxis()->SetTitle("Events");
2071  h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)");
2072  h_ele_vertexTIP->GetYaxis()->SetTitle("Events");
2073  h_ele_TIP_all->GetXaxis()->SetTitle("r_{T} (cm)");
2074  h_ele_TIP_all->GetYaxis()->SetTitle("Events");
2075  h_ele_vertexTIPVsEta->GetYaxis()->SetTitle("TIP (cm)");
2076  h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta");
2077  h_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("TIP (cm)");
2078  h_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2079  h_ele_vertexTIPVsPt->GetYaxis()->SetTitle("TIP (cm)");
2080  h_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2081  h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}");
2082  h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events");
2083  h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}");
2084  h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events");
2085  h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}");
2086  h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events");
2087  h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)");
2088  h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events");
2089  h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)");
2090  h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events");
2091  h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)");
2092  h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events");
2093  h_ele_dEtaSc_propVtx_barrel->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}");
2094  h_ele_dEtaSc_propVtx_barrel->GetYaxis()->SetTitle("Events");
2095  h_ele_dEtaCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}");
2096  h_ele_dEtaCl_propOut_barrel->GetYaxis()->SetTitle("Events");
2097  h_ele_dEtaEleCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}");
2098  h_ele_dEtaEleCl_propOut_barrel->GetYaxis()->SetTitle("Events");
2099  h_ele_dPhiSc_propVtx_barrel->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)");
2100  h_ele_dPhiSc_propVtx_barrel->GetYaxis()->SetTitle("Events");
2101  h_ele_dPhiCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)");
2102  h_ele_dPhiCl_propOut_barrel->GetYaxis()->SetTitle("Events");
2103  h_ele_dPhiEleCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)");
2104  h_ele_dPhiEleCl_propOut_barrel->GetYaxis()->SetTitle("Events");
2105  h_ele_dEtaSc_propVtx_endcaps->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}");
2106  h_ele_dEtaSc_propVtx_endcaps->GetYaxis()->SetTitle("Events");
2107  h_ele_dEtaCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}");
2108  h_ele_dEtaCl_propOut_endcaps->GetYaxis()->SetTitle("Events");
2109  h_ele_dEtaEleCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}");
2110  h_ele_dEtaEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events");
2111  h_ele_dPhiSc_propVtx_endcaps->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)");
2112  h_ele_dPhiSc_propVtx_endcaps->GetYaxis()->SetTitle("Events");
2113  h_ele_dPhiCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)");
2114  h_ele_dPhiCl_propOut_endcaps->GetYaxis()->SetTitle("Events");
2115  h_ele_dPhiEleCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)");
2116  h_ele_dPhiEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events");
2117  h_ele_HoE->GetXaxis()->SetTitle("H/E");
2118  h_ele_HoE->GetYaxis()->SetTitle("Events");
2119  h_ele_HoE_barrel->GetXaxis()->SetTitle("H/E");
2120  h_ele_HoE_barrel->GetYaxis()->SetTitle("Events");
2121  h_ele_HoE_endcaps->GetXaxis()->SetTitle("H/E");
2122  h_ele_HoE_endcaps->GetYaxis()->SetTitle("Events");
2123  h_ele_HoE_fiducial->GetXaxis()->SetTitle("H/E");
2124  h_ele_HoE_fiducial->GetYaxis()->SetTitle("Events");
2125  h_ele_fbrem->GetXaxis()->SetTitle("P_{in} - P_{out} / P_{in}");
2126  h_ele_fbrem->GetYaxis()->SetTitle("Events");
2127  h_ele_seed_dphi2_->GetXaxis()->SetTitle("#phi_{hit}-#phi_{pred} (rad)");
2128  h_ele_seed_dphi2_->GetYaxis()->SetTitle("Events");
2129  h_ele_seed_drz2_->GetXaxis()->SetTitle("r(z)_{hit}-r(z)_{pred} (cm)");
2130  h_ele_seed_drz2_->GetYaxis()->SetTitle("Events");
2131  h_ele_seed_subdet2_->GetXaxis()->SetTitle("2nd hit subdet Id");
2132  h_ele_seed_subdet2_->GetYaxis()->SetTitle("Events");
2133  h_ele_classes->GetXaxis()->SetTitle("class Id");
2134  h_ele_classes->GetYaxis()->SetTitle("Events");
2135  h_ele_EoverP_all->GetXaxis()->SetTitle("E/P_{vertex}");
2136  h_ele_EoverP_all->GetYaxis()->SetTitle("Events");
2137  h_ele_EseedOP_all->GetXaxis()->SetTitle("E_{seed}/P_{vertex}");
2138  h_ele_EseedOP_all->GetYaxis()->SetTitle("Events");
2139  h_ele_EoPout_all->GetXaxis()->SetTitle("E_{seed}/P_{out}");
2140  h_ele_EoPout_all->GetYaxis()->SetTitle("Events");
2141  h_ele_EeleOPout_all->GetXaxis()->SetTitle("E_{ele}/P_{out}");
2142  h_ele_EeleOPout_all->GetYaxis()->SetTitle("Events");
2143  h_ele_dEtaSc_propVtx_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}");
2144  h_ele_dEtaSc_propVtx_all->GetYaxis()->SetTitle("Events");
2145  h_ele_dPhiSc_propVtx_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)");
2146  h_ele_dPhiSc_propVtx_all->GetYaxis()->SetTitle("Events");
2147  h_ele_dEtaCl_propOut_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}");
2148  h_ele_dEtaCl_propOut_all->GetYaxis()->SetTitle("Events");
2149  h_ele_dPhiCl_propOut_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)");
2150  h_ele_dPhiCl_propOut_all->GetYaxis()->SetTitle("Events");
2151  h_ele_HoE_all->GetXaxis()->SetTitle("H/E");
2152  h_ele_HoE_all->GetYaxis()->SetTitle("Events");
2153  h_ele_mee_all->GetXaxis()->SetTitle("m_{ee} (GeV/c^{2})");
2154  h_ele_mee_all->GetYaxis()->SetTitle("Events");
2155  h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2156  h_ele_mee_os->GetYaxis()->SetTitle("Events");
2157  h_ele_mee_os_ebeb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2158  h_ele_mee_os_ebeb->GetYaxis()->SetTitle("Events");
2159  h_ele_mee_os_ebee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2160  h_ele_mee_os_ebee->GetYaxis()->SetTitle("Events");
2161  h_ele_mee_os_eeee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2162  h_ele_mee_os_eeee->GetYaxis()->SetTitle("Events");
2163  h_ele_mee_os_gg->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2164  h_ele_mee_os_gg->GetYaxis()->SetTitle("Events");
2165  h_ele_mee_os_gb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2166  h_ele_mee_os_gb->GetYaxis()->SetTitle("Events");
2167  h_ele_mee_os_bb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2168  h_ele_mee_os_bb->GetYaxis()->SetTitle("Events");
2169  h_ele_E2mnE1vsMee_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2170  h_ele_E2mnE1vsMee_all->GetYaxis()->SetTitle("E2 - E1 (GeV)");
2171  h_ele_E2mnE1vsMee_egeg_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})");
2172  h_ele_E2mnE1vsMee_egeg_all->GetYaxis()->SetTitle("E2 - E1 (GeV)");
2173  histNum_->GetXaxis()->SetTitle("N_{ele}");
2174  histNum_->GetYaxis()->SetTitle("Events");
2175  h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta");
2176  h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta");
2177 }
2178 
2180  histfile_->cd();
2181 
2182  std::cout << "[GsfElectronMCAnalyzer] efficiency calculation " << std::endl;
2183  // efficiency vs eta
2184  TH1F *h_ele_etaEff = (TH1F *)h_ele_simEta_matched->Clone("h_ele_etaEff");
2185  h_ele_etaEff->Reset();
2186  h_ele_etaEff->Divide(h_ele_simEta_matched, h_simEta, 1, 1, "b");
2187  h_ele_etaEff->Print();
2188  h_ele_etaEff->GetXaxis()->SetTitle("#eta");
2189  h_ele_etaEff->GetYaxis()->SetTitle("Efficiency");
2190 
2191  // efficiency vs z
2192  TH1F *h_ele_zEff = (TH1F *)h_ele_simZ_matched->Clone("h_ele_zEff");
2193  h_ele_zEff->Reset();
2194  h_ele_zEff->Divide(h_ele_simZ_matched, h_simZ, 1, 1, "b");
2195  h_ele_zEff->Print();
2196  h_ele_zEff->GetXaxis()->SetTitle("z (cm)");
2197  h_ele_zEff->GetYaxis()->SetTitle("Efficiency");
2198 
2199  // efficiency vs |eta|
2200  TH1F *h_ele_absetaEff = (TH1F *)h_ele_simAbsEta_matched->Clone("h_ele_absetaEff");
2201  h_ele_absetaEff->Reset();
2202  h_ele_absetaEff->Divide(h_ele_simAbsEta_matched, h_simAbsEta, 1, 1, "b");
2203  h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|");
2204  h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency");
2205 
2206  // efficiency vs pt
2207  TH1F *h_ele_ptEff = (TH1F *)h_ele_simPt_matched->Clone("h_ele_ptEff");
2208  h_ele_ptEff->Reset();
2209  h_ele_ptEff->Divide(h_ele_simPt_matched, h_simPt, 1, 1, "b");
2210  h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2211  h_ele_ptEff->GetYaxis()->SetTitle("Efficiency");
2212 
2213  // efficiency vs phi
2214  TH1F *h_ele_phiEff = (TH1F *)h_ele_simPhi_matched->Clone("h_ele_phiEff");
2215  h_ele_phiEff->Reset();
2216  h_ele_phiEff->Divide(h_ele_simPhi_matched, h_simPhi, 1, 1, "b");
2217  h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)");
2218  h_ele_phiEff->GetYaxis()->SetTitle("Efficiency");
2219 
2220  // efficiency vs pt eta
2221  TH2F *h_ele_ptEtaEff = (TH2F *)h_ele_simPtEta_matched->Clone("h_ele_ptEtaEff");
2222  h_ele_ptEtaEff->Reset();
2223  h_ele_ptEtaEff->Divide(h_ele_simPtEta_matched, h_simPtEta, 1, 1, "b");
2224  h_ele_ptEtaEff->GetYaxis()->SetTitle("p_{T} (GeV/c)");
2225  h_ele_ptEtaEff->GetXaxis()->SetTitle("#eta");
2226 
2227  std::cout << "[GsfElectronMCAnalyzer] q-misid calculation " << std::endl;
2228  // misid vs eta
2229  TH1F *h_ele_etaQmisid = (TH1F *)h_ele_simEta_matched_qmisid->Clone("h_ele_etaQmisid");
2230  h_ele_etaQmisid->Reset();
2231  h_ele_etaQmisid->Divide(h_ele_simEta_matched_qmisid, h_simEta, 1, 1, "b");
2232  h_ele_etaQmisid->Print();
2233  h_ele_etaQmisid->GetXaxis()->SetTitle("#eta");
2234  h_ele_etaQmisid->GetYaxis()->SetTitle("q misId");
2235 
2236  // misid vs z
2237  TH1F *h_ele_zQmisid = (TH1F *)h_ele_simZ_matched_qmisid->Clone("h_ele_zQmisid");
2238  h_ele_zQmisid->Reset();
2239  h_ele_zQmisid->Divide(h_ele_simZ_matched_qmisid, h_simZ, 1, 1, "b");
2240  h_ele_zQmisid->Print();
2241  h_ele_zQmisid->GetXaxis()->SetTitle("z (cm)");
2242  h_ele_zQmisid->GetYaxis()->SetTitle("q misId");
2243 
2244  // misid vs |eta|
2245  TH1F *h_ele_absetaQmisid = (TH1F *)h_ele_simAbsEta_matched_qmisid->Clone("h_ele_absetaQmisid");
2246  h_ele_absetaQmisid->Reset();
2247  h_ele_absetaQmisid->Divide(h_ele_simAbsEta_matched_qmisid, h_simAbsEta, 1, 1, "b");
2248  h_ele_absetaQmisid->GetXaxis()->SetTitle("|#eta|");
2249  h_ele_absetaQmisid->GetYaxis()->SetTitle("q misId");
2250 
2251  // misid vs pt
2252  TH1F *h_ele_ptQmisid = (TH1F *)h_ele_simPt_matched_qmisid->Clone("h_ele_ptQmisid");
2253  h_ele_ptQmisid->Reset();
2254  h_ele_ptQmisid->Divide(h_ele_simPt_matched_qmisid, h_simPt, 1, 1, "b");
2255  h_ele_ptQmisid->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2256  h_ele_ptQmisid->GetYaxis()->SetTitle("q misId");
2257 
2258  std::cout << "[GsfElectronMCAnalyzer] all reco electrons " << std::endl;
2259  // rec/gen all electrons
2260  TH1F *h_ele_etaEff_all = (TH1F *)h_ele_vertexEta_all->Clone("h_ele_etaEff_all");
2261  h_ele_etaEff_all->Reset();
2262  h_ele_etaEff_all->Divide(h_ele_vertexEta_all, h_simEta, 1, 1, "b");
2263  h_ele_etaEff_all->Print();
2264  h_ele_etaEff_all->GetXaxis()->SetTitle("#eta");
2265  h_ele_etaEff_all->GetYaxis()->SetTitle("N_{rec}/N_{gen}");
2266  TH1F *h_ele_ptEff_all = (TH1F *)h_ele_vertexPt_all->Clone("h_ele_ptEff_all");
2267  h_ele_ptEff_all->Reset();
2268  h_ele_ptEff_all->Divide(h_ele_vertexPt_all, h_simPt, 1, 1, "b");
2269  h_ele_ptEff_all->Print();
2270  h_ele_ptEff_all->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2271  h_ele_ptEff_all->GetYaxis()->SetTitle("N_{rec}/N_{gen}");
2272 
2273  // classes
2274  TH1F *h_ele_eta_goldenFrac = (TH1F *)h_ele_eta_golden->Clone("h_ele_eta_goldenFrac");
2275  h_ele_eta_goldenFrac->Reset();
2276  h_ele_eta_goldenFrac->Divide(h_ele_eta_golden, h_ele_eta, 1, 1, "b");
2277  h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|");
2278  h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of electrons");
2279  h_ele_eta_goldenFrac->SetTitle("fraction of golden electrons vs eta");
2280  TH1F *h_ele_eta_bbremFrac = (TH1F *)h_ele_eta_bbrem->Clone("h_ele_eta_bbremFrac");
2281  h_ele_eta_bbremFrac->Reset();
2282  h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|");
2283  h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of electrons");
2284  h_ele_eta_bbremFrac->Divide(h_ele_eta_bbrem, h_ele_eta, 1, 1, "b");
2285  h_ele_eta_bbremFrac->SetTitle("fraction of big brem electrons vs eta");
2286  TH1F *h_ele_eta_narrowFrac = (TH1F *)h_ele_eta_narrow->Clone("h_ele_eta_narrowFrac");
2287  h_ele_eta_narrowFrac->Reset();
2288  h_ele_eta_narrowFrac->Divide(h_ele_eta_narrow, h_ele_eta, 1, 1, "b");
2289  h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|");
2290  h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of electrons");
2291  h_ele_eta_narrowFrac->SetTitle("fraction of narrow electrons vs eta");
2292  TH1F *h_ele_eta_showerFrac = (TH1F *)h_ele_eta_shower->Clone("h_ele_eta_showerFrac");
2293  h_ele_eta_showerFrac->Reset();
2294  h_ele_eta_showerFrac->Divide(h_ele_eta_shower, h_ele_eta, 1, 1, "b");
2295  h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|");
2296  h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of electrons");
2297  h_ele_eta_showerFrac->SetTitle("fraction of showering electrons vs eta");
2298 
2299  // fbrem
2300  TH1F *h_ele_xOverX0VsEta = new TH1F("h_ele_xOverx0VsEta", "mean X/X_0 vs eta", nbineta / 2, 0.0, 2.5);
2301  for (int ibin = 1; ibin < h_ele_fbremVsEta_mean->GetNbinsX() + 1; ibin++) {
2302  double xOverX0 = 0.;
2303  if (h_ele_fbremVsEta_mean->GetBinContent(ibin) > 0.)
2304  xOverX0 = -log(h_ele_fbremVsEta_mean->GetBinContent(ibin));
2305  h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0);
2306  }
2307 
2308  //profiles from 2D histos
2309  TProfile *p_ele_PoPtrueVsEta = h_ele_PoPtrueVsEta->ProfileX();
2310  p_ele_PoPtrueVsEta->SetTitle("mean ele momentum / gen momentum vs eta");
2311  p_ele_PoPtrueVsEta->GetXaxis()->SetTitle("#eta");
2312  p_ele_PoPtrueVsEta->GetYaxis()->SetTitle("<P/P_{gen}>");
2313  p_ele_PoPtrueVsEta->Write();
2314  TProfile *p_ele_PoPtrueVsPhi = h_ele_PoPtrueVsPhi->ProfileX();
2315  p_ele_PoPtrueVsPhi->SetTitle("mean ele momentum / gen momentum vs phi");
2316  p_ele_PoPtrueVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2317  p_ele_PoPtrueVsPhi->GetYaxis()->SetTitle("<P/P_{gen}>");
2318  p_ele_PoPtrueVsPhi->Write();
2319  TProfile *p_ele_EoEtruePfVsEg_x = histSclEoEtruePfVsEg->ProfileX();
2320  p_ele_EoEtruePfVsEg_x->SetTitle("mean pflow sc energy / true energy vs e/g sc energy");
2321  p_ele_EoEtruePfVsEg_x->GetXaxis()->SetTitle("E/E_{gen} (e/g)");
2322  p_ele_EoEtruePfVsEg_x->GetYaxis()->SetTitle("<E/E_{gen}> (pflow)");
2323  p_ele_EoEtruePfVsEg_x->Write();
2324  TProfile *p_ele_EoEtruePfVsEg_y = histSclEoEtruePfVsEg->ProfileY();
2325  p_ele_EoEtruePfVsEg_y->SetTitle("mean e/g sc energy / true energy vs pflow sc energy");
2326  p_ele_EoEtruePfVsEg_y->GetXaxis()->SetTitle("E/E_{gen} (pflow)");
2327  p_ele_EoEtruePfVsEg_y->GetYaxis()->SetTitle("<E/E_{gen}> (eg)");
2328  p_ele_EoEtruePfVsEg_y->Write();
2329  TProfile *p_ele_EtaMnEtaTrueVsEta = h_ele_EtaMnEtaTrueVsEta->ProfileX();
2330  p_ele_EtaMnEtaTrueVsEta->SetTitle("mean ele eta - gen eta vs eta");
2331  p_ele_EtaMnEtaTrueVsEta->GetXaxis()->SetTitle("#eta");
2332  p_ele_EtaMnEtaTrueVsEta->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{gen}>");
2333  p_ele_EtaMnEtaTrueVsEta->Write();
2334  TProfile *p_ele_EtaMnEtaTrueVsPhi = h_ele_EtaMnEtaTrueVsPhi->ProfileX();
2335  p_ele_EtaMnEtaTrueVsPhi->SetTitle("mean ele eta - gen eta vs phi");
2336  p_ele_EtaMnEtaTrueVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2337  p_ele_EtaMnEtaTrueVsPhi->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{gen}>");
2338  p_ele_EtaMnEtaTrueVsPhi->Write();
2339  TProfile *p_ele_PhiMnPhiTrueVsEta = h_ele_PhiMnPhiTrueVsEta->ProfileX();
2340  p_ele_PhiMnPhiTrueVsEta->SetTitle("mean ele phi - gen phi vs eta");
2341  p_ele_PhiMnPhiTrueVsEta->GetXaxis()->SetTitle("#eta");
2342  p_ele_PhiMnPhiTrueVsEta->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{gen}> (rad)");
2343  p_ele_PhiMnPhiTrueVsEta->Write();
2344  TProfile *p_ele_PhiMnPhiTrueVsPhi = h_ele_PhiMnPhiTrueVsPhi->ProfileX();
2345  p_ele_PhiMnPhiTrueVsPhi->SetTitle("mean ele phi - gen phi vs phi");
2346  p_ele_PhiMnPhiTrueVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2347  p_ele_PhiMnPhiTrueVsPhi->Write();
2348  TProfile *p_ele_vertexPtVsEta = h_ele_vertexPtVsEta->ProfileX();
2349  p_ele_vertexPtVsEta->SetTitle("mean ele transverse momentum vs eta");
2350  p_ele_vertexPtVsEta->GetXaxis()->SetTitle("#eta");
2351  p_ele_vertexPtVsEta->GetYaxis()->SetTitle("<p_{T}> (GeV/c)");
2352  p_ele_vertexPtVsEta->Write();
2353  TProfile *p_ele_vertexPtVsPhi = h_ele_vertexPtVsPhi->ProfileX();
2354  p_ele_vertexPtVsPhi->SetTitle("mean ele transverse momentum vs phi");
2355  p_ele_vertexPtVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2356  p_ele_vertexPtVsPhi->GetYaxis()->SetTitle("<p_{T}> (GeV/c)");
2357  p_ele_vertexPtVsPhi->Write();
2358  TProfile *p_ele_EoPVsEta = h_ele_EoPVsEta->ProfileX();
2359  p_ele_EoPVsEta->SetTitle("mean ele E/p vs eta");
2360  p_ele_EoPVsEta->GetXaxis()->SetTitle("#eta");
2361  p_ele_EoPVsEta->GetYaxis()->SetTitle("<E/P_{vertex}>");
2362  p_ele_EoPVsEta->Write();
2363  TProfile *p_ele_EoPVsPhi = h_ele_EoPVsPhi->ProfileX();
2364  p_ele_EoPVsPhi->SetTitle("mean ele E/p vs phi");
2365  p_ele_EoPVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2366  p_ele_EoPVsPhi->GetYaxis()->SetTitle("<E/P_{vertex}>");
2367  p_ele_EoPVsPhi->Write();
2368  TProfile *p_ele_EoPoutVsEta = h_ele_EoPoutVsEta->ProfileX();
2369  p_ele_EoPoutVsEta->SetTitle("mean ele E/pout vs eta");
2370  p_ele_EoPoutVsEta->GetXaxis()->SetTitle("#eta");
2371  p_ele_EoPoutVsEta->GetYaxis()->SetTitle("<E_{seed}/P_{out}>");
2372  p_ele_EoPoutVsEta->Write();
2373  TProfile *p_ele_EoPoutVsPhi = h_ele_EoPoutVsPhi->ProfileX();
2374  p_ele_EoPoutVsPhi->SetTitle("mean ele E/pout vs phi");
2375  p_ele_EoPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2376  p_ele_EoPoutVsPhi->GetYaxis()->SetTitle("<E_{seed}/P_{out}>");
2377  p_ele_EoPoutVsPhi->Write();
2378  TProfile *p_ele_EeleOPoutVsEta = h_ele_EeleOPoutVsEta->ProfileX();
2379  p_ele_EeleOPoutVsEta->SetTitle("mean ele Eele/pout vs eta");
2380  p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle("#eta");
2381  p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle("<E_{ele}/P_{out}>");
2382  p_ele_EeleOPoutVsEta->Write();
2383  TProfile *p_ele_EeleOPoutVsPhi = h_ele_EeleOPoutVsPhi->ProfileX();
2384  p_ele_EeleOPoutVsPhi->SetTitle("mean ele Eele/pout vs phi");
2385  p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2386  p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle("<E_{ele}/P_{out}>");
2387  p_ele_EeleOPoutVsPhi->Write();
2388  TProfile *p_ele_HoEVsEta = h_ele_HoEVsEta->ProfileX();
2389  p_ele_HoEVsEta->SetTitle("mean ele H/E vs eta");
2390  p_ele_HoEVsEta->GetXaxis()->SetTitle("#eta");
2391  p_ele_HoEVsEta->GetYaxis()->SetTitle("<H/E>");
2392  p_ele_HoEVsEta->Write();
2393  TProfile *p_ele_HoEVsPhi = h_ele_HoEVsPhi->ProfileX();
2394  p_ele_HoEVsPhi->SetTitle("mean ele H/E vs phi");
2395  p_ele_HoEVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2396  p_ele_HoEVsPhi->GetYaxis()->SetTitle("<H/E>");
2397  p_ele_HoEVsPhi->Write();
2398  TProfile *p_ele_chi2VsEta = h_ele_chi2VsEta->ProfileX();
2399  p_ele_chi2VsEta->SetTitle("mean ele track chi2 vs eta");
2400  p_ele_chi2VsEta->GetXaxis()->SetTitle("#eta");
2401  p_ele_chi2VsEta->GetYaxis()->SetTitle("<#Chi^{2}>");
2402  p_ele_chi2VsEta->Write();
2403  TProfile *p_ele_chi2VsPhi = h_ele_chi2VsPhi->ProfileX();
2404  p_ele_chi2VsPhi->SetTitle("mean ele track chi2 vs phi");
2405  p_ele_chi2VsPhi->GetXaxis()->SetTitle("#phi (rad)");
2406  p_ele_chi2VsPhi->GetYaxis()->SetTitle("<#Chi^{2}>");
2407  p_ele_chi2VsPhi->Write();
2408  TProfile *p_ele_foundHitsVsEta = h_ele_foundHitsVsEta->ProfileX();
2409  p_ele_foundHitsVsEta->SetTitle("mean ele track # found hits vs eta");
2410  p_ele_foundHitsVsEta->GetXaxis()->SetTitle("#eta");
2411  p_ele_foundHitsVsEta->GetYaxis()->SetTitle("<N_{hits}>");
2412  p_ele_foundHitsVsEta->Write();
2413  TProfile *p_ele_foundHitsVsPhi = h_ele_foundHitsVsPhi->ProfileX();
2414  p_ele_foundHitsVsPhi->SetTitle("mean ele track # found hits vs phi");
2415  p_ele_foundHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2416  p_ele_foundHitsVsPhi->GetYaxis()->SetTitle("<N_{hits}>");
2417  p_ele_foundHitsVsPhi->Write();
2418  TProfile *p_ele_lostHitsVsEta = h_ele_lostHitsVsEta->ProfileX();
2419  p_ele_lostHitsVsEta->SetTitle("mean ele track # lost hits vs eta");
2420  p_ele_lostHitsVsEta->GetXaxis()->SetTitle("#eta");
2421  p_ele_lostHitsVsEta->GetYaxis()->SetTitle("<N_{hits}>");
2422  p_ele_lostHitsVsEta->Write();
2423  TProfile *p_ele_lostHitsVsPhi = h_ele_lostHitsVsPhi->ProfileX();
2424  p_ele_lostHitsVsPhi->SetTitle("mean ele track # lost hits vs phi");
2425  p_ele_lostHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)");
2426  p_ele_lostHitsVsPhi->GetYaxis()->SetTitle("<N_{hits}>");
2427  p_ele_lostHitsVsPhi->Write();
2428  TProfile *p_ele_vertexTIPVsEta = h_ele_vertexTIPVsEta->ProfileX();
2429  p_ele_vertexTIPVsEta->SetTitle("mean tip (wrt gen vtx) vs eta");
2430  p_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta");
2431  p_ele_vertexTIPVsEta->GetYaxis()->SetTitle("<TIP> (cm)");
2432  p_ele_vertexTIPVsEta->Write();
2433  TProfile *p_ele_vertexTIPVsPhi = h_ele_vertexTIPVsPhi->ProfileX();
2434  p_ele_vertexTIPVsPhi->SetTitle("mean tip (wrt gen vtx) vs phi");
2435  p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi");
2436  p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("<TIP> (cm)");
2437  p_ele_vertexTIPVsPhi->Write();
2438  TProfile *p_ele_vertexTIPVsPt = h_ele_vertexTIPVsPt->ProfileX();
2439  p_ele_vertexTIPVsPt->SetTitle("mean tip (wrt gen vtx) vs phi");
2440  p_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2441  p_ele_vertexTIPVsPt->GetYaxis()->SetTitle("<TIP> (cm)");
2442  p_ele_vertexTIPVsPt->Write();
2443 
2444  // mc truth
2445  h_mcNum->Write();
2446  h_eleNum->Write();
2447  h_gamNum->Write();
2448 
2449  // rec event
2450  histNum_->Write();
2451 
2452  // mc
2453  h_simEta->Write();
2454  h_simAbsEta->Write();
2455  h_simP->Write();
2456  h_simPt->Write();
2457  h_simZ->Write();
2458  h_simPhi->Write();
2459  h_simPtEta->Write();
2460 
2461  // all electrons
2462  h_ele_EoverP_all->Write();
2463  h_ele_EseedOP_all->Write();
2464  h_ele_EoPout_all->Write();
2465  h_ele_EeleOPout_all->Write();
2466  h_ele_dEtaSc_propVtx_all->Write();
2467  h_ele_dPhiSc_propVtx_all->Write();
2468  h_ele_dEtaCl_propOut_all->Write();
2469  h_ele_dPhiCl_propOut_all->Write();
2470  h_ele_HoE_all->Write();
2471  h_ele_TIP_all->Write();
2472  h_ele_vertexPt_all->Write();
2473  h_ele_Et_all->Write();
2474  h_ele_vertexEta_all->Write();
2475  h_ele_mee_all->Write();
2476  h_ele_mee_os->Write();
2477  h_ele_mee_os_ebeb->Write();
2478  h_ele_mee_os_ebee->Write();
2479  h_ele_mee_os_eeee->Write();
2480  h_ele_mee_os_gg->Write();
2481  h_ele_mee_os_gb->Write();
2482  h_ele_mee_os_bb->Write();
2483  h_ele_E2mnE1vsMee_all->Write();
2484  h_ele_E2mnE1vsMee_egeg_all->Write();
2485 
2486  // charge ID
2487  h_ele_charge->Write();
2488  h_ele_simEta_matched_qmisid->Write();
2489  h_ele_simAbsEta_matched_qmisid->Write();
2490  h_ele_simPt_matched_qmisid->Write();
2491  h_ele_simPhi_matched_qmisid->Write();
2492  h_ele_simZ_matched_qmisid->Write();
2493 
2494  // matched electrons
2495  h_ele_vertexP->Write();
2496  h_ele_vertexPt->Write();
2497  h_ele_Et->Write();
2498  h_ele_vertexPtVsEta->Write();
2499  h_ele_vertexPtVsPhi->Write();
2500  h_ele_simPt_matched->Write();
2501  h_ele_vertexEta->Write();
2502  h_ele_vertexEtaVsPhi->Write();
2503  h_ele_simAbsEta_matched->Write();
2504  h_ele_simEta_matched->Write();
2505  h_ele_simPhi_matched->Write();
2506  h_ele_simPtEta_matched->Write();
2507  h_ele_vertexPhi->Write();
2508  h_ele_vertexX->Write();
2509  h_ele_vertexY->Write();
2510  h_ele_vertexZ->Write();
2511  h_ele_vertexTIP->Write();
2512  h_ele_simZ_matched->Write();
2513  h_ele_vertexTIPVsEta->Write();
2514  h_ele_vertexTIPVsPhi->Write();
2515  h_ele_vertexTIPVsPt->Write();
2516  h_ele_PoPtrue->Write();
2517  h_ele_PoPtrueVsEta->Write();
2518  h_ele_PoPtrueVsPhi->Write();
2519  h_ele_PoPtrueVsPt->Write();
2520  h_ele_PoPtrue_barrel->Write();
2521  h_ele_PoPtrue_endcaps->Write();
2522  h_ele_PoPtrue_golden_barrel->Write();
2523  h_ele_PoPtrue_golden_endcaps->Write();
2524  h_ele_PoPtrue_showering_barrel->Write();
2525  h_ele_PoPtrue_showering_endcaps->Write();
2526  h_ele_PtoPttrue->Write();
2527  h_ele_PtoPttrue_barrel->Write();
2528  h_ele_PtoPttrue_endcaps->Write();
2529  h_ele_ChargeMnChargeTrue->Write();
2530  h_ele_EtaMnEtaTrue->Write();
2531  h_ele_EtaMnEtaTrue_barrel->Write();
2532  h_ele_EtaMnEtaTrue_endcaps->Write();
2533  h_ele_EtaMnEtaTrueVsEta->Write();
2534  h_ele_EtaMnEtaTrueVsPhi->Write();
2535  h_ele_EtaMnEtaTrueVsPt->Write();
2536  h_ele_PhiMnPhiTrue->Write();
2537  h_ele_PhiMnPhiTrue_barrel->Write();
2538  h_ele_PhiMnPhiTrue_endcaps->Write();
2539  h_ele_PhiMnPhiTrue2->Write();
2540  h_ele_PhiMnPhiTrueVsEta->Write();
2541  h_ele_PhiMnPhiTrueVsPhi->Write();
2542  h_ele_PhiMnPhiTrueVsPt->Write();
2543 
2544  // matched electron, superclusters
2545  histSclEn_->Write();
2546  histSclEoEtrue_barrel->Write();
2547  histSclEoEtrue_endcaps->Write();
2548  histSclEoEtrue_barrel_eg->Write();
2549  histSclEoEtrue_endcaps_eg->Write();
2550  histSclEoEtrue_barrel_etagap->Write();
2551  histSclEoEtrue_barrel_phigap->Write();
2552  histSclEoEtrue_ebeegap->Write();
2553  histSclEoEtrue_endcaps->Write();
2554  histSclEoEtrue_endcaps_deegap->Write();
2555  histSclEoEtrue_endcaps_ringgap->Write();
2556  histSclEoEtruePfVsEg->Write();
2557  histSclEoEtrue_barrel_new->Write();
2558  histSclEoEtrue_endcaps_new->Write();
2559  histSclEoEtrue_barrel_eg_new->Write();
2560  histSclEoEtrue_endcaps_eg_new->Write();
2561  histSclEoEtrue_barrel_etagap_new->Write();
2562  histSclEoEtrue_barrel_phigap_new->Write();
2563  histSclEoEtrue_ebeegap_new->Write();
2564  histSclEoEtrue_endcaps_new->Write();
2565  histSclEoEtrue_endcaps_deegap_new->Write();
2566  histSclEoEtrue_endcaps_ringgap_new->Write();
2567  histSclEoEtruePfVsEg->Write();
2568  histSclEt_->Write();
2569  histSclEtVsEta_->Write();
2570  histSclEtVsPhi_->Write();
2571  histSclEtaVsPhi_->Write();
2572  histSclEta_->Write();
2573  histSclPhi_->Write();
2574  histSclSigEtaEta_->Write();
2575  histSclSigEtaEta_barrel_->Write();
2576  histSclSigEtaEta_endcaps_->Write();
2577  histSclSigIEtaIEta_->Write();
2578  histSclSigIEtaIEta_barrel_->Write();
2579  histSclSigIEtaIEta_endcaps_->Write();
2580  histSclE1x5_->Write();
2581  histSclE1x5_barrel_->Write();
2582  histSclE1x5_endcaps_->Write();
2583  histSclE2x5max_->Write();
2584  histSclE2x5max_barrel_->Write();
2585  histSclE2x5max_endcaps_->Write();
2586  histSclE5x5_->Write();
2587  histSclE5x5_barrel_->Write();
2588  histSclE5x5_endcaps_->Write();
2589  histSclSigEtaEta_eg_->Write();
2590  histSclSigEtaEta_eg_barrel_->Write();
2591  histSclSigEtaEta_eg_endcaps_->Write();
2592  histSclSigIEtaIEta_eg_->Write();
2593  histSclSigIEtaIEta_eg_barrel_->Write();
2594  histSclSigIEtaIEta_eg_endcaps_->Write();
2595  histSclE1x5_eg_->Write();
2596  histSclE1x5_eg_barrel_->Write();
2597  histSclE1x5_eg_endcaps_->Write();
2598  histSclE2x5max_eg_->Write();
2599  histSclE2x5max_eg_barrel_->Write();
2600  histSclE2x5max_eg_endcaps_->Write();
2601  histSclE5x5_eg_->Write();
2602  histSclE5x5_eg_barrel_->Write();
2603  histSclE5x5_eg_endcaps_->Write();
2604 
2605  // matched electron, gsf tracks
2606  h_ele_ambiguousTracks->Write();
2607  h_ele_ambiguousTracksVsEta->Write();
2608  h_ele_ambiguousTracksVsPhi->Write();
2609  h_ele_ambiguousTracksVsPt->Write();
2610  h_ele_foundHits->Write();
2611  h_ele_foundHits_barrel->Write();
2612  h_ele_foundHits_endcaps->Write();
2613  h_ele_foundHitsVsEta->Write();
2614  h_ele_foundHitsVsPhi->Write();
2615  h_ele_foundHitsVsPt->Write();
2616  h_ele_lostHits->Write();
2617  h_ele_lostHits_barrel->Write();
2618  h_ele_lostHits_endcaps->Write();
2619  h_ele_lostHitsVsEta->Write();
2620  h_ele_lostHitsVsPhi->Write();
2621  h_ele_lostHitsVsPt->Write();
2622  h_ele_chi2->Write();
2623  h_ele_chi2_barrel->Write();
2624  h_ele_chi2_endcaps->Write();
2625  h_ele_chi2VsEta->Write();
2626  h_ele_chi2VsPhi->Write();
2627  h_ele_chi2VsPt->Write();
2628  h_ele_PinMnPout->Write();
2629  h_ele_PinMnPout_mode->Write();
2630  h_ele_PinMnPoutVsEta_mode->Write();
2631  h_ele_PinMnPoutVsPhi_mode->Write();
2632  h_ele_PinMnPoutVsPt_mode->Write();
2633  h_ele_PinMnPoutVsE_mode->Write();
2634  h_ele_PinMnPoutVsChi2_mode->Write();
2635  h_ele_outerP->Write();
2636  h_ele_outerP_mode->Write();
2637  h_ele_outerPVsEta_mode->Write();
2638  h_ele_outerPt->Write();
2639  h_ele_outerPt_mode->Write();
2640  h_ele_outerPtVsEta_mode->Write();
2641  h_ele_outerPtVsPhi_mode->Write();
2642  h_ele_outerPtVsPt_mode->Write();
2643 
2644  // matched electrons, matching
2645  h_ele_EoP->Write();
2646  h_ele_EoP_eg->Write();
2647  h_ele_EoP_barrel->Write();
2648  h_ele_EoP_eg_barrel->Write();
2649  h_ele_EoP_endcaps->Write();
2650  h_ele_EoP_eg_endcaps->Write();
2651  h_ele_EoPVsEta->Write();
2652  h_ele_EoPVsPhi->Write();
2653  h_ele_EoPVsE->Write();
2654  h_ele_EseedOP->Write();
2655  h_ele_EseedOP_eg->Write();
2656  h_ele_EseedOP_barrel->Write();
2657  h_ele_EseedOP_eg_barrel->Write();
2658  h_ele_EseedOP_endcaps->Write();
2659  h_ele_EseedOP_eg_endcaps->Write();
2660  h_ele_EseedOPVsEta->Write();
2661  h_ele_EseedOPVsPhi->Write();
2662  h_ele_EseedOPVsE->Write();
2663  h_ele_EoPout->Write();
2664  h_ele_EoPout_eg->Write();
2665  h_ele_EoPout_barrel->Write();
2666  h_ele_EoPout_eg_barrel->Write();
2667  h_ele_EoPout_endcaps->Write();
2668  h_ele_EoPout_eg_endcaps->Write();
2669  h_ele_EoPoutVsEta->Write();
2670  h_ele_EoPoutVsPhi->Write();
2671  h_ele_EoPoutVsE->Write();
2672  h_ele_EeleOPout->Write();
2673  h_ele_EeleOPout_eg->Write();
2674  h_ele_EeleOPout_barrel->Write();
2675  h_ele_EeleOPout_eg_barrel->Write();
2676  h_ele_EeleOPout_endcaps->Write();
2677  h_ele_EeleOPout_eg_endcaps->Write();
2678  h_ele_EeleOPoutVsEta->Write();
2679  h_ele_EeleOPoutVsPhi->Write();
2680  h_ele_EeleOPoutVsE->Write();
2681  h_ele_dEtaSc_propVtx->Write();
2682  h_ele_dEtaSc_propVtx_eg->Write();
2683  h_ele_dEtaSc_propVtx_barrel->Write();
2684  h_ele_dEtaSc_propVtx_eg_barrel->Write();
2685  h_ele_dEtaSc_propVtx_endcaps->Write();
2686  h_ele_dEtaSc_propVtx_eg_endcaps->Write();
2687  h_ele_dEtaScVsEta_propVtx->Write();
2688  h_ele_dEtaScVsPhi_propVtx->Write();
2689  h_ele_dEtaScVsPt_propVtx->Write();
2690  h_ele_dPhiSc_propVtx->Write();
2691  h_ele_dPhiSc_propVtx_eg->Write();
2692  h_ele_dPhiSc_propVtx_barrel->Write();
2693  h_ele_dPhiSc_propVtx_eg_barrel->Write();
2694  h_ele_dPhiSc_propVtx_endcaps->Write();
2695  h_ele_dPhiSc_propVtx_eg_endcaps->Write();
2696  h_ele_dPhiScVsEta_propVtx->Write();
2697  h_ele_dPhiScVsPhi_propVtx->Write();
2698  h_ele_dPhiScVsPt_propVtx->Write();
2699  h_ele_dEtaCl_propOut->Write();
2700  h_ele_dEtaCl_propOut_eg->Write();
2701  h_ele_dEtaCl_propOut_barrel->Write();
2702  h_ele_dEtaCl_propOut_eg_barrel->Write();
2703  h_ele_dEtaCl_propOut_endcaps->Write();
2704  h_ele_dEtaCl_propOut_eg_endcaps->Write();
2705  h_ele_dEtaClVsEta_propOut->Write();
2706  h_ele_dEtaClVsPhi_propOut->Write();
2707  h_ele_dEtaClVsPt_propOut->Write();
2708  h_ele_dPhiCl_propOut->Write();
2709  h_ele_dPhiCl_propOut_eg->Write();
2710  h_ele_dPhiCl_propOut_barrel->Write();
2711  h_ele_dPhiCl_propOut_eg_barrel->Write();
2712  h_ele_dPhiCl_propOut_endcaps->Write();
2713  h_ele_dPhiCl_propOut_eg_endcaps->Write();
2714  h_ele_dPhiClVsEta_propOut->Write();
2715  h_ele_dPhiClVsPhi_propOut->Write();
2716  h_ele_dPhiClVsPt_propOut->Write();
2717  h_ele_dEtaEleCl_propOut->Write();
2718  h_ele_dEtaEleCl_propOut_eg->Write();
2719  h_ele_dEtaEleCl_propOut_barrel->Write();
2720  h_ele_dEtaEleCl_propOut_eg_barrel->Write();
2721  h_ele_dEtaEleCl_propOut_endcaps->Write();
2722  h_ele_dEtaEleCl_propOut_eg_endcaps->Write();
2723  h_ele_dEtaEleClVsEta_propOut->Write();
2724  h_ele_dEtaEleClVsPhi_propOut->Write();
2725  h_ele_dEtaEleClVsPt_propOut->Write();
2726  h_ele_dPhiEleCl_propOut->Write();
2727  h_ele_dPhiEleCl_propOut_eg->Write();
2728  h_ele_dPhiEleCl_propOut_barrel->Write();
2729  h_ele_dPhiEleCl_propOut_eg_barrel->Write();
2730  h_ele_dPhiEleCl_propOut_endcaps->Write();
2731  h_ele_dPhiEleCl_propOut_eg_endcaps->Write();
2732  h_ele_dPhiEleClVsEta_propOut->Write();
2733  h_ele_dPhiEleClVsPhi_propOut->Write();
2734  h_ele_dPhiEleClVsPt_propOut->Write();
2735  h_ele_HoE->Write();
2736  h_ele_HoE_eg->Write();
2737  h_ele_HoE_barrel->Write();
2738  h_ele_HoE_eg_barrel->Write();
2739  h_ele_HoE_endcaps->Write();
2740  h_ele_HoE_eg_endcaps->Write();
2741  h_ele_HoE_fiducial->Write();
2742  h_ele_HoEVsEta->Write();
2743  h_ele_HoEVsPhi->Write();
2744  h_ele_HoEVsE->Write();
2745 
2746  h_ele_seed_dphi2_->Write();
2747  h_ele_seed_subdet2_->Write();
2748  TProfile *p_ele_seed_dphi2VsEta_ = h_ele_seed_dphi2VsEta_->ProfileX();
2749  p_ele_seed_dphi2VsEta_->SetTitle("mean ele seed dphi 2nd layer vs eta");
2750  p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle("#eta");
2751  p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
2752  p_ele_seed_dphi2VsEta_->SetMinimum(-0.004);
2753  p_ele_seed_dphi2VsEta_->SetMaximum(0.004);
2754  p_ele_seed_dphi2VsEta_->Write();
2755  TProfile *p_ele_seed_dphi2VsPt_ = h_ele_seed_dphi2VsPt_->ProfileX();
2756  p_ele_seed_dphi2VsPt_->SetTitle("mean ele seed dphi 2nd layer vs pt");
2757  p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2758  p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
2759  p_ele_seed_dphi2VsPt_->SetMinimum(-0.004);
2760  p_ele_seed_dphi2VsPt_->SetMaximum(0.004);
2761  p_ele_seed_dphi2VsPt_->Write();
2762  h_ele_seed_drz2_->Write();
2763  TProfile *p_ele_seed_drz2VsEta_ = h_ele_seed_drz2VsEta_->ProfileX();
2764  p_ele_seed_drz2VsEta_->SetTitle("mean ele seed dr(dz) 2nd layer vs eta");
2765  p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle("#eta");
2766  p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle("<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
2767  p_ele_seed_drz2VsEta_->SetMinimum(-0.15);
2768  p_ele_seed_drz2VsEta_->SetMaximum(0.15);
2769  p_ele_seed_drz2VsEta_->Write();
2770  TProfile *p_ele_seed_drz2VsPt_ = h_ele_seed_drz2VsPt_->ProfileX();
2771  p_ele_seed_drz2VsPt_->SetTitle("mean ele seed dr(dz) 2nd layer vs pt");
2772  p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)");
2773  p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle("<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
2774  p_ele_seed_drz2VsPt_->SetMinimum(-0.15);
2775  p_ele_seed_drz2VsPt_->SetMaximum(0.15);
2776  p_ele_seed_drz2VsPt_->Write();
2777 
2778  // classes
2779  h_ele_classes->Write();
2780  h_ele_eta->Write();
2781  h_ele_eta_golden->Write();
2782  h_ele_eta_bbrem->Write();
2783  h_ele_eta_narrow->Write();
2784  h_ele_eta_shower->Write();
2785  h_ele_PinVsPoutGolden_mode->Write();
2786  h_ele_PinVsPoutShowering_mode->Write();
2787  h_ele_PinVsPoutGolden_mean->Write();
2788  h_ele_PinVsPoutShowering_mean->Write();
2789  h_ele_PtinVsPtoutGolden_mode->Write();
2790  h_ele_PtinVsPtoutShowering_mode->Write();
2791  h_ele_PtinVsPtoutGolden_mean->Write();
2792  h_ele_PtinVsPtoutShowering_mean->Write();
2793  histSclEoEtrueGolden_barrel->Write();
2794  histSclEoEtrueGolden_endcaps->Write();
2795  histSclEoEtrueShowering_barrel->Write();
2796  histSclEoEtrueShowering_endcaps->Write();
2797 
2798  // fbrem
2799  h_ele_fbrem->Write();
2800  h_ele_fbrem_eg->Write();
2801  h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta");
2802  h_ele_fbremVsEta_mode->GetYaxis()->SetTitle("<P_{in} - P_{out} / P_{in}>");
2803  h_ele_fbremVsEta_mode->Write();
2804  h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta");
2805  h_ele_fbremVsEta_mean->GetYaxis()->SetTitle("<P_{in} - P_{out} / P_{in}>");
2806  h_ele_fbremVsEta_mean->Write();
2807  h_ele_eta_goldenFrac->Write();
2808  h_ele_eta_bbremFrac->Write();
2809  h_ele_eta_narrowFrac->Write();
2810  h_ele_eta_showerFrac->Write();
2811  h_ele_xOverX0VsEta->Write();
2812 
2813  // efficiencies
2814  h_ele_etaEff->Write();
2815  h_ele_zEff->Write();
2816  h_ele_phiEff->Write();
2817  h_ele_absetaEff->Write();
2818  h_ele_ptEff->Write();
2819  h_ele_ptEtaEff->Write();
2820  h_ele_etaEff_all->Write();
2821  h_ele_ptEff_all->Write();
2822 
2823  // q misid
2824  h_ele_etaQmisid->Write();
2825  h_ele_zQmisid->Write();
2826  h_ele_absetaQmisid->Write();
2827  h_ele_ptQmisid->Write();
2828 
2829  // e/g et pflow electrons
2830  h_ele_mva->Write();
2831  h_ele_mva_eg->Write();
2832  h_ele_provenance->Write();
2833 
2834  // isolation
2835  h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)");
2836  h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events");
2837  h_ele_tkSumPt_dr03->Write();
2838  h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)");
2839  h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events");
2840  h_ele_ecalRecHitSumEt_dr03->Write();
2841  h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)");
2842  h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events");
2843  h_ele_hcalDepth1TowerSumEt_dr03->Write();
2844  h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)");
2845  h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events");
2846  h_ele_hcalDepth2TowerSumEt_dr03->Write();
2847  h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)");
2848  h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events");
2849  h_ele_tkSumPt_dr04->Write();
2850  h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)");
2851  h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events");
2852  h_ele_ecalRecHitSumEt_dr04->Write();
2853  h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)");
2854  h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events");
2855  h_ele_hcalDepth1TowerSumEt_dr04->Write();
2856  h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)");
2857  h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events");
2858  h_ele_hcalDepth2TowerSumEt_dr04->Write();
2859 }
2860 
2862  // do anything here that needs to be done at desctruction time
2863  // (e.g. close files, deallocate resources etc.)
2864  histfile_->Write();
2865  histfile_->Close();
2866 }
2867 
2868 //=========================================================================
2869 // Main method
2870 //=========================================================================
2871 
2873  std::cout << "analyzing new event " << std::endl;
2874  // get electrons
2875 
2877  iEvent.getByLabel(electronCollection_, gsfElectrons);
2878  edm::LogInfo("") << "\n\n =================> Treating event " << iEvent.id() << " Number of electrons "
2879  << gsfElectrons.product()->size();
2880 
2882  iEvent.getByLabel(mcTruthCollection_, genParticles);
2883 
2884  histNum_->Fill((*gsfElectrons).size());
2885 
2886  // all rec electrons
2887  for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end();
2888  gsfIter++) {
2889  // preselect electrons
2890  if (gsfIter->pt() > maxPt_ || std::abs(gsfIter->eta()) > maxAbsEta_)
2891  continue;
2892  h_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP());
2893  h_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP());
2894  h_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout());
2895  h_ele_EeleOPout_all->Fill(gsfIter->eEleClusterOverPout());
2896  h_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
2897  h_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
2898  h_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo());
2899  h_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo());
2900  h_ele_HoE_all->Fill(gsfIter->hadronicOverEm());
2901  double d = gsfIter->vertex().x() * gsfIter->vertex().x() + gsfIter->vertex().y() * gsfIter->vertex().y();
2902  h_ele_TIP_all->Fill(sqrt(d));
2903  h_ele_vertexEta_all->Fill(gsfIter->eta());
2904  h_ele_vertexPt_all->Fill(gsfIter->pt());
2905  h_ele_Et_all->Fill(gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta()));
2906  float enrj1 = gsfIter->superCluster()->energy();
2907  // mee
2908  for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end();
2909  gsfIter2++) {
2910  math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4();
2911  float mee2 = p12.Dot(p12);
2912  float enrj2 = gsfIter2->superCluster()->energy();
2913  h_ele_mee_all->Fill(sqrt(mee2));
2914  h_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1);
2915  if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed())
2916  h_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1);
2917  if (gsfIter->charge() * gsfIter2->charge() < 0.) {
2918  h_ele_mee_os->Fill(sqrt(mee2));
2919  if (gsfIter->isEB() && gsfIter2->isEB())
2920  h_ele_mee_os_ebeb->Fill(sqrt(mee2));
2921  if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB()))
2922  h_ele_mee_os_ebee->Fill(sqrt(mee2));
2923  if (gsfIter->isEE() && gsfIter2->isEE())
2924  h_ele_mee_os_eeee->Fill(sqrt(mee2));
2925  if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) ||
2926  (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) ||
2927  //(gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::OLDNARROW) ||
2928  (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) ||
2929  (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)/* ||
2930  (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::OLDNARROW) ||
2931  (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::GOLDEN) ||
2932  (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::BIGBREM) ||
2933  (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::OLDNARROW)*/ )
2934  {
2935  h_ele_mee_os_gg->Fill(sqrt(mee2));
2936  } else if ((gsfIter->classification() == GsfElectron::SHOWERING &&
2937  gsfIter2->classification() == GsfElectron::SHOWERING) ||
2938  (gsfIter->classification() == GsfElectron::SHOWERING && gsfIter2->isGap()) ||
2939  (gsfIter->isGap() && gsfIter2->classification() == GsfElectron::SHOWERING) ||
2940  (gsfIter->isGap() && gsfIter2->isGap())) {
2941  h_ele_mee_os_bb->Fill(sqrt(mee2));
2942  } else {
2943  h_ele_mee_os_gb->Fill(sqrt(mee2));
2944  }
2945  }
2946  }
2947  }
2948 
2949  int mcNum = 0, gamNum = 0, eleNum = 0;
2950  bool matchingID, matchingMotherID;
2951 
2952  // charge mis-ID
2953  for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end();
2954  mcIter++) {
2955  // select requested matching gen particle
2956  matchingID = false;
2957  for (unsigned int i = 0; i < matchingIDs_.size(); i++)
2958  if (mcIter->pdgId() == matchingIDs_[i])
2959  matchingID = true;
2960 
2961  if (matchingID) {
2962  // select requested mother matching gen particle
2963  // always include single particle with no mother
2964  const Candidate *mother = mcIter->mother();
2965  matchingMotherID = false;
2966  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++)
2967  if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i]))
2968  matchingMotherID = true;
2969 
2970  if (matchingMotherID) {
2971  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_)
2972  continue;
2973 
2974  // suppress the endcaps
2975  //if (std::abs(mcIter->eta()) > 1.5) continue;
2976  // select central z
2977  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
2978 
2979  // looking for the best matching gsf electron
2980  bool okGsfFound = false;
2981  double gsfOkRatio = 999999.;
2982 
2983  // find best matched electron
2984  reco::GsfElectron bestGsfElectron;
2985  for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin();
2986  gsfIter != gsfElectrons->end();
2987  gsfIter++) {
2988  double dphi = gsfIter->phi() - mcIter->phi();
2989  if (std::abs(dphi) > CLHEP::pi)
2990  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
2991  double deltaR = sqrt(std::pow((gsfIter->eta() - mcIter->eta()), 2) + std::pow(dphi, 2));
2992  if (deltaR < deltaR_) {
2993  double mc_charge = mcIter->pdgId() == 11 ? -1. : 1.;
2994  h_ele_ChargeMnChargeTrue->Fill(std::abs(gsfIter->charge() - mc_charge));
2995  // require here a charge mismatch
2996  if (((mcIter->pdgId() == 11) && (gsfIter->charge() > 0.)) ||
2997  ((mcIter->pdgId() == -11) && (gsfIter->charge() < 0.))) {
2998  double tmpGsfRatio = gsfIter->p() / mcIter->p();
2999  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3000  gsfOkRatio = tmpGsfRatio;
3001  bestGsfElectron = *gsfIter;
3002  okGsfFound = true;
3003  }
3004  }
3005  }
3006  } // loop over rec ele to look for the best one
3007 
3008  // analysis when the mc track is found
3009  if (okGsfFound) {
3010  // generated distributions for matched electrons
3011  h_ele_simPt_matched_qmisid->Fill(mcIter->pt());
3012  h_ele_simPhi_matched_qmisid->Fill(mcIter->phi());
3013  h_ele_simAbsEta_matched_qmisid->Fill(std::abs(mcIter->eta()));
3014  h_ele_simEta_matched_qmisid->Fill(mcIter->eta());
3015  h_ele_simZ_matched_qmisid->Fill(mcIter->vz());
3016  }
3017  }
3018  }
3019  }
3020 
3021  // association mc-reco
3022  for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end();
3023  mcIter++) {
3024  // number of mc particles
3025  mcNum++;
3026 
3027  // counts photons
3028  if (mcIter->pdgId() == 22) {
3029  gamNum++;
3030  }
3031 
3032  // select requested matching gen particle
3033  matchingID = false;
3034  for (unsigned int i = 0; i < matchingIDs_.size(); i++)
3035  if (mcIter->pdgId() == matchingIDs_[i])
3036  matchingID = true;
3037 
3038  if (matchingID) {
3039  // select requested mother matching gen particle
3040  // always include single particle with no mother
3041  const Candidate *mother = mcIter->mother();
3042  matchingMotherID = false;
3043  for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++)
3044  if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i]))
3045  matchingMotherID = true;
3046 
3047  if (matchingMotherID) {
3048  if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_)
3049  continue;
3050 
3051  // suppress the endcaps
3052  //if (std::abs(mcIter->eta()) > 1.5) continue;
3053  // select central z
3054  //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue;
3055 
3056  eleNum++;
3057  h_simEta->Fill(mcIter->eta());
3058  h_simAbsEta->Fill(std::abs(mcIter->eta()));
3059  h_simP->Fill(mcIter->p());
3060  h_simPt->Fill(mcIter->pt());
3061  h_simPhi->Fill(mcIter->phi());
3062  h_simZ->Fill(mcIter->vz());
3063  h_simPtEta->Fill(mcIter->eta(), mcIter->pt());
3064 
3065  // looking for the best matching gsf electron
3066  bool okGsfFound = false;
3067  double gsfOkRatio = 999999.;
3068 
3069  // find best matched electron
3070  reco::GsfElectron bestGsfElectron;
3071  for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin();
3072  gsfIter != gsfElectrons->end();
3073  gsfIter++) {
3074  double dphi = gsfIter->phi() - mcIter->phi();
3075  if (std::abs(dphi) > CLHEP::pi)
3076  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
3077  double deltaR = sqrt(std::pow((gsfIter->eta() - mcIter->eta()), 2) + std::pow(dphi, 2));
3078  if (deltaR < deltaR_) {
3079  if (((mcIter->pdgId() == 11) && (gsfIter->charge() < 0.)) ||
3080  ((mcIter->pdgId() == -11) && (gsfIter->charge() > 0.))) {
3081  double tmpGsfRatio = gsfIter->p() / mcIter->p();
3082  if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) {
3083  gsfOkRatio = tmpGsfRatio;
3084  bestGsfElectron = *gsfIter;
3085  okGsfFound = true;
3086  }
3087  }
3088  }
3089  } // loop over rec ele to look for the best one
3090 
3091  // analysis when the mc track is found
3092  if (okGsfFound) {
3093  // electron related distributions
3094  h_ele_charge->Fill(bestGsfElectron.charge());
3095  h_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge());
3096  h_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge());
3097  h_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge());
3098  h_ele_vertexP->Fill(bestGsfElectron.p());
3099  h_ele_vertexPt->Fill(bestGsfElectron.pt());
3100  h_ele_Et->Fill(bestGsfElectron.superCluster()->energy() / cosh(bestGsfElectron.superCluster()->eta()));
3101  h_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt());
3102  h_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt());
3103  h_ele_vertexEta->Fill(bestGsfElectron.eta());
3104  // generated distributions for matched electrons
3105  h_ele_simPt_matched->Fill(mcIter->pt());
3106  h_ele_simPhi_matched->Fill(mcIter->phi());
3107  h_ele_simAbsEta_matched->Fill(std::abs(mcIter->eta()));
3108  h_ele_simEta_matched->Fill(mcIter->eta());
3109  h_ele_simPtEta_matched->Fill(mcIter->eta(), mcIter->pt());
3110  h_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta());
3111  h_ele_vertexPhi->Fill(bestGsfElectron.phi());
3112  h_ele_vertexX->Fill(bestGsfElectron.vertex().x());
3113  h_ele_vertexY->Fill(bestGsfElectron.vertex().y());
3114  h_ele_vertexZ->Fill(bestGsfElectron.vertex().z());
3115  h_ele_simZ_matched->Fill(mcIter->vz());
3116  double d = (bestGsfElectron.vertex().x() - mcIter->vx()) * (bestGsfElectron.vertex().x() - mcIter->vx()) +
3117  (bestGsfElectron.vertex().y() - mcIter->vy()) * (bestGsfElectron.vertex().y() - mcIter->vy());
3118  d = sqrt(d);
3119  h_ele_vertexTIP->Fill(d);
3120  h_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d);
3121  h_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d);
3122  h_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d);
3123  h_ele_EtaMnEtaTrue->Fill(bestGsfElectron.eta() - mcIter->eta());
3124  if (bestGsfElectron.isEB())
3125  h_ele_EtaMnEtaTrue_barrel->Fill(bestGsfElectron.eta() - mcIter->eta());
3126  if (bestGsfElectron.isEE())
3127  h_ele_EtaMnEtaTrue_endcaps->Fill(bestGsfElectron.eta() - mcIter->eta());
3128  h_ele_EtaMnEtaTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - mcIter->eta());
3129  h_ele_EtaMnEtaTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - mcIter->eta());
3130  h_ele_EtaMnEtaTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - mcIter->eta());
3131  h_ele_PhiMnPhiTrue->Fill(bestGsfElectron.phi() - mcIter->phi());
3132  if (bestGsfElectron.isEB())
3133  h_ele_PhiMnPhiTrue_barrel->Fill(bestGsfElectron.phi() - mcIter->phi());
3134  if (bestGsfElectron.isEE())
3135  h_ele_PhiMnPhiTrue_endcaps->Fill(bestGsfElectron.phi() - mcIter->phi());
3136  h_ele_PhiMnPhiTrue2->Fill(bestGsfElectron.phi() - mcIter->phi());
3137  h_ele_PhiMnPhiTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - mcIter->phi());
3138  h_ele_PhiMnPhiTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - mcIter->phi());
3139  h_ele_PhiMnPhiTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - mcIter->phi());
3140  h_ele_PoPtrue->Fill(bestGsfElectron.p() / mcIter->p());
3141  h_ele_PtoPttrue->Fill(bestGsfElectron.pt() / mcIter->pt());
3142  h_ele_PoPtrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p());
3143  h_ele_PoPtrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / mcIter->p());
3144  h_ele_PoPtrueVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / mcIter->p());
3145  if (bestGsfElectron.isEB())
3146  h_ele_PoPtrue_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3147  if (bestGsfElectron.isEE())
3148  h_ele_PoPtrue_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3149  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3150  h_ele_PoPtrue_golden_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3151  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::GOLDEN)
3152  h_ele_PoPtrue_golden_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3153  if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3154  h_ele_PoPtrue_showering_barrel->Fill(bestGsfElectron.p() / mcIter->p());
3155  if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::SHOWERING)
3156  h_ele_PoPtrue_showering_endcaps->Fill(bestGsfElectron.p() / mcIter->p());
3157  if (bestGsfElectron.isEB())
3158  h_ele_PtoPttrue_barrel->Fill(bestGsfElectron.pt() / mcIter->pt());
3159  if (bestGsfElectron.isEE())
3160  h_ele_PtoPttrue_endcaps->Fill(bestGsfElectron.pt() / mcIter->pt());
3161 
3162  // supercluster related distributions
3163  reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
3164  if (!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.trackerDrivenSeed())
3165  sclRef = bestGsfElectron.parentSuperCluster();
3166  histSclEn_->Fill(sclRef->energy());
3167  double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
3168  double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
3169  histSclEt_->Fill(sclRef->energy() * (Rt / R));
3170  histSclEtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R));
3171  histSclEtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R));
3172  if (bestGsfElectron.isEB())
3173  histSclEoEtrue_barrel->Fill(sclRef->energy() / mcIter->p());
3174  if (bestGsfElectron.isEE())
3175  histSclEoEtrue_endcaps->Fill(sclRef->energy() / mcIter->p());
3176  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3177  histSclEoEtrue_barrel_eg->Fill(sclRef->energy() / mcIter->p());
3178  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3179  histSclEoEtrue_endcaps_eg->Fill(sclRef->energy() / mcIter->p());
3180  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap())
3181  histSclEoEtrue_barrel_etagap->Fill(sclRef->energy() / mcIter->p());
3182  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap())
3183  histSclEoEtrue_barrel_phigap->Fill(sclRef->energy() / mcIter->p());
3184  if (bestGsfElectron.isEBEEGap())
3185  histSclEoEtrue_ebeegap->Fill(sclRef->energy() / mcIter->p());
3186  //if (bestGsfElectron.isEE()) histSclEoEtrue_endcaps->Fill(sclRef->energy()/mcIter->p());
3187  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap())
3188  histSclEoEtrue_endcaps_deegap->Fill(sclRef->energy() / mcIter->p());
3189  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap())
3190  histSclEoEtrue_endcaps_ringgap->Fill(sclRef->energy() / mcIter->p());
3191  if (bestGsfElectron.isEB())
3192  histSclEoEtrue_barrel_new->Fill(sclRef->energy() / mcIter->p());
3193  if (bestGsfElectron.isEE())
3194  histSclEoEtrue_endcaps_new->Fill(sclRef->energy() / mcIter->p());
3195  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3196  histSclEoEtrue_barrel_eg_new->Fill(sclRef->energy() / mcIter->p());
3197  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3198  histSclEoEtrue_endcaps_eg_new->Fill(sclRef->energy() / mcIter->p());
3199  if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap())
3200  histSclEoEtrue_barrel_etagap_new->Fill(sclRef->energy() / mcIter->p());
3201  if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap())
3202  histSclEoEtrue_barrel_phigap_new->Fill(sclRef->energy() / mcIter->p());
3203  if (bestGsfElectron.isEBEEGap())
3204  histSclEoEtrue_ebeegap_new->Fill(sclRef->energy() / mcIter->p());
3205  //if (bestGsfElectron.isEE()) histSclEoEtrue_endcaps_new->Fill(sclRef->energy()/mcIter->p());
3206  if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap())
3207  histSclEoEtrue_endcaps_deegap_new->Fill(sclRef->energy() / mcIter->p());
3208  if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap())
3209  histSclEoEtrue_endcaps_ringgap_new->Fill(sclRef->energy() / mcIter->p());
3210  histSclEta_->Fill(sclRef->eta());
3211  histSclEtaVsPhi_->Fill(sclRef->phi(), sclRef->eta());
3212  histSclPhi_->Fill(sclRef->phi());
3213  histSclSigEtaEta_->Fill(bestGsfElectron.scSigmaEtaEta());
3214  if (bestGsfElectron.isEB())
3215  histSclSigEtaEta_barrel_->Fill(bestGsfElectron.scSigmaEtaEta());
3216  if (bestGsfElectron.isEE())
3217  histSclSigEtaEta_endcaps_->Fill(bestGsfElectron.scSigmaEtaEta());
3218  histSclSigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3219  if (bestGsfElectron.isEB())
3220  histSclSigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3221  if (bestGsfElectron.isEE())
3222  histSclSigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3223  histSclE1x5_->Fill(bestGsfElectron.scE1x5());
3224  if (bestGsfElectron.isEB())
3225  histSclE1x5_barrel_->Fill(bestGsfElectron.scE1x5());
3226  if (bestGsfElectron.isEE())
3227  histSclE1x5_endcaps_->Fill(bestGsfElectron.scE1x5());
3228  histSclE2x5max_->Fill(bestGsfElectron.scE2x5Max());
3229  if (bestGsfElectron.isEB())
3230  histSclE2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max());
3231  if (bestGsfElectron.isEE())
3232  histSclE2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max());
3233  histSclE5x5_->Fill(bestGsfElectron.scE5x5());
3234  if (bestGsfElectron.isEB())
3235  histSclE5x5_barrel_->Fill(bestGsfElectron.scE5x5());
3236  if (bestGsfElectron.isEE())
3237  histSclE5x5_endcaps_->Fill(bestGsfElectron.scE5x5());
3238  if (bestGsfElectron.ecalDrivenSeed())
3239  histSclSigIEtaIEta_eg_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3240  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3241  histSclSigIEtaIEta_eg_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3242  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3243  histSclSigIEtaIEta_eg_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta());
3244  if (bestGsfElectron.ecalDrivenSeed())
3245  histSclE1x5_eg_->Fill(bestGsfElectron.scE1x5());
3246  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3247  histSclE1x5_eg_barrel_->Fill(bestGsfElectron.scE1x5());
3248  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3249  histSclE1x5_eg_endcaps_->Fill(bestGsfElectron.scE1x5());
3250  if (bestGsfElectron.ecalDrivenSeed())
3251  histSclE2x5max_eg_->Fill(bestGsfElectron.scE2x5Max());
3252  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3253  histSclE2x5max_eg_barrel_->Fill(bestGsfElectron.scE2x5Max());
3254  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3255  histSclE2x5max_eg_endcaps_->Fill(bestGsfElectron.scE2x5Max());
3256  if (bestGsfElectron.ecalDrivenSeed())
3257  histSclE5x5_eg_->Fill(bestGsfElectron.scE5x5());
3258  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3259  histSclE5x5_eg_barrel_->Fill(bestGsfElectron.scE5x5());
3260  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3261  histSclE5x5_eg_endcaps_->Fill(bestGsfElectron.scE5x5());
3262  float pfEnergy = 0., egEnergy = 0.;
3263  if (!bestGsfElectron.superCluster().isNull())
3264  egEnergy = bestGsfElectron.superCluster()->energy();
3265  if (!bestGsfElectron.parentSuperCluster().isNull())
3266  pfEnergy = bestGsfElectron.parentSuperCluster()->energy();
3267  histSclEoEtruePfVsEg->Fill(egEnergy / mcIter->p(), pfEnergy / mcIter->p());
3268 
3269  // track related distributions
3270  h_ele_ambiguousTracks->Fill(bestGsfElectron.ambiguousGsfTracksSize());
3271  h_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize());
3272  h_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize());
3273  h_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize());
3274  if (!readAOD_) { // track extra does not exist in AOD
3275  h_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3276  if (bestGsfElectron.isEB())
3277  h_ele_foundHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3278  if (bestGsfElectron.isEE())
3279  h_ele_foundHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits());
3280  h_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3281  h_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3282  h_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits());
3283  h_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3284  if (bestGsfElectron.isEB())
3285  h_ele_lostHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3286  if (bestGsfElectron.isEE())
3287  h_ele_lostHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits());
3288  h_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3289  h_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3290  h_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits());
3291  h_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3292  if (bestGsfElectron.isEB())
3293  h_ele_chi2_barrel->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3294  if (bestGsfElectron.isEE())
3295  h_ele_chi2_endcaps->Fill(bestGsfElectron.gsfTrack()->normalizedChi2());
3296  h_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2());
3297  h_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2());
3298  h_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2());
3299  }
3300  // from gsf track interface, hence using mean
3301  if (!readAOD_) { // track extra does not exist in AOD
3302  h_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() -
3303  bestGsfElectron.gsfTrack()->outerMomentum().R());
3304  h_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R());
3305  h_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho());
3306  }
3307  // from electron interface, hence using mode
3308  h_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3309  h_ele_PinMnPoutVsEta_mode->Fill(
3310  bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3311  h_ele_PinMnPoutVsPhi_mode->Fill(
3312  bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3313  h_ele_PinMnPoutVsPt_mode->Fill(
3314  bestGsfElectron.pt(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3315  h_ele_PinMnPoutVsE_mode->Fill(
3316  bestGsfElectron.caloEnergy(),
3317  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3318  if (!readAOD_) // track extra does not exist in AOD
3319  h_ele_PinMnPoutVsChi2_mode->Fill(
3320  bestGsfElectron.gsfTrack()->normalizedChi2(),
3321  bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R());
3322  h_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R());
3323  h_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R());
3324  h_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho());
3325  h_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho());
3326  h_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho());
3327  h_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho());
3328 
3329  if (!readAOD_) { // track extra does not exist in AOD
3330  edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
3331  ElectronSeedRef elseed = seed.castTo<ElectronSeedRef>();
3332  h_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1));
3333  h_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1));
3334  h_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1));
3335  h_ele_seed_drz2_->Fill(elseed->dRZNeg(1));
3336  h_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1));
3337  h_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1));
3338  h_ele_seed_subdet2_->Fill(elseed->subDet(1));
3339  }
3340  // match distributions
3341  h_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP());
3342  if (bestGsfElectron.ecalDrivenSeed())
3343  h_ele_EoP_eg->Fill(bestGsfElectron.eSuperClusterOverP());
3344  if (bestGsfElectron.isEB())
3345  h_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
3346  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3347  h_ele_EoP_eg_barrel->Fill(bestGsfElectron.eSuperClusterOverP());
3348  if (bestGsfElectron.isEE())
3349  h_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
3350  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3351  h_ele_EoP_eg_endcaps->Fill(bestGsfElectron.eSuperClusterOverP());
3352  h_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP());
3353  h_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP());
3354  h_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP());
3355  h_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP());
3356  if (bestGsfElectron.ecalDrivenSeed())
3357  h_ele_EseedOP_eg->Fill(bestGsfElectron.eSeedClusterOverP());
3358  if (bestGsfElectron.isEB())
3359  h_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
3360  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3361  h_ele_EseedOP_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverP());
3362  if (bestGsfElectron.isEE())
3363  h_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
3364  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3365  h_ele_EseedOP_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverP());
3366  h_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP());
3367  h_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP());
3368  h_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP());
3369  h_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout());
3370  if (bestGsfElectron.ecalDrivenSeed())
3371  h_ele_EoPout_eg->Fill(bestGsfElectron.eSeedClusterOverPout());
3372  if (bestGsfElectron.isEB())
3373  h_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
3374  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3375  h_ele_EoPout_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverPout());
3376  if (bestGsfElectron.isEE())
3377  h_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
3378  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3379  h_ele_EoPout_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout());
3380  h_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout());
3381  h_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout());
3382  h_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout());
3383  h_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout());
3384  if (bestGsfElectron.ecalDrivenSeed())
3385  h_ele_EeleOPout_eg->Fill(bestGsfElectron.eEleClusterOverPout());
3386  if (bestGsfElectron.isEB())
3387  h_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
3388  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3389  h_ele_EeleOPout_eg_barrel->Fill(bestGsfElectron.eEleClusterOverPout());
3390  if (bestGsfElectron.isEE())
3391  h_ele_EeleOPout_endcaps->Fill(bestGsfElectron.eEleClusterOverPout());
3392  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3393  h_ele_EeleOPout_eg_endcaps->Fill(bestGsfElectron.eEleClusterOverPout());
3394  h_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout());
3395  h_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout());
3396  h_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout());
3397  h_ele_dEtaSc_propVtx->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3398  if (bestGsfElectron.ecalDrivenSeed())
3399  h_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3400  if (bestGsfElectron.isEB())
3401  h_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3402  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3403  h_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3404  if (bestGsfElectron.isEE())
3405  h_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3406  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3407  h_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3408  h_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3409  h_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3410  h_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
3411  h_ele_dPhiSc_propVtx->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3412  if (bestGsfElectron.ecalDrivenSeed())
3413  h_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3414  if (bestGsfElectron.isEB())
3415  h_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3416  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3417  h_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3418  if (bestGsfElectron.isEE())
3419  h_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3420  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3421  h_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3422  h_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3423  h_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3424  h_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
3425  h_ele_dEtaCl_propOut->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3426  if (bestGsfElectron.ecalDrivenSeed())
3427  h_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3428  if (bestGsfElectron.isEB())
3429  h_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3430  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3431  h_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3432  if (bestGsfElectron.isEE())
3433  h_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3434  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3435  h_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3436  h_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3437  h_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3438  h_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
3439  h_ele_dPhiCl_propOut->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3440  if (bestGsfElectron.ecalDrivenSeed())
3441  h_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3442  if (bestGsfElectron.isEB())
3443  h_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3444  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3445  h_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3446  if (bestGsfElectron.isEE())
3447  h_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3448  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3449  h_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3450  h_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3451  h_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3452  h_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
3453  h_ele_dEtaEleCl_propOut->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3454  if (bestGsfElectron.ecalDrivenSeed())
3455  h_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3456  if (bestGsfElectron.isEB())
3457  h_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3458  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3459  h_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3460  if (bestGsfElectron.isEE())
3461  h_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3462  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3463  h_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3464  h_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3465  h_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3466  h_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
3467  h_ele_dPhiEleCl_propOut->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3468  if (bestGsfElectron.ecalDrivenSeed())
3469  h_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3470  if (bestGsfElectron.isEB())
3471  h_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3472  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3473  h_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3474  if (bestGsfElectron.isEE())
3475  h_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3476  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3477  h_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3478  h_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3479  h_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3480  h_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
3481  h_ele_HoE->Fill(bestGsfElectron.hadronicOverEm());
3482  if (bestGsfElectron.ecalDrivenSeed())
3483  h_ele_HoE_eg->Fill(bestGsfElectron.hadronicOverEm());
3484  if (bestGsfElectron.isEB())
3485  h_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm());
3486  if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed())
3487  h_ele_HoE_eg_barrel->Fill(bestGsfElectron.hadronicOverEm());
3488  if (bestGsfElectron.isEE())
3489  h_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm());
3490  if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed())
3491  h_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hadronicOverEm());
3492  if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() &&
3493  !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap())
3494  h_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm());
3495  h_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hadronicOverEm());
3496  h_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hadronicOverEm());
3497  h_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hadronicOverEm());
3498 
3499  //classes
3500  int eleClass = bestGsfElectron.classification();
3501  if (bestGsfElectron.isEE())
3502  eleClass += 10;
3503  h_ele_classes->Fill(eleClass);
3504 
3505  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEB())
3506  histSclEoEtrueGolden_barrel->Fill(sclRef->energy() / mcIter->p());
3507  if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEE())
3508  histSclEoEtrueGolden_endcaps->Fill(sclRef->energy() / mcIter->p());
3509  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEB())
3510  histSclEoEtrueShowering_barrel->Fill(sclRef->energy() / mcIter->p());
3511  if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEE())
3512  histSclEoEtrueShowering_endcaps->Fill(sclRef->energy() / mcIter->p());
3513 
3514  //eleClass = eleClass%100; // get rid of barrel/endcap distinction
3515  h_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
3516  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3517  h_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
3518  if (bestGsfElectron.classification() == GsfElectron::BIGBREM)
3519  h_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
3520  //if (bestGsfElectron.classification() == GsfElectron::NARROW) h_ele_eta_narrow ->Fill(std::abs(bestGsfElectron.eta()));
3521  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3522  h_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
3523 
3524  //fbrem
3525  double fbrem_mean = 0.;
3526  if (!readAOD_) // track extra does not exist in AOD
3527  fbrem_mean =
3528  1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R();
3529  double fbrem_mode = bestGsfElectron.fbrem();
3530  h_ele_fbrem->Fill(fbrem_mode);
3531  if (bestGsfElectron.ecalDrivenSeed())
3532  h_ele_fbrem_eg->Fill(fbrem_mode);
3533  h_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode);
3534  if (!readAOD_) // track extra does not exist in AOD
3535  h_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean);
3536 
3537  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3538  h_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
3539  bestGsfElectron.trackMomentumAtVtx().R());
3540  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3541  h_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(),
3542  bestGsfElectron.trackMomentumAtVtx().R());
3543  if (!readAOD_) { // track extra not available in AOD
3544  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3545  h_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
3546  bestGsfElectron.gsfTrack()->innerMomentum().R());
3547  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3548  h_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(),
3549  bestGsfElectron.gsfTrack()->innerMomentum().R());
3550  }
3551  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3552  h_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
3553  bestGsfElectron.trackMomentumAtVtx().Rho());
3554  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3555  h_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(),
3556  bestGsfElectron.trackMomentumAtVtx().Rho());
3557  if (!readAOD_) { // track extra not available in AOD
3558  if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
3559  h_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
3560  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
3561  if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
3562  h_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(),
3563  bestGsfElectron.gsfTrack()->innerMomentum().Rho());
3564  }
3565 
3566  h_ele_mva->Fill(bestGsfElectron.mva_e_pi());
3567  if (bestGsfElectron.ecalDrivenSeed())
3568  h_ele_mva_eg->Fill(bestGsfElectron.mva_e_pi());
3569  if (bestGsfElectron.ecalDrivenSeed())
3570  h_ele_provenance->Fill(1.);
3571  if (bestGsfElectron.trackerDrivenSeed())
3572  h_ele_provenance->Fill(-1.);
3573  if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed())
3574  h_ele_provenance->Fill(0.);
3575  if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed())
3576  h_ele_provenance->Fill(-2.);
3577  if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed())
3578  h_ele_provenance->Fill(2.);
3579 
3580  h_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
3581  h_ele_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
3582  h_ele_hcalDepth1TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(1));
3583  h_ele_hcalDepth2TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(2));
3584  h_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt());
3585  h_ele_ecalRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
3586  h_ele_hcalDepth1TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(1));
3587  h_ele_hcalDepth2TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(2));
3588 
3589  } // gsf electron found
3590 
3591  } // mc particle found
3592  }
3593 
3594  } // loop over mc particle
3595 
3596  h_mcNum->Fill(mcNum);
3597  h_eleNum->Fill(eleNum);
3598 }
float deltaPhiEleClusterTrackAtCalo() const
Definition: GsfElectron.h:230
edm::ESHandle< TrackerGeometry > pDD
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
float scSigmaIEtaIEta() const
Definition: GsfElectron.h:496
double pt() const final
transverse momentum
bool ecalDrivenSeed() const
Definition: GsfElectron.h:158
float deltaPhiSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:229
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
float eSeedClusterOverP() const
Definition: GsfElectron.h:222
float scE1x5() const
Definition: GsfElectron.h:497
bool trackerDrivenSeed() const
Definition: GsfElectron.h:159
GsfElectronMCAnalyzer(const edm::ParameterSet &conf)
bool isEBPhiGap() const
Definition: GsfElectron.h:334
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ESHandle< MagneticField > theMagField
bool isEERingGap() const
Definition: GsfElectron.h:337
void analyze(const edm::Event &e, const edm::EventSetup &c) override
const Point & vertex() const override
vertex position (overwritten by PF...)
float deltaEtaEleClusterTrackAtCalo() const
Definition: GsfElectron.h:227
TrajectoryStateTransform transformer_
float dr04TkSumPt() const
Definition: GsfElectron.h:597
bool isEBEtaGap() const
Definition: GsfElectron.h:333
float eSuperClusterOverP() const
Definition: GsfElectron.h:221
Classification classification() const
Definition: GsfElectron.h:805
const Double_t pi
float eEleClusterOverPout() const
Definition: GsfElectron.h:224
bool isEB() const
Definition: GsfElectron.h:328
float dr03TkSumPt() const
Definition: GsfElectron.h:557
float eSeedClusterOverPout() const
Definition: GsfElectron.h:223
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:156
math::XYZVectorF trackMomentumOut() const
Definition: GsfElectron.h:270
int iEvent
Definition: GenABIO.cc:224
float caloEnergy() const
Definition: GsfElectron.h:899
double p() const final
magnitude of momentum vector
float mva_e_pi() const
Definition: GsfElectron.h:744
float scSigmaEtaEta() const
Definition: GsfElectron.h:495
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< int > matchingMotherIDs_
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
Definition: GsfElectron.h:766
bool isEBEEGap() const
Definition: GsfElectron.h:331
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
math::XYZVectorF trackMomentumAtVtx() const
Definition: GsfElectron.h:268
bool isEEDeeGap() const
Definition: GsfElectron.h:336
double py() const final
y coordinate of momentum vector
bool isNull() const
Checks for null.
Definition: Ref.h:235
d
Definition: ztail.py:151
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:228
virtual int pdgId() const =0
PDG identifier.
Log< level::Info, false > LogInfo
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:225
float scE2x5Max() const
Definition: GsfElectron.h:498
bool isEE() const
Definition: GsfElectron.h:329
virtual SuperClusterRef parentSuperCluster() const
Definition: GsfElectron.h:160
float fbrem() const
Definition: GsfElectron.h:809
fixed size matrix
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:559
float dr04HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:600
float deltaEtaSeedClusterTrackAtCalo() const
Definition: GsfElectron.h:226
std::vector< int > matchingIDs_
float scE5x5() const
Definition: GsfElectron.h:499
float dr03HcalTowerSumEt(int depth=0) const
Definition: GsfElectron.h:576
double phi() const final
momentum azimuthal angle
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
float hadronicOverEm() const
Definition: GsfElectron.h:500
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
float dr04EcalRecHitSumEt() const
Definition: GsfElectron.h:599
int charge() const final
electric charge
double eta() const final
momentum pseudorapidity