CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Validation/RecoEgamma/plugins/ElectronMcFakeValidator.cc

Go to the documentation of this file.
00001 
00002 // user include files
00003 #include "Validation/RecoEgamma/plugins/ElectronMcFakeValidator.h"
00004 
00005 #include "RecoEgamma/EgammaElectronAlgos/interface/ElectronUtilities.h"
00006 
00007 //#include "DQMServices/Core/interface/DQMStore.h"
00008 #include "DQMServices/Core/interface/MonitorElement.h"
00009 
00010 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
00011 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00012 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00013 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00014 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00015 #include "DataFormats/EgammaReco/interface/ElectronSeed.h"
00016 #include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h"
00017 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
00018 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00019 #include "DataFormats/JetReco/interface/GenJetCollection.h"
00020 
00021 #include "DataFormats/Common/interface/Handle.h"
00022 #include "DataFormats/Common/interface/ValueMap.h"
00023 
00024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00025 #include "FWCore/Framework/interface/EDAnalyzer.h"
00026 #include "FWCore/Framework/interface/Event.h"
00027 #include "FWCore/Framework/interface/MakerMacros.h"
00028 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00029 
00030 #include "CLHEP/Units/GlobalPhysicalConstants.h"
00031 #include "TMath.h"
00032 #include "TFile.h"
00033 #include "TH1F.h"
00034 #include "TH1I.h"
00035 #include "TH2F.h"
00036 #include "TProfile.h"
00037 #include "TTree.h"
00038 #include <vector>
00039 #include <iostream>
00040 
00041 using namespace reco;
00042 
00043 ElectronMcFakeValidator::ElectronMcFakeValidator( const edm::ParameterSet & conf )
00044  : ElectronDqmAnalyzerBase(conf)
00045  {
00046   //outputFile_ = conf.getParameter<std::string>("outputFile");
00047   electronCollection_ = conf.getParameter<edm::InputTag>("electronCollection");
00048   electronCoreCollection_ = conf.getParameter<edm::InputTag>("electronCoreCollection");
00049   electronTrackCollection_ = conf.getParameter<edm::InputTag>("electronTrackCollection");
00050   electronSeedCollection_ = conf.getParameter<edm::InputTag>("electronSeedCollection");
00051   matchingObjectCollection_ = conf.getParameter<edm::InputTag>("matchingObjectCollection");
00052 
00053   beamSpotTag_ = conf.getParameter<edm::InputTag>("beamSpot");
00054   readAOD_ = conf.getParameter<bool>("readAOD");
00055 
00056   isoFromDepsTk03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsTk03" ) ;
00057   isoFromDepsTk04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsTk04" ) ;
00058   isoFromDepsEcalFull03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalFull03" ) ;
00059   isoFromDepsEcalFull04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalFull04" ) ;
00060   isoFromDepsEcalReduced03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalReduced03" ) ;
00061   isoFromDepsEcalReduced04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsEcalReduced04" ) ;
00062   isoFromDepsHcal03Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsHcal03" ) ;
00063   isoFromDepsHcal04Tag_ = conf.getParameter<edm::InputTag>( "isoFromDepsHcal04" ) ;
00064 
00065   maxPt_ = conf.getParameter<double>("MaxPt");
00066   maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
00067   deltaR_ = conf.getParameter<double>("DeltaR");
00068 
00069   // histos bining and limits
00070 
00071   edm::ParameterSet histosSet = conf.getParameter<edm::ParameterSet>("histosCfg") ;
00072 
00073   xyz_nbin=histosSet.getParameter<int>("Nbinxyz");
00074 
00075   p_nbin=histosSet.getParameter<int>("Nbinp");
00076   p2D_nbin=histosSet.getParameter<int>("Nbinp2D");
00077   p_max=histosSet.getParameter<double>("Pmax");
00078 
00079   pt_nbin=histosSet.getParameter<int>("Nbinpt");
00080   pt2D_nbin=histosSet.getParameter<int>("Nbinpt2D");
00081   pteff_nbin=histosSet.getParameter<int>("Nbinpteff");
00082   pt_max=histosSet.getParameter<double>("Ptmax");
00083 
00084   fhits_nbin=histosSet.getParameter<int>("Nbinfhits");
00085   fhits_max=histosSet.getParameter<double>("Fhitsmax");
00086 
00087   lhits_nbin=histosSet.getParameter<int>("Nbinlhits");
00088   lhits_max=histosSet.getParameter<double>("Lhitsmax");
00089 
00090   eop_nbin=histosSet.getParameter<int>("Nbineop");
00091   eop2D_nbin=histosSet.getParameter<int>("Nbineop2D");
00092   eop_max=histosSet.getParameter<double>("Eopmax");
00093   eopmaxsht=histosSet.getParameter<double>("Eopmaxsht");
00094 
00095   eta_nbin=histosSet.getParameter<int>("Nbineta");
00096   eta2D_nbin=histosSet.getParameter<int>("Nbineta2D");
00097   eta_min=histosSet.getParameter<double>("Etamin");
00098   eta_max=histosSet.getParameter<double>("Etamax");
00099 
00100   deta_nbin=histosSet.getParameter<int>("Nbindeta");
00101   deta_min=histosSet.getParameter<double>("Detamin");
00102   deta_max=histosSet.getParameter<double>("Detamax");
00103 
00104   detamatch_nbin=histosSet.getParameter<int>("Nbindetamatch");
00105   detamatch2D_nbin=histosSet.getParameter<int>("Nbindetamatch2D");
00106   detamatch_min=histosSet.getParameter<double>("Detamatchmin");
00107   detamatch_max=histosSet.getParameter<double>("Detamatchmax");
00108 
00109   phi_nbin=histosSet.getParameter<int>("Nbinphi");
00110   phi2D_nbin=histosSet.getParameter<int>("Nbinphi2D");
00111   phi_min=histosSet.getParameter<double>("Phimin");
00112   phi_max=histosSet.getParameter<double>("Phimax");
00113 
00114   dphi_nbin=histosSet.getParameter<int>("Nbindphi");
00115   dphi_min=histosSet.getParameter<double>("Dphimin");
00116   dphi_max=histosSet.getParameter<double>("Dphimax");
00117 
00118   dphimatch_nbin=histosSet.getParameter<int>("Nbindphimatch");
00119   dphimatch2D_nbin=histosSet.getParameter<int>("Nbindphimatch2D");
00120   dphimatch_min=histosSet.getParameter<double>("Dphimatchmin");
00121   dphimatch_max=histosSet.getParameter<double>("Dphimatchmax");
00122 
00123   mee_nbin= histosSet.getParameter<int>("Nbinmee");
00124   mee_min=histosSet.getParameter<double>("Meemin");
00125   mee_max=histosSet.getParameter<double>("Meemax");
00126 
00127   hoe_nbin= histosSet.getParameter<int>("Nbinhoe");
00128   hoe_min=histosSet.getParameter<double>("Hoemin");
00129   hoe_max=histosSet.getParameter<double>("Hoemax");
00130 
00131   popmatching_nbin= histosSet.getParameter<int>("Nbinpopmatching");
00132   popmatching_min=histosSet.getParameter<double>("Popmatchingmin");
00133   popmatching_max=histosSet.getParameter<double>("Popmatchingmax");
00134 
00135   // so to please coverity
00136   h1_matchingObjectNum = 0 ;
00137   h1_recEleNum_ = 0 ;
00138   h1_recCoreNum_ = 0 ;
00139   h1_recTrackNum_ = 0 ;
00140   h1_recSeedNum_ = 0 ;
00141 
00142   h1_matchingObjectEta = 0 ;
00143   h1_matchingObjectAbsEta = 0 ;
00144   h1_matchingObjectP = 0 ;
00145   h1_matchingObjectPt = 0 ;
00146   h1_matchingObjectPhi = 0 ;
00147   h1_matchingObjectZ = 0 ;
00148 
00149   h1_ele_EoverP_all = 0 ;
00150   h1_ele_EseedOP_all = 0 ;
00151   h1_ele_EoPout_all = 0 ;
00152   h1_ele_EeleOPout_all = 0 ;
00153   h1_ele_dEtaSc_propVtx_all = 0 ;
00154   h1_ele_dPhiSc_propVtx_all = 0 ;
00155   h1_ele_dEtaCl_propOut_all = 0 ;
00156   h1_ele_dPhiCl_propOut_all = 0 ;
00157   h1_ele_TIP_all = 0 ;
00158   h1_ele_HoE_all = 0 ;
00159   h1_ele_vertexEta_all = 0 ;
00160   h1_ele_vertexPt_all = 0 ;
00161   h1_ele_mee_all = 0 ;
00162   h1_ele_mee_os = 0 ;
00163 
00164   h2_ele_E2mnE1vsMee_all = 0 ;
00165   h2_ele_E2mnE1vsMee_egeg_all = 0 ;
00166 
00167   h1_ele_matchingObjectEta_matched = 0 ;
00168   h1_ele_matchingObjectAbsEta_matched = 0 ;
00169   h1_ele_matchingObjectPt_matched = 0 ;
00170   h1_ele_matchingObjectPhi_matched = 0 ;
00171   h1_ele_matchingObjectZ_matched = 0 ;
00172 
00173   h1_ele_charge = 0 ;
00174   h2_ele_chargeVsEta = 0 ;
00175   h2_ele_chargeVsPhi = 0 ;
00176   h2_ele_chargeVsPt = 0 ;
00177   h1_ele_vertexP = 0 ;
00178   h1_ele_vertexPt = 0 ;
00179   h2_ele_vertexPtVsEta = 0 ;
00180   h2_ele_vertexPtVsPhi = 0 ;
00181   h1_ele_vertexEta = 0 ;
00182   h2_ele_vertexEtaVsPhi = 0 ;
00183   h1_ele_vertexAbsEta = 0 ;
00184   h1_ele_vertexPhi = 0 ;
00185   h1_ele_vertexX = 0 ;
00186   h1_ele_vertexY = 0 ;
00187   h1_ele_vertexZ = 0 ;
00188   h1_ele_vertexTIP = 0 ;
00189   h2_ele_vertexTIPVsEta = 0 ;
00190   h2_ele_vertexTIPVsPhi = 0 ;
00191   h2_ele_vertexTIPVsPt = 0 ;
00192 
00193   h1_ele_PoPmatchingObject = 0 ;
00194   h2_ele_PoPmatchingObjectVsEta = 0 ;
00195   h2_ele_PoPmatchingObjectVsPhi = 0 ;
00196   h2_ele_PoPmatchingObjectVsPt = 0 ;
00197   h1_ele_PoPmatchingObject_barrel = 0 ;
00198   h1_ele_PoPmatchingObject_endcaps = 0 ;
00199 
00200   h1_ele_EtaMnEtamatchingObject = 0 ;
00201   h2_ele_EtaMnEtamatchingObjectVsEta = 0 ;
00202   h2_ele_EtaMnEtamatchingObjectVsPhi = 0 ;
00203   h2_ele_EtaMnEtamatchingObjectVsPt = 0 ;
00204   h1_ele_PhiMnPhimatchingObject = 0 ;
00205   h1_ele_PhiMnPhimatchingObject2 = 0 ;
00206   h2_ele_PhiMnPhimatchingObjectVsEta = 0 ;
00207   h2_ele_PhiMnPhimatchingObjectVsPhi = 0 ;
00208   h2_ele_PhiMnPhimatchingObjectVsPt = 0 ;
00209 
00210   h1_scl_En_  = 0 ;
00211   h1_scl_EoEmatchingObject_barrel = 0 ;
00212   h1_scl_EoEmatchingObject_endcaps = 0 ;
00213   h1_scl_Et_  = 0 ;
00214   h2_scl_EtVsEta_  = 0 ;
00215   h2_scl_EtVsPhi_  = 0 ;
00216   h2_scl_EtaVsPhi_  = 0 ;
00217   h1_scl_Eta_  = 0 ;
00218   h1_scl_Phi_  = 0 ;
00219 
00220   //h1_scl_SigEtaEta_  = 0 ;
00221   //h1_scl_SigEtaEta_barrel_  = 0 ;
00222   //h1_scl_SigEtaEta_endcaps_  = 0 ;
00223   h1_scl_SigIEtaIEta_  = 0 ;
00224   h1_scl_SigIEtaIEta_barrel_  = 0 ;
00225   h1_scl_SigIEtaIEta_endcaps_  = 0 ;
00226   h1_scl_E1x5_  = 0 ;
00227   h1_scl_E1x5_barrel_  = 0 ;
00228   h1_scl_E1x5_endcaps_  = 0 ;
00229   h1_scl_E2x5max_  = 0 ;
00230   h1_scl_E2x5max_barrel_  = 0 ;
00231   h1_scl_E2x5max_endcaps_  = 0 ;
00232   h1_scl_E5x5_  = 0 ;
00233   h1_scl_E5x5_barrel_  = 0 ;
00234   h1_scl_E5x5_endcaps_  = 0 ;
00235 
00236   h1_ele_ambiguousTracks = 0 ;
00237   h2_ele_ambiguousTracksVsEta = 0 ;
00238   h2_ele_ambiguousTracksVsPhi = 0 ;
00239   h2_ele_ambiguousTracksVsPt = 0 ;
00240   h1_ele_foundHits = 0 ;
00241   h1_ele_foundHits_barrel = 0 ;
00242   h1_ele_foundHits_endcaps = 0 ;
00243   h2_ele_foundHitsVsEta = 0 ;
00244   h2_ele_foundHitsVsPhi = 0 ;
00245   h2_ele_foundHitsVsPt = 0 ;
00246   h1_ele_lostHits = 0 ;
00247   h1_ele_lostHits_barrel = 0 ;
00248   h1_ele_lostHits_endcaps = 0 ;
00249   h2_ele_lostHitsVsEta = 0 ;
00250   h2_ele_lostHitsVsPhi = 0 ;
00251   h2_ele_lostHitsVsPt = 0 ;
00252   h1_ele_chi2 = 0 ;
00253   h1_ele_chi2_barrel = 0 ;
00254   h1_ele_chi2_endcaps = 0 ;
00255   h2_ele_chi2VsEta = 0 ;
00256   h2_ele_chi2VsPhi = 0 ;
00257   h2_ele_chi2VsPt = 0 ;
00258 
00259   h1_ele_PinMnPout = 0 ;
00260   h1_ele_PinMnPout_mode = 0 ;
00261   h2_ele_PinMnPoutVsEta_mode = 0 ;
00262   h2_ele_PinMnPoutVsPhi_mode = 0 ;
00263   h2_ele_PinMnPoutVsPt_mode = 0 ;
00264   h2_ele_PinMnPoutVsE_mode = 0 ;
00265   h2_ele_PinMnPoutVsChi2_mode = 0 ;
00266 
00267   h1_ele_outerP = 0 ;
00268   h1_ele_outerP_mode = 0 ;
00269   h2_ele_outerPVsEta_mode = 0 ;
00270   h1_ele_outerPt = 0 ;
00271   h1_ele_outerPt_mode = 0 ;
00272   h2_ele_outerPtVsEta_mode = 0 ;
00273   h2_ele_outerPtVsPhi_mode = 0 ;
00274   h2_ele_outerPtVsPt_mode = 0 ;
00275   h1_ele_EoP = 0 ;
00276   h1_ele_EoP_barrel = 0 ;
00277   h1_ele_EoP_endcaps = 0 ;
00278   h1_ele_EoP_eg = 0 ;
00279   h1_ele_EoP_eg_barrel = 0 ;
00280   h1_ele_EoP_eg_endcaps = 0 ;
00281   h2_ele_EoPVsEta = 0 ;
00282   h2_ele_EoPVsPhi = 0 ;
00283   h2_ele_EoPVsE = 0 ;
00284   h1_ele_EseedOP = 0 ;
00285   h1_ele_EseedOP_barrel = 0 ;
00286   h1_ele_EseedOP_endcaps = 0 ;
00287   h1_ele_EseedOP_eg = 0 ;
00288   h1_ele_EseedOP_eg_barrel = 0 ;
00289   h1_ele_EseedOP_eg_endcaps = 0 ;
00290   h2_ele_EseedOPVsEta = 0 ;
00291   h2_ele_EseedOPVsPhi = 0 ;
00292   h2_ele_EseedOPVsE = 0 ;
00293   h1_ele_EoPout = 0 ;
00294   h1_ele_EoPout_barrel = 0 ;
00295   h1_ele_EoPout_endcaps = 0 ;
00296   h1_ele_EoPout_eg = 0 ;
00297   h1_ele_EoPout_eg_barrel = 0 ;
00298   h1_ele_EoPout_eg_endcaps = 0 ;
00299   h2_ele_EoPoutVsEta = 0 ;
00300   h2_ele_EoPoutVsPhi = 0 ;
00301   h2_ele_EoPoutVsE = 0 ;
00302   h1_ele_EeleOPout = 0 ;
00303   h1_ele_EeleOPout_barrel = 0 ;
00304   h1_ele_EeleOPout_endcaps = 0 ;
00305   h1_ele_EeleOPout_eg = 0 ;
00306   h1_ele_EeleOPout_eg_barrel = 0 ;
00307   h1_ele_EeleOPout_eg_endcaps = 0 ;
00308   h2_ele_EeleOPoutVsEta = 0 ;
00309   h2_ele_EeleOPoutVsPhi = 0 ;
00310   h2_ele_EeleOPoutVsE = 0 ;
00311 
00312   h1_ele_dEtaSc_propVtx = 0 ;
00313   h1_ele_dEtaSc_propVtx_barrel = 0 ;
00314   h1_ele_dEtaSc_propVtx_endcaps = 0 ;
00315   h1_ele_dEtaSc_propVtx_eg = 0 ;
00316   h1_ele_dEtaSc_propVtx_eg_barrel = 0 ;
00317   h1_ele_dEtaSc_propVtx_eg_endcaps = 0 ;
00318   h2_ele_dEtaScVsEta_propVtx = 0 ;
00319   h2_ele_dEtaScVsPhi_propVtx = 0 ;
00320   h2_ele_dEtaScVsPt_propVtx = 0 ;
00321   h1_ele_dPhiSc_propVtx = 0 ;
00322   h1_ele_dPhiSc_propVtx_barrel = 0 ;
00323   h1_ele_dPhiSc_propVtx_endcaps = 0 ;
00324   h1_ele_dPhiSc_propVtx_eg = 0 ;
00325   h1_ele_dPhiSc_propVtx_eg_barrel = 0 ;
00326   h1_ele_dPhiSc_propVtx_eg_endcaps = 0 ;
00327   h2_ele_dPhiScVsEta_propVtx = 0 ;
00328   h2_ele_dPhiScVsPhi_propVtx = 0 ;
00329   h2_ele_dPhiScVsPt_propVtx = 0 ;
00330   h1_ele_dEtaCl_propOut = 0 ;
00331   h1_ele_dEtaCl_propOut_barrel = 0 ;
00332   h1_ele_dEtaCl_propOut_endcaps = 0 ;
00333   h1_ele_dEtaCl_propOut_eg = 0 ;
00334   h1_ele_dEtaCl_propOut_eg_barrel = 0 ;
00335   h1_ele_dEtaCl_propOut_eg_endcaps = 0 ;
00336   h2_ele_dEtaClVsEta_propOut = 0 ;
00337   h2_ele_dEtaClVsPhi_propOut = 0 ;
00338   h2_ele_dEtaClVsPt_propOut = 0 ;
00339   h1_ele_dPhiCl_propOut = 0 ;
00340   h1_ele_dPhiCl_propOut_barrel = 0 ;
00341   h1_ele_dPhiCl_propOut_endcaps = 0 ;
00342   h1_ele_dPhiCl_propOut_eg = 0 ;
00343   h1_ele_dPhiCl_propOut_eg_barrel = 0 ;
00344   h1_ele_dPhiCl_propOut_eg_endcaps = 0 ;
00345   h2_ele_dPhiClVsEta_propOut = 0 ;
00346   h2_ele_dPhiClVsPhi_propOut = 0 ;
00347   h2_ele_dPhiClVsPt_propOut = 0 ;
00348   h1_ele_dEtaEleCl_propOut = 0 ;
00349   h1_ele_dEtaEleCl_propOut_barrel = 0 ;
00350   h1_ele_dEtaEleCl_propOut_endcaps = 0 ;
00351   h1_ele_dEtaEleCl_propOut_eg = 0 ;
00352   h1_ele_dEtaEleCl_propOut_eg_barrel = 0 ;
00353   h1_ele_dEtaEleCl_propOut_eg_endcaps = 0 ;
00354   h2_ele_dEtaEleClVsEta_propOut = 0 ;
00355   h2_ele_dEtaEleClVsPhi_propOut = 0 ;
00356   h2_ele_dEtaEleClVsPt_propOut = 0 ;
00357   h1_ele_dPhiEleCl_propOut = 0 ;
00358   h1_ele_dPhiEleCl_propOut_barrel = 0 ;
00359   h1_ele_dPhiEleCl_propOut_endcaps = 0 ;
00360   h1_ele_dPhiEleCl_propOut_eg = 0 ;
00361   h1_ele_dPhiEleCl_propOut_eg_barrel = 0 ;
00362   h1_ele_dPhiEleCl_propOut_eg_endcaps = 0 ;
00363   h2_ele_dPhiEleClVsEta_propOut = 0 ;
00364   h2_ele_dPhiEleClVsPhi_propOut = 0 ;
00365   h2_ele_dPhiEleClVsPt_propOut = 0 ;
00366 
00367   h1_ele_seed_subdet2_ = 0 ;
00368   h1_ele_seed_mask_ = 0 ;
00369   h1_ele_seed_mask_bpix_ = 0 ;
00370   h1_ele_seed_mask_fpix_ = 0 ;
00371   h1_ele_seed_mask_tec_ = 0 ;
00372   h1_ele_seed_dphi2_ = 0 ;
00373   h2_ele_seed_dphi2VsEta_ = 0 ;
00374   h2_ele_seed_dphi2VsPt_  = 0 ;
00375   h1_ele_seed_dphi2pos_ = 0 ;
00376   h2_ele_seed_dphi2posVsEta_ = 0 ;
00377   h2_ele_seed_dphi2posVsPt_  = 0 ;
00378   h1_ele_seed_drz2_ = 0 ;
00379   h2_ele_seed_drz2VsEta_ = 0 ;
00380   h2_ele_seed_drz2VsPt_ = 0 ;
00381   h1_ele_seed_drz2pos_ = 0 ;
00382   h2_ele_seed_drz2posVsEta_ = 0 ;
00383   h2_ele_seed_drz2posVsPt_ = 0 ;
00384 
00385   h1_ele_classes = 0 ;
00386   h1_ele_eta = 0 ;
00387   h1_ele_eta_golden = 0 ;
00388   h1_ele_eta_bbrem = 0 ;
00389   h1_ele_eta_narrow = 0 ;
00390   h1_ele_eta_shower = 0 ;
00391 
00392   h1_ele_HoE = 0 ;
00393   h1_ele_HoE_barrel = 0 ;
00394   h1_ele_HoE_endcaps = 0 ;
00395   h1_ele_HoE_eg = 0 ;
00396   h1_ele_HoE_eg_barrel = 0 ;
00397   h1_ele_HoE_eg_endcaps = 0 ;
00398   h1_ele_HoE_fiducial = 0 ;
00399   h2_ele_HoEVsEta = 0 ;
00400   h2_ele_HoEVsPhi = 0 ;
00401   h2_ele_HoEVsE = 0 ;
00402 
00403   h1_ele_fbrem = 0 ;
00404   p1_ele_fbremVsEta_mode = 0 ;
00405   p1_ele_fbremVsEta_mean = 0 ;
00406 
00407   h2_ele_PinVsPoutGolden_mode = 0 ;
00408   h2_ele_PinVsPoutShowering_mode = 0 ;
00409   h2_ele_PinVsPoutGolden_mean = 0 ;
00410   h2_ele_PinVsPoutShowering_mean = 0 ;
00411   h2_ele_PtinVsPtoutGolden_mode = 0 ;
00412   h2_ele_PtinVsPtoutShowering_mode = 0 ;
00413   h2_ele_PtinVsPtoutGolden_mean = 0 ;
00414   h2_ele_PtinVsPtoutShowering_mean = 0 ;
00415   h1_scl_EoEmatchingObjectGolden_barrel = 0 ;
00416   h1_scl_EoEmatchingObjectGolden_endcaps = 0 ;
00417   h1_scl_EoEmatchingObjectShowering_barrel = 0 ;
00418   h1_scl_EoEmatchingObjectShowering_endcaps = 0 ;
00419 
00420   h1_ele_mva = 0 ;
00421   h1_ele_provenance = 0 ;
00422 
00423   h1_ele_tkSumPt_dr03 = 0 ;
00424   h1_ele_tkSumPt_dr03_barrel = 0 ;
00425   h1_ele_tkSumPt_dr03_endcaps = 0 ;
00426   h1_ele_ecalRecHitSumEt_dr03 = 0 ;
00427   h1_ele_ecalRecHitSumEt_dr03_barrel = 0 ;
00428   h1_ele_ecalRecHitSumEt_dr03_endcaps = 0 ;
00429   h1_ele_hcalTowerSumEt_dr03_depth1 = 0 ;
00430   h1_ele_hcalTowerSumEt_dr03_depth1_barrel = 0 ;
00431   h1_ele_hcalTowerSumEt_dr03_depth1_endcaps = 0 ;
00432   h1_ele_hcalTowerSumEt_dr03_depth2 = 0 ;
00433   h1_ele_tkSumPt_dr04 = 0 ;
00434   h1_ele_tkSumPt_dr04_barrel = 0 ;
00435   h1_ele_tkSumPt_dr04_endcaps = 0 ;
00436   h1_ele_ecalRecHitSumEt_dr04 = 0 ;
00437   h1_ele_ecalRecHitSumEt_dr04_barrel = 0 ;
00438   h1_ele_ecalRecHitSumEt_dr04_endcaps = 0 ;
00439   h1_ele_hcalTowerSumEt_dr04_depth1 = 0 ;
00440   h1_ele_hcalTowerSumEt_dr04_depth1_barrel = 0 ;
00441   h1_ele_hcalTowerSumEt_dr04_depth1_endcaps = 0 ;
00442   h1_ele_hcalTowerSumEt_dr04_depth2 = 0 ;
00443 
00444   h1_ele_dIso_tkSumPt_dr03 = 0 ;
00445   h1_ele_dIso_tkSumPt_dr04 = 0 ;
00446   h1_ele_dIso_ecalFullRecHitSumEt_dr03 = 0 ;
00447   h1_ele_dIso_ecalFullRecHitSumEt_dr04 = 0 ;
00448   h1_ele_dIso_ecalReducedRecHitSumEt_dr03 = 0 ;
00449   h1_ele_dIso_ecalReducedRecHitSumEt_dr04 = 0 ;
00450   h1_ele_dIso_hcalTowerSumEt_dr03 = 0 ;
00451   h1_ele_dIso_hcalTowerSumEt_dr04 = 0 ;
00452 
00453   h1_ele_convFlags = 0 ;
00454   h1_ele_convFlags_all = 0 ;
00455   h1_ele_convDist = 0 ;
00456   h1_ele_convDist_all = 0 ;
00457   h1_ele_convDcot = 0 ;
00458   h1_ele_convDcot_all = 0 ;
00459   h1_ele_convRadius = 0 ;
00460   h1_ele_convRadius_all = 0 ;
00461 
00462  }
00463 
00464 void ElectronMcFakeValidator::book()
00465  {
00466 //  prepareStore() ;
00467 //  setStoreFolder("EgammaV/ElectronMcFakeValidator") ;
00468   setBookIndex(-1) ;
00469   setBookPrefix("h") ;
00470 
00471   // matching object type
00472   std::string matchingObjectType ;
00473   if (std::string::npos!=matchingObjectCollection_.label().find("iterativeCone5GenJets",0))
00474    { matchingObjectType = "GenJet" ; }
00475   if (matchingObjectType=="")
00476    { edm::LogError("ElectronMcFakeValidator::beginJob")<<"Unknown matching object type !" ; }
00477   else
00478    { edm::LogInfo("ElectronMcFakeValidator::beginJob")<<"Matching object type: "<<matchingObjectType ; }
00479   std::string htitle = "# "+matchingObjectType+"s", xtitle = "N_{"+matchingObjectType+"}" ;
00480   h1_matchingObjectNum = bookH1withSumw2("matchingObjectNum",htitle,fhits_nbin,0.,fhits_max,xtitle) ;
00481 
00482   // rec event collections sizes
00483   h1_recEleNum_= bookH1("recEleNum","# rec electrons",11, -0.5,10.5,"N_{ele}");
00484   h1_recCoreNum_= bookH1("recCoreNum","# rec electron cores",21, -0.5,20.5,"N_{core}");
00485   h1_recTrackNum_= bookH1("recTrackNum","# rec gsf tracks",41, -0.5,40.5,"N_{track}");
00486   h1_recSeedNum_= bookH1("recSeedNum","# rec electron seeds",101, -0.5,100.5,"N_{seed}");
00487 
00488   // mc
00489   h1_matchingObjectEta = bookH1withSumw2("matchingObject_eta",matchingObjectType+" #eta",eta_nbin,eta_min,eta_max,"#eta");
00490   h1_matchingObjectAbsEta = bookH1withSumw2("matchingObject_abseta",matchingObjectType+" |#eta|",eta_nbin/2,0.,eta_max);
00491   h1_matchingObjectP = bookH1withSumw2("matchingObject_P",matchingObjectType+" p",p_nbin,0.,p_max,"p (GeV/c)");
00492   h1_matchingObjectPt = bookH1withSumw2("matchingObject_Pt",matchingObjectType+" pt",pteff_nbin,5.,pt_max);
00493   h1_matchingObjectPhi = bookH1withSumw2("matchingObject_phi",matchingObjectType+" phi",phi_nbin,phi_min,phi_max);
00494   h1_matchingObjectZ = bookH1withSumw2("matchingObject_z",matchingObjectType+" z",xyz_nbin, -25, 25 );
00495 
00496   setBookPrefix("h_ele") ;
00497 
00498   // all electrons
00499   h1_ele_EoverP_all = bookH1withSumw2("EoverP_all","ele E/P_{vertex}, all reco electrons",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00500   h1_ele_EseedOP_all = bookH1withSumw2("EseedOP_all","ele E_{seed}/P_{vertex}, all reco electrons",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00501   h1_ele_EoPout_all = bookH1withSumw2("EoPout_all","ele E_{seed}/P_{out}, all reco electrons",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00502   h1_ele_EeleOPout_all = bookH1withSumw2("EeleOPout_all","ele E_{ele}/P_{out}, all reco electrons",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00503   h1_ele_dEtaSc_propVtx_all = bookH1withSumw2("dEtaSc_propVtx_all","ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00504   h1_ele_dPhiSc_propVtx_all = bookH1withSumw2("dPhiSc_propVtx_all","ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00505   h1_ele_dEtaCl_propOut_all = bookH1withSumw2("dEtaCl_propOut_all","ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00506   h1_ele_dPhiCl_propOut_all = bookH1withSumw2("dPhiCl_propOut_all","ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00507   h1_ele_TIP_all = bookH1withSumw2("TIP_all","ele vertex transverse radius, all reco electrons",  100,0.,0.2,"r_{T} (cm)","Events","ELE_LOGY E1 P");
00508   h1_ele_HoE_all = bookH1withSumw2("HoE_all","ele hadronic energy / em energy, all reco electrons",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00509   h1_ele_HoE_bc_all = bookH1withSumw2("HoE_bc_all","ele hadronic energy / em energy, all reco electrons, behind cluster",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00510   h1_ele_vertexEta_all = bookH1withSumw2("vertexEta_all","ele eta, all reco electrons",eta_nbin,eta_min,eta_max,"","Events","ELE_LOGY E1 P");
00511   h1_ele_vertexPt_all = bookH1withSumw2("vertexPt_all","ele p_{T}, all reco electrons",pteff_nbin,5.,pt_max,"","Events","ELE_LOGY E1 P");
00512   h1_ele_mee_all = bookH1withSumw2("mee_all","ele pairs invariant mass, all reco electrons",mee_nbin, mee_min, mee_max,"m_{ee} (GeV/c^{2})" );
00513   h1_ele_mee_os = bookH1withSumw2("mee_os","ele pairs invariant mass, opp. sign",mee_nbin, mee_min, mee_max,"m_{e^{+}e^{-}} (GeV/c^{2})" );
00514 
00515   // duplicates
00516   h2_ele_E2mnE1vsMee_all = bookH2("E2mnE1vsMee_all","E2 - E1 vs ele pairs invariant mass, all electrons",mee_nbin, mee_min, mee_max, 100, -50., 50.,"m_{e^{+}e^{-}} (GeV/c^{2})","E2 - E1 (GeV)");
00517   h2_ele_E2mnE1vsMee_egeg_all = bookH2("E2mnE1vsMee_egeg_all","E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",mee_nbin, mee_min, mee_max, 100, -50., 50.,"m_{e^{+}e^{-}} (GeV/c^{2})","E2 - E1 (GeV)");
00518 
00519 //  // charge ID
00520 //  h1_ele_ChargeMnChargeTrue = bookH1withSumw2("ChargeMnChargeTrue","ele charge - gen charge ",5,-1.,4.,"q_{rec} - q_{gen}");
00521 //  h1_ele_matchingObjectEta_matched_qmisid = bookH1withSumw2("eta_matched_qmisid","charge misid vs gen eta",eta_nbin,eta_min,eta_max);
00522 //  h1_ele_matchingObjectAbsEta_matched_qmisid = bookH1withSumw2("abseta_matched_qmisid","charge misid vs gen |eta|",eta_nbin/2,0.,eta_max);
00523 //  h1_ele_matchingObjectPt_matched_qmisid = bookH1withSumw2("Pt_matched_qmisid","charge misid vs gen transverse momentum",pteff_nbin,5.,pt_max);
00524 //  h1_ele_matchingObjectPhi_matched_qmisid = bookH1withSumw2("phi_matched_qmisid","charge misid vs gen phi",phi_nbin,phi_min,phi_max);
00525 //  h1_ele_matchingObjectZ_matched_qmisid = bookH1withSumw2("z_matched_qmisid","charge misid vs gen z",xyz_nbin, -25, 25 );
00526 
00527   // matched electrons
00528 
00529   htitle = "Efficiency vs matching "+matchingObjectType+" " ;
00530   h1_ele_matchingObjectEta_matched = bookH1withSumw2("matchingObjectEta_matched",htitle+"#eta",eta_nbin,eta_min,eta_max);
00531   h1_ele_matchingObjectAbsEta_matched = bookH1withSumw2("matchingObjectAbsEta_matched",htitle+"|#eta|",eta_nbin/2,0.,2.5);
00532   h1_ele_matchingObjectPt_matched = bookH1("matchingObjectPt_matched",htitle+"p_{T}",pteff_nbin,5.,pt_max);
00533   h1_ele_matchingObjectPhi_matched = bookH1withSumw2("matchingObjectPhi_matched",htitle+"phi",phi_nbin,phi_min,phi_max);
00534   h1_ele_matchingObjectZ_matched = bookH1withSumw2("matchingObjectZ_matched",htitle+"z",xyz_nbin,-25,25);
00535 
00536   h1_ele_charge = bookH1withSumw2("charge","ele charge",5,-2.5,2.5,"charge");
00537   h2_ele_chargeVsEta = bookH2("chargeVsEta","ele charge vs eta",eta2D_nbin,eta_min,eta_max,5,-2.,2.);
00538   h2_ele_chargeVsPhi = bookH2("chargeVsPhi","ele charge vs phi",phi2D_nbin,phi_min,phi_max,5,-2.,2.);
00539   h2_ele_chargeVsPt = bookH2("chargeVsPt","ele charge vs pt",pt_nbin,0.,100.,5,-2.,2.);
00540   h1_ele_vertexP = bookH1withSumw2("vertexP","ele momentum",p_nbin,0.,p_max,"p_{vertex} (GeV/c)");
00541   h1_ele_vertexPt = bookH1withSumw2("vertexPt","ele transverse momentum",pt_nbin,0.,pt_max,"p_{T vertex} (GeV/c)");
00542   h2_ele_vertexPtVsEta = bookH2("vertexPtVsEta","ele transverse momentum vs eta",eta2D_nbin,eta_min,eta_max,pt2D_nbin,0.,pt_max);
00543   h2_ele_vertexPtVsPhi = bookH2("vertexPtVsPhi","ele transverse momentum vs phi",phi2D_nbin,phi_min,phi_max,pt2D_nbin,0.,pt_max);
00544   h1_ele_vertexEta = bookH1withSumw2("vertexEta","ele momentum eta",eta_nbin,eta_min,eta_max,"#eta");
00545   h2_ele_vertexEtaVsPhi = bookH2("vertexEtaVsPhi","ele momentum eta vs phi",eta2D_nbin,eta_min,eta_max,phi2D_nbin,phi_min,phi_max );
00546   h1_ele_vertexPhi = bookH1withSumw2("vertexPhi","ele  momentum #phi",phi_nbin,phi_min,phi_max,"#phi (rad)");
00547   h1_ele_vertexX = bookH1withSumw2("vertexX","ele vertex x",xyz_nbin,-0.6,0.6,"x (cm)" );
00548   h1_ele_vertexY = bookH1withSumw2("vertexY","ele vertex y",xyz_nbin,-0.6,0.6,"y (cm)" );
00549   h1_ele_vertexZ = bookH1withSumw2("vertexZ","ele vertex z",xyz_nbin,-25, 25,"z (cm)" );
00550   h1_ele_vertexTIP = bookH1withSumw2("vertexTIP","ele transverse impact parameter (wrt gen vtx)",90,0.,0.15,"TIP (cm)","Events","ELE_LOGY E1 P");
00551   h2_ele_vertexTIPVsEta = bookH2("vertexTIPVsEta","ele transverse impact parameter (wrt gen vtx) vs eta",eta2D_nbin,eta_min,eta_max,45,0.,0.15,"#eta","TIP (cm)");
00552   h2_ele_vertexTIPVsPhi = bookH2("vertexTIPVsPhi","ele transverse impact parameter (wrt gen vtx) vs phi",phi2D_nbin,phi_min,phi_max,45,0.,0.15,"#phi (rad)","TIP (cm)");
00553   h2_ele_vertexTIPVsPt = bookH2("vertexTIPVsPt","ele transverse impact parameter (wrt gen vtx) vs transverse momentum",pt2D_nbin,0.,pt_max,45,0.,0.15,"p_{T} (GeV/c)","TIP (cm)");
00554 
00555   htitle = "Electron / Matching "+matchingObjectType+", momemtum" ;
00556   xtitle = "P / P_{"+matchingObjectType+"}" ;
00557   h1_ele_PoPmatchingObject = bookH1withSumw2("PoPmatchingObject",htitle,popmatching_nbin,popmatching_min,popmatching_max,xtitle);
00558   h2_ele_PoPmatchingObjectVsEta = bookH2("PoPmatchingObjectVsEta",htitle+",vs eta",eta2D_nbin,eta_min,eta_max,50,popmatching_min,popmatching_max);
00559   h2_ele_PoPmatchingObjectVsPhi = bookH2("PoPmatchingObjectVsPhi",htitle+",vs phi",phi2D_nbin,phi_min,phi_max,50,popmatching_min,popmatching_max);
00560   h2_ele_PoPmatchingObjectVsPt = bookH2("PoPmatchingObjectVsPt",htitle+",vs eta",pt2D_nbin,0.,pt_max,50,popmatching_min,popmatching_max);
00561   h1_ele_PoPmatchingObject_barrel = bookH1withSumw2("PoPmatchingObject_barrel",htitle+", barrel",popmatching_nbin,popmatching_min,popmatching_max,xtitle);
00562   h1_ele_PoPmatchingObject_endcaps = bookH1withSumw2("PoPmatchingObject_endcaps",htitle+", endcaps",popmatching_nbin,popmatching_min,popmatching_max,xtitle);
00563   htitle = "Ele - "+matchingObjectType+", " ;
00564   xtitle = "#eta - #eta_{"+matchingObjectType+"}" ;
00565   h1_ele_EtaMnEtamatchingObject = bookH1withSumw2("EtamatchingObjectEtaTrue",htitle+"eta",deta_nbin,deta_min,deta_max,xtitle);
00566   h2_ele_EtaMnEtamatchingObjectVsEta = bookH2("EtaMnEtamatchingObjectVsEta",htitle+"eta, vs eta",eta2D_nbin,eta_min,eta_max,deta_nbin/2,deta_min,deta_max);
00567   h2_ele_EtaMnEtamatchingObjectVsPhi = bookH2("EtaMnEtamatchingObjectVsPhi",htitle+"eta, vs phi",phi2D_nbin,phi_min,phi_max,deta_nbin/2,deta_min,deta_max);
00568   h2_ele_EtaMnEtamatchingObjectVsPt = bookH2("EtaMnEtamatchingObjectVsPt",htitle+"eta,, vs pt",pt_nbin,0.,pt_max,deta_nbin/2,deta_min,deta_max);
00569   xtitle = "#phi - #phi_{"+matchingObjectType+"} (rad)" ;
00570   h1_ele_PhiMnPhimatchingObject = bookH1withSumw2("PhiMnPhimatchingObject",htitle+"phi",dphi_nbin,dphi_min,dphi_max,xtitle);
00571   h1_ele_PhiMnPhimatchingObject2 = bookH1("PhiMnPhimatchingObject2",htitle+"phi",dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00572   h2_ele_PhiMnPhimatchingObjectVsEta = bookH2("PhiMnPhimatchingObjectVsEta",htitle+"phi, vs eta",eta2D_nbin,eta_min,eta_max,dphi_nbin/2,dphi_min,dphi_max);
00573   h2_ele_PhiMnPhimatchingObjectVsPhi = bookH2("PhiMnPhimatchingObjectVsPhi",htitle+"phi, vs phi",phi2D_nbin,phi_min,phi_max,dphi_nbin/2,dphi_min,dphi_max);
00574   h2_ele_PhiMnPhimatchingObjectVsPt = bookH2("PhiMnPhimatchingObjectVsPt",htitle+"phi, vs pt",pt2D_nbin,0.,pt_max,dphi_nbin/2,dphi_min,dphi_max);
00575 
00576   // matched electron, superclusters
00577 
00578   setBookPrefix("h_scl") ;
00579 
00580   h1_scl_En_ = bookH1withSumw2("energy","ele supercluster energy",p_nbin,0.,p_max);
00581   htitle = "Ele supercluster / "+matchingObjectType+", energy" ;
00582   xtitle = "E/E_{"+matchingObjectType+"}" ;
00583   h1_scl_EoEmatchingObject_barrel = bookH1withSumw2("EoEmatchingObject_barrel",htitle+", barrel",50,0.2,1.2,xtitle);
00584   h1_scl_EoEmatchingObject_endcaps = bookH1withSumw2("EoEmatchingObject_endcaps",htitle+", endcaps",50,0.2,1.2,xtitle);
00585   h1_scl_Et_ = bookH1withSumw2("et","ele supercluster transverse energy",pt_nbin,0.,pt_max);
00586   h2_scl_EtVsEta_ = bookH2("etVsEta","ele supercluster transverse energy vs eta",eta2D_nbin,eta_min,eta_max,pt_nbin,0.,pt_max);
00587   h2_scl_EtVsPhi_ = bookH2("etVsPhi","ele supercluster transverse energy vs phi",phi2D_nbin,phi_min,phi_max,pt_nbin,0.,pt_max);
00588   h2_scl_EtaVsPhi_ = bookH2("etaVsPhi","ele supercluster eta vs phi",phi2D_nbin,phi_min,phi_max,eta2D_nbin,eta_min,eta_max);
00589   h1_scl_Eta_ = bookH1withSumw2("eta","ele supercluster eta",eta_nbin,eta_min,eta_max);
00590   h1_scl_Phi_ = bookH1withSumw2("phi","ele supercluster phi",phi_nbin,phi_min,phi_max);
00591   h1_scl_SigIEtaIEta_  = bookH1withSumw2("sigietaieta","ele supercluster sigma ieta ieta",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
00592   h1_scl_SigIEtaIEta_barrel_  = bookH1withSumw2("sigietaieta_barrel","ele supercluster sigma ieta ieta, barrel",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
00593   h1_scl_SigIEtaIEta_endcaps_  = bookH1withSumw2("sigietaieta_endcaps","ele supercluster sigma ieta ieta, endcaps",100,0.,0.05,"#sigma_{i#eta i#eta}","Events","ELE_LOGY E1 P");
00594   h1_scl_E1x5_  = bookH1withSumw2("E1x5","ele supercluster energy in 1x5",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
00595   h1_scl_E1x5_barrel_  = bookH1withSumw2("E1x5_barrel","ele supercluster energy in 1x5 barrel",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
00596   h1_scl_E1x5_endcaps_  = bookH1withSumw2("E1x5_endcaps","ele supercluster energy in 1x5 endcaps",p_nbin,0., p_max,"E1x5 (GeV)","Events","ELE_LOGY E1 P");
00597   h1_scl_E2x5max_  = bookH1withSumw2("E2x5max","ele supercluster energy in 2x5 max",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
00598   h1_scl_E2x5max_barrel_  = bookH1withSumw2("E2x5max_barrel","ele supercluster energy in 2x5 _max barrel",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
00599   h1_scl_E2x5max_endcaps_  = bookH1withSumw2("E2x5max_endcaps","ele supercluster energy in 2x5 _max endcaps",p_nbin,0.,p_max,"E2x5 (GeV)","Events","ELE_LOGY E1 P");
00600   h1_scl_E5x5_  = bookH1withSumw2("E5x5","ele supercluster energy in 5x5",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
00601   h1_scl_E5x5_barrel_  = bookH1withSumw2("E5x5_barrel","ele supercluster energy in 5x5 barrel",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
00602   h1_scl_E5x5_endcaps_  = bookH1withSumw2("E5x5_endcaps","ele supercluster energy in 5x5 endcaps",p_nbin,0.,p_max,"E5x5 (GeV)","Events","ELE_LOGY E1 P");
00603 //  h2_scl_EoEtruePfVsEg = bookH2("EoEtruePfVseg","ele supercluster energy / gen energy pflow vs eg",75,-0.1,1.4, 75, -0.1, 1.4,"E/E_{gen} (e/g)","E/E_{gen} (pflow)") ;
00604 
00605   // matched electron, gsf tracks
00606 
00607   setBookPrefix("h_ele") ;
00608 
00609   h1_ele_ambiguousTracks = bookH1withSumw2("ambiguousTracks","ele # ambiguous tracks",  5,0.,5.,"N_{ambiguous tracks}","Events","ELE_LOGY E1 P");
00610   h2_ele_ambiguousTracksVsEta = bookH2("ambiguousTracksVsEta","ele # ambiguous tracks  vs eta",eta2D_nbin,eta_min,eta_max,5,0.,5.);
00611   h2_ele_ambiguousTracksVsPhi = bookH2("ambiguousTracksVsPhi","ele # ambiguous tracks  vs phi",phi2D_nbin,phi_min,phi_max,5,0.,5.);
00612   h2_ele_ambiguousTracksVsPt = bookH2("ambiguousTracksVsPt","ele # ambiguous tracks vs pt",pt2D_nbin,0.,pt_max,5,0.,5.);
00613   h1_ele_foundHits = bookH1withSumw2("foundHits","ele track # found hits",fhits_nbin,0.,fhits_max,"N_{hits}");
00614   h2_ele_foundHitsVsEta = bookH2("foundHitsVsEta","ele track # found hits vs eta",eta2D_nbin,eta_min,eta_max,fhits_nbin,0.,fhits_max);
00615   h2_ele_foundHitsVsPhi = bookH2("foundHitsVsPhi","ele track # found hits vs phi",phi2D_nbin,phi_min,phi_max,fhits_nbin,0.,fhits_max);
00616   h2_ele_foundHitsVsPt = bookH2("foundHitsVsPt","ele track # found hits vs pt",pt2D_nbin,0.,pt_max,fhits_nbin,0.,fhits_max);
00617   h1_ele_lostHits = bookH1withSumw2("lostHits","ele track # lost hits",       5,0.,5.,"N_{lost hits}");
00618   h2_ele_lostHitsVsEta = bookH2("lostHitsVsEta","ele track # lost hits vs eta",eta2D_nbin,eta_min,eta_max,lhits_nbin,0.,lhits_max);
00619   h2_ele_lostHitsVsPhi = bookH2("lostHitsVsPhi","ele track # lost hits vs eta",phi2D_nbin,phi_min,phi_max,lhits_nbin,0.,lhits_max);
00620   h2_ele_lostHitsVsPt = bookH2("lostHitsVsPt","ele track # lost hits vs eta",pt2D_nbin,0.,pt_max,lhits_nbin,0.,lhits_max);
00621   h1_ele_chi2 = bookH1withSumw2("chi2","ele track #chi^{2}",100,0.,15.,"#Chi^{2}","Events","ELE_LOGY E1 P");
00622   h2_ele_chi2VsEta = bookH2("chi2VsEta","ele track #chi^{2} vs eta",eta2D_nbin,eta_min,eta_max,50,0.,15.);
00623   h2_ele_chi2VsPhi = bookH2("chi2VsPhi","ele track #chi^{2} vs phi",phi2D_nbin,phi_min,phi_max,50,0.,15.);
00624   h2_ele_chi2VsPt = bookH2("chi2VsPt","ele track #chi^{2} vs pt",pt2D_nbin,0.,pt_max,50,0.,15.);
00625   h1_ele_PinMnPout = bookH1withSumw2("PinMnPout","ele track inner p - outer p, mean of GSF components"   ,p_nbin,0.,200.,"P_{vertex} - P_{out} (GeV/c)");
00626   h1_ele_PinMnPout_mode = bookH1withSumw2("PinMnPout_mode","ele track inner p - outer p, mode of GSF components"   ,p_nbin,0.,100.,"P_{vertex} - P_{out}, mode of GSF components (GeV/c)");
00627   h2_ele_PinMnPoutVsEta_mode = bookH2("PinMnPoutVsEta_mode","ele track inner p - outer p vs eta, mode of GSF components" ,eta2D_nbin, eta_min,eta_max,p2D_nbin,0.,100.);
00628   h2_ele_PinMnPoutVsPhi_mode = bookH2("PinMnPoutVsPhi_mode","ele track inner p - outer p vs phi, mode of GSF components" ,phi2D_nbin, phi_min,phi_max,p2D_nbin,0.,100.);
00629   h2_ele_PinMnPoutVsPt_mode = bookH2("PinMnPoutVsPt_mode","ele track inner p - outer p vs pt, mode of GSF components" ,pt2D_nbin, 0.,pt_max,p2D_nbin,0.,100.);
00630   h2_ele_PinMnPoutVsE_mode = bookH2("PinMnPoutVsE_mode","ele track inner p - outer p vs E, mode of GSF components" ,p2D_nbin, 0.,200.,p2D_nbin,0.,100.);
00631   h2_ele_PinMnPoutVsChi2_mode = bookH2("PinMnPoutVsChi2_mode","ele track inner p - outer p vs track chi2, mode of GSF components" ,50, 0.,20.,p2D_nbin,0.,100.);
00632   h1_ele_outerP = bookH1withSumw2("outerP","ele track outer p, mean of GSF components",p_nbin,0.,p_max,"P_{out} (GeV/c)");
00633   h1_ele_outerP_mode = bookH1withSumw2("outerP_mode","ele track outer p, mode of GSF components",p_nbin,0.,p_max,"P_{out} (GeV/c)");
00634   h2_ele_outerPVsEta_mode = bookH2("outerPVsEta_mode","ele track outer p vs eta mode",eta2D_nbin,eta_min,eta_max,50,0.,p_max);
00635   h1_ele_outerPt = bookH1withSumw2("outerPt","ele track outer p_{T}, mean of GSF components",pt_nbin,0.,pt_max,"P_{T out} (GeV/c)");
00636   h1_ele_outerPt_mode = bookH1withSumw2("outerPt_mode","ele track outer p_{T}, mode of GSF components",pt_nbin,0.,pt_max,"P_{T out} (GeV/c)");
00637   h2_ele_outerPtVsEta_mode = bookH2("outerPtVsEta_mode","ele track outer p_{T} vs eta, mode of GSF components",eta2D_nbin,eta_min,eta_max,pt2D_nbin,0.,pt_max);
00638   h2_ele_outerPtVsPhi_mode = bookH2("outerPtVsPhi_mode","ele track outer p_{T} vs phi, mode of GSF components",phi2D_nbin,phi_min,phi_max,pt2D_nbin,0.,pt_max);
00639   h2_ele_outerPtVsPt_mode = bookH2("outerPtVsPt_mode","ele track outer p_{T} vs pt, mode of GSF components",pt2D_nbin,0.,100.,pt2D_nbin,0.,pt_max);
00640 
00641   // matched electrons, matching
00642   h1_ele_EoP = bookH1withSumw2("EoP","ele E/P_{vertex}",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00643   h1_ele_EoP_barrel = bookH1withSumw2("EoP_barrel","ele E/P_{vertex} barrel",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00644   h1_ele_EoP_endcaps = bookH1withSumw2("EoP_endcaps","ele E/P_{vertex} endcaps",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00645   h1_ele_EoP_eg = bookH1withSumw2("EoP_eg","ele E/P_{vertex}, ecal driven",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00646   h1_ele_EoP_eg_barrel = bookH1withSumw2("EoP_eg_barrel","ele E/P_{vertex}, ecal driven barrel",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00647   h1_ele_EoP_eg_endcaps = bookH1withSumw2("EoP_eg_endcaps","ele E/P_{vertex}, ecal driven endcaps",eop_nbin,0.,eop_max,"E/P_{vertex}","Events","ELE_LOGY E1 P");
00648   h2_ele_EoPVsEta = bookH2("EoPVsEta","ele E/P_{vertex} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
00649   h2_ele_EoPVsPhi = bookH2("EoPVsPhi","ele E/P_{vertex} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
00650   h2_ele_EoPVsE = bookH2("EoPVsE","ele E/P_{vertex} vs E",  50,0.,p_max ,50,0.,5.);
00651   h1_ele_EseedOP = bookH1withSumw2("EseedOP","ele E_{seed}/P_{vertex}",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00652   h1_ele_EseedOP_barrel = bookH1withSumw2("EseedOP_barrel","ele E_{seed}/P_{vertex} barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00653   h1_ele_EseedOP_endcaps = bookH1withSumw2("EseedOP_endcaps","ele E_{seed}/P_{vertex} endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00654   h1_ele_EseedOP_eg = bookH1withSumw2("EseedOP_eg","ele E_{seed}/P_{vertex}, ecal driven",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00655   h1_ele_EseedOP_eg_barrel = bookH1withSumw2("EseedOP_eg_barrel","ele E_{seed}/P_{vertex}, ecal driven barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00656   h1_ele_EseedOP_eg_endcaps = bookH1withSumw2("EseedOP_eg_endcaps","ele E_{seed}/P_{vertex}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{vertex}","Events","ELE_LOGY E1 P");
00657   h2_ele_EseedOPVsEta = bookH2("EseedOPVsEta","ele E_{seed}/P_{vertex} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
00658   h2_ele_EseedOPVsPhi = bookH2("EseedOPVsPhi","ele E_{seed}/P_{vertex} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
00659   h2_ele_EseedOPVsE = bookH2("EseedOPVsE","ele E_{seed}/P_{vertex} vs E",  50,0.,p_max ,50,0.,5.);
00660   h1_ele_EoPout = bookH1withSumw2("EoPout","ele E_{seed}/P_{out}",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00661   h1_ele_EoPout_barrel = bookH1withSumw2("EoPout_barrel","ele E_{seed}/P_{out} barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00662   h1_ele_EoPout_endcaps = bookH1withSumw2("EoPout_endcaps","ele E_{seed}/P_{out} endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00663   h1_ele_EoPout_eg = bookH1withSumw2("EoPout_eg","ele E_{seed}/P_{out}, ecal driven",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00664   h1_ele_EoPout_eg_barrel = bookH1withSumw2("EoPout_eg_barrel","ele E_{seed}/P_{out}, ecal driven, barrel",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00665   h1_ele_EoPout_eg_endcaps = bookH1withSumw2("EoPout_eg_endcaps","ele E_{seed}/P_{out}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{seed}/P_{out}","Events","ELE_LOGY E1 P");
00666   h2_ele_EoPoutVsEta = bookH2("EoPoutVsEta","ele E_{seed}/P_{out} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
00667   h2_ele_EoPoutVsPhi = bookH2("EoPoutVsPhi","ele E_{seed}/P_{out} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
00668   h2_ele_EoPoutVsE = bookH2("EoPoutVsE","ele E_{seed}/P_{out} vs E",p2D_nbin,0.,p_max,eop2D_nbin,0.,eopmaxsht);
00669   h1_ele_EeleOPout = bookH1withSumw2("EeleOPout","ele E_{ele}/P_{out}",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00670   h1_ele_EeleOPout_barrel = bookH1withSumw2("EeleOPout_barrel","ele E_{ele}/P_{out} barrel",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00671   h1_ele_EeleOPout_endcaps = bookH1withSumw2("EeleOPout_endcaps","ele E_{ele}/P_{out} endcaps",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00672   h1_ele_EeleOPout_eg = bookH1withSumw2("EeleOPout_eg","ele E_{ele}/P_{out}, ecal driven",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00673   h1_ele_EeleOPout_eg_barrel = bookH1withSumw2("EeleOPout_eg_barrel","ele E_{ele}/P_{out}, ecal driven, barrel",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00674   h1_ele_EeleOPout_eg_endcaps = bookH1withSumw2("EeleOPout_eg_endcaps","ele E_{ele}/P_{out}, ecal driven, endcaps",eop_nbin,0.,eop_max,"E_{ele}/P_{out}","Events","ELE_LOGY E1 P");
00675   h2_ele_EeleOPoutVsEta = bookH2("EeleOPoutVsEta","ele E_{ele}/P_{out} vs eta",eta2D_nbin,eta_min,eta_max,eop2D_nbin,0.,eopmaxsht);
00676   h2_ele_EeleOPoutVsPhi = bookH2("EeleOPoutVsPhi","ele E_{ele}/P_{out} vs phi",phi2D_nbin,phi_min,phi_max,eop2D_nbin,0.,eopmaxsht);
00677   h2_ele_EeleOPoutVsE = bookH2("EeleOPoutVsE","ele E_{ele}/P_{out} vs E",p2D_nbin,0.,p_max,eop2D_nbin,0.,eopmaxsht);
00678   h1_ele_dEtaSc_propVtx = bookH1withSumw2("dEtaSc_propVtx","ele #eta_{sc} - #eta_{tr}, prop from vertex",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00679   h1_ele_dEtaSc_propVtx_barrel = bookH1withSumw2("dEtaSc_propVtx_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00680   h1_ele_dEtaSc_propVtx_endcaps = bookH1withSumw2("dEtaSc_propVtx_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00681   h1_ele_dEtaSc_propVtx_eg = bookH1withSumw2("dEtaSc_propVtx_eg","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00682   h1_ele_dEtaSc_propVtx_eg_barrel = bookH1withSumw2("dEtaSc_propVtx_eg_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00683   h1_ele_dEtaSc_propVtx_eg_endcaps = bookH1withSumw2("dEtaSc_propVtx_eg_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{sc} - #eta_{tr}","Events","ELE_LOGY E1 P");
00684   h2_ele_dEtaScVsEta_propVtx = bookH2("dEtaScVsEta_propVtx","ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00685   h2_ele_dEtaScVsPhi_propVtx = bookH2("dEtaScVsPhi_propVtx","ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00686   h2_ele_dEtaScVsPt_propVtx = bookH2("dEtaScVsPt_propVtx","ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00687   h1_ele_dPhiSc_propVtx = bookH1withSumw2("dPhiSc_propVtx","ele #phi_{sc} - #phi_{tr}, prop from vertex",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00688   h1_ele_dPhiSc_propVtx_barrel = bookH1withSumw2("dPhiSc_propVtx_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00689   h1_ele_dPhiSc_propVtx_endcaps = bookH1withSumw2("dPhiSc_propVtx_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00690   h1_ele_dPhiSc_propVtx_eg = bookH1withSumw2("dPhiSc_propVtx_eg","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00691   h1_ele_dPhiSc_propVtx_eg_barrel = bookH1withSumw2("dPhiSc_propVtx_eg_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00692   h1_ele_dPhiSc_propVtx_eg_endcaps = bookH1withSumw2("dPhiSc_propVtx_eg_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{sc} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00693   h2_ele_dPhiScVsEta_propVtx = bookH2("dPhiScVsEta_propVtx","ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00694   h2_ele_dPhiScVsPhi_propVtx = bookH2("dPhiScVsPhi_propVtx","ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00695   h2_ele_dPhiScVsPt_propVtx = bookH2("dPhiScVsPt_propVtx","ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00696   h1_ele_dEtaCl_propOut = bookH1withSumw2("dEtaCl_propOut","ele #eta_{cl} - #eta_{tr}, prop from outermost",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00697   h1_ele_dEtaCl_propOut_barrel = bookH1withSumw2("dEtaCl_propOut_barrel","ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00698   h1_ele_dEtaCl_propOut_endcaps = bookH1withSumw2("dEtaCl_propOut_endcaps","ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00699   h1_ele_dEtaCl_propOut_eg = bookH1withSumw2("dEtaCl_propOut_eg","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00700   h1_ele_dEtaCl_propOut_eg_barrel = bookH1withSumw2("dEtaCl_propOut_eg_barrel","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00701   h1_ele_dEtaCl_propOut_eg_endcaps = bookH1withSumw2("dEtaCl_propOut_eg_endcaps","ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{seedcl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00702   h2_ele_dEtaClVsEta_propOut = bookH2("dEtaClVsEta_propOut","ele #eta_{cl} - #eta_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00703   h2_ele_dEtaClVsPhi_propOut = bookH2("dEtaClVsPhi_propOut","ele #eta_{cl} - #eta_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00704   h2_ele_dEtaClVsPt_propOut = bookH2("dEtaScVsPt_propOut","ele #eta_{cl} - #eta_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00705   h1_ele_dPhiCl_propOut = bookH1withSumw2("dPhiCl_propOut","ele #phi_{cl} - #phi_{tr}, prop from outermost",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00706   h1_ele_dPhiCl_propOut_barrel = bookH1withSumw2("dPhiCl_propOut_barrel","ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00707   h1_ele_dPhiCl_propOut_endcaps = bookH1withSumw2("dPhiCl_propOut_endcaps","ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00708   h1_ele_dPhiCl_propOut_eg = bookH1withSumw2("dPhiCl_propOut_eg","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00709   h1_ele_dPhiCl_propOut_eg_barrel = bookH1withSumw2("dPhiCl_propOut_eg_barrel","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00710   h1_ele_dPhiCl_propOut_eg_endcaps = bookH1withSumw2("dPhiCl_propOut_eg_endcaps","ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{seedcl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00711   h2_ele_dPhiClVsEta_propOut = bookH2("dPhiClVsEta_propOut","ele #phi_{cl} - #phi_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00712   h2_ele_dPhiClVsPhi_propOut = bookH2("dPhiClVsPhi_propOut","ele #phi_{cl} - #phi_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00713   h2_ele_dPhiClVsPt_propOut = bookH2("dPhiSClsPt_propOut","ele #phi_{cl} - #phi_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00714   h1_ele_dEtaEleCl_propOut = bookH1withSumw2("dEtaEleCl_propOut","ele #eta_{EleCl} - #eta_{tr}, prop from outermost",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00715   h1_ele_dEtaEleCl_propOut_barrel = bookH1withSumw2("dEtaEleCl_propOut_barrel","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00716   h1_ele_dEtaEleCl_propOut_endcaps = bookH1withSumw2("dEtaEleCl_propOut_endcaps","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00717   h1_ele_dEtaEleCl_propOut_eg = bookH1withSumw2("dEtaEleCl_propOut_eg","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00718   h1_ele_dEtaEleCl_propOut_eg_barrel = bookH1withSumw2("dEtaEleCl_propOut_eg_barrel","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00719   h1_ele_dEtaEleCl_propOut_eg_endcaps = bookH1withSumw2("dEtaEleCl_propOut_eg_endcaps","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps",detamatch_nbin,detamatch_min,detamatch_max,"#eta_{elecl} - #eta_{tr}","Events","ELE_LOGY E1 P");
00720   h2_ele_dEtaEleClVsEta_propOut = bookH2("dEtaEleClVsEta_propOut","ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00721   h2_ele_dEtaEleClVsPhi_propOut = bookH2("dEtaEleClVsPhi_propOut","ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00722   h2_ele_dEtaEleClVsPt_propOut = bookH2("dEtaScVsPt_propOut","ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,detamatch2D_nbin,detamatch_min,detamatch_max);
00723   h1_ele_dPhiEleCl_propOut = bookH1withSumw2("dPhiEleCl_propOut","ele #phi_{EleCl} - #phi_{tr}, prop from outermost",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00724   h1_ele_dPhiEleCl_propOut_barrel = bookH1withSumw2("dPhiEleCl_propOut_barrel","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00725   h1_ele_dPhiEleCl_propOut_endcaps = bookH1withSumw2("dPhiEleCl_propOut_endcaps","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00726   h1_ele_dPhiEleCl_propOut_eg = bookH1withSumw2("dPhiEleCl_propOut_eg","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00727   h1_ele_dPhiEleCl_propOut_eg_barrel = bookH1withSumw2("dPhiEleCl_propOut_eg_barrel","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00728   h1_ele_dPhiEleCl_propOut_eg_endcaps = bookH1withSumw2("dPhiEleCl_propOut_eg_endcaps","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps",dphimatch_nbin,dphimatch_min,dphimatch_max,"#phi_{elecl} - #phi_{tr} (rad)","Events","ELE_LOGY E1 P");
00729   h2_ele_dPhiEleClVsEta_propOut = bookH2("dPhiEleClVsEta_propOut","ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",eta2D_nbin,eta_min,eta_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00730   h2_ele_dPhiEleClVsPhi_propOut = bookH2("dPhiEleClVsPhi_propOut","ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",phi2D_nbin,phi_min,phi_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00731   h2_ele_dPhiEleClVsPt_propOut = bookH2("dPhiSEleClsPt_propOut","ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",pt2D_nbin,0.,pt_max,dphimatch2D_nbin,dphimatch_min,dphimatch_max);
00732   h1_ele_HoE = bookH1withSumw2("HoE","ele hadronic energy / em energy",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00733   h1_ele_HoE_barrel = bookH1withSumw2("HoE_barrel","ele hadronic energy / em energy, barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00734   h1_ele_HoE_endcaps = bookH1withSumw2("HoE_endcaps","ele hadronic energy / em energy, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00735   h1_ele_HoE_bc = bookH1withSumw2("HoE_bc","ele hadronic energy / em energy behind cluster",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00736   h1_ele_HoE_bc_barrel = bookH1withSumw2("HoE_bc_barrel","ele hadronic energy / em energy, behind cluster barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00737   h1_ele_HoE_bc_endcaps = bookH1withSumw2("HoE_bc_endcaps","ele hadronic energy / em energy, behind cluster, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00738   h1_ele_HoE_eg = bookH1withSumw2("HoE_eg","ele hadronic energy / em energy, ecal driven",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00739   h1_ele_HoE_eg_barrel = bookH1withSumw2("HoE_eg_barrel","ele hadronic energy / em energy, ecal driven, barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00740   h1_ele_HoE_eg_endcaps = bookH1withSumw2("HoE_eg_endcaps","ele hadronic energy / em energy, ecal driven, endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00741   h1_ele_hcalDepth1OverEcalBc = bookH1withSumw2("hcalDepth1OverEcalBc","hcalDepth1OverEcalBc",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00742   h1_ele_hcalDepth1OverEcalBc_barrel = bookH1withSumw2("hcalDepth1OverEcalBc_barrel","hcalDepth1OverEcalBc_barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00743   h1_ele_hcalDepth1OverEcalBc_endcaps = bookH1withSumw2("hcalDepth1OverEcalBc_endcaps","hcalDepth1OverEcalBc_endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00744   h1_ele_hcalDepth2OverEcalBc = bookH1withSumw2("hcalDepth2OverEcalBc","hcalDepth2OverEcalBc",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00745   h1_ele_hcalDepth2OverEcalBc_barrel = bookH1withSumw2("hcalDepth2OverEcalBc_barrel","hcalDepth2OverEcalBc_barrel",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00746   h1_ele_hcalDepth2OverEcalBc_endcaps = bookH1withSumw2("hcalDepth2OverEcalBc_endcaps","hcalDepth2OverEcalBc_endcaps",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P");
00747   h1_ele_HoE_fiducial = bookH1withSumw2("HoE_fiducial","ele hadronic energy / em energy, fiducial region",hoe_nbin, hoe_min, hoe_max,"H/E","Events","ELE_LOGY E1 P") ;
00748   h2_ele_HoEVsEta = bookH2("HoEVsEta","ele hadronic energy / em energy vs eta",eta_nbin,eta_min,eta_max,hoe_nbin, hoe_min, hoe_max) ;
00749   h2_ele_HoEVsPhi = bookH2("HoEVsPhi","ele hadronic energy / em energy vs phi",phi2D_nbin,phi_min,phi_max,hoe_nbin, hoe_min, hoe_max) ;
00750   h2_ele_HoEVsE = bookH2("HoEVsE","ele hadronic energy / em energy vs E",p_nbin, 0.,300.,hoe_nbin, hoe_min, hoe_max) ;
00751 
00752   // seeds
00753   h1_ele_seed_subdet2_ = bookH1withSumw2("seedSubdet2","ele seed subdet 2nd layer",11,-0.5,10.5,"2nd hit subdet Id") ;
00754   h1_ele_seed_mask_ = bookH1withSumw2("seedMask","ele seed hits mask",13,-0.5,12.5) ;
00755   h1_ele_seed_mask_bpix_ = bookH1withSumw2("seedMask_Bpix","ele seed hits mask when subdet2 is bpix",13,-0.5,12.5) ;
00756   h1_ele_seed_mask_fpix_ = bookH1withSumw2("seedMask_Fpix","ele seed hits mask when subdet2 is bpix",13,-0.5,12.5) ;
00757   h1_ele_seed_mask_tec_ = bookH1withSumw2("seedMask_Tec","ele seed hits mask when subdet2 is bpix",13,-0.5,12.5) ;
00758   h1_ele_seed_dphi2_ = bookH1withSumw2("seedDphi2","ele seed dphi 2nd layer", 50,-0.003,+0.003,"#phi_{hit}-#phi_{pred} (rad)") ;
00759   h2_ele_seed_dphi2VsEta_ = bookH2("seedDphi2_VsEta","ele seed dphi 2nd layer vs eta",eta2D_nbin,eta_min,eta_max,50,-0.003,+0.003) ;
00760   h2_ele_seed_dphi2VsPt_ = bookH2("seedDphi2_VsPt","ele seed dphi 2nd layer vs pt",pt2D_nbin,0.,pt_max,50,-0.003,+0.003) ;
00761   h1_ele_seed_dphi2pos_ = bookH1withSumw2("seedDphi2Pos","ele seed dphi 2nd layer positron", 50,-0.003,+0.003,"#phi_{hit}-#phi_{pred} (rad)") ;
00762   h2_ele_seed_dphi2posVsEta_ = bookH2("seedDphi2Pos_VsEta","ele seed dphi 2nd layer positron vs eta",eta2D_nbin,eta_min,eta_max,50,-0.003,+0.003) ;
00763   h2_ele_seed_dphi2posVsPt_ = bookH2("seedDphi2Pos_VsPt","ele seed dphi 2nd layer positron vs pt",pt2D_nbin,0.,pt_max,50,-0.003,+0.003) ;
00764   h1_ele_seed_drz2_ = bookH1withSumw2("seedDrz2","ele seed dr (dz) 2nd layer", 50,-0.03,+0.03,"r(z)_{hit}-r(z)_{pred} (cm)") ;
00765   h2_ele_seed_drz2VsEta_ = bookH2("seedDrz2_VsEta","ele seed dr/dz 2nd layer vs eta",eta2D_nbin,eta_min,eta_max,50,-0.03,+0.03) ;
00766   h2_ele_seed_drz2VsPt_ = bookH2("seedDrz2_VsPt","ele seed dr/dz 2nd layer vs pt",pt2D_nbin,0.,pt_max,50,-0.03,+0.03) ;
00767   h1_ele_seed_drz2pos_ = bookH1withSumw2("seedDrz2Pos","ele seed dr (dz) 2nd layer positron", 50,-0.03,+0.03,"r(z)_{hit}-r(z)_{pred} (cm)") ;
00768   h2_ele_seed_drz2posVsEta_ = bookH2("seedDrz2Pos_VsEta","ele seed dr/dz 2nd layer positron vs eta",eta2D_nbin,eta_min,eta_max,50,-0.03,+0.03) ;
00769   h2_ele_seed_drz2posVsPt_ = bookH2("seedDrz2Pos_VsPt","ele seed dr/dz 2nd layer positron vs pt",pt2D_nbin,0.,pt_max,50,-0.03,+0.03) ;
00770 
00771   // classes
00772   h1_ele_classes = bookH1withSumw2("classes","ele classes",20,0.0,20.,"class Id");
00773   h1_ele_eta = bookH1withSumw2("eta","ele electron eta",eta_nbin/2,0.0,eta_max);
00774   h1_ele_eta_golden = bookH1withSumw2("eta_golden","ele electron eta golden",eta_nbin/2,0.0,eta_max);
00775   h1_ele_eta_bbrem = bookH1withSumw2("eta_bbrem","ele electron eta bbrem",eta_nbin/2,0.0,eta_max);
00776   //h1_ele_eta_narrow = bookH1withSumw2("eta_narrow","ele electron eta narrow",eta_nbin/2,0.0,eta_max);
00777   h1_ele_eta_shower = bookH1withSumw2("eta_shower","ele electron eta showering",eta_nbin/2,0.0,eta_max);
00778   h2_ele_PinVsPoutGolden_mode = bookH2("PinVsPoutGolden_mode","ele track inner p vs outer p vs eta, golden, mode of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
00779   h2_ele_PinVsPoutShowering_mode = bookH2("PinVsPoutShowering_mode","ele track inner p vs outer p vs eta, showering, mode of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
00780   h2_ele_PinVsPoutGolden_mean = bookH2("PinVsPoutGolden_mean","ele track inner p vs outer p vs eta, golden, mean of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
00781   h2_ele_PinVsPoutShowering_mean = bookH2("PinVsPoutShowering_mean","ele track inner p vs outer p vs eta, showering, mean of GSF components" ,p2D_nbin,0.,p_max,50,0.,p_max);
00782   h2_ele_PtinVsPtoutGolden_mode = bookH2("PtinVsPtoutGolden_mode","ele track inner pt vs outer pt vs eta, golden, mode of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
00783   h2_ele_PtinVsPtoutShowering_mode = bookH2("PtinVsPtoutShowering_mode","ele track inner pt vs outer pt vs eta, showering, mode of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
00784   h2_ele_PtinVsPtoutGolden_mean = bookH2("PtinVsPtoutGolden_mean","ele track inner pt vs outer pt vs eta, golden, mean of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
00785   h2_ele_PtinVsPtoutShowering_mean = bookH2("PtinVsPtoutShowering_mean","ele track inner pt vs outer pt vs eta, showering, mean of GSF components" ,pt2D_nbin,0.,pt_max,50,0.,pt_max);
00786   setBookPrefix("h_scl") ;
00787   h1_scl_EoEmatchingObjectGolden_barrel = bookH1withSumw2("EoEmatchingObject_golden_barrel","ele supercluster energy / gen energy, golden, barrel",popmatching_nbin,popmatching_min,popmatching_max);
00788   h1_scl_EoEmatchingObjectGolden_endcaps = bookH1withSumw2("EoEmatchingObject_golden_endcaps","ele supercluster energy / gen energy, golden, endcaps",popmatching_nbin,popmatching_min,popmatching_max);
00789   h1_scl_EoEmatchingObjectShowering_barrel = bookH1withSumw2("EoEmatchingObject_showering_barrel","ele supercluster energy / gen energy, showering, barrel",popmatching_nbin,popmatching_min,popmatching_max);
00790   h1_scl_EoEmatchingObjectShowering_endcaps = bookH1withSumw2("EoEmatchingObject_showering_endcaps","ele supercluster energy / gen energy, showering, endcaps",popmatching_nbin,popmatching_min,popmatching_max);
00791   setBookPrefix("h_ele") ;
00792 
00793   // isolation
00794   h1_ele_tkSumPt_dr03 = bookH1withSumw2("tkSumPt_dr03","tk isolation sum, dR=0.3",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
00795   h1_ele_tkSumPt_dr03_barrel = bookH1withSumw2("tkSumPt_dr03_barrel","tk isolation sum, dR=0.3, barrel",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
00796   h1_ele_tkSumPt_dr03_endcaps = bookH1withSumw2("tkSumPt_dr03_endcaps","tk isolation sum, dR=0.3, endcaps",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
00797   h1_ele_ecalRecHitSumEt_dr03 = bookH1withSumw2("ecalRecHitSumEt_dr03","ecal isolation sum, dR=0.3",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00798   h1_ele_ecalRecHitSumEt_dr03_barrel = bookH1withSumw2("ecalRecHitSumEt_dr03_barrel","ecal isolation sum, dR=0.3, barrel",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00799   h1_ele_ecalRecHitSumEt_dr03_endcaps = bookH1withSumw2("ecalRecHitSumEt_dr03_endcaps","ecal isolation sum, dR=0.3, endcaps",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00800   h1_ele_hcalTowerSumEt_dr03_depth1 = bookH1withSumw2("hcalTowerSumEt_dr03_depth1","hcal depth1 isolation sum, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00801   h1_ele_hcalTowerSumEt_dr03_depth1_barrel = bookH1withSumw2("hcalTowerSumEt_dr03_depth1_barrel","hcal depth1 isolation sum, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00802   h1_ele_hcalTowerSumEt_dr03_depth1_endcaps = bookH1withSumw2("hcalTowerSumEt_dr03_depth1_endcaps","hcal depth1 isolation sum, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00803   h1_ele_hcalTowerSumEt_dr03_depth2 = bookH1withSumw2("hcalTowerSumEt_dr03_depth2","hcal depth2 isolation sum, dR=0.3",100,0.0,20.,"Hcal2IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00804   h1_ele_tkSumPt_dr04 = bookH1withSumw2("tkSumPt_dr04","tk isolation sum, dR=0.4",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
00805   h1_ele_tkSumPt_dr04_barrel = bookH1withSumw2("tkSumPt_dr04_barrel","tk isolation sum, dR=0.4, barrel",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
00806   h1_ele_tkSumPt_dr04_endcaps = bookH1withSumw2("tkSumPt_dr04_endcaps","tk isolation sum, dR=0.4, endcaps",100,0.0,20.,"TkIsoSum, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
00807   h1_ele_ecalRecHitSumEt_dr04 = bookH1withSumw2("ecalRecHitSumEt_dr04","ecal isolation sum, dR=0.4",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00808   h1_ele_ecalRecHitSumEt_dr04_barrel = bookH1withSumw2("ecalRecHitSumEt_dr04_barrel","ecal isolation sum, dR=0.4, barrel",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00809   h1_ele_ecalRecHitSumEt_dr04_endcaps = bookH1withSumw2("ecalRecHitSumEt_dr04_endcaps","ecal isolation sum, dR=0.4, endcaps",100,0.0,20.,"EcalIsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00810   h1_ele_hcalTowerSumEt_dr04_depth1 = bookH1withSumw2("hcalTowerSumEt_dr04_depth1","hcal depth1 isolation sum, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00811   h1_ele_hcalTowerSumEt_dr04_depth1_barrel = bookH1withSumw2("hcalTowerSumEt_dr04_depth1_barrel","hcal depth1 isolation sum, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00812   h1_ele_hcalTowerSumEt_dr04_depth1_endcaps = bookH1withSumw2("hcalTowerSumEt_dr04_depth1_endcaps","hcal depth1 isolation sum, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00813   h1_ele_hcalTowerSumEt_dr04_depth2 = bookH1withSumw2("hcalTowerSumEt_dr04_depth2","hcal depth2 isolation sum, dR=0.4",100,0.0,20.,"Hcal2IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00814 
00815   h1_ele_dIso_tkSumPt_dr03 = bookH1withSumw2("dIso_tkSumPt_dr03","diff with iso from deposits, tk isolation sum, dR=0.3",21,-10.0,10.,"TkIsoSum diff, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
00816   h1_ele_dIso_tkSumPt_dr04 = bookH1withSumw2("dIso_tkSumPt_dr04","diff with iso from deposits, tk isolation sum, dR=0.4",21,-10.0,10.,"TkIsoSum diff, cone 0.4 (GeV/c)","Events","ELE_LOGY E1 P");
00817   h1_ele_dIso_ecalFullRecHitSumEt_dr03 = bookH1withSumw2("dIso_ecalFullRecHitSumEt_dr03","diff with iso from deposits, ecal isolation sum, dR=0.3",21,-10.0,10.,"EcalIsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00818   h1_ele_dIso_ecalFullRecHitSumEt_dr04 = bookH1withSumw2("dIso_ecalFullRecHitSumEt_dr04","diff with iso from deposits, ecal isolation sum, dR=0.4",21,-10.0,10.,"EcalIsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00819   h1_ele_dIso_ecalReducedRecHitSumEt_dr03 = bookH1withSumw2("dIso_ecalReducedRecHitSumEt_dr03","diff with iso from deposits, ecal isolation sum, dR=0.3",21,-10.0,10.,"EcalIsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00820   h1_ele_dIso_ecalReducedRecHitSumEt_dr04 = bookH1withSumw2("dIso_ecalReducedRecHitSumEt_dr04","diff with iso from deposits, ecal isolation sum, dR=0.4",21,-10.0,10.,"EcalIsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00821   h1_ele_dIso_hcalTowerSumEt_dr03 = bookH1withSumw2("dIso_hcalTowerSumEt_dr03","diff with iso from deposits, hcal depth1 isolation sum, dR=0.3",21,-10.0,10.,"Hcal1IsoSum diff, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00822   h1_ele_dIso_hcalTowerSumEt_dr04 = bookH1withSumw2("dIso_hcalTowerSumEt_dr04","diff with iso from deposits, hcal depth1 isolation sum, dR=0.4",21,-10.0,10.,"Hcal1IsoSum diff, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00823 
00824   // newHCAL
00825   // isolation new hcal
00826   h1_ele_hcalTowerSumEtBc_dr03_depth1 = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1","hcal depth1 isolation sum behind cluster, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00827   h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1_barrel","hcal depth1 isolation sum behind cluster, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00828   h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth1_endcaps","hcal depth1 isolation sum behind cluster, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00829 
00830   h1_ele_hcalTowerSumEtBc_dr04_depth1 = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1","hcal depth1 isolation sum behind cluster, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00831   h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1_barrel","hcal depth1 isolation sum behind cluster, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00832   h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth1_endcaps","hcal depth1 isolation sum behind cluster, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00833 
00834   h1_ele_hcalTowerSumEtBc_dr03_depth2 = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2","hcal depth2 isolation sum behind cluster, dR=0.3",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00835   h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2_barrel","hcal depth2 isolation sum behind cluster, dR=0.3, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00836   h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr03_depth2_endcaps","hcal depth2 isolation sum behind cluster, dR=0.3, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
00837 
00838   h1_ele_hcalTowerSumEtBc_dr04_depth2 = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2","hcal depth2 isolation sum behind cluster, dR=0.4",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00839   h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2_barrel","hcal depth2 isolation sum behind cluster, dR=0.4, barrel",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00840   h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps = bookH1withSumw2("hcalTowerSumEtBc_dr04_depth2_endcaps","hcal depth2 isolation sum behind cluster, dR=0.4, endcaps",100,0.0,20.,"Hcal1IsoSum, cone 0.4 (GeV)","Events","ELE_LOGY E1 P");
00841 
00842   // fbrem
00843   h1_ele_fbrem = bookH1withSumw2("fbrem","ele brem fraction, mode of GSF components",100,0.,1.,"P_{in} - P_{out} / P_{in}");
00844   h1_ele_fbrem_barrel = bookH1withSumw2("fbrem_barrel","ele brem fraction for barrel, mode of GSF components", 100, 0.,1.,"P_{in} - P_{out} / P_{in}");
00845   h1_ele_fbrem_endcaps = bookH1withSumw2("fbrem_endcaps", "ele brem franction for endcaps, mode of GSF components", 100, 0.,1.,"P_{in} - P_{out} / P_{in}");
00846   p1_ele_fbremVsEta_mode  = bookP1("fbremvsEtamode","mean ele brem fraction vs eta, mode of GSF components",eta2D_nbin,eta_min,eta_max,0.,1.,"#eta","<P_{in} - P_{out} / P_{in}>");
00847   p1_ele_fbremVsEta_mean  = bookP1("fbremvsEtamean","mean ele brem fraction vs eta, mean of GSF components",eta2D_nbin,eta_min,eta_max,0.,1.,"#eta","<P_{in} - P_{out} / P_{in}>");
00848 
00849   // e/g et pflow electrons
00850   h1_ele_mva = bookH1withSumw2("mva","ele identification mva",100,-1.,1.);
00851   h1_ele_mva_barrel = bookH1withSumw2("mva_barrel", "ele identification mva barrel",100,-1.,1.);
00852   h1_ele_mva_endcaps = bookH1withSumw2("mva_endcaps", "ele identification mva endcaps",100,-1.,1.);
00853   h1_ele_provenance = bookH1withSumw2("provenance","ele provenance",5,-2.,3.);
00854   h1_ele_provenance_barrel = bookH1withSumw2("provenance_barrel","ele provenance barrel",5,-2.,3.);
00855   h1_ele_provenance_endcaps = bookH1withSumw2("provenance_endcaps","ele provenance endcaps",5,-2.,3.);
00856 
00857   // pflow isolation variables
00858   h1_ele_chargedHadronIso = bookH1withSumw2("chargedHadronIso","chargedHadronIso",100,0.0,20.,"chargedHadronIso","Events","ELE_LOGY E1 P");
00859   h1_ele_chargedHadronIso_barrel = bookH1withSumw2("chargedHadronIso_barrel","chargedHadronIso for barrel",100,0.0,20.,"chargedHadronIso_barrel","Events","ELE_LOGY E1 P");
00860   h1_ele_chargedHadronIso_endcaps = bookH1withSumw2("chargedHadronIso_endcaps","chargedHadronIso for endcaps",100,0.0,20.,"chargedHadronIso_endcaps","Events","ELE_LOGY E1 P");
00861   h1_ele_neutralHadronIso = bookH1withSumw2("neutralHadronIso","neutralHadronIso",21,0.0,20.,"neutralHadronIso","Events", "ELE_LOGY E1 P");
00862   h1_ele_neutralHadronIso_barrel = bookH1withSumw2("neutralHadronIso_barrel","neutralHadronIso for barrel",21,0.0,20.,"neutralHadronIso_barrel","Events","ELE_LOGY E1 P");
00863   h1_ele_neutralHadronIso_endcaps = bookH1withSumw2("neutralHadronIso_endcaps","neutralHadronIso for endcaps",21,0.0,20.,"neutralHadronIso_endcaps","Events","ELE_LOGY E1 P");
00864   h1_ele_photonIso = bookH1withSumw2("photonIso","photonIso",100,0.0,20.,"photonIso","Events","ELE_LOGY E1 P");
00865   h1_ele_photonIso_barrel = bookH1withSumw2("photonIso_barrel","photonIso for barrel",100,0.0,20.,"photonIso_barrel","Events","ELE_LOGY E1 P");
00866   h1_ele_photonIso_endcaps = bookH1withSumw2("photonIso_endcaps","photonIso for endcaps",100,0.0,20.,"photonIso_endcaps","Events","ELE_LOGY E1 P");
00867 
00868   // conversion rejection information
00869   h1_ele_convFlags = bookH1withSumw2("convFlags","conversion rejection flag",5,-2.5,2.5);
00870   h1_ele_convFlags_all = bookH1withSumw2("convFlags_all","conversion rejection flag, all electrons",5,-2.5,2.5);
00871   h1_ele_convDist = bookH1withSumw2("convDist","distance to the conversion partner",100,-15.,15.);
00872   h1_ele_convDist_all = bookH1withSumw2("convDist_all","distance to the conversion partner, all electrons",100,-15.,15.);
00873   h1_ele_convDcot = bookH1withSumw2("convDcot","difference of cot(angle) with the conversion partner",100,-CLHEP::pi/2.,CLHEP::pi/2.);
00874   h1_ele_convDcot_all = bookH1withSumw2("convDcot_all","difference of cot(angle) with the conversion partner, all electrons",100,-CLHEP::pi/2.,CLHEP::pi/2.);
00875   h1_ele_convRadius = bookH1withSumw2("convRadius","signed conversion radius",100,0.,130.);
00876   h1_ele_convRadius_all = bookH1withSumw2("convRadius_all","signed conversion radius, all electrons",100,0.,130.);
00877 
00878  }
00879 
00880 ElectronMcFakeValidator::~ElectronMcFakeValidator()
00881  {}
00882 
00883 
00884 //=========================================================================
00885 // Main methods
00886 //=========================================================================
00887 
00888 void ElectronMcFakeValidator::analyze( const edm::Event & iEvent, const edm::EventSetup & iSetup )
00889  {
00890   // get reco electrons
00891   edm::Handle<reco::GsfElectronCollection> gsfElectrons;
00892   iEvent.getByLabel(electronCollection_,gsfElectrons);
00893   edm::Handle<GsfElectronCoreCollection> gsfElectronCores ;
00894   iEvent.getByLabel(electronCoreCollection_,gsfElectronCores) ;
00895   edm::Handle<GsfTrackCollection> gsfElectronTracks ;
00896   iEvent.getByLabel(electronTrackCollection_,gsfElectronTracks) ;
00897   edm::Handle<ElectronSeedCollection> gsfElectronSeeds ;
00898   iEvent.getByLabel(electronSeedCollection_,gsfElectronSeeds) ;
00899 
00900   edm::Handle<edm::ValueMap<double> > isoFromDepsTk03Handle          ;   iEvent.getByLabel( isoFromDepsTk03Tag_         , isoFromDepsTk03Handle          ) ;
00901   edm::Handle<edm::ValueMap<double> > isoFromDepsTk04Handle          ;   iEvent.getByLabel( isoFromDepsTk04Tag_         , isoFromDepsTk04Handle          ) ;
00902   edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull03Handle    ;   iEvent.getByLabel( isoFromDepsEcalFull03Tag_   , isoFromDepsEcalFull03Handle    ) ;
00903   edm::Handle<edm::ValueMap<double> > isoFromDepsEcalFull04Handle    ;   iEvent.getByLabel( isoFromDepsEcalFull04Tag_   , isoFromDepsEcalFull04Handle    ) ;
00904   edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced03Handle ;   iEvent.getByLabel( isoFromDepsEcalReduced03Tag_, isoFromDepsEcalReduced03Handle ) ;
00905   edm::Handle<edm::ValueMap<double> > isoFromDepsEcalReduced04Handle ;   iEvent.getByLabel( isoFromDepsEcalReduced04Tag_, isoFromDepsEcalReduced04Handle ) ;
00906   edm::Handle<edm::ValueMap<double> > isoFromDepsHcal03Handle        ;   iEvent.getByLabel( isoFromDepsHcal03Tag_       , isoFromDepsHcal03Handle        ) ;
00907   edm::Handle<edm::ValueMap<double> > isoFromDepsHcal04Handle        ;   iEvent.getByLabel( isoFromDepsHcal04Tag_       , isoFromDepsHcal04Handle        ) ;
00908 
00909   // get gen jets
00910   edm::Handle<reco::GenJetCollection> genJets ;
00911   iEvent.getByLabel(matchingObjectCollection_,genJets);
00912 
00913   // get the beamspot from the Event:
00914   edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
00915   iEvent.getByLabel(beamSpotTag_,recoBeamSpotHandle);
00916   const BeamSpot bs = *recoBeamSpotHandle;
00917 
00918   edm::LogInfo("ElectronMcFakeValidator::analyze")
00919     <<"Treating event "<<iEvent.id()
00920     <<" with "<<gsfElectrons.product()->size()<<" electrons" ;
00921   h1_recEleNum_->Fill((*gsfElectrons).size());
00922   h1_recCoreNum_->Fill((*gsfElectronCores).size());
00923   h1_recTrackNum_->Fill((*gsfElectronTracks).size());
00924   h1_recSeedNum_->Fill((*gsfElectronSeeds).size());
00925 
00926   // all rec electrons
00927   reco::GsfElectronCollection::const_iterator gsfIter ;
00928   for
00929    ( gsfIter=gsfElectrons->begin() ;
00930      gsfIter!=gsfElectrons->end() ;
00931      gsfIter++ )
00932    {
00933     // preselect electrons
00934     if (gsfIter->pt()>maxPt_ || std::abs(gsfIter->eta())>maxAbsEta_)
00935      { continue ; }
00936 
00937     h1_ele_EoverP_all->Fill( gsfIter->eSuperClusterOverP() );
00938     h1_ele_EseedOP_all->Fill( gsfIter->eSeedClusterOverP() );
00939     h1_ele_EoPout_all->Fill( gsfIter->eSeedClusterOverPout() );
00940     h1_ele_EeleOPout_all->Fill( gsfIter->eEleClusterOverPout() );
00941     h1_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
00942     h1_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
00943     h1_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo());
00944     h1_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo());
00945     h1_ele_HoE_all->Fill( gsfIter->hadronicOverEm() );
00946     h1_ele_HoE_bc_all->Fill(gsfIter->hcalOverEcalBc());
00947     double d
00948      = gsfIter->vertex().x()*gsfIter->vertex().x()
00949      + gsfIter->vertex().y()*gsfIter->vertex().y() ;
00950     h1_ele_TIP_all->Fill( sqrt(d) );
00951     h1_ele_vertexEta_all->Fill( gsfIter->eta() );
00952     h1_ele_vertexPt_all->Fill( gsfIter->pt() );
00953     float enrj1=gsfIter->ecalEnergy();
00954 
00955     // mee
00956     reco::GsfElectronCollection::const_iterator gsfIter2 ;
00957     for
00958      ( gsfIter2=gsfIter+1 ;
00959        gsfIter2!=gsfElectrons->end() ;
00960        gsfIter2++ )
00961      {
00962       math::XYZTLorentzVector p12 = (*gsfIter).p4()+(*gsfIter2).p4();
00963       float mee2 = p12.Dot(p12) ;
00964       h1_ele_mee_all->Fill(sqrt(mee2)) ;
00965       float enrj2=gsfIter2->ecalEnergy();
00966       h2_ele_E2mnE1vsMee_all->Fill(sqrt(mee2),enrj2-enrj1);
00967       if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed())
00968        { h2_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2),enrj2-enrj1) ; }
00969       if (gsfIter->charge()*gsfIter2->charge()<0.)
00970        { h1_ele_mee_os->Fill(sqrt(mee2)) ; }
00971      }
00972 
00973     // conversion rejection
00974     int flags = gsfIter->convFlags() ;
00975     if (flags==-9999) { flags=-1 ; }
00976     h1_ele_convFlags_all->Fill(flags);
00977     if (flags>=0.)
00978      {
00979       h1_ele_convDist_all->Fill( gsfIter->convDist() );
00980       h1_ele_convDcot_all->Fill( gsfIter->convDcot() );
00981       h1_ele_convRadius_all->Fill( gsfIter->convRadius() );
00982      }
00983 
00984    }
00985 
00986   // association matching object-reco electrons
00987   int matchingObjectNum=0 ;
00988   reco::GenJetCollection::const_iterator moIter ;
00989   for
00990    ( moIter = genJets->begin() ;
00991      moIter != genJets->end() ; ++moIter )
00992    {
00993 
00994     // number of matching objects
00995     matchingObjectNum++ ;
00996 
00997     if (moIter->energy()/cosh(moIter->eta())> maxPt_ || std::abs(moIter->eta())> maxAbsEta_)
00998      { continue ; }
00999 
01000     // suppress the endcaps
01001     //if (std::abs(moIter->eta()) > 1.5) continue;
01002     // select central z
01003     //if ( std::abs((*mcIter)->production_vertex()->position().z())>50.) continue;
01004 
01005     h1_matchingObjectEta->Fill( moIter->eta() );
01006     h1_matchingObjectAbsEta->Fill( std::abs(moIter->eta()) );
01007     h1_matchingObjectP->Fill( moIter->energy() );
01008     h1_matchingObjectPt->Fill( moIter->energy()/cosh(moIter->eta()) );
01009     h1_matchingObjectPhi->Fill( moIter->phi() );
01010     h1_matchingObjectZ->Fill(  moIter->vz() );
01011 
01012     // looking for the best matching gsf electron
01013     bool okGsfFound = false;
01014     double gsfOkRatio = 999999.;
01015 
01016     // find best matched electron
01017     reco::GsfElectron bestGsfElectron ;
01018     reco::GsfElectronRef bestGsfElectronRef ;
01019     reco::GsfElectronCollection::const_iterator gsfIter ;
01020     reco::GsfElectronCollection::size_type iElectron ;
01021     for
01022      ( gsfIter=gsfElectrons->begin(), iElectron=0 ;
01023        gsfIter!=gsfElectrons->end() ; gsfIter++, iElectron++ )
01024      {
01025       double dphi = gsfIter->phi()-moIter->phi();
01026       if (std::abs(dphi)>CLHEP::pi)
01027        { dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; }
01028       double deltaR = sqrt(pow((gsfIter->eta()-moIter->eta()),2) + pow(dphi,2));
01029       if ( deltaR < deltaR_ )
01030        {
01031         //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) &&
01032         //(gsfIter->charge() > 0.) ){
01033         double tmpGsfRatio = gsfIter->p()/moIter->energy() ;
01034         if ( std::abs(tmpGsfRatio-1) < std::abs(gsfOkRatio-1) )
01035          {
01036           gsfOkRatio = tmpGsfRatio ;
01037           bestGsfElectronRef = reco::GsfElectronRef(gsfElectrons,iElectron) ;
01038           bestGsfElectron = *gsfIter ;
01039           okGsfFound = true ;
01040          }
01041         //}
01042        }
01043      } // loop over rec ele to look for the best one
01044 
01045     // analysis when the matching object is matched by a rec electron
01046     if (okGsfFound)
01047      {
01048       // electron related distributions
01049       h1_ele_charge->Fill( bestGsfElectron.charge() );
01050       h2_ele_chargeVsEta->Fill( bestGsfElectron.eta(),bestGsfElectron.charge() );
01051       h2_ele_chargeVsPhi->Fill( bestGsfElectron.phi(),bestGsfElectron.charge() );
01052       h2_ele_chargeVsPt->Fill( bestGsfElectron.pt(),bestGsfElectron.charge() );
01053       h1_ele_vertexP->Fill( bestGsfElectron.p() );
01054       h1_ele_vertexPt->Fill( bestGsfElectron.pt() );
01055       h2_ele_vertexPtVsEta->Fill(  bestGsfElectron.eta(),bestGsfElectron.pt() );
01056       h2_ele_vertexPtVsPhi->Fill(  bestGsfElectron.phi(),bestGsfElectron.pt() );
01057       h1_ele_vertexEta->Fill( bestGsfElectron.eta() );
01058       // generated distributions for matched electrons
01059       h1_ele_matchingObjectPt_matched->Fill( moIter->energy()/cosh(moIter->eta()) );
01060       h1_ele_matchingObjectPhi_matched->Fill( moIter->phi() );
01061       h1_ele_matchingObjectAbsEta_matched->Fill( std::abs(moIter->eta()) );
01062       h1_ele_matchingObjectEta_matched->Fill( moIter->eta() );
01063       h2_ele_vertexEtaVsPhi->Fill(  bestGsfElectron.phi(),bestGsfElectron.eta() );
01064       h1_ele_vertexPhi->Fill( bestGsfElectron.phi() );
01065       h1_ele_vertexX->Fill( bestGsfElectron.vertex().x() );
01066       h1_ele_vertexY->Fill( bestGsfElectron.vertex().y() );
01067       h1_ele_vertexZ->Fill( bestGsfElectron.vertex().z() );
01068       h1_ele_matchingObjectZ_matched->Fill( moIter->vz() );
01069       double d
01070        =   (bestGsfElectron.vertex().x()-bs.position().x())
01071          * (bestGsfElectron.vertex().x()-bs.position().x())
01072        +   (bestGsfElectron.vertex().y()-bs.position().y())
01073          *(bestGsfElectron.vertex().y()-bs.position().y()) ;
01074       d = sqrt(d) ;
01075       h1_ele_vertexTIP->Fill( d );
01076       h2_ele_vertexTIPVsEta->Fill(  bestGsfElectron.eta(), d );
01077       h2_ele_vertexTIPVsPhi->Fill(  bestGsfElectron.phi(), d );
01078       h2_ele_vertexTIPVsPt->Fill(  bestGsfElectron.pt(), d );
01079       h1_ele_EtaMnEtamatchingObject->Fill( bestGsfElectron.eta()-moIter->eta());
01080       h2_ele_EtaMnEtamatchingObjectVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eta()-moIter->eta());
01081       h2_ele_EtaMnEtamatchingObjectVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eta()-moIter->eta());
01082       h2_ele_EtaMnEtamatchingObjectVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.eta()-moIter->eta());
01083       h1_ele_PhiMnPhimatchingObject->Fill( bestGsfElectron.phi()-moIter->phi());
01084       h1_ele_PhiMnPhimatchingObject2->Fill( bestGsfElectron.phi()-moIter->phi());
01085       h2_ele_PhiMnPhimatchingObjectVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.phi()-moIter->phi());
01086       h2_ele_PhiMnPhimatchingObjectVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.phi()-moIter->phi());
01087       h2_ele_PhiMnPhimatchingObjectVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.phi()-moIter->phi());
01088       h1_ele_PoPmatchingObject->Fill( bestGsfElectron.p()/moIter->energy());
01089       h2_ele_PoPmatchingObjectVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.p()/moIter->energy());
01090       h2_ele_PoPmatchingObjectVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.p()/moIter->energy());
01091       h2_ele_PoPmatchingObjectVsPt->Fill( bestGsfElectron.py(), bestGsfElectron.p()/moIter->energy());
01092       if (bestGsfElectron.isEB()) h1_ele_PoPmatchingObject_barrel->Fill( bestGsfElectron.p()/moIter->energy()) ;
01093       if (bestGsfElectron.isEE()) h1_ele_PoPmatchingObject_endcaps->Fill( bestGsfElectron.p()/moIter->energy()) ;
01094 
01095       // supercluster related distributions
01096       reco::SuperClusterRef sclRef = bestGsfElectron.superCluster();
01097       if (!bestGsfElectron.ecalDrivenSeed()&&bestGsfElectron.trackerDrivenSeed()) sclRef = bestGsfElectron.pflowSuperCluster();
01098       h1_scl_En_->Fill(sclRef->energy());
01099       double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
01100       double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
01101       h1_scl_Et_->Fill(sclRef->energy()*(Rt/R));
01102       h2_scl_EtVsEta_->Fill(sclRef->eta(),sclRef->energy()*(Rt/R));
01103       h2_scl_EtVsPhi_->Fill(sclRef->phi(),sclRef->energy()*(Rt/R));
01104       if (bestGsfElectron.classification() < 100)  h1_scl_EoEmatchingObject_barrel->Fill(sclRef->energy()/moIter->energy());
01105       if (bestGsfElectron.classification() >= 100)  h1_scl_EoEmatchingObject_endcaps->Fill(sclRef->energy()/moIter->energy());
01106       h1_scl_Eta_->Fill(sclRef->eta());
01107       h2_scl_EtaVsPhi_->Fill(sclRef->phi(),sclRef->eta());
01108       h1_scl_Phi_->Fill(sclRef->phi());
01109       h1_scl_SigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta());
01110       if (bestGsfElectron.isEB()) h1_scl_SigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta());
01111       if (bestGsfElectron.isEE()) h1_scl_SigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta());
01112       h1_scl_E1x5_->Fill(bestGsfElectron.scE1x5());
01113       if (bestGsfElectron.isEB()) h1_scl_E1x5_barrel_->Fill(bestGsfElectron.scE1x5());
01114       if (bestGsfElectron.isEE()) h1_scl_E1x5_endcaps_->Fill(bestGsfElectron.scE1x5());
01115       h1_scl_E2x5max_->Fill(bestGsfElectron.scE2x5Max());
01116       if (bestGsfElectron.isEB()) h1_scl_E2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max());
01117       if (bestGsfElectron.isEE()) h1_scl_E2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max());
01118       h1_scl_E5x5_->Fill(bestGsfElectron.scE5x5());
01119       if (bestGsfElectron.isEB()) h1_scl_E5x5_barrel_->Fill(bestGsfElectron.scE5x5());
01120       if (bestGsfElectron.isEE()) h1_scl_E5x5_endcaps_->Fill(bestGsfElectron.scE5x5());
01121 
01122       // track related distributions
01123       h1_ele_ambiguousTracks->Fill( bestGsfElectron.ambiguousGsfTracksSize() );
01124       h2_ele_ambiguousTracksVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize() );
01125       h2_ele_ambiguousTracksVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize() );
01126       h2_ele_ambiguousTracksVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize() );
01127       if (!readAOD_)
01128        { // track extra does not exist in AOD
01129         h1_ele_foundHits->Fill( bestGsfElectron.gsfTrack()->numberOfValidHits() );
01130         h2_ele_foundHitsVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
01131         h2_ele_foundHitsVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
01132         h2_ele_foundHitsVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits() );
01133         h1_ele_lostHits->Fill( bestGsfElectron.gsfTrack()->numberOfLostHits() );
01134         h2_ele_lostHitsVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
01135         h2_ele_lostHitsVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
01136         h2_ele_lostHitsVsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits() );
01137         h1_ele_chi2->Fill( bestGsfElectron.gsfTrack()->normalizedChi2() );
01138         h2_ele_chi2VsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2() );
01139         h2_ele_chi2VsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2() );
01140         h2_ele_chi2VsPt->Fill( bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2() );
01141        }
01142       // from gsf track interface, hence using mean
01143       if (!readAOD_)
01144        { // track extra does not exist in AOD
01145         h1_ele_PinMnPout->Fill( bestGsfElectron.gsfTrack()->innerMomentum().R() - bestGsfElectron.gsfTrack()->outerMomentum().R() );
01146         h1_ele_outerP->Fill( bestGsfElectron.gsfTrack()->outerMomentum().R() );
01147         h1_ele_outerPt->Fill( bestGsfElectron.gsfTrack()->outerMomentum().Rho() );
01148        }
01149       // from electron interface, hence using mode
01150       h1_ele_PinMnPout_mode->Fill( bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
01151       h2_ele_PinMnPoutVsEta_mode->Fill(  bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
01152       h2_ele_PinMnPoutVsPhi_mode->Fill(  bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
01153       h2_ele_PinMnPoutVsPt_mode->Fill(  bestGsfElectron.pt(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
01154       h2_ele_PinMnPoutVsE_mode->Fill(  bestGsfElectron.caloEnergy(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() );
01155       if (!readAOD_)  // track extra does not exist in AOD
01156        h2_ele_PinMnPoutVsChi2_mode->Fill
01157         ( bestGsfElectron.gsfTrack()->normalizedChi2(),
01158           bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R() ) ;
01159       h1_ele_outerP_mode->Fill( bestGsfElectron.trackMomentumOut().R() );
01160       h2_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(),  bestGsfElectron.trackMomentumOut().R() );
01161       h1_ele_outerPt_mode->Fill( bestGsfElectron.trackMomentumOut().Rho() );
01162       h2_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(),  bestGsfElectron.trackMomentumOut().Rho() );
01163       h2_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(),  bestGsfElectron.trackMomentumOut().Rho() );
01164       h2_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(),  bestGsfElectron.trackMomentumOut().Rho() );
01165 
01166       if (!readAOD_)
01167        { // track extra does not exist in AOD
01168         edm::RefToBase<TrajectorySeed> seed = bestGsfElectron.gsfTrack()->extra()->seedRef();
01169         ElectronSeedRef elseed=seed.castTo<ElectronSeedRef>();
01170         h1_ele_seed_subdet2_->Fill(elseed->subDet2());
01171         h1_ele_seed_mask_->Fill(elseed->hitsMask());
01172         if (elseed->subDet2()==1)
01173          { h1_ele_seed_mask_bpix_->Fill(elseed->hitsMask()); }
01174         else if (elseed->subDet2()==2)
01175          { h1_ele_seed_mask_fpix_->Fill(elseed->hitsMask()); }
01176         else if (elseed->subDet2()==6)
01177          { h1_ele_seed_mask_tec_->Fill(elseed->hitsMask()); }
01178         h1_ele_seed_dphi2_->Fill(elseed->dPhi2());
01179         h2_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhi2());
01180         h2_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhi2()) ;
01181         h1_ele_seed_dphi2pos_->Fill(elseed->dPhi2Pos());
01182         h2_ele_seed_dphi2posVsEta_->Fill(bestGsfElectron.eta(), elseed->dPhi2Pos());
01183         h2_ele_seed_dphi2posVsPt_->Fill(bestGsfElectron.pt(), elseed->dPhi2Pos());
01184         h1_ele_seed_drz2_->Fill(elseed->dRz2());
01185         h2_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRz2());
01186         h2_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRz2());
01187         h1_ele_seed_drz2pos_->Fill(elseed->dRz2Pos());
01188         h2_ele_seed_drz2posVsEta_->Fill(bestGsfElectron.eta(), elseed->dRz2Pos());
01189         h2_ele_seed_drz2posVsPt_->Fill(bestGsfElectron.pt(), elseed->dRz2Pos());
01190        }
01191       // match distributions
01192       h1_ele_EoP->Fill( bestGsfElectron.eSuperClusterOverP() );
01193       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg->Fill( bestGsfElectron.eSuperClusterOverP() );
01194       if (bestGsfElectron.isEB()) h1_ele_EoP_barrel->Fill( bestGsfElectron.eSuperClusterOverP() );
01195       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg_barrel->Fill( bestGsfElectron.eSuperClusterOverP() );
01196       if (bestGsfElectron.isEE()) h1_ele_EoP_endcaps->Fill( bestGsfElectron.eSuperClusterOverP() );
01197       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoP_eg_endcaps->Fill( bestGsfElectron.eSuperClusterOverP() );
01198       h2_ele_EoPVsEta->Fill(bestGsfElectron.eta(),  bestGsfElectron.eSuperClusterOverP() );
01199       h2_ele_EoPVsPhi->Fill(bestGsfElectron.phi(),  bestGsfElectron.eSuperClusterOverP() );
01200       h2_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(),  bestGsfElectron.eSuperClusterOverP() );
01201       h1_ele_EseedOP->Fill( bestGsfElectron.eSeedClusterOverP() );
01202       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg->Fill( bestGsfElectron.eSeedClusterOverP() );
01203       if (bestGsfElectron.isEB()) h1_ele_EseedOP_barrel->Fill( bestGsfElectron.eSeedClusterOverP() );
01204       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg_barrel->Fill( bestGsfElectron.eSeedClusterOverP() );
01205       if (bestGsfElectron.isEE()) h1_ele_EseedOP_endcaps->Fill( bestGsfElectron.eSeedClusterOverP() );
01206       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EseedOP_eg_endcaps->Fill( bestGsfElectron.eSeedClusterOverP() );
01207       h2_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(),  bestGsfElectron.eSeedClusterOverP() );
01208       h2_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(),  bestGsfElectron.eSeedClusterOverP() );
01209       h2_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(),  bestGsfElectron.eSeedClusterOverP() );
01210       h1_ele_EoPout->Fill( bestGsfElectron.eSeedClusterOverPout() );
01211       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg->Fill( bestGsfElectron.eSeedClusterOverPout() );
01212       if (bestGsfElectron.isEB()) h1_ele_EoPout_barrel->Fill( bestGsfElectron.eSeedClusterOverPout() );
01213       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg_barrel->Fill( bestGsfElectron.eSeedClusterOverPout() );
01214       if (bestGsfElectron.isEE()) h1_ele_EoPout_endcaps->Fill( bestGsfElectron.eSeedClusterOverPout() );
01215       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EoPout_eg_endcaps->Fill( bestGsfElectron.eSeedClusterOverPout() );
01216       h2_ele_EoPoutVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout() );
01217       h2_ele_EoPoutVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout() );
01218       h2_ele_EoPoutVsE->Fill( bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout() );
01219       h1_ele_EeleOPout->Fill( bestGsfElectron.eEleClusterOverPout() );
01220       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg->Fill( bestGsfElectron.eEleClusterOverPout() );
01221       if (bestGsfElectron.isEB()) h1_ele_EeleOPout_barrel->Fill( bestGsfElectron.eEleClusterOverPout() );
01222       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg_barrel->Fill( bestGsfElectron.eEleClusterOverPout() );
01223       if (bestGsfElectron.isEE()) h1_ele_EeleOPout_endcaps->Fill( bestGsfElectron.eEleClusterOverPout() );
01224       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_EeleOPout_eg_endcaps->Fill( bestGsfElectron.eEleClusterOverPout() );
01225       h2_ele_EeleOPoutVsEta->Fill( bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout() );
01226       h2_ele_EeleOPoutVsPhi->Fill( bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout() );
01227       h2_ele_EeleOPoutVsE->Fill( bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout() );
01228       h1_ele_dEtaSc_propVtx->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01229       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01230       if (bestGsfElectron.isEB()) h1_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01231       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01232       if (bestGsfElectron.isEE())h1_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01233       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01234       h2_ele_dEtaScVsEta_propVtx->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01235       h2_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01236       h2_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
01237       h1_ele_dPhiSc_propVtx->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01238       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01239       if (bestGsfElectron.isEB()) h1_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01240       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01241       if (bestGsfElectron.isEE())h1_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01242       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01243       h2_ele_dPhiScVsEta_propVtx->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01244       h2_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01245       h2_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
01246       h1_ele_dEtaCl_propOut->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01247       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01248       if (bestGsfElectron.isEB()) h1_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01249       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01250       if (bestGsfElectron.isEE()) h1_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01251       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01252       h2_ele_dEtaClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01253       h2_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01254       h2_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaSeedClusterTrackAtCalo());
01255       h1_ele_dPhiCl_propOut->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01256       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01257       if (bestGsfElectron.isEB()) h1_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01258       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01259       if (bestGsfElectron.isEE()) h1_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01260       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01261       h2_ele_dPhiClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01262       h2_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01263       h2_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiSeedClusterTrackAtCalo());
01264       h1_ele_dEtaEleCl_propOut->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01265       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01266       if (bestGsfElectron.isEB()) h1_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01267       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01268       if (bestGsfElectron.isEE()) h1_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01269       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01270       h2_ele_dEtaEleClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01271       h2_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01272       h2_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
01273       h1_ele_dPhiEleCl_propOut->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01274       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01275       if (bestGsfElectron.isEB()) h1_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01276       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01277       if (bestGsfElectron.isEE()) h1_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01278       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01279       h2_ele_dPhiEleClVsEta_propOut->Fill( bestGsfElectron.eta(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01280       h2_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01281       h2_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(),bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
01282       h1_ele_HoE->Fill(bestGsfElectron.hadronicOverEm());
01283       h1_ele_HoE_bc->Fill(bestGsfElectron.hcalOverEcalBc());
01284       if (bestGsfElectron.isEB()) h1_ele_HoE_bc_barrel->Fill(bestGsfElectron.hcalOverEcalBc());
01285       if (bestGsfElectron.isEE()) h1_ele_HoE_bc_endcaps->Fill(bestGsfElectron.hcalOverEcalBc());
01286       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg->Fill(bestGsfElectron.hadronicOverEm());
01287       if (bestGsfElectron.isEB()) h1_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm());
01288       if (bestGsfElectron.isEB()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg_barrel->Fill(bestGsfElectron.hadronicOverEm());
01289       if (bestGsfElectron.isEE()) h1_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm());
01290       if (bestGsfElectron.isEE()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hadronicOverEm());
01291       if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap()&& !bestGsfElectron.isEBEEGap() &&
01292           !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap()) h1_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm());
01293       h2_ele_HoEVsEta->Fill( bestGsfElectron.eta(),bestGsfElectron.hadronicOverEm());
01294       h2_ele_HoEVsPhi->Fill(bestGsfElectron.phi(),bestGsfElectron.hadronicOverEm());
01295       h2_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(),bestGsfElectron.hadronicOverEm());
01296 
01297       //classes
01298       int eleClass = bestGsfElectron.classification();
01299       if (bestGsfElectron.isEE()) eleClass+=10;
01300       h1_ele_classes->Fill(eleClass);
01301 
01302       h1_ele_eta->Fill(std::abs(bestGsfElectron.eta()));
01303       if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h1_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
01304       if (bestGsfElectron.classification() == GsfElectron::BIGBREM) h1_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
01305       //if (bestGsfElectron.classification() == GsfElectron::OLDNARROW) h1_ele_eta_narrow->Fill(std::abs(bestGsfElectron.eta()));
01306       if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h1_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
01307 
01308       // fbrem
01309 
01310       double fbrem_mode =  bestGsfElectron.fbrem();
01311       h1_ele_fbrem->Fill(fbrem_mode);
01312       p1_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(),fbrem_mode);
01313 
01314       if (bestGsfElectron.isEB())
01315        {
01316         double fbrem_mode_barrel = bestGsfElectron.fbrem();
01317         h1_ele_fbrem_barrel->Fill(fbrem_mode_barrel);
01318       }
01319 
01320       if (bestGsfElectron.isEE())
01321        {
01322         double fbrem_mode_endcaps = bestGsfElectron.fbrem();
01323         h1_ele_fbrem_endcaps->Fill(fbrem_mode_endcaps);
01324        }
01325 
01326       if (!readAOD_) // track extra does not exist in AOD
01327        {
01328         double fbrem_mean =  1. - bestGsfElectron.gsfTrack()->outerMomentum().R()/bestGsfElectron.gsfTrack()->innerMomentum().R();
01329         p1_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(),fbrem_mean) ;
01330        }
01331 
01332       //
01333 
01334       if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h2_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(), bestGsfElectron.trackMomentumAtVtx().R());
01335       if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
01336         h2_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(), bestGsfElectron.trackMomentumAtVtx().R());
01337       if (!readAOD_) // track extra does not exist in AOD
01338         if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
01339           h2_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), bestGsfElectron.gsfTrack()->innerMomentum().R());
01340       if (!readAOD_) // track extra does not exist in AOD
01341         if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
01342           h2_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), bestGsfElectron.gsfTrack()->innerMomentum().R());
01343       if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
01344         h2_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), bestGsfElectron.trackMomentumAtVtx().Rho());
01345       if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
01346         h2_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), bestGsfElectron.trackMomentumAtVtx().Rho());
01347       if (!readAOD_) // track extra does not exist in AOD
01348         if (bestGsfElectron.classification() == GsfElectron::GOLDEN)
01349           h2_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), bestGsfElectron.gsfTrack()->innerMomentum().Rho());
01350       if (!readAOD_) // track extra does not exist in AOD
01351         if (bestGsfElectron.classification() == GsfElectron::SHOWERING)
01352           h2_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), bestGsfElectron.gsfTrack()->innerMomentum().Rho());
01353 
01354       h1_ele_mva->Fill(bestGsfElectron.mva());
01355       if (bestGsfElectron.isEB()) h1_ele_mva_barrel->Fill(bestGsfElectron.mva());
01356       if (bestGsfElectron.isEE()) h1_ele_mva_endcaps->Fill(bestGsfElectron.mva());
01357 
01358       if (bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(1.);
01359       if (bestGsfElectron.trackerDrivenSeed()) h1_ele_provenance->Fill(-1.);
01360       if (bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(0.);
01361       if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(-2.);
01362       if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed()) h1_ele_provenance->Fill(2.);
01363       if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(1.);
01364       if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(-1.);
01365       if ((bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(0.);
01366       if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(-2.);
01367       if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEB()) h1_ele_provenance_barrel->Fill(2.);
01368       if (bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(1.);
01369       if (bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(-1.);
01370       if ((bestGsfElectron.trackerDrivenSeed()||bestGsfElectron.ecalDrivenSeed()) && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(0.);
01371       if (bestGsfElectron.trackerDrivenSeed()&&!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(-2.);
01372       if (!bestGsfElectron.trackerDrivenSeed()&&bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.isEE()) h1_ele_provenance_endcaps->Fill(2.);
01373 
01374       // Pflow isolation
01375       h1_ele_chargedHadronIso->Fill(bestGsfElectron.pfIsolationVariables().chargedHadronIso);
01376       if (bestGsfElectron.isEB()) h1_ele_chargedHadronIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().chargedHadronIso);
01377       if (bestGsfElectron.isEE()) h1_ele_chargedHadronIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().chargedHadronIso);
01378 
01379       h1_ele_neutralHadronIso->Fill(bestGsfElectron.pfIsolationVariables().neutralHadronIso);
01380       if (bestGsfElectron.isEB()) h1_ele_neutralHadronIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().neutralHadronIso);
01381       if (bestGsfElectron.isEE()) h1_ele_neutralHadronIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().neutralHadronIso);
01382 
01383       h1_ele_photonIso->Fill(bestGsfElectron.pfIsolationVariables().photonIso);
01384       if (bestGsfElectron.isEB()) h1_ele_photonIso_barrel->Fill(bestGsfElectron.pfIsolationVariables().photonIso);
01385       if (bestGsfElectron.isEE()) h1_ele_photonIso_endcaps->Fill(bestGsfElectron.pfIsolationVariables().photonIso);
01386 
01387       // isolation
01388       h1_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
01389       if (bestGsfElectron.isEB()) h1_ele_tkSumPt_dr03_barrel->Fill(bestGsfElectron.dr03TkSumPt());
01390       if (bestGsfElectron.isEE()) h1_ele_tkSumPt_dr03_endcaps->Fill(bestGsfElectron.dr03TkSumPt());
01391       h1_ele_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
01392       if (bestGsfElectron.isEB()) h1_ele_ecalRecHitSumEt_dr03_barrel->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
01393       if (bestGsfElectron.isEE()) h1_ele_ecalRecHitSumEt_dr03_endcaps->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
01394       h1_ele_hcalTowerSumEt_dr03_depth1->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEt());
01395       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr03_depth1_barrel->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEt());
01396       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr03_depth1_endcaps->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEt());
01397       h1_ele_hcalTowerSumEt_dr03_depth2->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEt());
01398       h1_ele_hcalTowerSumEtBc_dr03_depth1->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEtBc());
01399       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr03_depth1_barrel->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEtBc());
01400       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr03_depth1_endcaps->Fill(bestGsfElectron.dr03HcalDepth1TowerSumEtBc());
01401       h1_ele_hcalTowerSumEtBc_dr03_depth2->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEtBc());
01402       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr03_depth2_barrel->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEtBc());
01403       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr03_depth2_endcaps->Fill(bestGsfElectron.dr03HcalDepth2TowerSumEtBc());
01404       h1_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt());
01405       if (bestGsfElectron.isEB()) h1_ele_tkSumPt_dr04_barrel->Fill(bestGsfElectron.dr04TkSumPt());
01406       if (bestGsfElectron.isEE()) h1_ele_tkSumPt_dr04_endcaps->Fill(bestGsfElectron.dr04TkSumPt());
01407       h1_ele_ecalRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
01408       if (bestGsfElectron.isEB()) h1_ele_ecalRecHitSumEt_dr04_barrel->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
01409       if (bestGsfElectron.isEE()) h1_ele_ecalRecHitSumEt_dr04_endcaps->Fill(bestGsfElectron.dr04EcalRecHitSumEt());
01410       h1_ele_hcalTowerSumEt_dr04_depth1->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEt());
01411       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEt_dr04_depth1_barrel->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEt());
01412       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEt_dr04_depth1_endcaps->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEt());
01413       h1_ele_hcalTowerSumEt_dr04_depth2->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEt());
01414       h1_ele_hcalTowerSumEtBc_dr04_depth1->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEtBc());
01415       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr04_depth1_barrel->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEtBc());
01416       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr04_depth1_endcaps->Fill(bestGsfElectron.dr04HcalDepth1TowerSumEtBc());
01417       h1_ele_hcalTowerSumEtBc_dr04_depth2->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEtBc());
01418       if (bestGsfElectron.isEB()) h1_ele_hcalTowerSumEtBc_dr04_depth2_barrel->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEtBc());
01419       if (bestGsfElectron.isEE()) h1_ele_hcalTowerSumEtBc_dr04_depth2_endcaps->Fill(bestGsfElectron.dr04HcalDepth2TowerSumEtBc());
01420 
01421       h1_ele_hcalDepth1OverEcalBc->Fill(bestGsfElectron.hcalDepth1OverEcalBc());
01422       if (bestGsfElectron.isEB()) h1_ele_hcalDepth1OverEcalBc_barrel->Fill(bestGsfElectron.hcalDepth1OverEcalBc());
01423       if (bestGsfElectron.isEE()) h1_ele_hcalDepth1OverEcalBc_endcaps->Fill(bestGsfElectron.hcalDepth1OverEcalBc());
01424       h1_ele_hcalDepth2OverEcalBc->Fill(bestGsfElectron.hcalDepth2OverEcalBc());
01425       if (bestGsfElectron.isEB()) h1_ele_hcalDepth2OverEcalBc_barrel->Fill(bestGsfElectron.hcalDepth2OverEcalBc());
01426       if (bestGsfElectron.isEE()) h1_ele_hcalDepth2OverEcalBc_endcaps->Fill(bestGsfElectron.hcalDepth2OverEcalBc());
01427 
01428 
01429       // isolation : difference with iso deposits
01430       if ( isoFromDepsTk03Handle.isValid() )
01431         h1_ele_dIso_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt()-((*isoFromDepsTk03Handle)[bestGsfElectronRef])) ;
01432       if ( isoFromDepsTk04Handle.isValid() )
01433         h1_ele_dIso_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt()-((*isoFromDepsTk04Handle)[bestGsfElectronRef])) ;
01434       if ( isoFromDepsEcalFull03Handle.isValid() )
01435         h1_ele_dIso_ecalFullRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()-((*isoFromDepsEcalFull03Handle)[bestGsfElectronRef])) ;
01436       if ( isoFromDepsEcalFull04Handle.isValid() )
01437       h1_ele_dIso_ecalFullRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()-((*isoFromDepsEcalFull04Handle)[bestGsfElectronRef])) ;
01438       if ( isoFromDepsEcalReduced03Handle.isValid())
01439         h1_ele_dIso_ecalReducedRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()-((*isoFromDepsEcalReduced03Handle)[bestGsfElectronRef])) ;
01440       if ( isoFromDepsEcalReduced04Handle.isValid())
01441         h1_ele_dIso_ecalReducedRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()-((*isoFromDepsEcalReduced04Handle)[bestGsfElectronRef])) ;
01442       if ( isoFromDepsHcal03Handle.isValid())
01443         h1_ele_dIso_hcalTowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt()-((*isoFromDepsHcal03Handle)[bestGsfElectronRef])) ;
01444       if ( isoFromDepsHcal04Handle.isValid())
01445         h1_ele_dIso_hcalTowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt()-((*isoFromDepsHcal04Handle)[bestGsfElectronRef])) ;
01446 
01447       // conversion rejection
01448       int flags = bestGsfElectron.convFlags() ;
01449       if (flags==-9999) { flags=-1 ; }
01450       h1_ele_convFlags->Fill(flags);
01451       if (flags>=0.)
01452        {
01453         h1_ele_convDist->Fill( bestGsfElectron.convDist() );
01454         h1_ele_convDcot->Fill( bestGsfElectron.convDcot() );
01455         h1_ele_convRadius->Fill( bestGsfElectron.convRadius() );
01456        }
01457 
01458      } // gsf electron found
01459 
01460 //    } // matching object found
01461 
01462 //    }
01463 
01464    } // loop overmatching object
01465 
01466   h1_matchingObjectNum->Fill(matchingObjectNum) ;
01467 
01468  }
01469 
01470