CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 62 of file ZToMuMuIsoDepositSelector.cc.

Constructor & Destructor Documentation

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

Definition at line 64 of file ZToMuMuIsoDepositSelector.cc.

64  :
65  isolator_(cfg.template getParameter<double>("isoCut")),
66  ptThreshold(cfg.getUntrackedParameter<double>("ptThreshold")),
67  etEcalThreshold(cfg.getUntrackedParameter<double>("etEcalThreshold")),
68  etHcalThreshold(cfg.getUntrackedParameter<double>("etHcalThreshold")),
69  dRVetoTrk(cfg.getUntrackedParameter<double>("deltaRVetoTrk")),
70  dRTrk(cfg.getUntrackedParameter<double>("deltaRTrk")),
71  dREcal(cfg.getUntrackedParameter<double>("deltaREcal")),
72  dRHcal(cfg.getUntrackedParameter<double>("deltaRHcal")),
73  alpha(cfg.getUntrackedParameter<double>("alpha")),
74  beta(cfg.getUntrackedParameter<double>("beta")),
75  relativeIsolation(cfg.template getParameter<bool>("relativeIsolation")) {
76  }
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 108 of file ZToMuMuIsoDepositSelector.cc.

References EnergyCorrector::c, edm::hlt::Exception, edm::errors::InvalidReference, and RPCpg::mu.

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

Definition at line 79 of file ZToMuMuIsoDepositSelector.cc.

References alpha, beta, dir, pat::EcalIso, pat::HcalIso, reco::IsoDeposit::sumWithin(), and pat::TrackIso.

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

Definition at line 117 of file ZToMuMuIsoDepositSelector.cc.

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

117  {
118  if(z.numberOfDaughters()!=2)
120  << "Candidate has " << z.numberOfDaughters() << " daughters, 2 expected\n";
121  const reco::Candidate * dau0 = z.daughter(0);
122  const reco::Candidate * dau1 = z.daughter(1);
123  if(!(dau0->hasMasterClone()&&dau1->hasMasterClone()))
125  << "Candidate daughters have no master clone\n";
126  const reco::Candidate * m0 = &*dau0->masterClone(), * m1 = &*dau1->masterClone();
127  return isolator_(candIsolation(m0), candIsolation(m1));
128  }
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 size_type numberOfDaughters() const =0
number of daughters
virtual bool hasMasterClone() const =0
virtual const CandidateBaseRef & masterClone() const =0

Member Data Documentation

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 132 of file ZToMuMuIsoDepositSelector.cc.