CMS 3D CMS Logo

Public Member Functions | Protected Attributes

EfficiencyAnalyzer Class Reference

#include <EfficiencyAnalyzer.h>

Inheritance diagram for EfficiencyAnalyzer:
MuonAnalyzerBase

List of all members.

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup)
void beginJob (DQMStore *dbe)
 Inizialize parameters for histo binning.
 EfficiencyAnalyzer (const edm::ParameterSet &pset, MuonServiceProxy *theService)
virtual ~EfficiencyAnalyzer ()

Protected Attributes

bool _doPVCheck
int _numPV
edm::InputTag bsTag
int etaBin_
double etaMax_
double etaMin_
MonitorElementh_allProbes_EB_pt
MonitorElementh_allProbes_EB_TightMu_nVtx
MonitorElementh_allProbes_EB_TightMu_pt
MonitorElementh_allProbes_EE_pt
MonitorElementh_allProbes_EE_TightMu_nVtx
MonitorElementh_allProbes_EE_TightMu_pt
MonitorElementh_allProbes_eta
MonitorElementh_allProbes_hp_eta
MonitorElementh_allProbes_phi
MonitorElementh_allProbes_pt
MonitorElementh_allProbes_TightMu_nVtx
MonitorElementh_allProbes_TightMu_pt
MonitorElementh_failProbes_TightMu_eta
MonitorElementh_failProbes_TightMu_phi
MonitorElementh_failProbes_TightMu_pt
MonitorElementh_passProbes_detIsoTightMu_nVtx
MonitorElementh_passProbes_detIsoTightMu_pt
MonitorElementh_passProbes_EB_detIsoTightMu_nVtx
MonitorElementh_passProbes_EB_detIsoTightMu_pt
MonitorElementh_passProbes_EB_pfIsodBTightMu_nVtx
MonitorElementh_passProbes_EB_pfIsodBTightMu_pt
MonitorElementh_passProbes_EB_pfIsoTightMu_nVtx
MonitorElementh_passProbes_EB_pfIsoTightMu_pt
MonitorElementh_passProbes_EE_detIsoTightMu_nVtx
MonitorElementh_passProbes_EE_detIsoTightMu_pt
MonitorElementh_passProbes_EE_pfIsodBTightMu_nVtx
MonitorElementh_passProbes_EE_pfIsodBTightMu_pt
MonitorElementh_passProbes_EE_pfIsoTightMu_nVtx
MonitorElementh_passProbes_EE_pfIsoTightMu_pt
MonitorElementh_passProbes_pfIsodBTightMu_nVtx
MonitorElementh_passProbes_pfIsodBTightMu_pt
MonitorElementh_passProbes_pfIsoTightMu_nVtx
MonitorElementh_passProbes_pfIsoTightMu_pt
MonitorElementh_passProbes_TightMu_EB_pt
MonitorElementh_passProbes_TightMu_EE_pt
MonitorElementh_passProbes_TightMu_eta
MonitorElementh_passProbes_TightMu_hp_eta
MonitorElementh_passProbes_TightMu_phi
MonitorElementh_passProbes_TightMu_pt
std::string metname
edm::ParameterSet parameters
int phiBin_
double phiMax_
double phiMin_
int ptBin_
double ptMax_
double ptMin_
MonitorElementtest_TightMu_Minv
edm::InputTag theMuonCollectionLabel
edm::InputTag theSTACollectionLabel
edm::InputTag theTrackCollectionLabel
edm::InputTag vertexTag
int vtxBin_
double vtxMax_
double vtxMin_

Detailed Description

Class EfficiencyAnalyzer

DQM monitoring for dimuon mass

Author: S.Folgueras, A. Calderon

Definition at line 28 of file EfficiencyAnalyzer.h.


Constructor & Destructor Documentation

EfficiencyAnalyzer::EfficiencyAnalyzer ( const edm::ParameterSet pset,
MuonServiceProxy *  theService 
)

Definition at line 43 of file EfficiencyAnalyzer.cc.

References parameters.

EfficiencyAnalyzer::~EfficiencyAnalyzer ( ) [virtual]

Definition at line 47 of file EfficiencyAnalyzer.cc.

{ }

Member Function Documentation

void EfficiencyAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)

to be read from output as "generalTracks"

Definition at line 137 of file EfficiencyAnalyzer.cc.

References _doPVCheck, _numPV, SiPixelRawToDigiRegional_cfi::beamSpot, reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), bsTag, reco::MuonIsolation::emEt, error, MonitorElement::Fill(), edm::Event::getByLabel(), h_allProbes_EB_pt, h_allProbes_EB_TightMu_nVtx, h_allProbes_EB_TightMu_pt, h_allProbes_EE_pt, h_allProbes_EE_TightMu_nVtx, h_allProbes_EE_TightMu_pt, h_allProbes_eta, h_allProbes_hp_eta, h_allProbes_phi, h_allProbes_pt, h_allProbes_TightMu_nVtx, h_allProbes_TightMu_pt, h_passProbes_detIsoTightMu_nVtx, h_passProbes_detIsoTightMu_pt, h_passProbes_EB_detIsoTightMu_nVtx, h_passProbes_EB_detIsoTightMu_pt, h_passProbes_EB_pfIsodBTightMu_nVtx, h_passProbes_EB_pfIsodBTightMu_pt, h_passProbes_EB_pfIsoTightMu_nVtx, h_passProbes_EB_pfIsoTightMu_pt, h_passProbes_EE_detIsoTightMu_nVtx, h_passProbes_EE_detIsoTightMu_pt, h_passProbes_EE_pfIsodBTightMu_nVtx, h_passProbes_EE_pfIsodBTightMu_pt, h_passProbes_EE_pfIsoTightMu_nVtx, h_passProbes_EE_pfIsoTightMu_pt, h_passProbes_pfIsodBTightMu_nVtx, h_passProbes_pfIsodBTightMu_pt, h_passProbes_pfIsoTightMu_nVtx, h_passProbes_pfIsoTightMu_pt, h_passProbes_TightMu_EB_pt, h_passProbes_TightMu_EE_pt, h_passProbes_TightMu_eta, h_passProbes_TightMu_hp_eta, h_passProbes_TightMu_phi, h_passProbes_TightMu_pt, reco::MuonIsolation::hadEt, muon::isTightMuon(), edm::HandleBase::isValid(), LogTrace, max(), metname, patZpeak::muons, position, reco::BeamSpot::position(), edm::Handle< T >::product(), reco::BeamSpot::sigmaZ(), reco::MuonIsolation::sumPt, test_TightMu_Minv, theMuonCollectionLabel, theTrackCollectionLabel, testEve_cfg::tracks, findQualityFiles::v, GoodVertex_cfg::vertexCollection, and vertexTag.

                                                                                    {

  LogTrace(metname)<<"[EfficiencyAnalyzer] Analyze the mu in different eta regions";
  
  edm::Handle<reco::MuonCollection> muons;
  iEvent.getByLabel(theMuonCollectionLabel, muons);


  edm::Handle<reco::TrackCollection> tracks;
  iEvent.getByLabel(theTrackCollectionLabel,tracks); 


  reco::BeamSpot beamSpot;
  Handle<reco::BeamSpot> beamSpotHandle;
  iEvent.getByLabel("offlineBeamSpot", beamSpotHandle);
  beamSpot = *beamSpotHandle;


  // ==========================================================
  //Vertex information
  
  edm::Handle<reco::VertexCollection> vertex;
  iEvent.getByLabel(vertexTag, vertex);

  _numPV = 0;
  bool bPrimaryVertex = true;
  if(_doPVCheck){ 
    bPrimaryVertex = false;
         
    if (!vertex.isValid()) {
      LogTrace(metname) << "[EfficiencyAnalyzer] Could not find vertex collection" << std::endl;
      bPrimaryVertex = false;
    }
    
    if ( vertex.isValid() ){
      const reco::VertexCollection& vertexCollection = *(vertex.product());
      int vertex_number     = vertexCollection.size();
      
      reco::VertexCollection::const_iterator v = vertexCollection.begin();
      for ( ; v != vertexCollection.end(); ++v) {
        double vertex_chi2    = v->normalizedChi2();
        double vertex_ndof    = v->ndof();
        bool   fakeVtx        = v->isFake();
        double vertex_Z       = v->z();
        
        if (  !fakeVtx
              && vertex_number >= 1
              && vertex_ndof   > 4
              && vertex_chi2   < 999
              && fabs(vertex_Z)< 24. ) {
          bPrimaryVertex = true;
          ++_numPV;
        }
      }
    }
  }
  // ==========================================================


  // ==========================================================
  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):

  reco::Vertex::Point posVtx;
  reco::Vertex::Error errVtx;

  unsigned int theIndexOfThePrimaryVertex = 999.;
 
  
  if ( vertex.isValid() ){

    for (unsigned int ind=0; ind<vertex->size(); ++ind) {
    
      if ( (*vertex)[ind].isValid() && !((*vertex)[ind].isFake()) ) {
      
        theIndexOfThePrimaryVertex = ind;
        break;
      }
    }
  }

  if (theIndexOfThePrimaryVertex<100) {
    posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).position();
    errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).error();
  }   else {

    LogInfo("EfficiencyAnalyzer") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
  

    edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
    iEvent.getByLabel(bsTag,recoBeamSpotHandle);
    
    reco::BeamSpot bs = *recoBeamSpotHandle;
    
    posVtx = bs.position();
    errVtx(0,0) = bs.BeamWidthX();
    errVtx(1,1) = bs.BeamWidthY();
    errVtx(2,2) = bs.sigmaZ();
  
      }
  const reco::Vertex thePrimaryVertex(posVtx,errVtx);

  // ==========================================================



  
  
  if(!muons.isValid()) return;


  // Loop on muon collection
  TLorentzVector Mu1, Mu2;

  bool isMB = false;
  bool isME = false;

  for (reco::MuonCollection::const_iterator recoMu1 = muons->begin(); recoMu1!=muons->end(); ++recoMu1) {
    LogTrace(metname)<<"[EfficiencyAnalyzer] loop over first muons" << endl;
    
    //--- Define combined isolation
    reco::MuonIsolation Iso_muon = recoMu1->isolationR03();
    float combIso = (Iso_muon.emEt + Iso_muon.hadEt + Iso_muon.sumPt);  
    
    //--- Is Global Muon 
    if (!recoMu1->isGlobalMuon()) continue;

    // get the track combinig the information from both the Tracker and the Spectrometer
    reco::TrackRef recoCombinedGlbTrack1 = recoMu1->combinedMuon();    
    float muPt1 = recoCombinedGlbTrack1->pt();
    Mu1.SetPxPyPzE(recoCombinedGlbTrack1->px(), recoCombinedGlbTrack1->py(),recoCombinedGlbTrack1->pz(), recoCombinedGlbTrack1->p());
    
    
    //--- Define if it is a tight muon
    // Change the Tight muon definition by using the implemented method in: MuonSelectors.cc

    if (!muon::isTightMuon(*recoMu1, thePrimaryVertex)) continue;
  
    //-- is isolated muon
    if (muPt1 <= 15)          continue;
    if (combIso/muPt1 > 0.1 ) continue;
    
    for (reco::MuonCollection::const_iterator recoMu2 = muons->begin(); recoMu2!=muons->end(); ++recoMu2){ 
      LogTrace(metname)<<"[EfficiencyAnalyzer] loop over second muon" <<endl;
      if (recoMu2 == recoMu1) continue;
      
      if (recoMu2->eta() < 1.479 )  isMB = true;
      if (recoMu2->eta() >= 1.479 ) isME = true;
      
      //--> should we apply track quality cuts??? 
      Mu2.SetPxPyPzE(recoMu2->px(), recoMu2->py(), recoMu2->pz(), recoMu2->p());
      
      float Minv = (Mu1+Mu2).M();
      if (!recoMu2->isTrackerMuon())                     continue;
      if ( recoMu2->pt() < 5 )                           continue;
      if ( (recoMu1->charge())*(recoMu2->charge()) > 0 ) continue; 
      if ( Minv < 70 ||  Minv > 110 )                    continue;
      
      h_allProbes_pt->Fill(recoMu2->pt());
      h_allProbes_eta->Fill(recoMu2->eta());
      h_allProbes_phi->Fill(recoMu2->phi());
      
      if (isMB)               h_allProbes_EB_pt->Fill(recoMu2->pt());
      if (isME)               h_allProbes_EE_pt->Fill(recoMu2->pt());
      if(recoMu2->pt() > 20 ) h_allProbes_hp_eta->Fill(recoMu2->eta());

      test_TightMu_Minv->Fill(Minv);
      


      // Probes passing the tight muon criteria 

      if (!muon::isTightMuon(*recoMu2, thePrimaryVertex)) continue;

      h_passProbes_TightMu_pt->Fill(recoMu2->pt());
      h_passProbes_TightMu_eta->Fill(recoMu2->eta());
      h_passProbes_TightMu_phi->Fill(recoMu2->phi());
      
      if (isMB) h_passProbes_TightMu_EB_pt->Fill(recoMu2->pt());
      if (isME) h_passProbes_TightMu_EE_pt->Fill(recoMu2->pt());
      if( recoMu2->pt() > 20 ) h_passProbes_TightMu_hp_eta->Fill(recoMu2->eta());
      
      h_allProbes_TightMu_pt->Fill(recoMu2->pt());
      if (isMB) h_allProbes_EB_TightMu_pt->Fill(recoMu2->pt());
      if (isME) h_allProbes_EE_TightMu_pt->Fill(recoMu2->pt());

      //------- For PU monitoring -------//
      if (bPrimaryVertex)         h_allProbes_TightMu_nVtx->Fill(_numPV);
      if (bPrimaryVertex && isMB) h_allProbes_EB_TightMu_nVtx->Fill(_numPV);
      if (bPrimaryVertex && isME) h_allProbes_EE_TightMu_nVtx->Fill(_numPV);

      //-- Define det relative isolation
      float tkIso = recoMu2->isolationR03().sumPt;
      float emIso = recoMu2->isolationR03().emEt;
      float hadIso = recoMu2->isolationR03().hadEt + recoMu2->isolationR03().hoEt;
      float relDetIso = (tkIso + emIso + hadIso) /  (recoMu2->pt()); 
 
      if (relDetIso < 0.05 ) { 
        h_passProbes_detIsoTightMu_pt->Fill(recoMu2->pt());
        if (isMB) h_passProbes_EB_detIsoTightMu_pt->Fill(recoMu2->pt());
        if (isME) h_passProbes_EE_detIsoTightMu_pt->Fill(recoMu2->pt());
        
        if (bPrimaryVertex)         h_passProbes_detIsoTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isMB) h_passProbes_EB_detIsoTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isME) h_passProbes_EE_detIsoTightMu_nVtx->Fill(_numPV);
      }
      
      //-- Define PF relative isolation
      float chargedIso = recoMu2->pfIsolationR04().sumChargedHadronPt;
      float neutralIso = recoMu2->pfIsolationR04().sumNeutralHadronEt;
      float photonIso = recoMu2->pfIsolationR04().sumPhotonEt;
      float relPFIso = (chargedIso + neutralIso + photonIso) /  (recoMu2->pt()); 
      
      float pu = recoMu2->pfIsolationR04().sumPUPt; 

      float neutralphotonPUCorrected = std::max(0.0 , (neutralIso + photonIso - 0.5*pu ) ); 

      float relPFIsoPUCorrected = (chargedIso + neutralphotonPUCorrected) /  (recoMu2->pt()); 



      if (relPFIso < 0.12 ) { 
        h_passProbes_pfIsoTightMu_pt->Fill(recoMu2->pt());
        if (isMB) h_passProbes_EB_pfIsoTightMu_pt->Fill(recoMu2->pt());
        if (isME) h_passProbes_EE_pfIsoTightMu_pt->Fill(recoMu2->pt());
        
        if( bPrimaryVertex)         h_passProbes_pfIsoTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isMB) h_passProbes_EB_pfIsoTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isME) h_passProbes_EE_pfIsoTightMu_nVtx->Fill(_numPV);
      }



        // Apply deltaBeta PU corrections to the PF isolation eficiencies.

        if ( relPFIsoPUCorrected < 0.12 ) { 

        h_passProbes_pfIsodBTightMu_pt->Fill(recoMu2->pt());
        if (isMB) h_passProbes_EB_pfIsodBTightMu_pt->Fill(recoMu2->pt());
        if (isME) h_passProbes_EE_pfIsodBTightMu_pt->Fill(recoMu2->pt());
        
        if( bPrimaryVertex)         h_passProbes_pfIsodBTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isMB) h_passProbes_EB_pfIsodBTightMu_nVtx->Fill(_numPV);
        if (bPrimaryVertex && isME) h_passProbes_EE_pfIsodBTightMu_nVtx->Fill(_numPV);
           }

    }
  }
}
void EfficiencyAnalyzer::beginJob ( DQMStore dbe) [virtual]

Inizialize parameters for histo binning.

Implements MuonAnalyzerBase.

Definition at line 49 of file EfficiencyAnalyzer.cc.

References _doPVCheck, DQMStore::book1D(), bsTag, gather_cfg::cout, etaBin_, etaMax_, etaMin_, edm::ParameterSet::getParameter(), h_allProbes_EB_pt, h_allProbes_EB_TightMu_nVtx, h_allProbes_EB_TightMu_pt, h_allProbes_EE_pt, h_allProbes_EE_TightMu_nVtx, h_allProbes_EE_TightMu_pt, h_allProbes_eta, h_allProbes_hp_eta, h_allProbes_phi, h_allProbes_pt, h_allProbes_TightMu_nVtx, h_allProbes_TightMu_pt, h_passProbes_detIsoTightMu_nVtx, h_passProbes_detIsoTightMu_pt, h_passProbes_EB_detIsoTightMu_nVtx, h_passProbes_EB_detIsoTightMu_pt, h_passProbes_EB_pfIsodBTightMu_nVtx, h_passProbes_EB_pfIsodBTightMu_pt, h_passProbes_EB_pfIsoTightMu_nVtx, h_passProbes_EB_pfIsoTightMu_pt, h_passProbes_EE_detIsoTightMu_nVtx, h_passProbes_EE_detIsoTightMu_pt, h_passProbes_EE_pfIsodBTightMu_nVtx, h_passProbes_EE_pfIsodBTightMu_pt, h_passProbes_EE_pfIsoTightMu_nVtx, h_passProbes_EE_pfIsoTightMu_pt, h_passProbes_pfIsodBTightMu_nVtx, h_passProbes_pfIsodBTightMu_pt, h_passProbes_pfIsoTightMu_nVtx, h_passProbes_pfIsoTightMu_pt, h_passProbes_TightMu_EB_pt, h_passProbes_TightMu_EE_pt, h_passProbes_TightMu_eta, h_passProbes_TightMu_hp_eta, h_passProbes_TightMu_phi, h_passProbes_TightMu_pt, LogTrace, metname, parameters, phiBin_, phiMax_, phiMin_, ptBin_, ptMax_, ptMin_, DQMStore::setCurrentFolder(), test_TightMu_Minv, theMuonCollectionLabel, theTrackCollectionLabel, vertexTag, vtxBin_, vtxMax_, and vtxMin_.

                                                {
#ifdef DEBUG
  cout << "[EfficiencyAnalyzer] Parameters initialization" <<endl;
#endif
  metname = "EfficiencyAnalyzer";
  LogTrace(metname)<<"[EfficiencyAnalyzer] Parameters initialization";
  dbe->setCurrentFolder("Muons/EfficiencyAnalyzer");  
  
  theMuonCollectionLabel = parameters.getParameter<edm::InputTag>("MuonCollection");
  theTrackCollectionLabel = parameters.getParameter<edm::InputTag>("TrackCollection");


  //Vertex requirements
  _doPVCheck = parameters.getParameter<bool>("doPrimaryVertexCheck");
  vertexTag  = parameters.getParameter<edm::InputTag>("vertexLabel");
  bsTag  = parameters.getParameter<edm::InputTag>("bsLabel");

  ptBin_ = parameters.getParameter<int>("ptBin");
  ptMin_ = parameters.getParameter<double>("ptMin");
  ptMax_ = parameters.getParameter<double>("ptMax");

  etaBin_ = parameters.getParameter<int>("etaBin");
  etaMin_ = parameters.getParameter<double>("etaMin");
  etaMax_ = parameters.getParameter<double>("etaMax");

  phiBin_ = parameters.getParameter<int>("phiBin");
  phiMin_ = parameters.getParameter<double>("phiMin");
  phiMax_ = parameters.getParameter<double>("phiMax");

  vtxBin_ = parameters.getParameter<int>("vtxBin");
  vtxMin_ = parameters.getParameter<double>("vtxMin");
  vtxMax_ = parameters.getParameter<double>("vtxMax");

  test_TightMu_Minv  = dbe->book1D("test_TightMu_Minv"  ,"Minv",50,70,110);

  h_allProbes_pt = dbe->book1D("allProbes_pt","All Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_EB_pt = dbe->book1D("allProbes_EB_pt","Barrel: all Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_EE_pt = dbe->book1D("allProbes_EE_pt","Endcap: all Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_eta = dbe->book1D("allProbes_eta","All Probes Eta", etaBin_, etaMin_, etaMax_);
  h_allProbes_hp_eta = dbe->book1D("allProbes_hp_eta","High Pt all Probes Eta", etaBin_, etaMin_, etaMax_);
  h_allProbes_phi = dbe->book1D("allProbes_phi","All Probes Phi", phiBin_, phiMin_, phiMax_);

  h_allProbes_TightMu_pt = dbe->book1D("allProbes_TightMu_pt","All TightMu Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_EB_TightMu_pt = dbe->book1D("allProbes_EB_TightMu_pt","Barrel: all TightMu Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_EE_TightMu_pt = dbe->book1D("allProbes_EE_TightMu_pt","Endcap: all TightMu Probes Pt", ptBin_, ptMin_, ptMax_);
  h_allProbes_TightMu_nVtx = dbe->book1D("allProbes_TightMu_nVtx","All Probes (TightMu) nVtx", vtxBin_, vtxMin_, vtxMax_);
  h_allProbes_EB_TightMu_nVtx = dbe->book1D("allProbes_EB_TightMu_nVtx","Barrel: All Probes (TightMu) nVtx", vtxBin_, vtxMin_, vtxMax_);
  h_allProbes_EE_TightMu_nVtx = dbe->book1D("allProbes_EE_TightMu_nVtx","Endcap: All Probes (TightMu) nVtx", vtxBin_, vtxMin_, vtxMax_);

  h_passProbes_TightMu_pt = dbe->book1D("passProbes_TightMu_pt","TightMu Passing Probes Pt", ptBin_ , ptMin_ , ptMax_ );
  h_passProbes_TightMu_EB_pt = dbe->book1D("passProbes_TightMu_EB_pt","Barrel: TightMu Passing Probes Pt", ptBin_ , ptMin_ , ptMax_ );
  h_passProbes_TightMu_EE_pt = dbe->book1D("passProbes_TightMu_EE_pt","Endcap: TightMu Passing Probes Pt", ptBin_ , ptMin_ , ptMax_ );
  h_passProbes_TightMu_eta = dbe->book1D("passProbes_TightMu_eta","TightMu Passing Probes #eta", etaBin_, etaMin_, etaMax_);
  h_passProbes_TightMu_hp_eta = dbe->book1D("passProbes_TightMu_hp_eta","High Pt TightMu Passing Probes #eta", etaBin_, etaMin_, etaMax_);
  h_passProbes_TightMu_phi = dbe->book1D("passProbes_TightMu_phi","TightMu Passing Probes #phi", phiBin_, phiMin_, phiMax_);

  h_passProbes_detIsoTightMu_pt = dbe->book1D("passProbes_detIsoTightMu_pt","detIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);
  h_passProbes_EB_detIsoTightMu_pt = dbe->book1D("passProbes_EB_detIsoTightMu_pt","Barrel: detIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);
  h_passProbes_EE_detIsoTightMu_pt = dbe->book1D("passProbes_EE_detIsoTightMu_pt","Endcap: detIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);

  h_passProbes_pfIsoTightMu_pt = dbe->book1D("passProbes_pfIsoTightMu_pt","pfIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);
  h_passProbes_EB_pfIsoTightMu_pt = dbe->book1D("passProbes_EB_pfIsoTightMu_pt","Barrel: pfIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);
  h_passProbes_EE_pfIsoTightMu_pt = dbe->book1D("passProbes_EE_pfIsoTightMu_pt","Endcap: pfIsoTightMu Passing Probes Pt", ptBin_, ptMin_, ptMax_);

  h_passProbes_detIsoTightMu_nVtx    = dbe->book1D("passProbes_detIsoTightMu_nVtx",    "detIsoTightMu Passing Probes nVtx (R03)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_pfIsoTightMu_nVtx     = dbe->book1D("passProbes_pfIsoTightMu_nVtx",    "pfIsoTightMu Passing Probes nVtx (R04)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_EB_detIsoTightMu_nVtx = dbe->book1D("passProbes_EB_detIsoTightMu_nVtx","Barrel: detIsoTightMu Passing Probes nVtx (R03)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_EE_detIsoTightMu_nVtx = dbe->book1D("passProbes_EE_detIsoTightMu_nVtx","Endcap: detIsoTightMu Passing Probes nVtx (R03)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_EB_pfIsoTightMu_nVtx  = dbe->book1D("passProbes_EB_pfIsoTightMu_nVtx", "Barrel: pfIsoTightMu Passing Probes nVtx (R04)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_EE_pfIsoTightMu_nVtx  = dbe->book1D("passProbes_EE_pfIsoTightMu_nVtx", "Endcap: pfIsoTightMu Passing Probes nVtx (R04)",  vtxBin_, vtxMin_, vtxMax_);

  
  // Apply deltaBeta PU corrections to the PF isolation eficiencies.
  
  h_passProbes_pfIsodBTightMu_pt = dbe->book1D("passProbes_pfIsodBTightMu_pt","pfIsoTightMu Passing Probes Pt (deltaB PU correction)", ptBin_, ptMin_, ptMax_);
  h_passProbes_EB_pfIsodBTightMu_pt = dbe->book1D("passProbes_EB_pfIsodBTightMu_pt","Barrel: pfIsoTightMu Passing Probes Pt (deltaB PU correction)", ptBin_, ptMin_, ptMax_);
  h_passProbes_EE_pfIsodBTightMu_pt = dbe->book1D("passProbes_EE_pfIsodBTightMu_pt","Endcap: pfIsoTightMu Passing Probes Pt (deltaB PU correction)", ptBin_, ptMin_, ptMax_);
  h_passProbes_pfIsodBTightMu_nVtx     = dbe->book1D("passProbes_pfIsodBTightMu_nVtx",    "pfIsoTightMu Passing Probes nVtx (R04) (deltaB PU correction)",  vtxBin_, vtxMin_, vtxMax_);
h_passProbes_EB_pfIsodBTightMu_nVtx  = dbe->book1D("passProbes_EB_pfIsodBTightMu_nVtx", "Barrel: pfIsoTightMu Passing Probes nVtx (R04) (deltaB PU correction)",  vtxBin_, vtxMin_, vtxMax_);
  h_passProbes_EE_pfIsodBTightMu_nVtx  = dbe->book1D("passProbes_EE_pfIsodBTightMu_nVtx", "Endcap: pfIsoTightMu Passing Probes nVtx (R04) (deltaB PU correction)",  vtxBin_, vtxMin_, vtxMax_);



#ifdef DEBUG
  cout << "[EfficiencyAnalyzer] Parameters initialization DONE" <<endl;
#endif
}

Member Data Documentation

Definition at line 54 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

int EfficiencyAnalyzer::_numPV [protected]

Definition at line 124 of file EfficiencyAnalyzer.h.

Referenced by analyze().

Definition at line 56 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

int EfficiencyAnalyzer::etaBin_ [protected]

Definition at line 59 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::etaMax_ [protected]

Definition at line 67 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::etaMin_ [protected]

Definition at line 66 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

Definition at line 100 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 109 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 106 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 101 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 110 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 107 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 102 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 103 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 104 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 99 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 108 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 105 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 96 of file EfficiencyAnalyzer.h.

Definition at line 97 of file EfficiencyAnalyzer.h.

Definition at line 95 of file EfficiencyAnalyzer.h.

Definition at line 88 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 82 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 90 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 83 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 120 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 117 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 92 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 86 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 91 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 84 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 121 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 118 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 93 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 87 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 119 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 116 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 89 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 85 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 77 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 78 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 79 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 80 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 81 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 76 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

std::string EfficiencyAnalyzer::metname [protected]

Definition at line 46 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 43 of file EfficiencyAnalyzer.h.

Referenced by beginJob(), and EfficiencyAnalyzer().

int EfficiencyAnalyzer::phiBin_ [protected]

Definition at line 60 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::phiMax_ [protected]

Definition at line 70 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::phiMin_ [protected]

Definition at line 69 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

int EfficiencyAnalyzer::ptBin_ [protected]

Definition at line 61 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::ptMax_ [protected]

Definition at line 64 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::ptMin_ [protected]

Definition at line 63 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

Definition at line 113 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 50 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 49 of file EfficiencyAnalyzer.h.

Definition at line 51 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

Definition at line 55 of file EfficiencyAnalyzer.h.

Referenced by analyze(), and beginJob().

int EfficiencyAnalyzer::vtxBin_ [protected]

Definition at line 72 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::vtxMax_ [protected]

Definition at line 74 of file EfficiencyAnalyzer.h.

Referenced by beginJob().

double EfficiencyAnalyzer::vtxMin_ [protected]

Definition at line 73 of file EfficiencyAnalyzer.h.

Referenced by beginJob().