CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

ElectronTagProbeAnalyzer Class Reference

#include <ElectronTagProbeAnalyzer.h>

Inheritance diagram for ElectronTagProbeAnalyzer:
ElectronDqmAnalyzerBase edm::EDAnalyzer

List of all members.

Public Member Functions

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

Private Member Functions

float computeInvMass (const reco::GsfElectron &e1, const reco::GsfElectron &e2)
bool etCut (const reco::GsfElectronCollection::const_iterator &gsfIter)
void fillMatchedHistos (const reco::SuperClusterCollection::const_iterator &moIter, const reco::GsfElectron &electron)
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 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_vertexEta
MonitorElementh1_vertexPt_barrel
MonitorElementh1_vertexPt_endcaps
MonitorElementh1_vertexZ
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
double massHigh_
double massLow_
edm::InputTag matchingObjectCollection_
double maxAbsEta_
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
bool PROBEcheckclass_
bool PROBEetcut_
double ptmax
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]
bool TAGcheckclass_
edm::ESHandle< MagneticFieldtheMagField
double tipMaxBarrel_
double tipMaxEndcaps_
double tkIso03Max_
bool TPchecksign_
edm::InputTag trackCollection_
TrajectoryStateTransform transformer_
edm::InputTag triggerResults_
edm::InputTag vertexCollection_

Detailed Description

Definition at line 20 of file ElectronTagProbeAnalyzer.h.


Constructor & Destructor Documentation

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

Definition at line 31 of file ElectronTagProbeAnalyzer.cc.

References beamSpotTag_, 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, massHigh_, massLow_, matchingObjectCollection_, maxAbsEta_, 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, PROBEcheckclass_, PROBEetcut_, ptmax, readAOD_, Selection_, sigIetaIetaMaxBarrel_, sigIetaIetaMaxEndcaps_, sigIetaIetaMinBarrel_, sigIetaIetaMinEndcaps_, TAGcheckclass_, tipMaxBarrel_, tipMaxEndcaps_, tkIso03Max_, TPchecksign_, 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");

  // tag and probe
  massLow_ = conf.getParameter< double >("MassLow");
  massHigh_ = conf.getParameter< double >("MassHigh");
  TPchecksign_ = conf.getParameter<bool>("TpCheckSign");
  TAGcheckclass_ = conf.getParameter<bool>("TagCheckClass");
  PROBEetcut_ = conf.getParameter<bool>("ProbeEtCut");
  PROBEcheckclass_ = conf.getParameter<bool>("ProbeCheckClass");

  // 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");
 }
ElectronTagProbeAnalyzer::~ElectronTagProbeAnalyzer ( ) [virtual]

Definition at line 159 of file ElectronTagProbeAnalyzer.cc.

 {}

Member Function Documentation

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

Reimplemented from ElectronDqmAnalyzerBase.

Definition at line 248 of file ElectronTagProbeAnalyzer.cc.

References beamSpotTag_, reco::LeafCandidate::charge(), reco::GsfElectron::classification(), funct::cos(), reco::GsfElectron::deltaEtaEleClusterTrackAtCalo(), reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiEleClusterTrackAtCalo(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::GsfElectron::dr03EcalRecHitSumEt(), reco::GsfElectron::dr03HcalTowerSumEt(), reco::GsfElectron::dr03TkSumPt(), reco::GsfElectron::ecalDrivenSeed(), reco::GsfElectron::eEleClusterOverPout(), electronCollection_, reco::GsfElectron::eSuperClusterOverP(), reco::LeafCandidate::eta(), edm::EventID::event(), funct::false, reco::GsfElectron::fbrem(), MonitorElement::Fill(), fillMatchedHistos(), edm::Event::getByLabel(), gsfElectrons_cfi::gsfElectrons, reco::GsfElectron::gsfTrack(), 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_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, reco::GsfElectron::hadronicOverEm(), edm::EventBase::id(), reco::GsfElectron::isEB(), reco::GsfElectron::isEE(), edm::EventBase::luminosityBlock(), massHigh_, matchingObjectCollection_, minEt_, reco::GsfElectron::mva(), nEvents_, reco::LeafCandidate::phi(), reco::BeamSpot::position(), PROBEetcut_, edm::Handle< T >::product(), reco::LeafCandidate::pt(), dttmaxenums::R, readAOD_, edm::EventID::run(), reco::GsfElectron::scSigmaEtaEta(), selected(), funct::sin(), mathSSE::sqrt(), reco::GsfElectron::superCluster(), theta(), TPchecksign_, trackCollection_, reco::GsfElectron::trackerDrivenSeed(), testEve_cfg::tracks, funct::true, reco::LeafCandidate::vertex(), and vertexCollection_.

 {
  nEvents_++ ;

  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("ElectronMcSignalValidator::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 ;

    reco::SuperClusterRef sclTagRef = gsfIter->superCluster() ;
    reco::SuperClusterCollection::const_iterator moIter ;
    for
     ( moIter=recoClusters->begin() ;
       moIter!=recoClusters->end() ;
       moIter++ )
     {
            if (moIter->eta()==sclTagRef->eta()) continue ;

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

      // Additional cuts on Tag

      // Additional cuts on Probe
      if(PROBEetcut_ && (moIter->energy()/cosh(moIter->eta())<minEt_)) continue ;

      float SCenergy = moIter->energy();
      math::XYZPoint caloposition = moIter->position();
      float theta = caloposition.Theta();
      math::XYZVector momentum;
      float SCmomentumX = SCenergy*sin(theta)*cos(moIter->phi());
      float SCmomentumY = SCenergy*sin(theta)*sin(moIter->phi());
      float SCmomentumZ = SCenergy*cos(theta);
      const reco::Particle::LorentzVector pSCprobecandidate(SCmomentumX,SCmomentumY,SCmomentumZ,SCenergy);

      math::XYZTLorentzVector p12 = (*gsfIter).p4()+ pSCprobecandidate;
      float mee2 = p12.Dot(p12);
      float invMass = sqrt(mee2);

      if( invMass < massLow_ || invMass > massHigh_ ) continue ;
      h1_mee->Fill(invMass) ;

      h1_matchingObject_Eta->Fill( moIter->eta() );
      h1_matchingObject_Pt->Fill( moIter->energy()/cosh(moIter->eta()) );
      h1_matchingObject_Phi->Fill( moIter->phi() );
      //h1_matchingObject_Z->Fill(  moIter->z() );

      reco::GsfElectron bestGsfElectron;
      reco::SuperClusterRef sclProbeRef;
      bool okGsfFound = false;
      //double gsfOkRatio = 999999.;
      reco::GsfElectronCollection::const_iterator gsfIter2 ;

      for
       ( gsfIter2=gsfElectrons->begin();
         gsfIter2!=gsfElectrons->end() ;
         gsfIter2++ )
       {
              // matching with ref
              sclProbeRef = gsfIter2->superCluster();

              if (sclProbeRef->eta() == moIter->eta())
         {
          //std::cout << "les deux ref SC sont egales : " << std::endl;
          bestGsfElectron=*gsfIter2;

          // opposite sign checking
          bool opsign = (((gsfIter->charge())*(bestGsfElectron.charge()))<0.) ;
          if ( TPchecksign_ && !opsign )
           { okGsfFound = false ; break ; }
          else
           { okGsfFound = true ; }
         } //fi on gsfEleSC.eta == probeSC.eta

//        // matching with cone
//        double dphi = gsfIter2->phi()-moIter->phi();
//        if (std::abs(dphi)>CLHEP::pi)
//         dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
//        double deltaR = sqrt(pow((moIter->eta()-gsfIter2->eta()),2) + pow(dphi,2));
//        if ( deltaR < deltaR_ )
//        {
//         double tmpGsfRatio = gsfIter2->p()/moIter->energy();
//         if ( std::abs(tmpGsfRatio-1) < std::abs(gsfOkRatio-1))
//          {
//           gsfOkRatio = tmpGsfRatio;
//           bestGsfElectron=*gsfIter2;
//           okGsfFound = true;
//          }
//        } // fi on deltaR

       }// end of loop on gsfEle to find the best one which matches with probe SC

      if (okGsfFound)
       {
        // fill matched histos for eff
        fillMatchedHistos(moIter,bestGsfElectron) ;

        // basic quantities
        if (bestGsfElectron.isEB()) h1_vertexPt_barrel->Fill( bestGsfElectron.pt() );
        if (bestGsfElectron.isEE()) h1_vertexPt_endcaps->Fill( bestGsfElectron.pt() );
        h1_vertexEta->Fill( bestGsfElectron.eta() );
        h2_vertexEtaVsPhi->Fill( bestGsfElectron.eta(), bestGsfElectron.phi() );
        h2_vertexXvsY->Fill( bestGsfElectron.vertex().x(), bestGsfElectron.vertex().y() );
        h1_vertexZ->Fill( bestGsfElectron.vertex().z() );

        // supercluster related distributions
        reco::SuperClusterRef sclRef = bestGsfElectron.superCluster() ;
        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));

        if (!readAOD_)
        { // track extra does not exist in AOD
         h1_foundHits->Fill( bestGsfElectron.gsfTrack()->numberOfValidHits() );
         h1_lostHits->Fill( bestGsfElectron.gsfTrack()->numberOfLostHits() );
         h1_chi2->Fill( bestGsfElectron.gsfTrack()->normalizedChi2() );
        }

        // match distributions
        if (bestGsfElectron.isEB())
        {
         h1_Eop_barrel->Fill( bestGsfElectron.eSuperClusterOverP() );
         h1_EeleOPout_barrel->Fill( bestGsfElectron.eEleClusterOverPout() );
         h1_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
         h1_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
         h1_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
         h1_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
         h1_Hoe_barrel->Fill(bestGsfElectron.hadronicOverEm());
         h1_sclSigEtaEta_barrel->Fill( bestGsfElectron.scSigmaEtaEta() );
        }
        if (bestGsfElectron.isEE())
        {
         h1_Eop_endcaps->Fill( bestGsfElectron.eSuperClusterOverP() );
         h1_EeleOPout_endcaps->Fill( bestGsfElectron.eEleClusterOverPout() );
         h1_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx());
         h1_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo());
         h1_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx());
         h1_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo());
         h1_Hoe_endcaps->Fill(bestGsfElectron.hadronicOverEm());
         h1_sclSigEtaEta_endcaps->Fill( bestGsfElectron.scSigmaEtaEta() );
        }

        // fbrem
        h1_fbrem->Fill(bestGsfElectron.fbrem()) ;
        int eleClass = bestGsfElectron.classification() ;
        if (bestGsfElectron.isEE()) eleClass+=5;
        h1_classes->Fill(eleClass);

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

        // isolation
        h1_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt());
        h1_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt());
        h1_hcalTowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt());

        // inv Mass with opposite sign
        if (((gsfIter->charge())*(bestGsfElectron.charge()))<0.)
        { h1_mee_os->Fill(invMass) ; }

       }// fi on OkGsfFound

     } // end of loop on SC to find probe SC

   }// end of loop on Tag gsfEle

 }
void ElectronTagProbeAnalyzer::book ( ) [virtual]

Reimplemented from ElectronDqmAnalyzerBase.

Definition at line 162 of file ElectronTagProbeAnalyzer.cc.

References ElectronDqmAnalyzerBase::bookH1(), ElectronDqmAnalyzerBase::bookH1withSumw2(), ElectronDqmAnalyzerBase::bookH2(), 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(), matchingObjectCollection_, meemax, meemin, nbindetamatch, nbindphimatch, nbineop, nbineta, nbineta2D, nbinfhits, nbinhoe, nbinmee, nbinphi, nbinphi2D, nbinpt, nbinpteff, nbinxyz, nbinxyz2D, nEvents_, phimax, phimin, ptmax, and ElectronDqmAnalyzerBase::setBookIndex().

 {
  nEvents_ = 0 ;
  //nAfterTrigger_ = 0 ;

  // basic quantities
  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");
  h2_vertexEtaVsPhi = bookH2("vertexEtaVsPhi","ele momentum #eta vs #phi",nbineta2D,etamin,etamax,nbinphi2D,phimin,phimax,"#eta","#phi (rad)");
  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_sclPhi = bookH1("sclPhi","ele supercluster phi",nbinphi,phimin,phimax);
  h1_sclEt = bookH1("sclEt","ele supercluster transverse energy",nbinpt,0.,ptmax);

  // electron track
  h1_chi2 = bookH1("chi2","ele track #chi^{2}",100,0.,15.,"#Chi^{2}");
  h1_foundHits = bookH1("foundHits","ele track # found hits",nbinfhits,0.,fhitsmax,"N_{hits}");
  h1_lostHits = bookH1("lostHits","ele track # lost hits",5,0.,5.,"N_{lost hits}");

  // electron matching and ID
  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}");
  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}");
  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}");
  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}");
  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)");
  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)");
  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") ;
  h1_sclSigEtaEta_barrel = bookH1("sclSigEtaEta_barrel","ele supercluster sigma eta eta in barrel",100,0.,0.05);
  h1_sclSigEtaEta_endcaps = bookH1("sclSigEtaEta_endcaps","ele supercluster sigma eta eta in endcaps",100,0.,0.05);

  // fbrem
  h1_fbrem = bookH1("fbrem","ele brem fraction",100,0.,1.,"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.);
  h1_provenance = bookH1( "provenance","ele provenance",5,-2.,3.);

  // isolation
  h1_tkSumPt_dr03 = bookH1("tkSumPt_dr03","tk isolation sum, dR=0.3",100,0.0,20.,"TkIsoSum, cone 0.3 (GeV/c)","Events","ELE_LOGY E1 P");
  h1_ecalRecHitSumEt_dr03 = bookH1("ecalRecHitSumEt_dr03","ecal isolation sum, dR=0.3",100,0.0,20.,"EcalIsoSum, cone 0.3 (GeV)","Events","ELE_LOGY E1 P");
  h1_hcalTowerSumEt_dr03 = bookH1("hcalTowerSumEt_dr03","hcal isolation sum, dR=0.3",100,0.0,20.,"HcalIsoSum, cone 0.3 (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 ; }

  // matching object distributions
  h1_matchingObject_Eta = bookH1withSumw2("matchingObject_Eta",matchingObjectType+" #eta",nbineta,etamin,etamax,"#eta_{SC}");
  h1_matchingObject_Pt = bookH1withSumw2("matchingObject_Pt",matchingObjectType+" pt",nbinpteff,5.,ptmax);
  h1_matchingObject_Phi = bookH1withSumw2("matchingObject_Phi",matchingObjectType+" phi",nbinphi,phimin,phimax);
  //h1_matchingObject_Z = bookH1withSumw2("matchingObject_Z",matchingObjectType+" z",nbinxyz,-25,25);

  h1_matchedObject_Eta = bookH1withSumw2("matchedObject_Eta","Efficiency vs matching SC #eta",nbineta,etamin,etamax);
  h1_matchedObject_Pt = bookH1withSumw2("matchedObject_Pt","Efficiency vs matching SC E_{T}",nbinpteff,5.,ptmax);
  h1_matchedObject_Phi = bookH1withSumw2("matchedObject_Phi","Efficiency vs matching SC phi",nbinphi,phimin,phimax);
  //h1_matchedObject_Z = bookH1withSumw2("matchedObject_Z","Efficiency vs matching SC z",nbinxyz,-25,25);

 }
float ElectronTagProbeAnalyzer::computeInvMass ( const reco::GsfElectron e1,
const reco::GsfElectron e2 
) [private]

Definition at line 460 of file ElectronTagProbeAnalyzer.cc.

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

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

Definition at line 589 of file ElectronTagProbeAnalyzer.cc.

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

Referenced by selected().

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

  return false ;
 }
void ElectronTagProbeAnalyzer::fillMatchedHistos ( const reco::SuperClusterCollection::const_iterator &  moIter,
const reco::GsfElectron electron 
) [private]

Definition at line 470 of file ElectronTagProbeAnalyzer.cc.

Referenced by analyze().

 {
  // 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 = electron.classification() ;
//  h_classes->Fill(eleClass) ;
//  h_matchedEle_eta->Fill(std::abs(electron.eta()));
//  if (electron.classification() == GsfElectron::GOLDEN) h_matchedEle_eta_golden->Fill(std::abs(electron.eta()));
//  if (electron.classification() == GsfElectron::SHOWERING) h_matchedEle_eta_shower->Fill(std::abs(electron.eta()));
//  //if (electron.classification() == GsfElectron::BIGBREM) h_matchedEle_eta_bbrem->Fill(std::abs(electron.eta()));
//  //if (electron.classification() == GsfElectron::OLDNARROW) h_matchedEle_eta_narrow->Fill(std::abs(electron.eta()));
 }
bool ElectronTagProbeAnalyzer::generalCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter) [private]

Definition at line 574 of file ElectronTagProbeAnalyzer.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 ElectronTagProbeAnalyzer::idCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter) [private]

Definition at line 611 of file ElectronTagProbeAnalyzer.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 ElectronTagProbeAnalyzer::isolationCut ( const reco::GsfElectronCollection::const_iterator &  gsfIter,
double  vertexTIP 
) [private]

Definition at line 596 of file ElectronTagProbeAnalyzer.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 ElectronTagProbeAnalyzer::selected ( const reco::GsfElectronCollection::const_iterator &  gsfIter,
double  vertexTIP 
) [private]

Definition at line 565 of file ElectronTagProbeAnalyzer.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 43 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 109 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 109 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 107 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 74 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 76 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 107 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 73 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 75 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 110 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 110 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 108 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 78 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 80 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 108 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 77 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 79 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 94 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 95 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 38 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 106 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 106 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 70 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 72 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 69 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 71 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 102 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 102 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 111 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 40 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 189 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 263 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 226 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 227 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 220 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 221 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 238 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 239 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 232 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 233 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 271 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 214 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 215 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 208 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 209 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 259 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 193 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 272 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 244 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 245 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 197 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 294 of file ElectronTagProbeAnalyzer.h.

Referenced by book().

Definition at line 297 of file ElectronTagProbeAnalyzer.h.

Referenced by book().

Definition at line 296 of file ElectronTagProbeAnalyzer.h.

Referenced by book().

Definition at line 301 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 305 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 304 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 282 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 283 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 266 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 267 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 182 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 248 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 249 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 270 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 168 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 172 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 173 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 176 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 174 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 175 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 85 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 86 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 91 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 92 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 93 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 116 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 116 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 64 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 67 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 65 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 66 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 68 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 112 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 54 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 53 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 39 of file ElectronTagProbeAnalyzer.h.

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

Definition at line 63 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 145 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::mcEta[10] [private]

Definition at line 145 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::mcPhi[10] [private]

Definition at line 145 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::mcPt[10] [private]

Definition at line 145 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::mcQ[10] [private]

Definition at line 145 of file ElectronTagProbeAnalyzer.h.

Definition at line 115 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 115 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 61 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), ElectronTagProbeAnalyzer(), and etCut().

Definition at line 62 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and generalCut().

Definition at line 87 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 107 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 109 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 109 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 108 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 110 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 110 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 106 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 106 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 102 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 102 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 111 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 116 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 112 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 115 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 105 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 105 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 103 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 103 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 114 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 104 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 104 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 104 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 113 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 113 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

unsigned int ElectronTagProbeAnalyzer::nEvents_ [private]

Definition at line 122 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and book().

Definition at line 142 of file ElectronTagProbeAnalyzer.h.

Definition at line 103 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 103 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 105 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 114 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 114 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 58 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 57 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 104 of file ElectronTagProbeAnalyzer.h.

Referenced by book(), and ElectronTagProbeAnalyzer().

Definition at line 44 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

float ElectronTagProbeAnalyzer::seedEta[10] [private]

Definition at line 147 of file ElectronTagProbeAnalyzer.h.

Definition at line 147 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::seedPhi[10] [private]

Definition at line 147 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::seedPt[10] [private]

Definition at line 147 of file ElectronTagProbeAnalyzer.h.

float ElectronTagProbeAnalyzer::seedQ[10] [private]

Definition at line 147 of file ElectronTagProbeAnalyzer.h.

Definition at line 37 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and selected().

Definition at line 82 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 84 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 81 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 83 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and idCut().

Definition at line 146 of file ElectronTagProbeAnalyzer.h.

Definition at line 146 of file ElectronTagProbeAnalyzer.h.

Definition at line 146 of file ElectronTagProbeAnalyzer.h.

Definition at line 146 of file ElectronTagProbeAnalyzer.h.

Definition at line 56 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 143 of file ElectronTagProbeAnalyzer.h.

Definition at line 88 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 89 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 90 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer(), and isolationCut().

Definition at line 55 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 41 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().

Definition at line 141 of file ElectronTagProbeAnalyzer.h.

Definition at line 98 of file ElectronTagProbeAnalyzer.h.

Referenced by ElectronTagProbeAnalyzer().

Definition at line 42 of file ElectronTagProbeAnalyzer.h.

Referenced by analyze(), and ElectronTagProbeAnalyzer().