00001 #ifndef DataFormats_TauReco_CaloTau_h 00002 #define DataFormats_TauReco_CaloTau_h 00003 00004 /* class CaloTau 00005 * the object of this class is created by RecoTauTag/RecoTau CaloRecoTauProducer EDProducer starting from the CaloTauTagInfo object, 00006 * is a hadronic tau-jet candidate -built from a calo. jet- that analysts manipulate; 00007 * authors: Simone Gennai (simone.gennai@cern.ch), Ludovic Houchu (Ludovic.Houchu@cern.ch) 00008 * created: Jun 21 2007, 00009 * revised: Feb 20 2007 00010 */ 00011 #include "DataFormats/Math/interface/LorentzVector.h" 00012 #include "DataFormats/TauReco/interface/BaseTau.h" 00013 #include "DataFormats/TauReco/interface/CaloTauFwd.h" 00014 #include "DataFormats/TauReco/interface/CaloTauTagInfo.h" 00015 00016 #include <limits> 00017 00018 namespace reco { 00019 class CaloTau : public BaseTau { 00020 public: 00021 CaloTau(); 00022 CaloTau(Charge q, const LorentzVector &, const Point & = Point( 0, 0, 0 ) ); 00023 virtual ~CaloTau(){} 00024 CaloTau* clone()const; 00025 00026 const CaloTauTagInfoRef& caloTauTagInfoRef()const; 00027 void setcaloTauTagInfoRef(const CaloTauTagInfoRef); 00028 00029 const CaloJetRef rawJetRef() const; 00030 00031 // signed transverse impact parameter significance of leading Track ; NaN if no leading Track 00032 float leadTracksignedSipt()const; 00033 void setleadTracksignedSipt(const float&); 00034 00035 // sum of Et of HCAL hits inside a 3x3 calo. tower matrix centered on direction of propag. leading Track - ECAL inner surf. contact point ; NaN if no leading Track or if invalid propag. leading Track - ECAL inner surf. contact point 00036 float leadTrackHCAL3x3hitsEtSum()const; 00037 void setleadTrackHCAL3x3hitsEtSum(const float&); 00038 00039 // |DEta| between direction of propag. leading Track - ECAL inner surf. contact point and direction of highest Et hit among HCAL hits inside a 3x3 calo. tower matrix centered on direction of propag. leading Track - ECAL inner surf. contact point ; NaN if no leading Track or if invalid propag. leading Track - ECAL inner surf. contact point 00040 float leadTrackHCAL3x3hottesthitDEta()const; 00041 void setleadTrackHCAL3x3hottesthitDEta(const float&); 00042 00043 // invariant mass of the system of Tracks inside a signal cone around leading Track ; NaN if no leading Track 00044 float signalTracksInvariantMass()const; 00045 void setsignalTracksInvariantMass(const float&); 00046 00047 // invariant mass of the system of Tracks ; NaN if no Track 00048 float TracksInvariantMass()const; 00049 void setTracksInvariantMass(const float&); 00050 00051 // sum of Pt of the Tracks inside a tracker isolation annulus around leading Track ; NaN if no leading Track 00052 float isolationTracksPtSum()const; 00053 void setisolationTracksPtSum(const float&); 00054 00055 // sum of Et of ECAL RecHits inside an ECAL isolation annulus around leading Track ; NaN if no leading Track 00056 float isolationECALhitsEtSum()const; 00057 void setisolationECALhitsEtSum(const float&); 00058 00059 // Et of the highest Et HCAL hit 00060 float maximumHCALhitEt()const; 00061 void setmaximumHCALhitEt(const float&); 00062 private: 00063 // check overlap with another candidate 00064 virtual bool overlap(const Candidate&d)const; 00065 CaloTauTagInfoRef CaloTauTagInfoRef_; 00066 float leadTracksignedSipt_; 00067 float leadTrackHCAL3x3hitsEtSum_; 00068 float leadTrackHCAL3x3hottesthitDEta_; 00069 float signalTracksInvariantMass_; 00070 float TracksInvariantMass_; 00071 float isolationTracksPtSum_; 00072 float isolationECALhitsEtSum_; 00073 float maximumHCALhitEt_; 00074 }; 00075 } 00076 #endif