CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EMIsolatedTauTagInfo.h
Go to the documentation of this file.
1 #ifndef DataFormats_BTauReco_EMIsolatedTauTagInfo_h
2 #define DataFormats_BTauReco_EMIsolatedTauTagInfo_h
3 //
4 // \class EMIsolatedTauTagInfo
5 //
6 
8 #include "Math/GenVector/VectorUtil.h"
9 #include "Math/GenVector/PxPyPzE4D.h"
14 
15 namespace reco {
16 
18 
19  public:
20  //default constructor
22 
24  m_discriminator( discriminator ),
25  m_jetCrystalsAssociation( jetCrystals ) { }
26 
27  // destructor
28  virtual ~EMIsolatedTauTagInfo() { };
29  virtual EMIsolatedTauTagInfo* clone() const { return new EMIsolatedTauTagInfo( * this ); }
30 
31  // get the jet from the jetTag
32  virtual edm::RefToBase<Jet> jet() const { return m_jetCrystalsAssociation->first; }
35 
36  // default discriminator: returns the value of the discriminator computed with the parameters taken from the cfg file in the EDProducer
37  float discriminator() const {
38  return m_discriminator;
39  }
40 
42 
43  //Method to recompute the discriminator
44  double pIsol(float rMax, float rMin) const
45  {
46  const EMLorentzVectorRefVector & myRecHits = m_jetCrystalsAssociation->second;
47  const Jet & myJet = * m_jetCrystalsAssociation->first;
48  double energyRMax= 0.;
49  double energyRMin = 0.;
50 
51  for (EMLorentzVectorRefVector::const_iterator mRH = myRecHits.begin(); mRH != myRecHits.end(); ++mRH)
52  {
53  double delta = ROOT::Math::VectorUtil::DeltaR((myJet).p4().Vect(), (**mRH));
54  if (delta < rMax) {
55  energyRMax += (**mRH).pt();
56  }
57  if (delta < rMin) {
58  energyRMin += (**mRH).pt();
59  }
60  }
61  double pIsol = energyRMax - energyRMin;
62  return pIsol;
63  }
64 
65  float discriminator(float rMax, float rMin, float pIsolCut) const
66  {
67  double newDiscriminator_ = 0;
68  double pIsol_ = pIsol(rMax, rMin);
69  if (pIsol_ < pIsolCut) newDiscriminator_ = 1.;
70 
71  return newDiscriminator_;
72  }
73 
74  private:
75 
76  float m_discriminator; //Default discriminator assigned in the EDProducer
78  };
79 
81 
82 }
83 
84 #endif // DataFormats_BTauReco_EMIsolatedTauTagInfo_h
dbl * delta
Definition: mlp_gen.cc:36
virtual edm::RefToBase< Jet > jet() const
returns a polymorphic reference to the tagged jet
const JetCrystalsAssociationRef & jcaRef() const
Base class for all types of Jets.
Definition: Jet.h:21
double pIsol(float rMax, float rMin) const
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:249
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:244
double p4[4]
Definition: TauolaWrapper.h:92
EMIsolatedTauTagInfo(double discriminator, const JetCrystalsAssociationRef &jetCrystals)
float discriminator(float rMax, float rMin, float pIsolCut) const
void setDiscriminator(double discriminator)
JetCrystalsAssociationRef m_jetCrystalsAssociation
#define DECLARE_EDM_REFS(class_name)
Definition: RefMacros.h:10
virtual EMIsolatedTauTagInfo * clone() const
clone
virtual EMLorentzVectorRefVector lorentzVectorRecHits() const