CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

ElectronAnalyzer Class Reference

#include <ElectronAnalyzer.h>

Inheritance diagram for ElectronAnalyzer:
ElectronDqmAnalyzerBase edm::EDAnalyzer

List of all members.

Public Member Functions

virtual void analyze (const edm::Event &e, const edm::EventSetup &c)
virtual void book ()
 ElectronAnalyzer (const edm::ParameterSet &conf)
virtual ~ElectronAnalyzer ()

Private Member Functions

float computeInvMass (const reco::GsfElectron &e1, const reco::GsfElectron &e2)
bool etCut (const reco::GsfElectronCollection::const_iterator &gsfIter)
bool generalCut (const reco::GsfElectronCollection::const_iterator &gsfIter)
bool idCut (const reco::GsfElectronCollection::const_iterator &gsfIter)
bool isolationCut (const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
bool selected (const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)

Private Attributes

edm::InputTag beamSpotTag_
double deltaR_
double detamatchmax
double detamatchmin
double detamax
double dEtaMaxBarrel_
double dEtaMaxEndcaps_
double detamin
double dEtaMinBarrel_
double dEtaMinEndcaps_
double dphimatchmax
double dphimatchmin
double dphimax
double dPhiMaxBarrel_
double dPhiMaxEndcaps_
double dphimin
double dPhiMinBarrel_
double dPhiMinEndcaps_
double ecalIso03MaxBarrel_
double ecalIso03MaxEndcaps_
edm::InputTag electronCollection_
double eopmax
double eopmaxsht
double eOverPMaxBarrel_
double eOverPMaxEndcaps_
double eOverPMinBarrel_
double eOverPMinEndcaps_
double etamax
double etamin
double fhitsmax
edm::InputTag gsftrackCollection_
MonitorElementh1_chi2
MonitorElementh1_classes
MonitorElementh1_dEtaEleCl_propOut_barrel
MonitorElementh1_dEtaEleCl_propOut_endcaps
MonitorElementh1_dEtaSc_propVtx_barrel
MonitorElementh1_dEtaSc_propVtx_endcaps
MonitorElementh1_dPhiEleCl_propOut_barrel
MonitorElementh1_dPhiEleCl_propOut_endcaps
MonitorElementh1_dPhiSc_propVtx_barrel
MonitorElementh1_dPhiSc_propVtx_endcaps
MonitorElementh1_ecalRecHitSumEt_dr03
MonitorElementh1_EeleOPout_barrel
MonitorElementh1_EeleOPout_endcaps
MonitorElementh1_Eop_barrel
MonitorElementh1_Eop_endcaps
MonitorElementh1_fbrem
MonitorElementh1_foundHits
MonitorElementh1_hcalTowerSumEt_dr03
MonitorElementh1_Hoe_barrel
MonitorElementh1_Hoe_endcaps
MonitorElementh1_lostHits
MonitorElementh1_matchedObject_Eta
MonitorElementh1_matchedObject_Phi
MonitorElementh1_matchedObject_Pt
MonitorElementh1_matchingObject_Eta
MonitorElementh1_matchingObject_Phi
MonitorElementh1_matchingObject_Pt
MonitorElementh1_mee
MonitorElementh1_mee_os
MonitorElementh1_mva
MonitorElementh1_provenance
MonitorElementh1_sclEt
MonitorElementh1_sclSigEtaEta_barrel
MonitorElementh1_sclSigEtaEta_endcaps
MonitorElementh1_tkSumPt_dr03
MonitorElementh1_triggers
MonitorElementh1_vertexEta
MonitorElementh1_vertexPt_barrel
MonitorElementh1_vertexPt_endcaps
MonitorElementh1_vertexZ
MonitorElementh2_beamSpotXvsY
MonitorElementh2_vertexEtaVsPhi
MonitorElementh2_vertexXvsY
double hadronicOverEmMaxBarrel_
double hadronicOverEmMaxEndcaps_
double hcalIso03Depth1MaxBarrel_
double hcalIso03Depth1MaxEndcaps_
double hcalIso03Depth2MaxEndcaps_
double hoemax
double hoemin
bool isEB_
bool isEcalDriven_
bool isEE_
bool isNotEBEEGap_
bool isTrackerDriven_
double lhitsmax
std::string matchingCondition_
edm::InputTag matchingObjectCollection_
double maxAbsEta_
double maxAbsEtaMatchingObject_
double maxPtMatchingObject_
float mcEnergy [10]
float mcEta [10]
float mcPhi [10]
float mcPt [10]
float mcQ [10]
double meemax
double meemin
double minEt_
double minPt_
double mvaMin_
int nbindeta
int nbindetamatch
int nbindetamatch2D
int nbindphi
int nbindphimatch
int nbindphimatch2D
int nbineop
int nbineop2D
int nbineta
int nbineta2D
int nbinfhits
int nbinhoe
int nbinlhits
int nbinmee
int nbinp
int nbinp2D
int nbinphi
int nbinphi2D
int nbinpoptrue
int nbinpt
int nbinpt2D
int nbinpteff
int nbinxyz
int nbinxyz2D
unsigned int nEvents_
edm::ESHandle< TrackerGeometrypDD
double phimax
double phimin
double pmax
double poptruemax
double poptruemin
double ptmax
MonitorElementpy_chi2VsEta
MonitorElementpy_chi2VsPhi
MonitorElementpy_dEtaSc_propVtxVsPhi
MonitorElementpy_dPhiSc_propVtxVsPhi
MonitorElementpy_EopVsPhi
MonitorElementpy_fbremVsEta
MonitorElementpy_fbremVsPhi
MonitorElementpy_foundHitsVsEta
MonitorElementpy_foundHitsVsPhi
MonitorElementpy_HoeVsPhi
MonitorElementpy_lostHitsVsEta
MonitorElementpy_lostHitsVsPhi
MonitorElementpy_nClustersVsLs
MonitorElementpy_nElectronsVsLs
MonitorElementpy_nGsfTracksVsLs
MonitorElementpy_nTracksVsLs
MonitorElementpy_nVerticesVsLs
bool readAOD_
float seedEta [10]
float seedMomentum [10]
float seedPhi [10]
float seedPt [10]
float seedQ [10]
int Selection_
double sigIetaIetaMaxBarrel_
double sigIetaIetaMaxEndcaps_
double sigIetaIetaMinBarrel_
double sigIetaIetaMinEndcaps_
float superclusterEnergy [10]
float superclusterEt [10]
float superclusterEta [10]
float superclusterPhi [10]
edm::ESHandle< MagneticFieldtheMagField
double tipMaxBarrel_
double tipMaxEndcaps_
double tkIso03Max_
edm::InputTag trackCollection_
edm::InputTag triggerResults_
edm::InputTag vertexCollection_

Detailed Description

Definition at line 19 of file ElectronAnalyzer.h.


Constructor & Destructor Documentation

ElectronAnalyzer::ElectronAnalyzer ( const edm::ParameterSet conf) [explicit]

Definition at line 30 of file ElectronAnalyzer.cc.

References beamSpotTag_, deltaR_, detamatchmax, detamatchmin, detamax, dEtaMaxBarrel_, dEtaMaxEndcaps_, detamin, dEtaMinBarrel_, dEtaMinEndcaps_, dphimatchmax, dphimatchmin, dphimax, dPhiMaxBarrel_, dPhiMaxEndcaps_, dphimin, dPhiMinBarrel_, dPhiMinEndcaps_, ecalIso03MaxBarrel_, ecalIso03MaxEndcaps_, electronCollection_, eopmax, eopmaxsht, eOverPMaxBarrel_, eOverPMaxEndcaps_, eOverPMinBarrel_, eOverPMinEndcaps_, etamax, etamin, fhitsmax, edm::ParameterSet::getParameter(), gsftrackCollection_, hadronicOverEmMaxBarrel_, hadronicOverEmMaxEndcaps_, hcalIso03Depth1MaxBarrel_, hcalIso03Depth1MaxEndcaps_, hcalIso03Depth2MaxEndcaps_, hoemax, hoemin, isEB_, isEcalDriven_, isEE_, isNotEBEEGap_, isTrackerDriven_, lhitsmax, matchingCondition_, matchingObjectCollection_, maxAbsEta_, maxAbsEtaMatchingObject_, maxPtMatchingObject_, meemax, meemin, minEt_, minPt_, mvaMin_, nbindeta, nbindetamatch, nbindetamatch2D, nbindphi, nbindphimatch, nbindphimatch2D, nbineop, nbineop2D, nbineta, nbineta2D, nbinfhits, nbinhoe, nbinlhits, nbinmee, nbinp, nbinp2D, nbinphi, nbinphi2D, nbinpoptrue, nbinpt, nbinpt2D, nbinpteff, nbinxyz, nbinxyz2D, phimax, phimin, pmax, poptruemax, poptruemin, ptmax, readAOD_, Selection_, sigIetaIetaMaxBarrel_, sigIetaIetaMaxEndcaps_, sigIetaIetaMinBarrel_, sigIetaIetaMinEndcaps_, tipMaxBarrel_, tipMaxEndcaps_, tkIso03Max_, trackCollection_, triggerResults_, and vertexCollection_.

 : ElectronDqmAnalyzerBase(conf)
 {
  // general, collections
  Selection_ = conf.getParameter<int>("Selection");
  electronCollection_ = conf.getParameter<edm::InputTag>("ElectronCollection");
  matchingObjectCollection_ = conf.getParameter<edm::InputTag>("MatchingObjectCollection");
  trackCollection_ = conf.getParameter<edm::InputTag>("TrackCollection");
  vertexCollection_ = conf.getParameter<edm::InputTag>("VertexCollection");
  gsftrackCollection_ = conf.getParameter<edm::InputTag>("GsfTrackCollection");
  beamSpotTag_ = conf.getParameter<edm::InputTag>("BeamSpot");
  readAOD_ = conf.getParameter<bool>("ReadAOD");

  // matching
  matchingCondition_ = conf.getParameter<std::string>("MatchingCondition");
  assert (matchingCondition_=="Cone") ;
  maxPtMatchingObject_ = conf.getParameter<double>("MaxPtMatchingObject");
  maxAbsEtaMatchingObject_ = conf.getParameter<double>("MaxAbsEtaMatchingObject");
  deltaR_ = conf.getParameter<double>("DeltaR");

  // electron selection
  minEt_ = conf.getParameter<double>("MinEt");
  minPt_ = conf.getParameter<double>("MinPt");
  maxAbsEta_ = conf.getParameter<double>("MaxAbsEta");
  isEB_ = conf.getParameter<bool>("SelectEb");
  isEE_ = conf.getParameter<bool>("SelectEe");
  isNotEBEEGap_ = conf.getParameter<bool>("SelectNotEbEeGap");
  isEcalDriven_ = conf.getParameter<bool>("SelectEcalDriven");
  isTrackerDriven_ = conf.getParameter<bool>("SelectTrackerDriven");
  eOverPMinBarrel_ = conf.getParameter<double>("MinEopBarrel");
  eOverPMaxBarrel_ = conf.getParameter<double>("MaxEopBarrel");
  eOverPMinEndcaps_ = conf.getParameter<double>("MinEopEndcaps");
  eOverPMaxEndcaps_ = conf.getParameter<double>("MaxEopEndcaps");
  dEtaMinBarrel_ = conf.getParameter<double>("MinDetaBarrel");
  dEtaMaxBarrel_ = conf.getParameter<double>("MaxDetaBarrel");
  dEtaMinEndcaps_ = conf.getParameter<double>("MinDetaEndcaps");
  dEtaMaxEndcaps_ = conf.getParameter<double>("MaxDetaEndcaps");
  dPhiMinBarrel_ = conf.getParameter<double>("MinDphiBarrel");
  dPhiMaxBarrel_ = conf.getParameter<double>("MaxDphiBarrel");
  dPhiMinEndcaps_ = conf.getParameter<double>("MinDphiEndcaps");
  dPhiMaxEndcaps_ = conf.getParameter<double>("MaxDphiEndcaps");
  sigIetaIetaMinBarrel_ = conf.getParameter<double>("MinSigIetaIetaBarrel");
  sigIetaIetaMaxBarrel_ = conf.getParameter<double>("MaxSigIetaIetaBarrel");
  sigIetaIetaMinEndcaps_ = conf.getParameter<double>("MinSigIetaIetaEndcaps");
  sigIetaIetaMaxEndcaps_ = conf.getParameter<double>("MaxSigIetaIetaEndcaps");
  hadronicOverEmMaxBarrel_ = conf.getParameter<double>("MaxHoeBarrel");
  hadronicOverEmMaxEndcaps_ = conf.getParameter<double>("MaxHoeEndcaps");
  mvaMin_ = conf.getParameter<double>("MinMva");
  tipMaxBarrel_ = conf.getParameter<double>("MaxTipBarrel");
  tipMaxEndcaps_ = conf.getParameter<double>("MaxTipEndcaps");
  tkIso03Max_ = conf.getParameter<double>("MaxTkIso03");
  hcalIso03Depth1MaxBarrel_ = conf.getParameter<double>("MaxHcalIso03Depth1Barrel");
  hcalIso03Depth1MaxEndcaps_ = conf.getParameter<double>("MaxHcalIso03Depth1Endcaps");
  hcalIso03Depth2MaxEndcaps_ = conf.getParameter<double>("MaxHcalIso03Depth2Endcaps");
  ecalIso03MaxBarrel_ = conf.getParameter<double>("MaxEcalIso03Barrel");
  ecalIso03MaxEndcaps_ = conf.getParameter<double>("MaxEcalIso03Endcaps");

  // for trigger
  triggerResults_ = conf.getParameter<edm::InputTag>("TriggerResults");
//  HLTPathsByName_= conf.getParameter<std::vector<std::string > >("HltPaths");
//  HLTPathsByIndex_.resize(HLTPathsByName_.size());

  // histos limits and binning
  nbineta=conf.getParameter<int>("NbinEta");
  nbineta2D=conf.getParameter<int>("NbinEta2D");
  etamin=conf.getParameter<double>("EtaMin");
  etamax=conf.getParameter<double>("EtaMax");
  //
  nbinphi=conf.getParameter<int>("NbinPhi");
  nbinphi2D=conf.getParameter<int>("NbinPhi2D");
  phimin=conf.getParameter<double>("PhiMin");
  phimax=conf.getParameter<double>("PhiMax");
  //
  nbinpt=conf.getParameter<int>("NbinPt");
  nbinpteff=conf.getParameter<int>("NbinPtEff");
  nbinpt2D=conf.getParameter<int>("NbinPt2D");
  ptmax=conf.getParameter<double>("PtMax");
  //
  nbinp=conf.getParameter<int>("NbinP");
  nbinp2D=conf.getParameter<int>("NbinP2D");
  pmax=conf.getParameter<double>("PMax");
  //
  nbineop=conf.getParameter<int>("NbinEop");
  nbineop2D=conf.getParameter<int>("NbinEop2D");
  eopmax=conf.getParameter<double>("EopMax");
  eopmaxsht=conf.getParameter<double>("EopMaxSht");
  //
  nbindeta=conf.getParameter<int>("NbinDeta");
  detamin=conf.getParameter<double>("DetaMin");
  detamax=conf.getParameter<double>("DetaMax");
  //
  nbindphi=conf.getParameter<int>("NbinDphi");
  dphimin=conf.getParameter<double>("DphiMin");
  dphimax=conf.getParameter<double>("DphiMax");
  //
  nbindetamatch=conf.getParameter<int>("NbinDetaMatch");
  nbindetamatch2D=conf.getParameter<int>("NbinDetaMatch2D");
  detamatchmin=conf.getParameter<double>("DetaMatchMin");
  detamatchmax=conf.getParameter<double>("DetaMatchMax");
  //
  nbindphimatch=conf.getParameter<int>("NbinDphiMatch");
  nbindphimatch2D=conf.getParameter<int>("NbinDphiMatch2D");
  dphimatchmin=conf.getParameter<double>("DphiMatchMin");
  dphimatchmax=conf.getParameter<double>("DphiMatchMax");
  //
  nbinfhits=conf.getParameter<int>("NbinFhits");
  fhitsmax=conf.getParameter<double>("FhitsMax");
  //
  nbinlhits=conf.getParameter<int>("NbinLhits");
  lhitsmax=conf.getParameter<double>("LhitsMax");
  //
  nbinxyz=conf.getParameter<int>("NbinXyz");
  nbinxyz2D=conf.getParameter<int>("NbinXyz2D");
  //
  nbinpoptrue= conf.getParameter<int>("NbinPopTrue");
  poptruemin=conf.getParameter<double>("PopTrueMin");
  poptruemax=conf.getParameter<double>("PopTrueMax");
  //
  nbinmee= conf.getParameter<int>("NbinMee");
  meemin=conf.getParameter<double>("MeeMin");
  meemax=conf.getParameter<double>("MeeMax");
  //
  nbinhoe= conf.getParameter<int>("NbinHoe");
  hoemin=conf.getParameter<double>("HoeMin");
  hoemax=conf.getParameter<double>("HoeMax");
 }
ElectronAnalyzer::~ElectronAnalyzer ( ) [virtual]

Definition at line 157 of file ElectronAnalyzer.cc.

 {}

Member Function Documentation

void ElectronAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup c 
) [virtual]

Reimplemented from ElectronDqmAnalyzerBase.

Definition at line 317 of file ElectronAnalyzer.cc.

References abs, beamSpotTag_, computeInvMass(), deltaR(), deltaR_, electronCollection_, edm::EventID::event(), funct::false, MonitorElement::Fill(), edm::Event::getByLabel(), gsfElectrons_cfi::gsfElectrons, gsftrackCollection_, h1_chi2, h1_classes, h1_dEtaEleCl_propOut_barrel, h1_dEtaEleCl_propOut_endcaps, h1_dEtaSc_propVtx_barrel, h1_dEtaSc_propVtx_endcaps, h1_dPhiEleCl_propOut_barrel, h1_dPhiEleCl_propOut_endcaps, h1_dPhiSc_propVtx_barrel, h1_dPhiSc_propVtx_endcaps, h1_ecalRecHitSumEt_dr03, h1_EeleOPout_barrel, h1_EeleOPout_endcaps, h1_Eop_barrel, h1_Eop_endcaps, h1_fbrem, h1_foundHits, h1_hcalTowerSumEt_dr03, h1_Hoe_barrel, h1_Hoe_endcaps, h1_lostHits, h1_matchedObject_Eta, h1_matchedObject_Phi, h1_matchedObject_Pt, h1_matchingObject_Eta, h1_matchingObject_Phi, h1_matchingObject_Pt, h1_mee, h1_mee_os, h1_mva, h1_provenance, h1_sclEt, h1_sclSigEtaEta_barrel, h1_sclSigEtaEta_endcaps, h1_tkSumPt_dr03, h1_vertexEta, h1_vertexPt_barrel, h1_vertexPt_endcaps, h1_vertexZ, h2_vertexEtaVsPhi, h2_vertexXvsY, edm::EventBase::id(), edm::EventBase::luminosityBlock(), matchingCondition_, matchingObjectCollection_, maxAbsEtaMatchingObject_, maxPtMatchingObject_, nEvents_, pi, reco::BeamSpot::position(), funct::pow(), edm::Handle< T >::product(), py_chi2VsEta, py_chi2VsPhi, py_dEtaSc_propVtxVsPhi, py_dPhiSc_propVtxVsPhi, py_EopVsPhi, py_fbremVsEta, py_fbremVsPhi, py_foundHitsVsEta, py_foundHitsVsPhi, py_HoeVsPhi, py_lostHitsVsEta, py_lostHitsVsPhi, dttmaxenums::R, readAOD_, edm::EventID::run(), selected(), mathSSE::sqrt(), trackCollection_, testEve_cfg::tracks, and vertexCollection_.

{
  nEvents_++ ;
//  if (!trigger(iEvent)) return ;
//  nAfterTrigger_++ ;

//  edm::Handle<SuperClusterCollection> barrelSCs ;
//  iEvent.getByLabel("correctedHybridSuperClusters",barrelSCs) ;
//  edm::Handle<SuperClusterCollection> endcapsSCs ;
//  iEvent.getByLabel("correctedMulti5x5SuperClustersWithPreshower",endcapsSCs) ;
//  std::cout<<"[ElectronMcSignalValidator::analyze]"
//    <<"Event "<<iEvent.id()
//    <<" has "<<barrelSCs.product()->size()<<" barrel superclusters"
//    <<" and "<<endcapsSCs.product()->size()<<" endcaps superclusters" ;
//
  edm::Handle<GsfElectronCollection> gsfElectrons ;
  iEvent.getByLabel(electronCollection_,gsfElectrons) ;
  edm::Handle<reco::SuperClusterCollection> recoClusters ;
  iEvent.getByLabel(matchingObjectCollection_,recoClusters) ;
  edm::Handle<reco::TrackCollection> tracks;
  iEvent.getByLabel(trackCollection_,tracks);
  edm::Handle<reco::GsfTrackCollection> gsfTracks;
  iEvent.getByLabel(gsftrackCollection_,gsfTracks);
  edm::Handle<reco::VertexCollection> vertices;
  iEvent.getByLabel(vertexCollection_,vertices);
  edm::Handle<reco::BeamSpot> recoBeamSpotHandle ;
  iEvent.getByLabel(beamSpotTag_,recoBeamSpotHandle) ;
  const BeamSpot bs = *recoBeamSpotHandle ;

  int ievt = iEvent.id().event();
  int irun = iEvent.id().run();
  int ils = iEvent.luminosityBlock();

  edm::LogInfo("ElectronAnalyzer::analyze")
    <<"Treating "<<gsfElectrons.product()->size()<<" electrons"
    <<" from event "<<ievt<<" in run "<<irun<<" and lumiblock "<<ils ;
  //h1_num_->Fill((*gsfElectrons).size()) ;

  // selected rec electrons
  reco::GsfElectronCollection::const_iterator gsfIter ;
  for
   ( gsfIter=gsfElectrons->begin() ;
     gsfIter!=gsfElectrons->end();
     gsfIter++ )
   {
    // vertex TIP
    double vertexTIP =
     (gsfIter->vertex().x()-bs.position().x()) * (gsfIter->vertex().x()-bs.position().x()) +
     (gsfIter->vertex().y()-bs.position().y()) * (gsfIter->vertex().y()-bs.position().y()) ;
    vertexTIP = sqrt(vertexTIP) ;

    // select electrons
    if (!selected(gsfIter,vertexTIP)) continue ;

    // basic quantities
    if (gsfIter->isEB()) h1_vertexPt_barrel->Fill( gsfIter->pt() );
    if (gsfIter->isEE()) h1_vertexPt_endcaps->Fill( gsfIter->pt() );
    h1_vertexEta->Fill( gsfIter->eta() );
//    h1_vertexPhi->Fill( gsfIter->phi() );
    h2_vertexEtaVsPhi->Fill( gsfIter->eta(), gsfIter->phi() );
//    h1_vertexX->Fill( gsfIter->vertex().x() );
//    h1_vertexY->Fill( gsfIter->vertex().y() );
    h2_vertexXvsY->Fill( gsfIter->vertex().x(), gsfIter->vertex().y() );
    h1_vertexZ->Fill( gsfIter->vertex().z() );
//    h1_vertexP->Fill( gsfIter->p() );
//    h1_Et->Fill( gsfIter->superCluster()->energy()/cosh( gsfIter->superCluster()->eta()) );
//    h1_vertexTIP->Fill( vertexTIP );
//    h1_charge->Fill( gsfIter->charge() );

    // supercluster related distributions
    reco::SuperClusterRef sclRef = gsfIter->superCluster() ;
    // ALREADY DONE IN GSF ELECTRON CORE
    //    if (!gsfIter->ecalDrivenSeed()&&gsfIter->trackerDrivenSeed())
    //      sclRef = gsfIter->pflowSuperCluster() ;
//    h1_sclEn->Fill(sclRef->energy());
//    h1_sclEta->Fill(sclRef->eta());
//    h1_sclPhi->Fill(sclRef->phi());
    double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
    double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
    h1_sclEt->Fill(sclRef->energy()*(Rt/R));

    // track related distributions
//    h1_ambiguousTracks->Fill( gsfIter->ambiguousGsfTracksSize() );
//    h2_ambiguousTracksVsEta->Fill( gsfIter->eta(), gsfIter->ambiguousGsfTracksSize() );
//    h2_ambiguousTracksVsPhi->Fill( gsfIter->phi(), gsfIter->ambiguousGsfTracksSize() );
//    h2_ambiguousTracksVsPt->Fill( gsfIter->pt(), gsfIter->ambiguousGsfTracksSize() );
    if (!readAOD_)
     { // track extra does not exist in AOD
      h1_foundHits->Fill( gsfIter->gsfTrack()->numberOfValidHits() );
      py_foundHitsVsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->numberOfValidHits() );
      py_foundHitsVsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->numberOfValidHits() );
      //h2_foundHitsVsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->numberOfValidHits() );
      h1_lostHits->Fill( gsfIter->gsfTrack()->numberOfLostHits() );
      py_lostHitsVsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->numberOfLostHits() );
      py_lostHitsVsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->numberOfLostHits() );
      //h2_lostHitsVsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->numberOfLostHits() );
      h1_chi2->Fill( gsfIter->gsfTrack()->normalizedChi2() );
      py_chi2VsEta->Fill( gsfIter->eta(), gsfIter->gsfTrack()->normalizedChi2() );
      py_chi2VsPhi->Fill( gsfIter->phi(), gsfIter->gsfTrack()->normalizedChi2() );
      //h2_chi2VsPt->Fill( gsfIter->pt(), gsfIter->gsfTrack()->normalizedChi2() );
     }

    // match distributions
    if (gsfIter->isEB())
     {
      h1_Eop_barrel->Fill( gsfIter->eSuperClusterOverP() );
      h1_EeleOPout_barrel->Fill( gsfIter->eEleClusterOverPout() );
      h1_dEtaSc_propVtx_barrel->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
      h1_dEtaEleCl_propOut_barrel->Fill(gsfIter->deltaEtaEleClusterTrackAtCalo());
      h1_dPhiSc_propVtx_barrel->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
      h1_dPhiEleCl_propOut_barrel->Fill(gsfIter->deltaPhiEleClusterTrackAtCalo());
      h1_Hoe_barrel->Fill(gsfIter->hadronicOverEm());
      h1_sclSigEtaEta_barrel->Fill( gsfIter->scSigmaEtaEta() );
     }
    if (gsfIter->isEE())
     {
      h1_Eop_endcaps->Fill( gsfIter->eSuperClusterOverP() );
      h1_EeleOPout_endcaps->Fill( gsfIter->eEleClusterOverPout() );
      h1_dEtaSc_propVtx_endcaps->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx());
      h1_dEtaEleCl_propOut_endcaps->Fill(gsfIter->deltaEtaEleClusterTrackAtCalo());
      h1_dPhiSc_propVtx_endcaps->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx());
      h1_dPhiEleCl_propOut_endcaps->Fill(gsfIter->deltaPhiEleClusterTrackAtCalo());
      h1_Hoe_endcaps->Fill(gsfIter->hadronicOverEm());
      h1_sclSigEtaEta_endcaps->Fill( gsfIter->scSigmaEtaEta() );
     }
    py_EopVsPhi->Fill( gsfIter->phi(), gsfIter->eSuperClusterOverP() );
//    h2_EopVsPt->Fill( gsfIter->pt(), gsfIter->eSuperClusterOverP() );
//    h2_EeleOPoutVsPhi->Fill( gsfIter->phi(), gsfIter->eEleClusterOverPout() );
//    h2_EeleOPoutVsPt->Fill( gsfIter->pt(), gsfIter->eEleClusterOverPout() );
    py_dEtaSc_propVtxVsPhi->Fill(gsfIter->phi(), gsfIter->deltaEtaSuperClusterTrackAtVtx());
//    h2_dEtaSc_propVtxVsPt->Fill(gsfIter->pt(), gsfIter->deltaEtaSuperClusterTrackAtVtx());
//    h2_dEtaEleCl_propOutVsPhi->Fill(gsfIter->phi(), gsfIter->deltaEtaEleClusterTrackAtCalo());
//    h2_dEtaEleCl_propOutVsPt->Fill(gsfIter->pt(), gsfIter->deltaEtaEleClusterTrackAtCalo());
    py_dPhiSc_propVtxVsPhi->Fill(gsfIter->phi(), gsfIter->deltaPhiSuperClusterTrackAtVtx());
//    h2_dPhiSc_propVtxVsPt->Fill(gsfIter->pt(), gsfIter->deltaPhiSuperClusterTrackAtVtx());
//    h2_dPhiEleCl_propOutVsPhi->Fill(gsfIter->phi(), gsfIter->deltaPhiEleClusterTrackAtCalo());
//    h2_dPhiEleCl_propOutVsPt->Fill(gsfIter->pt(), gsfIter->deltaPhiEleClusterTrackAtCalo());
    py_HoeVsPhi->Fill(gsfIter->phi(), gsfIter->hadronicOverEm());
//    h2_HoeVsPt->Fill(gsfIter->pt(), gsfIter->hadronicOverEm());

//    // from gsf track interface, hence using mean
//    if (!readAOD_)
//     { // track extra does not exist in AOD
//      h_PinMnPout->Fill( gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R() );
//      //h_outerP->Fill( gsfIter->gsfTrack()->outerMomentum().R() );
//      h_innerPt_mean->Fill( gsfIter->gsfTrack()->innerMomentum().Rho() );
//      h_outerPt_mean->Fill( gsfIter->gsfTrack()->outerMomentum().Rho() );
//     }
//
//    // from electron interface, hence using mode
//    h_PinMnPout_mode->Fill( gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R() );
//    //h_outerP_mode->Fill( gsfIter->trackMomentumOut().R() );
//    h_outerPt_mode->Fill( gsfIter->trackMomentumOut().Rho() );
//

    // fbrem, classes
    h1_fbrem->Fill(gsfIter->fbrem()) ;
    py_fbremVsEta->Fill(gsfIter->eta(),gsfIter->fbrem()) ;
    py_fbremVsPhi->Fill(gsfIter->phi(),gsfIter->fbrem()) ;
//    h2_fbremVsPt->Fill(gsfIter->pt(),gsfIter->fbrem()) ;
    int eleClass = gsfIter->classification() ;
    if (gsfIter->isEE()) eleClass+=5;
    h1_classes->Fill(eleClass) ;


    // pflow
    h1_mva->Fill(gsfIter->mva()) ;
    if (gsfIter->ecalDrivenSeed()) h1_provenance->Fill(1.) ;
    if (gsfIter->trackerDrivenSeed()) h1_provenance->Fill(-1.) ;
    if (gsfIter->trackerDrivenSeed()||gsfIter->ecalDrivenSeed()) h1_provenance->Fill(0.);
    if (gsfIter->trackerDrivenSeed()&&!gsfIter->ecalDrivenSeed()) h1_provenance->Fill(-2.);
    if (!gsfIter->trackerDrivenSeed()&&gsfIter->ecalDrivenSeed()) h1_provenance->Fill(2.);

    // isolation
    h1_tkSumPt_dr03->Fill(gsfIter->dr03TkSumPt());
    h1_ecalRecHitSumEt_dr03->Fill(gsfIter->dr03EcalRecHitSumEt());
    h1_hcalTowerSumEt_dr03->Fill(gsfIter->dr03HcalTowerSumEt());
//    h1_hcalDepth1TowerSumEt_dr03->Fill(gsfIter->dr03HcalDepth1TowerSumEt());
//    h1_hcalDepth2TowerSumEt_dr03->Fill(gsfIter->dr03HcalDepth2TowerSumEt());
//    h1_tkSumPt_dr04->Fill(gsfIter->dr04TkSumPt());
//    h1_ecalRecHitSumEt_dr04->Fill(gsfIter->dr04EcalRecHitSumEt());
//    h1_hcalTowerSumEt_dr04->Fill(gsfIter->dr04HcalTowerSumEt());

   }

  // association matching object-reco electrons
  int matchingObjectNum=0;
  reco::SuperClusterCollection::const_iterator moIter ;
  for
   ( moIter=recoClusters->begin() ;
     moIter!=recoClusters->end() ;
     moIter++ )
   {
//    // number of matching objects
     matchingObjectNum++;

    if
     ( moIter->energy()/cosh(moIter->eta())>maxPtMatchingObject_ ||
       std::abs(moIter->eta())> maxAbsEtaMatchingObject_ )
     { continue ; }

//    // suppress the endcaps
//    //if (std::abs(moIter->eta()) > 1.5) continue;
//    // select central z
//    //if ( std::abs((*mcIter)->production_vertex()->position().z())>50.) continue;

    h1_matchingObject_Eta->Fill( moIter->eta() );
//    h1_matchingObject_AbsEta->Fill( std::abs(moIter->eta()) );
//    h1_matchingObject_P->Fill( moIter->energy() );
    h1_matchingObject_Pt->Fill( moIter->energy()/cosh(moIter->eta()) );
    h1_matchingObject_Phi->Fill( moIter->phi() );
//    h1_matchingObject_Z->Fill(  moIter->z() );

    bool okGsfFound = false ;
    double gsfOkRatio = 999999999. ;
    reco::GsfElectron bestGsfElectron ;
    reco::GsfElectronCollection::const_iterator gsfIter ;
    for
     ( gsfIter=gsfElectrons->begin() ;
       gsfIter!=gsfElectrons->end() ;
       gsfIter++ )
     {
      reco::GsfElectronCollection::const_iterator gsfIter2 ;
      for
       ( gsfIter2=gsfIter+1;
         gsfIter2!=gsfElectrons->end() ;
         gsfIter2++ )
       {
        float invMass = computeInvMass(*gsfIter,*gsfIter2) ;
        if(matchingObjectNum == 1){h1_mee->Fill(invMass) ;}
        if ((matchingObjectNum == 1) && (((gsfIter->charge())*(gsfIter2->charge()))<0.))
         { h1_mee_os->Fill(invMass) ; }
       }

      double vertexTIP =
       (gsfIter->vertex().x()-bs.position().x()) * (gsfIter->vertex().x()-bs.position().x()) +
       (gsfIter->vertex().y()-bs.position().y()) * (gsfIter->vertex().y()-bs.position().y()) ;
      vertexTIP = sqrt(vertexTIP) ;

      // select electrons
      if (!selected(gsfIter,vertexTIP)) continue ;

      // matching with a cone in eta phi
      if ( matchingCondition_ == "Cone" )
       {
        double dphi = gsfIter->phi()-moIter->phi() ;
        if (std::abs(dphi)>CLHEP::pi)
         { dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi ; }
        double deltaR = sqrt(pow((moIter->eta()-gsfIter->eta()),2) + pow(dphi,2)) ;
        if ( deltaR < deltaR_ )
         {
          //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) &&
          //(gsfIter->charge() > 0.) ){
          double tmpGsfRatio = gsfIter->p()/moIter->energy() ;
          if ( std::abs(tmpGsfRatio-1) < std::abs(gsfOkRatio-1) )
           {
            gsfOkRatio = tmpGsfRatio;
            bestGsfElectron=*gsfIter;
            okGsfFound = true;
           }
          //}
         }
       }
     } // loop over rec ele to look for the best one
    if (okGsfFound)
     {
      // generated distributions for matched electrons
      h1_matchedObject_Eta->Fill( moIter->eta() );
    //  h1_matchedObject_AbsEta->Fill( std::abs(moIter->eta()) );
      h1_matchedObject_Pt->Fill( moIter->energy()/cosh(moIter->eta()) );
      h1_matchedObject_Phi->Fill( moIter->phi() );
    //  h1_matchedObject_Z->Fill( moIter->z() );

      //classes
    //  int eleClass = bestGsfElectron.classification() ;
    //  h_classes->Fill(eleClass) ;
    //  h_matchedEle_eta->Fill(std::abs(bestGsfElectron.eta()));
    //  if (bestGsfElectron.classification() == GsfElectron::GOLDEN) h_matchedEle_eta_golden->Fill(std::abs(bestGsfElectron.eta()));
    //  if (bestGsfElectron.classification() == GsfElectron::SHOWERING) h_matchedEle_eta_shower->Fill(std::abs(bestGsfElectron.eta()));
    //  //if (bestGsfElectron.classification() == GsfElectron::BIGBREM) h_matchedEle_eta_bbrem->Fill(std::abs(bestGsfElectron.eta()));
    //  //if (bestGsfElectron.classification() == GsfElectron::OLDNARROW) h_matchedEle_eta_narrow->Fill(std::abs(bestGsfElectron.eta()));
     }

   } // loop overmatching object

//  h_matchingObject_Num->Fill(matchingObjectNum) ;

 }
void ElectronAnalyzer::book ( ) [virtual]

Reimplemented from ElectronDqmAnalyzerBase.

Definition at line 160 of file ElectronAnalyzer.cc.

References ElectronDqmAnalyzerBase::bookH1(), ElectronDqmAnalyzerBase::bookH1withSumw2(), ElectronDqmAnalyzerBase::bookH2(), ElectronDqmAnalyzerBase::bookP1(), detamatchmax, detamatchmin, dphimatchmax, dphimatchmin, eopmax, etamax, etamin, fhitsmax, h1_chi2, h1_classes, h1_dEtaEleCl_propOut_barrel, h1_dEtaEleCl_propOut_endcaps, h1_dEtaSc_propVtx_barrel, h1_dEtaSc_propVtx_endcaps, h1_dPhiEleCl_propOut_barrel, h1_dPhiEleCl_propOut_endcaps, h1_dPhiSc_propVtx_barrel, h1_dPhiSc_propVtx_endcaps, h1_ecalRecHitSumEt_dr03, h1_EeleOPout_barrel, h1_EeleOPout_endcaps, h1_Eop_barrel, h1_Eop_endcaps, h1_fbrem, h1_foundHits, h1_hcalTowerSumEt_dr03, h1_Hoe_barrel, h1_Hoe_endcaps, h1_lostHits, h1_matchedObject_Eta, h1_matchedObject_Phi, h1_matchedObject_Pt, h1_matchingObject_Eta, h1_matchingObject_Phi, h1_matchingObject_Pt, h1_mee, h1_mee_os, h1_mva, h1_provenance, h1_sclEt, h1_sclSigEtaEta_barrel, h1_sclSigEtaEta_endcaps, h1_tkSumPt_dr03, h1_vertexEta, h1_vertexPt_barrel, h1_vertexPt_endcaps, h1_vertexZ, h2_vertexEtaVsPhi, h2_vertexXvsY, hoemax, hoemin, edm::InputTag::label(), lhitsmax, matchingObjectCollection_, meemax, meemin, nbindetamatch, nbindphimatch, nbineop, nbineta, nbineta2D, nbinfhits, nbinhoe, nbinmee, nbinphi, nbinphi2D, nbinpt, nbinpteff, nbinxyz, nbinxyz2D, nEvents_, phimax, phimin, ptmax, py_chi2VsEta, py_chi2VsPhi, py_dEtaSc_propVtxVsPhi, py_dPhiSc_propVtxVsPhi, py_EopVsPhi, py_fbremVsEta, py_fbremVsPhi, py_foundHitsVsEta, py_foundHitsVsPhi, py_HoeVsPhi, py_lostHitsVsEta, py_lostHitsVsPhi, and ElectronDqmAnalyzerBase::setBookIndex().

 {
  nEvents_ = 0 ;
  //nAfterTrigger_ = 0 ;


  // basic quantities
//  h1_num_= bookH1("num","# rec electrons",20, 0.,20.,"N_{ele}");
//  h1_vertexP = bookH1("vertexP",        "ele p at vertex",       nbinp,0.,pmax,"p_{vertex} (GeV/c)");
//  h1_Et = bookH1("Et","ele SC transverse energy",  nbinpt,0.,ptmax,"E_{T} (GeV)");
//  h1_vertexTIP = bookH1("vertexTIP","ele transverse impact parameter (wrt bs)",90,0.,0.15,"TIP (cm)");
//  h1_charge = bookH1("charge","ele charge",5,-2.,2.,"charge");
  h1_vertexPt_barrel = bookH1("vertexPt_barrel","ele transverse momentum in barrel",nbinpt,0.,ptmax,"p_{T vertex} (GeV/c)");
  h1_vertexPt_endcaps = bookH1("vertexPt_endcaps","ele transverse momentum in endcaps",nbinpt,0.,ptmax,"p_{T vertex} (GeV/c)");
  h1_vertexEta = bookH1("vertexEta","ele momentum #eta",nbineta,etamin,etamax,"#eta");
//  h1_vertexPhi = bookH1("vertexPhi","ele  momentum #phi",nbinphi,phimin,phimax,"#phi (rad)");
  h2_vertexEtaVsPhi = bookH2("vertexEtaVsPhi","ele momentum #eta vs #phi",nbineta2D,etamin,etamax,nbinphi2D,phimin,phimax,"#eta","#phi (rad)");
//  h1_vertexX = bookH1("vertexX","ele vertex x",nbinxyz,-0.1,0.1,"x (cm)");
//  h1_vertexY = bookH1("vertexY","ele vertex y",nbinxyz,-0.1,0.1,"y (cm)");
  h2_vertexXvsY = bookH2("vertexXvsY","ele vertex x vs y",nbinxyz2D,-0.1,0.1,nbinxyz2D,-0.1,0.1,"x (cm)","y (cm)");
  h1_vertexZ = bookH1("vertexZ","ele vertex z",nbinxyz,-25, 25,"z (cm)");

  // super-clusters
//  h1_sclEn = bookH1("sclEnergy","ele supercluster energy",nbinp,0.,pmax,"E (GeV)");
//  h1_sclEta = bookH1("sclEta","ele supercluster #eta",nbineta,etamin,etamax,"#eta");
//  h1_sclPhi = bookH1("sclPhi","ele supercluster #phi",nbinphi,phimin,phimax,"#phi (rad)");
  h1_sclEt = bookH1("sclEt","ele supercluster transverse energy",nbinpt,0.,ptmax,"E_{T} (GeV)");

  // electron track
//  h1_ambiguousTracks = bookH1("ambiguousTracks","ele # ambiguous tracks",  5,0.,5.,"N_{amb. tk}");
//  h2_ambiguousTracksVsEta = bookH2("ambiguousTracksVsEta","ele # ambiguous tracks  vs #eta",  nbineta2D,etamin,etamax,5,0.,5.,"#eta","N_{amb. tk}");
//  h2_ambiguousTracksVsPhi = bookH2("ambiguousTracksVsPhi","ele # ambiguous tracks  vs #phi",  nbinphi2D,phimin,phimax,5,0.,5.,"#phi(rad)","N_{amb. tk}");
//  h2_ambiguousTracksVsPt = bookH2("ambiguousTracksVsPt","ele # ambiguous tracks vs pt",  nbinpt2D,0.,ptmax,5,0.,5.,"p_{T} (GeV/c),"N_{amb. tk}");
  h1_chi2 = bookH1("chi2","ele track #chi^{2}",100,0.,15.,"#Chi^{2}");
  py_chi2VsEta = bookP1("chi2VsEta","ele track #chi^{2} vs #eta",nbineta2D,etamin,etamax,0.,15.,"#eta","<#chi^{2}>");
  py_chi2VsPhi = bookP1("chi2VsPhi","ele track #chi^{2} vs #phi",nbinphi2D,phimin,phimax,0.,15.,"#phi (rad)","<#chi^{2}>");
  //h2_chi2VsPt = bookH2("chi2VsPt","ele track #chi^{2} vs pt",nbinpt2D,0.,ptmax,50,0.,15.,"p_{T} (GeV/c)","<#chi^{2}>");
  h1_foundHits = bookH1("foundHits","ele track # found hits",nbinfhits,0.,fhitsmax,"N_{hits}");
  py_foundHitsVsEta = bookP1("foundHitsVsEta","ele track # found hits vs #eta",nbineta2D,etamin,etamax,0.,fhitsmax,"#eta","<# hits>");
  py_foundHitsVsPhi = bookP1("foundHitsVsPhi","ele track # found hits vs #phi",nbinphi2D,phimin,phimax,0.,fhitsmax,"#phi (rad)","<# hits>");
//  h2_foundHitsVsPt = bookH2("foundHitsVsPt","ele track # found hits vs pt",nbinpt2D,0.,ptmax,nbinfhits,0.,fhitsmax,"p_{T} (GeV/c)","<# hits>");
  h1_lostHits = bookH1("lostHits","ele track # lost hits",5,0.,5.,"N_{lost hits}");
  py_lostHitsVsEta = bookP1("lostHitsVsEta","ele track # lost hits vs #eta",nbineta2D,etamin,etamax,0.,lhitsmax,"#eta","<# hits>");
  py_lostHitsVsPhi = bookP1("lostHitsVsPhi","ele track # lost hits vs #eta",nbinphi2D,phimin,phimax,0.,lhitsmax,"#phi (rad)","<# hits>");
//  h2_lostHitsVsPt = bookH2("lostHitsVsPt","ele track # lost hits vs #eta",nbinpt2D,0.,ptmax,nbinlhits,0.,lhitsmax,"p_{T} (GeV/c)","<# hits>");

  // electron matching and ID
  //h1_EoPout = bookH1( "EoPout","ele E/P_{out}",nbineop,0.,eopmax,"E_{seed}/P_{out}");
  //h1_dEtaCl_propOut = bookH1( "dEtaCl_propOut","ele #eta_{cl} - #eta_{tr}, prop from outermost",nbindetamatch,detamatchmin,detamatchmax,"#eta_{seedcl} - #eta_{tr}");
  //h1_dPhiCl_propOut = bookH1( "dPhiCl_propOut","ele #phi_{cl} - #phi_{tr}, prop from outermost",nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{seedcl} - #phi_{tr} (rad)");
  //h1_outerP = bookH1( "outerP","ele track outer p, mean",nbinp,0.,pmax,"P_{out} (GeV/c)");
  //h1_outerP_mode = bookH1( "outerP_mode","ele track outer p, mode",nbinp,0.,pmax,"P_{out} (GeV/c)");
  h1_Eop_barrel = bookH1( "Eop_barrel","ele E/P_{vertex} in barrel",nbineop,0.,eopmax,"E/P_{vertex}");
  h1_Eop_endcaps = bookH1( "Eop_endcaps","ele E/P_{vertex} in endcaps",nbineop,0.,eopmax,"E/P_{vertex}");
  py_EopVsPhi = bookP1("EopVsPhi","ele E/P_{vertex} vs #phi",nbinphi2D,phimin,phimax,0.,eopmax,"#phi (rad)","<E/P_{vertex}>");
//  h2_EopVsPt = bookH2("EopVsPt","ele E/P_{vertex} vs pt",nbinpt2D,0.,ptmax,nbineop,0.,eopmax,"p_{T} (GeV/c)","E/P_{vertex}");
  h1_EeleOPout_barrel = bookH1( "EeleOPout_barrel","ele E_{ele}/P_{out} in barrel",nbineop,0.,eopmax,"E_{ele}/P_{out}");
  h1_EeleOPout_endcaps = bookH1( "EeleOPout_endcaps","ele E_{ele}/P_{out} in endcaps",nbineop,0.,eopmax,"E_{ele}/P_{out}");
//  h2_EeleOPoutVsPhi = bookH2("EeleOPoutVsPhi","ele E_{ele}/P_{out} vs #phi",nbinphi2D,phimin,phimax,nbineop,0.,eopmax,"#phi","E_{ele}/P_{out}");
//  h2_EeleOPoutVsPt = bookH2("EeleOPoutVsPt","ele E_{ele}/P_{out} vs pt",nbinpt2D,0.,ptmax,nbineop,0.,eopmax,"p_{T} (GeV/c)","E_{ele}/P_{out}");
  h1_dEtaSc_propVtx_barrel = bookH1( "dEtaSc_propVtx_barrel","ele #eta_{sc} - #eta_{tr}, prop from vertex, in barrel",nbindetamatch,detamatchmin,detamatchmax,"#eta_{sc} - #eta_{tr}");
  h1_dEtaSc_propVtx_endcaps = bookH1( "dEtaSc_propVtx_endcaps","ele #eta_{sc} - #eta_{tr}, prop from vertex, in endcaps",nbindetamatch,detamatchmin,detamatchmax,"#eta_{sc} - #eta_{tr}");
  py_dEtaSc_propVtxVsPhi = bookP1("dEtaSc_propVtxVsPhi","ele #eta_{sc} - #eta_{tr}, prop from vertex vs #phi",nbinphi2D,phimin,phimax,detamatchmin,detamatchmax,"#phi (rad)","<#eta_{sc} - #eta_{tr}>");
//  h2_dEtaSc_propVtxVsPt = bookH2("dEtaSc_propVtxVsPt","ele #eta_{sc} - #eta_{tr}, prop from vertex vs pt",nbinpt2D,0.,ptmax,nbindetamatch,detamatchmin,detamatchmax,"#eta_{sc} - #eta_{tr}");
  h1_dEtaEleCl_propOut_barrel = bookH1( "dEtaEleCl_propOut_barrel","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, in barrel",nbindetamatch,detamatchmin,detamatchmax,"#eta_{elecl} - #eta_{tr}");
  h1_dEtaEleCl_propOut_endcaps = bookH1( "dEtaEleCl_propOut_endcaps","ele #eta_{EleCl} - #eta_{tr}, prop from outermost, in endcaps",nbindetamatch,detamatchmin,detamatchmax,"#eta_{elecl} - #eta_{tr}");
//  h2_dEtaEleCl_propOutVsPhi = bookH2("dEtaEleCl_propOutVsPhi","ele #eta_{EleCl} - #eta_{tr}, prop from outermost vs #phi",nbinphi2D,phimin,phimax,nbindetamatch,detamatchmin,detamatchmax,"#phi (rad)","#eta_{elecl} - #eta_{tr}");
//  h2_dEtaEleCl_propOutVsPt = bookH2("dEtaEleCl_propOutVsPt","ele #eta_{EleCl} - #eta_{tr}, prop from outermost vs pt",nbinpt2D,0.,ptmax,nbindetamatch,detamatchmin,detamatchmax,"p_{T} (GeV/c)","#eta_{elecl} - #eta_{tr}");
  h1_dPhiSc_propVtx_barrel = bookH1( "dPhiSc_propVtx_barrel","ele #phi_{sc} - #phi_{tr}, prop from vertex, in barrel",nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{sc} - #phi_{tr} (rad)");
  h1_dPhiSc_propVtx_endcaps = bookH1( "dPhiSc_propVtx_endcaps","ele #phi_{sc} - #phi_{tr}, prop from vertex, in endcaps",nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{sc} - #phi_{tr} (rad)");
  py_dPhiSc_propVtxVsPhi = bookP1("dPhiSc_propVtxVsPhi","ele #phi_{sc} - #phi_{tr}, prop from vertex vs #phi",nbinphi2D,phimin,phimax,dphimatchmin,dphimatchmax,"#phi (rad)","<#phi_{sc} - #phi_{tr}> (rad)");
//  h2_dPhiSc_propVtxVsPt = bookH2("dPhiSc_propVtxVsPt","ele #phi_{sc} - #phi_{tr}, prop from vertex vs pt",nbinpt2D,0.,ptmax,nbindphimatch,dphimatchmin,dphimatchmax,"p_{T} (GeV/c)","#phi_{sc} - #phi_{tr} (rad)");
  h1_dPhiEleCl_propOut_barrel = bookH1( "dPhiEleCl_propOut_barrel","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, in barrel",nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{elecl} - #phi_{tr} (rad)");
  h1_dPhiEleCl_propOut_endcaps = bookH1( "dPhiEleCl_propOut_endcaps","ele #phi_{EleCl} - #phi_{tr}, prop from outermost, in endcaps",nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{elecl} - #phi_{tr} (rad)");
//  h2_dPhiEleCl_propOutVsPhi = bookH2("dPhiEleCl_propOutVsPhi","ele #phi_{EleCl} - #phi_{tr}, prop from outermost vs #phi",nbinphi2D,phimin,phimax,nbindphimatch,dphimatchmin,dphimatchmax,"#phi_{elecl} - #phi_{tr} (rad)");
//  h2_dPhiEleCl_propOutVsPt = bookH2("dPhiEleCl_propOutVsPt","ele #phi_{EleCl} - #phi_{tr}, prop from outermost vs pt",nbinpt2D,0.,ptmax,nbindphimatch,dphimatchmin,dphimatchmax,"p_{T} (GeV/c)","#phi_{elecl} - #phi_{tr} (rad)");
  h1_Hoe_barrel = bookH1("Hoe_barrel","ele hadronic energy / em energy, in barrel", nbinhoe, hoemin, hoemax,"H/E","Events","ELE_LOGY E1 P") ;
  h1_Hoe_endcaps = bookH1("Hoe_endcaps","ele hadronic energy / em energy, in endcaps", nbinhoe, hoemin, hoemax,"H/E","Events","ELE_LOGY E1 P") ;
  py_HoeVsPhi = bookP1("HoeVsPhi","ele hadronic energy / em energy vs #phi",nbinphi2D,phimin,phimax,hoemin,hoemax,"#phi (rad)","<H/E>","E1 P") ;
//  h2_HoeVsPt = bookH2("HoeVsPt","ele hadronic energy / em energy vs pt",nbinpt2D,0.,ptmax,nbinhoe,hoemin,hoemax,"p_{T} (GeV/c)","<H/E>","ELE_LOGY COLZ") ;
  h1_sclSigEtaEta_barrel = bookH1("sclSigEtaEta_barrel","ele supercluster sigma ieta ieta in barrel",100,0.,0.05,"sietaieta");
  h1_sclSigEtaEta_endcaps = bookH1("sclSigEtaEta_endcaps","ele supercluster sigma ieta ieta in endcaps",100,0.,0.05,"sietaieta");

  // fbrem
//  h1_innerPt_mean = bookH1( "innerPt_mean","ele track inner p_{T}, mean",nbinpt,0.,ptmax,"P_{T in} (GeV/c)");
//  h1_outerPt_mean = bookH1( "outerPt_mean","ele track outer p_{T}, mean",nbinpt,0.,ptmax,"P_{T out} (GeV/c)");
//  h1_outerPt_mode = bookH1( "outerPt_mode","ele track outer p_{T}, mode",nbinpt,0.,ptmax,"P_{T out} (GeV/c)");
//  //h_PinMnPout_mode = bookH1( "PinMnPout_mode","ele track inner p - outer p, mode"   ,nbinp,0.,100.,"P_{in} - P_{out} (GeV/c)");
//  h1_PinMnPout = bookH1( "PinMnPout","ele track inner p - outer p, mean" ,nbinp,0.,200.,"P_{in} - P_{out} (GeV/c)");
//  h1_PinMnPout_mode = bookH1( "PinMnPout_mode","ele track inner p - outer p, mode",nbinp,0.,100.,"P_{in} - P_{out}, mode (GeV/c)");
  h1_fbrem = bookH1("fbrem","ele brem fraction",100,0.,1.,"P_{in} - P_{out} / P_{in}") ;
  py_fbremVsEta = bookP1("fbremVsEta","ele brem fraction vs #eta",nbineta2D,etamin,etamax,0.,1.,"#eta","<P_{in} - P_{out} / P_{in}>") ;
  py_fbremVsPhi = bookP1("fbremVsPhi","ele brem fraction vs #phi",nbinphi2D,phimin,phimax,0.,1.,"#phi (rad)","<P_{in} - P_{out} / P_{in}>") ;
//  h2_fbremVsPt = bookH2("fbremVsPt","ele brem fraction vs pt",nbinpt2D,0.,ptmax,100,0.,1.,"p_{T} (GeV/c)","<P_{in} - P_{out} / P_{in}>") ;
  h1_classes = bookH1("classes","ele electron classes",10,0.0,10.);

  // pflow
  h1_mva = bookH1( "mva","ele identification mva",100,-1.,1.,"mva");
  h1_provenance = bookH1( "provenance","ele provenance",5,-2.,3.,"provenance");

  // isolation
  h1_tkSumPt_dr03 = bookH1("tkSumPt_dr03","tk isolation sum, dR=0.3",100,0.0,20.,"TkIsoSum (GeV/c)","Events","ELE_LOGY E1 P");
  h1_ecalRecHitSumEt_dr03 = bookH1("ecalRecHitSumEt_dr03","ecal isolation sum, dR=0.3",100,0.0,20.,"EcalIsoSum (GeV)","Events","ELE_LOGY E1 P");
  h1_hcalTowerSumEt_dr03 = bookH1("hcalTowerSumEt_dr03","hcal isolation sum, dR=0.3",100,0.0,20.,"HcalIsoSum (GeV)","Events","ELE_LOGY E1 P");
//  h1_hcalDepth1TowerSumEt_dr03 = bookH1("hcalDepth1TowerSumEt_dr03","hcal depth1 isolation sum, dR=0.3",100,0.0,20.,"Hcal1IsoSum (GeV)","Events","ELE_LOGY E1 P");
//  h1_hcalDepth2TowerSumEt_dr03 = bookH1("hcalDepth2TowerSumEt_dr03","hcal depth2 isolation sum, dR=0.3",100,0.0,20.,"Hcal2IsoSum (GeV)","Events","ELE_LOGY E1 P");
//  h1_tkSumPt_dr04 = bookH1("tkSumPt_dr04","hcal isolation sum",100,0.0,20.,"TkIsoSum (GeV/c)","Events","ELE_LOGY E1 P");
//  h1_ecalRecHitSumEt_dr04 = bookH1("ecalRecHitSumEt_dr04","ecal isolation sum, dR=0.4",100,0.0,20.,"EcalIsoSum (GeV)","Events","ELE_LOGY E1 P");
//  h1_hcalTowerSumEt_dr04 = bookH1("hcalTowerSumEt_dr04","hcal isolation sum, dR=0.4",100,0.0,20.,"HcalIsoSum (GeV)","Events","ELE_LOGY E1 P");

  // di-electron mass
  setBookIndex(200) ;
  h1_mee = bookH1("mee","ele pairs invariant mass", nbinmee, meemin, meemax,"m_{ee} (GeV/c^{2})");
  h1_mee_os = bookH1("mee_os","ele pairs invariant mass, opposite sign", nbinmee, meemin, meemax,"m_{e^{+}e^{-}} (GeV/c^{2})");



  //===========================
  // histos for matching and matched matched objects
  //===========================

  // matching object
  std::string matchingObjectType ;
  if (std::string::npos!=matchingObjectCollection_.label().find("SuperCluster",0))
   { matchingObjectType = "SC" ; }
  if (matchingObjectType=="")
   { edm::LogError("ElectronMcFakeValidator::beginJob")<<"Unknown matching object type !" ; }
  else
   { edm::LogInfo("ElectronMcFakeValidator::beginJob")<<"Matching object type: "<<matchingObjectType ; }
//  std::string htitle = "# "+matchingObjectType+"s", xtitle = "N_{"+matchingObjectType+"}" ;
//  h1_matchingObject_Num = bookH1withSumw2("matchingObject_Num",htitle,nbinfhits,0.,fhitsmax,xtitle) ;

  // matching object distributions
  h1_matchingObject_Eta = bookH1withSumw2("matchingObject_Eta",matchingObjectType+" #eta",nbineta,etamin,etamax,"#eta_{SC}");
//  h1_matchingObject_AbsEta = bookH1withSumw2("matchingObject_AbsEta",matchingObjectType+" |#eta|",nbineta/2,0.,etamax,"|#eta|_{SC}");
//  h1_matchingObject_P = bookH1withSumw2("matchingObject_P",matchingObjectType+" p",nbinp,0.,pmax,"E_{SC} (GeV)");
  h1_matchingObject_Pt = bookH1withSumw2("matchingObject_Pt",matchingObjectType+" pt",nbinpteff,5.,ptmax,"pt_{SC} (GeV/c)");
  h1_matchingObject_Phi = bookH1withSumw2("matchingObject_Phi",matchingObjectType+" #phi",nbinphi,phimin,phimax,"#phi (rad)");
//  h1_matchingObject_Z = bookH1withSumw2("matchingObject_Z",matchingObjectType+" z",nbinxyz,-25,25,"z (cm)");

  h1_matchedObject_Eta = bookH1withSumw2("matchedObject_Eta","Efficiency vs matching SC #eta",nbineta,etamin,etamax,"#eta_{SC}");
//  h1_matchedObject_AbsEta = bookH1withSumw2("matchedObject_AbsEta","Efficiency vs matching SC |#eta|",nbineta/2,0.,2.5,"|#eta|_{SC}");
  h1_matchedObject_Pt = bookH1withSumw2("matchedObject_Pt","Efficiency vs matching SC E_{T}",nbinpteff,5.,ptmax,"pt_{SC} (GeV/c)");
  h1_matchedObject_Phi = bookH1withSumw2("matchedObject_Phi","Efficiency vs matching SC #phi",nbinphi,phimin,phimax,"#phi (rad)");
//  h1_matchedObject_Z = bookH1withSumw2("matchedObject_Z","Efficiency vs matching SC z",nbinxyz,-25,25,"z (cm)");

//  // classes
//  h1_matchedEle_eta = bookH1( "matchedEle_eta", "ele electron #eta",  nbineta/2,0.0,etamax,"#eta");
//  h1_matchedEle_eta_golden = bookH1( "matchedEle_eta_golden", "ele electron #eta golden",  nbineta/2,0.0,etamax,"#eta");
//  h1_matchedEle_eta_shower = bookH1( "matchedEle_eta_shower", "ele electron #eta showering",  nbineta/2,0.0,etamax,"#eta");
//  //h1_matchedEle_eta_bbrem = bookH1( "matchedEle_eta_bbrem", "ele electron #eta bbrem",  nbineta/2,0.0,etamax,"#eta");
//  //h1_matchedEle_eta_narrow = bookH1( "matchedEle_eta_narrow", "ele electron #eta narrow",  nbineta/2,0.0,etamax,"#eta");
//
 }
float ElectronAnalyzer::computeInvMass ( const reco::GsfElectron e1,
const reco::GsfElectron e2 
) [private]

Definition at line 609 of file ElectronAnalyzer.cc.

References reco::GsfElectron::p4(), and mathSSE::sqrt().

Referenced by analyze().

 {
  math::XYZTLorentzVector p12 = e1.p4()+e2.p4() ;
  float mee2 = p12.Dot(p12) ;
  float invMass = sqrt(mee2) ;
  return invMass ;
 }
bool ElectronAnalyzer::etCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter) [private]

Definition at line 717 of file ElectronAnalyzer.cc.

References funct::false, minEt_, and funct::true.

Referenced by selected().

 {
  if (gsfIter->superCluster()->energy()/cosh(gsfIter->superCluster()->eta())<minEt_) return true ;

  return false ;
 }
bool ElectronAnalyzer::generalCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter) [private]

Definition at line 702 of file ElectronAnalyzer.cc.

References abs, funct::false, isEB_, isEcalDriven_, isEE_, isNotEBEEGap_, isTrackerDriven_, maxAbsEta_, minPt_, and funct::true.

Referenced by selected().

 {
  if (std::abs(gsfIter->eta())>maxAbsEta_) return true ;
  if (gsfIter->pt()<minPt_) return true ;

  if (gsfIter->isEB() && isEE_) return true ;
  if (gsfIter->isEE() && isEB_) return true ;
  if (gsfIter->isEBEEGap() && isNotEBEEGap_) return true ;

  if (gsfIter->ecalDrivenSeed() && isTrackerDriven_) return true ;
  if (gsfIter->trackerDrivenSeed() && isEcalDriven_) return true ;

  return false ;
 }
bool ElectronAnalyzer::idCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter) [private]

Definition at line 739 of file ElectronAnalyzer.cc.

References abs, dEtaMaxBarrel_, dEtaMaxEndcaps_, dEtaMinBarrel_, dEtaMinEndcaps_, dPhiMaxBarrel_, dPhiMaxEndcaps_, dPhiMinBarrel_, dPhiMinEndcaps_, eOverPMaxBarrel_, eOverPMaxEndcaps_, eOverPMinBarrel_, eOverPMinEndcaps_, funct::false, hadronicOverEmMaxBarrel_, hadronicOverEmMaxEndcaps_, sigIetaIetaMaxBarrel_, sigIetaIetaMaxEndcaps_, sigIetaIetaMinBarrel_, sigIetaIetaMinEndcaps_, and funct::true.

Referenced by selected().

 {
  if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() < eOverPMinBarrel_) return true ;
  if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() > eOverPMaxBarrel_) return true ;
  if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() < eOverPMinEndcaps_) return true ;
  if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() > eOverPMaxEndcaps_) return true ;
  if (gsfIter->isEB() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinBarrel_) return true ;
  if (gsfIter->isEB() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxBarrel_) return true ;
  if (gsfIter->isEE() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinEndcaps_) return true ;
  if (gsfIter->isEE() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxEndcaps_) return true ;
  if (gsfIter->isEB() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinBarrel_) return true ;
  if (gsfIter->isEB() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxBarrel_) return true ;
  if (gsfIter->isEE() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinEndcaps_) return true ;
  if (gsfIter->isEE() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxEndcaps_) return true ;
  if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinBarrel_) return true ;
  if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxBarrel_) return true ;
  if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinEndcaps_) return true ;
  if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxEndcaps_) return true ;
  if (gsfIter->isEB() && gsfIter->hadronicOverEm() > hadronicOverEmMaxBarrel_) return true ;
  if (gsfIter->isEE() && gsfIter->hadronicOverEm() > hadronicOverEmMaxEndcaps_) return true ;

  return false ;
 }
bool ElectronAnalyzer::isolationCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter,
double  vertexTIP 
) [private]

Definition at line 724 of file ElectronAnalyzer.cc.

References ecalIso03MaxBarrel_, ecalIso03MaxEndcaps_, funct::false, hcalIso03Depth1MaxBarrel_, hcalIso03Depth1MaxEndcaps_, hcalIso03Depth2MaxEndcaps_, tipMaxBarrel_, tipMaxEndcaps_, and tkIso03Max_.

Referenced by selected().

 {
  if (gsfIter->isEB() && vertexTIP > tipMaxBarrel_) return true ;
  if (gsfIter->isEE() && vertexTIP > tipMaxEndcaps_) return true ;

  if (gsfIter->dr03TkSumPt() > tkIso03Max_) return true ;
  if (gsfIter->isEB() && gsfIter->dr03HcalDepth1TowerSumEt() > hcalIso03Depth1MaxBarrel_) return true ;
  if (gsfIter->isEE() && gsfIter->dr03HcalDepth1TowerSumEt() > hcalIso03Depth1MaxEndcaps_) return true ;
  if (gsfIter->isEE() && gsfIter->dr03HcalDepth2TowerSumEt() > hcalIso03Depth2MaxEndcaps_) return true ;
  if (gsfIter->isEB() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxBarrel_) return true ;
  if (gsfIter->isEE() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxEndcaps_) return true ;

  return false ;
 }
bool ElectronAnalyzer::selected ( const reco::GsfElectronCollection::const_iterator &  gsfIter,
double  vertexTIP 
) [private]

Definition at line 693 of file ElectronAnalyzer.cc.

References etCut(), funct::false, generalCut(), idCut(), isolationCut(), Selection_, and funct::true.

Referenced by analyze().

 {
  if ((Selection_>0)&&generalCut(gsfIter)) return false ;
  if ((Selection_>=1)&&etCut(gsfIter)) return false ;
  if ((Selection_>=2)&&isolationCut(gsfIter,vertexTIP)) return false ;
  if ((Selection_>=3)&&idCut(gsfIter)) return false ;
  return true ;
 }

Member Data Documentation

Definition at line 42 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

double ElectronAnalyzer::deltaR_ [private]

Definition at line 49 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

Definition at line 100 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 100 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::detamax [private]

Definition at line 98 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 65 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 67 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

double ElectronAnalyzer::detamin [private]

Definition at line 98 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 64 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 66 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 101 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 101 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::dphimax [private]

Definition at line 99 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 69 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 71 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

double ElectronAnalyzer::dphimin [private]

Definition at line 99 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 68 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 70 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 85 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 86 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 37 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

double ElectronAnalyzer::eopmax [private]

Definition at line 97 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::eopmaxsht [private]

Definition at line 97 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 61 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 63 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 60 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 62 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

double ElectronAnalyzer::etamax [private]

Definition at line 93 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::etamin [private]

Definition at line 93 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::fhitsmax [private]

Definition at line 102 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 39 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

Definition at line 176 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 250 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 213 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 214 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 207 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 208 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 225 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 226 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 219 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 220 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 258 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 201 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 202 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 195 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 196 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 246 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 180 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 259 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 231 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 232 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 184 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 281 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 284 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 283 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 288 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 292 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 291 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 269 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 270 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 253 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 254 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 169 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 235 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 236 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 257 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 147 of file ElectronAnalyzer.h.

Definition at line 160 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 158 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 159 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 163 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 141 of file ElectronAnalyzer.h.

Definition at line 161 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 162 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 76 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 77 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 82 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 83 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 84 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

double ElectronAnalyzer::hoemax [private]

Definition at line 107 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::hoemin [private]

Definition at line 107 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

bool ElectronAnalyzer::isEB_ [private]

Definition at line 55 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

Definition at line 58 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

bool ElectronAnalyzer::isEE_ [private]

Definition at line 56 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

Definition at line 57 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

Definition at line 59 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

double ElectronAnalyzer::lhitsmax [private]

Definition at line 103 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

std::string ElectronAnalyzer::matchingCondition_ [private]

Definition at line 46 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

Definition at line 38 of file ElectronAnalyzer.h.

Referenced by analyze(), book(), and ElectronAnalyzer().

double ElectronAnalyzer::maxAbsEta_ [private]

Definition at line 54 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

Definition at line 48 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

Definition at line 47 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

float ElectronAnalyzer::mcEnergy[10] [private]

Definition at line 132 of file ElectronAnalyzer.h.

float ElectronAnalyzer::mcEta[10] [private]

Definition at line 132 of file ElectronAnalyzer.h.

float ElectronAnalyzer::mcPhi[10] [private]

Definition at line 132 of file ElectronAnalyzer.h.

float ElectronAnalyzer::mcPt[10] [private]

Definition at line 132 of file ElectronAnalyzer.h.

float ElectronAnalyzer::mcQ[10] [private]

Definition at line 132 of file ElectronAnalyzer.h.

double ElectronAnalyzer::meemax [private]

Definition at line 106 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::meemin [private]

Definition at line 106 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::minEt_ [private]

Definition at line 52 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and etCut().

double ElectronAnalyzer::minPt_ [private]

Definition at line 53 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and generalCut().

double ElectronAnalyzer::mvaMin_ [private]

Definition at line 78 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 98 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 100 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 100 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 99 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 101 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 101 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 97 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 97 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 93 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 93 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 102 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 107 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 103 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 106 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

int ElectronAnalyzer::nbinp [private]

Definition at line 96 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 96 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 94 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 94 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 105 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

int ElectronAnalyzer::nbinpt [private]

Definition at line 95 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 95 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 95 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 104 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 104 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

unsigned int ElectronAnalyzer::nEvents_ [private]

Definition at line 113 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 129 of file ElectronAnalyzer.h.

double ElectronAnalyzer::phimax [private]

Definition at line 94 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::phimin [private]

Definition at line 94 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

double ElectronAnalyzer::pmax [private]

Definition at line 96 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

double ElectronAnalyzer::poptruemax [private]

Definition at line 105 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

double ElectronAnalyzer::poptruemin [private]

Definition at line 105 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

double ElectronAnalyzer::ptmax [private]

Definition at line 95 of file ElectronAnalyzer.h.

Referenced by book(), and ElectronAnalyzer().

Definition at line 177 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 178 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 209 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 221 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 197 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 247 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 248 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 181 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 182 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 233 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 185 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 186 of file ElectronAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 143 of file ElectronAnalyzer.h.

Definition at line 142 of file ElectronAnalyzer.h.

Definition at line 144 of file ElectronAnalyzer.h.

Definition at line 145 of file ElectronAnalyzer.h.

Definition at line 146 of file ElectronAnalyzer.h.

Definition at line 43 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

float ElectronAnalyzer::seedEta[10] [private]

Definition at line 134 of file ElectronAnalyzer.h.

float ElectronAnalyzer::seedMomentum[10] [private]

Definition at line 134 of file ElectronAnalyzer.h.

float ElectronAnalyzer::seedPhi[10] [private]

Definition at line 134 of file ElectronAnalyzer.h.

float ElectronAnalyzer::seedPt[10] [private]

Definition at line 134 of file ElectronAnalyzer.h.

float ElectronAnalyzer::seedQ[10] [private]

Definition at line 134 of file ElectronAnalyzer.h.

Definition at line 36 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and selected().

Definition at line 73 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 75 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 72 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 74 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and idCut().

Definition at line 133 of file ElectronAnalyzer.h.

float ElectronAnalyzer::superclusterEt[10] [private]

Definition at line 133 of file ElectronAnalyzer.h.

float ElectronAnalyzer::superclusterEta[10] [private]

Definition at line 133 of file ElectronAnalyzer.h.

float ElectronAnalyzer::superclusterPhi[10] [private]

Definition at line 133 of file ElectronAnalyzer.h.

Definition at line 130 of file ElectronAnalyzer.h.

Definition at line 79 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 80 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 81 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer(), and isolationCut().

Definition at line 40 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().

Definition at line 89 of file ElectronAnalyzer.h.

Referenced by ElectronAnalyzer().

Definition at line 41 of file ElectronAnalyzer.h.

Referenced by analyze(), and ElectronAnalyzer().