CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
ZToMuMuIsoDepositSelector< Isolator > Class Template Reference

Public Member Functions

double candIsolation (const reco::Candidate *c) const
 
template<typename T >
double isolation (const T *t) const
 
bool operator() (const reco::Candidate &z) const
 
 ZToMuMuIsoDepositSelector (const edm::ParameterSet &cfg, edm::ConsumesCollector &iC)
 

Private Attributes

double alpha
 
double beta
 
double dREcal
 
double dRHcal
 
double dRTrk
 
double dRVetoTrk
 
double etEcalThreshold
 
double etHcalThreshold
 
Isolator isolator_
 
double ptThreshold
 
bool relativeIsolation
 

Detailed Description

template<typename Isolator>
class ZToMuMuIsoDepositSelector< Isolator >

Definition at line 58 of file ZToMuMuIsoDepositSelector.cc.

Constructor & Destructor Documentation

template<typename Isolator >
ZToMuMuIsoDepositSelector< Isolator >::ZToMuMuIsoDepositSelector ( const edm::ParameterSet cfg,
edm::ConsumesCollector iC 
)
inline

Definition at line 60 of file ZToMuMuIsoDepositSelector.cc.

61  : isolator_(cfg.template getParameter<double>("isoCut")),
62  ptThreshold(cfg.getUntrackedParameter<double>("ptThreshold")),
63  etEcalThreshold(cfg.getUntrackedParameter<double>("etEcalThreshold")),
64  etHcalThreshold(cfg.getUntrackedParameter<double>("etHcalThreshold")),
65  dRVetoTrk(cfg.getUntrackedParameter<double>("deltaRVetoTrk")),
66  dRTrk(cfg.getUntrackedParameter<double>("deltaRTrk")),
67  dREcal(cfg.getUntrackedParameter<double>("deltaREcal")),
68  dRHcal(cfg.getUntrackedParameter<double>("deltaRHcal")),
69  alpha(cfg.getUntrackedParameter<double>("alpha")),
70  beta(cfg.getUntrackedParameter<double>("beta")),
71  relativeIsolation(cfg.template getParameter<bool>("relativeIsolation")) {}
T getUntrackedParameter(std::string const &, T const &) const

Member Function Documentation

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::candIsolation ( const reco::Candidate c) const
inline

Definition at line 104 of file ZToMuMuIsoDepositSelector.cc.

References HltBtagPostValidation_cff::c, Exception, edm::errors::InvalidReference, and amptDefaultParameters_cff::mu.

104  {
105  const pat::Muon* mu = dynamic_cast<const pat::Muon*>(c);
106  if (mu != nullptr)
107  return isolation(mu);
108  const pat::GenericParticle* trk = dynamic_cast<const pat::GenericParticle*>(c);
109  if (trk != nullptr)
110  return isolation(trk);
112  << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n";
113  return -1;
114  }
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
double isolation(const T *t) const
Analysis-level muon class.
Definition: Muon.h:51
template<typename Isolator >
template<typename T >
double ZToMuMuIsoDepositSelector< Isolator >::isolation ( const T t) const
inline

Definition at line 74 of file ZToMuMuIsoDepositSelector.cc.

References zMuMuMuonUserData::alpha, zMuMuMuonUserData::beta, DeadROC_duringRun::dir, zMuMuMuonUserData::dREcal, zMuMuMuonUserData::dRHcal, zMuMuMuonUserData::dRTrk, zMuMuMuonUserData::dRVetoTrk, pat::EcalIso, zMuMuMuonUserData::etEcalThreshold, zMuMuMuonUserData::etHcalThreshold, pat::HcalIso, ewkMuLumiMonitorDQM_cfi::ptThreshold, ZMuMuCategoriesNtuples_cff::relativeIsolation, reco::IsoDeposit::sumWithin(), pat::TrackIso, and ZMuMuCategoriesSequences_cff::trkIso.

74  {
75  const pat::IsoDeposit* trkIso = t->isoDeposit(pat::TrackIso);
76  const pat::IsoDeposit* ecalIso = t->isoDeposit(pat::EcalIso);
77  const pat::IsoDeposit* hcalIso = t->isoDeposit(pat::HcalIso);
78 
79  Direction dir = Direction(t->eta(), t->phi());
80 
81  IsoDeposit::AbsVetos vetosTrk;
82  vetosTrk.push_back(new ConeVeto(dir, dRVetoTrk));
83  vetosTrk.push_back(new ThresholdVeto(ptThreshold));
84 
85  IsoDeposit::AbsVetos vetosEcal;
86  vetosEcal.push_back(new ConeVeto(dir, 0.));
87  vetosEcal.push_back(new ThresholdVeto(etEcalThreshold));
88 
89  IsoDeposit::AbsVetos vetosHcal;
90  vetosHcal.push_back(new ConeVeto(dir, 0.));
91  vetosHcal.push_back(new ThresholdVeto(etHcalThreshold));
92 
93  double isovalueTrk = (trkIso->sumWithin(dRTrk, vetosTrk));
94  double isovalueEcal = (ecalIso->sumWithin(dREcal, vetosEcal));
95  double isovalueHcal = (hcalIso->sumWithin(dRHcal, vetosHcal));
96 
97  double iso =
98  alpha * (((1 + beta) / 2 * isovalueEcal) + ((1 - beta) / 2 * isovalueHcal)) + ((1 - alpha) * isovalueTrk);
100  iso /= t->pt();
101  return iso;
102  }
double sumWithin(double coneSize, const AbsVetos &vetos=AbsVetos(), bool skipDepositVeto=false) const
Definition: IsoDeposit.cc:137
std::vector< AbsVeto * > AbsVetos
Definition: IsoDeposit.h:43
template<typename Isolator >
bool ZToMuMuIsoDepositSelector< Isolator >::operator() ( const reco::Candidate z) const
inline

Definition at line 115 of file ZToMuMuIsoDepositSelector.cc.

References candIsolation(), reco::Candidate::daughter(), Exception, reco::Candidate::hasMasterClone(), edm::errors::InvalidReference, reco::Candidate::masterClone(), and reco::Candidate::numberOfDaughters().

115  {
116  if (z.numberOfDaughters() != 2)
118  << "Candidate has " << z.numberOfDaughters() << " daughters, 2 expected\n";
119  const reco::Candidate* dau0 = z.daughter(0);
120  const reco::Candidate* dau1 = z.daughter(1);
121  if (!(dau0->hasMasterClone() && dau1->hasMasterClone()))
122  throw edm::Exception(edm::errors::InvalidReference) << "Candidate daughters have no master clone\n";
123  const reco::Candidate *m0 = &*dau0->masterClone(), *m1 = &*dau1->masterClone();
124  return isolator_(candIsolation(m0), candIsolation(m1));
125  }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double candIsolation(const reco::Candidate *c) const
virtual const CandidateBaseRef & masterClone() const =0
virtual size_type numberOfDaughters() const =0
number of daughters
virtual bool hasMasterClone() const =0

Member Data Documentation

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::alpha
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::beta
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::dREcal
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::dRHcal
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::dRTrk
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::dRVetoTrk
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::etEcalThreshold
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::etHcalThreshold
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
Isolator ZToMuMuIsoDepositSelector< Isolator >::isolator_
private

Definition at line 128 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
double ZToMuMuIsoDepositSelector< Isolator >::ptThreshold
private

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

template<typename Isolator >
bool ZToMuMuIsoDepositSelector< Isolator >::relativeIsolation
private

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.