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)
 

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 61 of file ZToMuMuIsoDepositSelector.cc.

Constructor & Destructor Documentation

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

Definition at line 63 of file ZToMuMuIsoDepositSelector.cc.

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

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

107  {
108  const pat::Muon * mu = dynamic_cast<const pat::Muon *>(c);
109  if(mu != 0) return isolation(mu);
110  const pat::GenericParticle * trk = dynamic_cast<const pat::GenericParticle*>(c);
111  if(trk != 0) return isolation(trk);
113  << "Candidate daughter #0 is neither pat::Muons nor pat::GenericParticle\n";
114  return -1;
115  }
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
const int mu
Definition: Constants.h:23
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 78 of file ZToMuMuIsoDepositSelector.cc.

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

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

Definition at line 116 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().

116  {
117  if(z.numberOfDaughters()!=2)
119  << "Candidate has " << z.numberOfDaughters() << " daughters, 2 expected\n";
120  const reco::Candidate * dau0 = z.daughter(0);
121  const reco::Candidate * dau1 = z.daughter(1);
122  if(!(dau0->hasMasterClone()&&dau1->hasMasterClone()))
124  << "Candidate daughters have no master clone\n";
125  const reco::Candidate * m0 = &*dau0->masterClone(), * m1 = &*dau1->masterClone();
126  return isolator_(candIsolation(m0), candIsolation(m1));
127  }
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 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 129 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 130 of file ZToMuMuIsoDepositSelector.cc.

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

Definition at line 131 of file ZToMuMuIsoDepositSelector.cc.