CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/DataFormats/TauReco/interface/CaloTau.h

Go to the documentation of this file.
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