Public Types | |
typedef math::XYZVector | Vector |
Public Member Functions | |
ZGlobalVsSAIsolationAnalyzer (const edm::ParameterSet &cfg) | |
Private Member Functions | |
virtual void | analyze (const edm::Event &event, const edm::EventSetup &setup) |
virtual void | endJob () |
void | evaluate (const reco::Candidate *dau) |
bool | isolated (const Direction &dir, const pat::IsoDeposit *trkIsoDep, const pat::IsoDeposit *ecalIsoDep, const pat::IsoDeposit *hcalIsoDep) |
Private Attributes | |
double | alpha |
double | beta |
double | dREcal |
double | dRHcal |
double | dRTrk |
double | dRVeto |
double | etEcalThreshold |
double | etHcalThreshold |
double | isoCut_ |
double | ptThreshold |
unsigned long | selGlobal_ |
unsigned long | selSA_ |
InputTag | src_ |
unsigned long | totGlobal_ |
unsigned long | totSA_ |
Definition at line 33 of file ZGlobalVsSAIsolationAnalyzer.cc.
Definition at line 35 of file ZGlobalVsSAIsolationAnalyzer.cc.
ZGlobalVsSAIsolationAnalyzer::ZGlobalVsSAIsolationAnalyzer | ( | const edm::ParameterSet & | cfg | ) |
Definition at line 52 of file ZGlobalVsSAIsolationAnalyzer.cc.
: src_(cfg.getParameter<InputTag>("src")), dRVeto(cfg.getParameter<double>("veto")), dRTrk(cfg.getParameter<double>("deltaRTrk")), dREcal(cfg.getParameter<double>("deltaREcal")), dRHcal(cfg.getParameter<double>("deltaRHcal")), ptThreshold(cfg.getParameter<double>("ptThreshold")), etEcalThreshold(cfg.getParameter<double>("etEcalThreshold")), etHcalThreshold(cfg.getParameter<double>("etHcalThreshold")), alpha(cfg.getParameter<double>("alpha")), beta(cfg.getParameter<double>("beta")), isoCut_(cfg.getParameter<double>("isoCut")), selGlobal_(0), selSA_(0), totGlobal_(0), totSA_(0) { }
void ZGlobalVsSAIsolationAnalyzer::analyze | ( | const edm::Event & | event, |
const edm::EventSetup & | setup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 105 of file ZGlobalVsSAIsolationAnalyzer.cc.
References reco::Candidate::daughter(), WZMuSkim_cff::dimuons, evaluate(), i, and src_.
void ZGlobalVsSAIsolationAnalyzer::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 115 of file ZGlobalVsSAIsolationAnalyzer.cc.
References gather_cfg::cout, selGlobal_, selSA_, mathSSE::sqrt(), totGlobal_, and totSA_.
{ cout << "Isolation efficiency report:" << endl; double eff, err; eff = double(selGlobal_)/double(totGlobal_); err = sqrt(eff*(1.-eff)/double(totGlobal_)); cout <<"Global: " << selGlobal_ << "/" << totGlobal_ << " = " <<eff <<"+/-" << err<< endl; eff = double(selSA_)/double(totSA_); err = sqrt(eff*(1.-eff)/double(totSA_)); cout <<"St.Al.: " << selSA_ << "/" << totSA_ << " = " << eff <<"+/-" << err << endl; }
void ZGlobalVsSAIsolationAnalyzer::evaluate | ( | const reco::Candidate * | dau | ) | [private] |
Definition at line 84 of file ZGlobalVsSAIsolationAnalyzer.cc.
References dir, pat::EcalIso, reco::LeafCandidate::eta(), Exception, reco::Candidate::get(), pat::HcalIso, edm::errors::InvalidReference, pat::Lepton< LeptonType >::isoDeposit(), isolated(), reco::Candidate::masterClone(), reco::LeafCandidate::phi(), selGlobal_, selSA_, totGlobal_, totSA_, and pat::TrackIso.
Referenced by analyze().
{ const pat::Muon * mu = dynamic_cast<const pat::Muon *>(&*dau->masterClone()); if(mu == 0) throw Exception(errors::InvalidReference) << "Daughter is not a muon!\n"; const pat::IsoDeposit * trkIsoDep = mu->isoDeposit(pat::TrackIso); const pat::IsoDeposit * ecalIsoDep = mu->isoDeposit(pat::EcalIso); const pat::IsoDeposit * hcalIsoDep = mu->isoDeposit(pat::HcalIso); // global muon { Direction dir = Direction(mu->eta(), mu->phi()); if(isolated(dir, trkIsoDep, ecalIsoDep, hcalIsoDep)) selGlobal_++; totGlobal_++; } // stand-alone { TrackRef sa = dau->get<TrackRef,reco::StandAloneMuonTag>(); Direction dir = Direction(sa->eta(), sa->phi()); if(isolated(dir, trkIsoDep, ecalIsoDep, hcalIsoDep)) selSA_++; totSA_++; } }
bool ZGlobalVsSAIsolationAnalyzer::isolated | ( | const Direction & | dir, |
const pat::IsoDeposit * | trkIsoDep, | ||
const pat::IsoDeposit * | ecalIsoDep, | ||
const pat::IsoDeposit * | hcalIsoDep | ||
) | [private] |
Definition at line 67 of file ZGlobalVsSAIsolationAnalyzer.cc.
References alpha, beta, dREcal, dRHcal, dRTrk, dRVeto, etEcalThreshold, etHcalThreshold, isoCut_, ptThreshold, and reco::IsoDeposit::sumWithin().
Referenced by evaluate().
{ IsoDeposit::AbsVetos vetoTrk, vetoEcal, vetoHcal; vetoTrk.push_back(new ConeVeto(dir, dRVeto)); vetoTrk.push_back(new ThresholdVeto(ptThreshold)); vetoEcal.push_back(new ConeVeto(dir, 0.)); vetoEcal.push_back(new ThresholdVeto(etEcalThreshold)); vetoHcal.push_back(new ConeVeto(dir, 0.)); vetoHcal.push_back(new ThresholdVeto(etHcalThreshold)); double trkIso = trkIsoDep->sumWithin(dir, dRTrk, vetoTrk); double ecalIso = ecalIsoDep->sumWithin(dir, dREcal, vetoEcal); double hcalIso = hcalIsoDep->sumWithin(dir, dRHcal, vetoHcal); double iso = alpha*((0.5*(1+beta)*ecalIso) + (0.5*(1-beta)*hcalIso)) + (1-alpha)*trkIso; return iso < isoCut_; }
double ZGlobalVsSAIsolationAnalyzer::alpha [private] |
Definition at line 44 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::beta [private] |
Definition at line 44 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::dREcal [private] |
Definition at line 42 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::dRHcal [private] |
Definition at line 42 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::dRTrk [private] |
Definition at line 42 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::dRVeto [private] |
Definition at line 41 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::etEcalThreshold [private] |
Definition at line 43 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::etHcalThreshold [private] |
Definition at line 43 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::isoCut_ [private] |
Definition at line 45 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
double ZGlobalVsSAIsolationAnalyzer::ptThreshold [private] |
Definition at line 43 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by isolated().
unsigned long ZGlobalVsSAIsolationAnalyzer::selGlobal_ [private] |
Definition at line 46 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by endJob(), and evaluate().
unsigned long ZGlobalVsSAIsolationAnalyzer::selSA_ [private] |
Definition at line 46 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by endJob(), and evaluate().
InputTag ZGlobalVsSAIsolationAnalyzer::src_ [private] |
Definition at line 40 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by analyze().
unsigned long ZGlobalVsSAIsolationAnalyzer::totGlobal_ [private] |
Definition at line 46 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by endJob(), and evaluate().
unsigned long ZGlobalVsSAIsolationAnalyzer::totSA_ [private] |
Definition at line 46 of file ZGlobalVsSAIsolationAnalyzer.cc.
Referenced by endJob(), and evaluate().