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 // signed transverse impact parameter significance of leading Track ; NaN if no leading Track 00030 float leadTracksignedSipt()const; 00031 void setleadTracksignedSipt(const float&); 00032 00033 // 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 00034 float leadTrackHCAL3x3hitsEtSum()const; 00035 void setleadTrackHCAL3x3hitsEtSum(const float&); 00036 00037 // |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 00038 float leadTrackHCAL3x3hottesthitDEta()const; 00039 void setleadTrackHCAL3x3hottesthitDEta(const float&); 00040 00041 // invariant mass of the system of Tracks inside a signal cone around leading Track ; NaN if no leading Track 00042 float signalTracksInvariantMass()const; 00043 void setsignalTracksInvariantMass(const float&); 00044 00045 // invariant mass of the system of Tracks ; NaN if no Track 00046 float TracksInvariantMass()const; 00047 void setTracksInvariantMass(const float&); 00048 00049 // sum of Pt of the Tracks inside a tracker isolation annulus around leading Track ; NaN if no leading Track 00050 float isolationTracksPtSum()const; 00051 void setisolationTracksPtSum(const float&); 00052 00053 // sum of Et of ECAL RecHits inside an ECAL isolation annulus around leading Track ; NaN if no leading Track 00054 float isolationECALhitsEtSum()const; 00055 void setisolationECALhitsEtSum(const float&); 00056 00057 // Et of the highest Et HCAL hit 00058 float maximumHCALhitEt()const; 00059 void setmaximumHCALhitEt(const float&); 00060 private: 00061 // check overlap with another candidate 00062 virtual bool overlap(const Candidate&d)const; 00063 CaloTauTagInfoRef CaloTauTagInfoRef_; 00064 float leadTracksignedSipt_; 00065 float leadTrackHCAL3x3hitsEtSum_; 00066 float leadTrackHCAL3x3hottesthitDEta_; 00067 float signalTracksInvariantMass_; 00068 float TracksInvariantMass_; 00069 float isolationTracksPtSum_; 00070 float isolationECALhitsEtSum_; 00071 float maximumHCALhitEt_; 00072 }; 00073 } 00074 #endif