CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFCombinedTauTagInfo.h
Go to the documentation of this file.
1 #ifndef DataFormats_BTauReco_PFCombinedTauTagInfo_h
2 #define DataFormats_BTauReco_PFCombinedTauTagInfo_h
3 
4 /* class PFCombinedTauTagInfo
5  * Extended object for the Particle Flow Tau Combination algorithm,
6  * created: Apr 21 2007,
7  * revised: Jun 23 2007,
8  * author: Ludovic Houchu.
9  */
10 
11 #include <limits>
12 #include <math.h>
13 
19 
20 
21 
22 
23 namespace reco {
25  public:
28  electronTagged_=false;
29  muonTagged_=false;
39  PFNeutrHadrCandsN_=numeric_limits<int>::quiet_NaN();
41  PFGammaCandsE_=NAN;
43  PFGammaCandsN_=numeric_limits<int>::quiet_NaN();
48  alternatLorentzVect_.SetPx(NAN);
49  alternatLorentzVect_.SetPy(NAN);
50  alternatLorentzVect_.SetPz(NAN);
51  alternatLorentzVect_.SetE(NAN);
54  }
55  virtual ~PFCombinedTauTagInfo() {};
56 
57  //the reference to the PFJet;
58  const PFJetRef& pfjetRef()const{return PFJetRef_;}
59  void setpfjetRef(const PFJetRef x){PFJetRef_=x;}
60 
61  //the reference to the PFIsolatedTauTagInfo;
64 
65  //the PF charged hadron candidates contained in the PF Jet;
68 
69  //the PF charged hadron candidates considered in the isolation strip and signal cone selections;
72 
73  //the PF charged hadron candidates inside signal cone;
76 
77  //the PF charged hadron candidates inside isolation band;
80 
81  virtual PFCombinedTauTagInfo* clone() const{return new PFCombinedTauTagInfo(*this );}
82 
83  // float JetTag::discriminator() returns 0. if candidate did not pass PF charged hadron candidates selection,
84  // 1. if candidate passed PF charged hadron candidates selection and did not contain PF gamma candidate(s),
85  // 0<= <=1 if candidate passed PF charged hadron candidates selection, contained PF gamma candidate(s) and went through the likelihood ratio mechanism,
86  // NaN the values of the likelihood functions PDFs are 0 (test the result of discriminator() with bool isnan(.));
87  //computed with the parameters taken from the RecoTauTag/PFCombinedTauTag/data/ .cfi files
88 
91 
92  bool electronTagged()const{return(electronTagged_);} // true : passed PF charged hadron candidates sel., contains 1 signal charged hadron candidate, e-identified through (ECALEtleadPFChargedHadrCandPtRatio(),HCALEtleadPFChargedHadrCandPtRatio()) space;
94 
95  bool muonTagged()const{return(muonTagged_);} // true : passed PF charged hadron candidates sel., contains 1 signal charged hadron candidate, mu-identified through (ECALEtleadPFChargedHadrCandPtRatio(),HCALEtleadPFChargedHadrCandPtRatio()) space;
96  void setmuonTagged(bool x){muonTagged_=x;}
97 
98  double leadPFChargedHadrCandsignedSipt()const{return (leadPFChargedHadrCandsignedSipt_);} // NaN : failure;
100 
101  double leadPFChargedHadrCandsignedSip3D()const{return(leadPFChargedHadrCandsignedSip3D_);} // NaN : failure;
103 
104  double signedSflightpath()const{return (signedSflightpath_);} // NaN : failure, did not build a SV.;
106 
107  // Et_PFchargedhadrcands/Etjet;
110 
111  // PF neutral hadron candidates E sum;
112  double PFNeutrHadrCandsE()const{return(PFNeutrHadrCandsE_);}
114 
117 
118  //mean DR_PFNeutrHadrcands-lead.PFcand.;
119  double PFNeutrHadrCandsRadius()const{return(PFNeutrHadrCandsRadius_);} // NaN : PFNeutrHadrCandsN()=0;
121 
122  // PF gamma candidates E sum;
123  double PFGammaCandsE()const{return(PFGammaCandsE_);}
124  void setPFGammaCandsE(double x){PFGammaCandsE_=x;}
125 
126  // isol. band PF gamma candidates E sum;
127  double isolPFGammaCandsE()const{return(isolPFGammaCandsE_);}
129 
130  int PFGammaCandsN()const{return(PFGammaCandsN_);}
132 
133  //mean DR_PFgammacands-lead.PFcand.;
134  double PFGammaCandsRadius()const{return(PFGammaCandsRadius_);} // NaN : PFGammaCandsN()=0;
136 
137  // E_PFgammacands / (E_PFgammacands + E_PFchargedhadrcands);
140 
141  // E_PFgammacands,isol.band / (E_PFgammacands + E_PFchargedhadrcands);
144 
145  // E_PFgammacands,isol.band / E_PFgammacands;
146  double PFGammaCandsERatio()const{return(PFGammaCandsERatio_);} // NaN : PFGammaCandsN()=0;
148 
149  math::XYZTLorentzVector alternatLorentzVect()const{return(alternatLorentzVect_);} // rec. charged hadr. candidates + rec. gamma candidates combined;
151 
152  // EtECAL*/Pt_lead.PFcand. *using ECAL cell hits inside a DR cone around lead. charged hadr. candidate ECAL impact point direction;
153  double ECALEtleadPFChargedHadrCandPtRatio()const{return(ECALEtleadPFChargedHadrCandPtRatio_);} // NaN : failure when trying to find the lead. charged hadr. candidate contact on ECAL surface point;
155 
156  // EtHCAL**/Pt_lead.PFcand.; **using HCAL tower hits inside a DR cone around lead. charged hadr. candidate ECAL impact point direction;
157  double HCALEtleadPFChargedHadrCandPtRatio()const{return(HCALEtleadPFChargedHadrCandPtRatio_);} // NaN : failure when trying to find the lead. charged hadr. candidate contact on ECAL surface point;
159  private:
186  };
187 
189 
190 }
191 
192 #endif // DataFormats_BTauReco_PFCombinedTauTagInfo_h
math::XYZTLorentzVector alternatLorentzVect() const
void setpfjetRef(const PFJetRef x)
PFIsolatedTauTagInfoRef PFIsolatedTauTagInfoRef_
double PFGammaCandsEJetalternatERatio() const
PFCandidateRefVector PFChargedHadrCands_
void setisolPFGammaCandsEJetalternatERatio(double x)
void setisolatedtautaginfoRef(const PFIsolatedTauTagInfoRef x)
void setECALEtleadPFChargedHadrCandPtRatio(double x)
void setselectedByPFChargedHadrCands(bool x)
PFCandidateRefVector selectedPFChargedHadrCands_
const PFCandidateRefVector & selectedPFChargedHadrCands() const
void setleadPFChargedHadrCandsignedSipt(double x)
math::XYZTLorentzVector alternatLorentzVect_
void setsignalPFChargedHadrCands(const PFCandidateRefVector &x)
double ECALEtleadPFChargedHadrCandPtRatio() const
void setPFChargedHadrCandsEtJetEtRatio(double x)
const PFIsolatedTauTagInfoRef & isolatedtautaginfoRef() const
void setPFChargedHadrCands(const PFCandidateRefVector &x)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
void setHCALEtleadPFChargedHadrCandPtRatio(double x)
void setselectedPFChargedHadrCands(const PFCandidateRefVector &x)
virtual PFCombinedTauTagInfo * clone() const
clone
void setisolPFChargedHadrCands(const PFCandidateRefVector &x)
const PFCandidateRefVector & signalPFChargedHadrCands() const
bool selectedByPFChargedHadrCands() const
#define DECLARE_EDM_REFS(class_name)
Definition: RefMacros.h:10
void clear()
Clear the vector.
Definition: RefVector.h:139
void setalternatLorentzVect(math::XYZTLorentzVector x)
double PFChargedHadrCandsEtJetEtRatio() const
double leadPFChargedHadrCandsignedSipt() const
const PFJetRef & pfjetRef() const
const PFCandidateRefVector & isolPFChargedHadrCands() const
void setPFGammaCandsEJetalternatERatio(double x)
double leadPFChargedHadrCandsignedSip3D() const
void setleadPFChargedHadrCandsignedSip3D(double x)
double HCALEtleadPFChargedHadrCandPtRatio() const
double isolPFGammaCandsEJetalternatERatio() const
const PFCandidateRefVector & PFChargedHadrCands() const
PFCandidateRefVector isolPFChargedHadrCands_
PFCandidateRefVector signalPFChargedHadrCands_