CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/DataFormats/TauReco/interface/BaseTau.h

Go to the documentation of this file.
00001 #ifndef DataFormats_TauReco_BaseTau_h
00002 #define DataFormats_TauReco_BaseTau_h
00003 
00004 /* class BaseTau
00005  * base class 
00006  * authors: Simone Gennai (simone.gennai@cern.ch), Ludovic Houchu (Ludovic.Houchu@cern.ch)
00007  * created: Jun 21 2007,
00008  * revised: Sep 4 2007
00009  */
00010 #include "DataFormats/Math/interface/LorentzVector.h"
00011 #include "DataFormats/TauReco/interface/BaseTauFwd.h"
00012 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
00013 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00014 
00015 #include <limits>
00016 
00017 
00018 namespace reco {
00019   class BaseTau : public RecoCandidate {
00020   public:
00021     BaseTau();
00022     BaseTau(Charge q,const LorentzVector &,const Point & = Point(0,0,0));
00023     virtual ~BaseTau(){}
00024     BaseTau* clone()const;
00025 
00026     // rec. jet Lorentz-vector combining (Tracks and neutral ECAL Island BasicClusters) or (charged hadr. PFCandidates and gamma PFCandidates)
00027     math::XYZTLorentzVector alternatLorentzVect()const;
00028     void setalternatLorentzVect(math::XYZTLorentzVector);
00029     
00030     // leading Track
00031     virtual reco::TrackRef leadTrack() const;
00032     void setleadTrack(const TrackRef&);
00033     
00034     // Tracks which passed quality cuts and are inside a tracker signal cone around leading Track 
00035     virtual const reco::TrackRefVector& signalTracks() const;
00036     void setsignalTracks(const TrackRefVector&);
00037  
00038     // Tracks which passed quality cuts and are inside a tracker isolation annulus around leading Track 
00039     virtual const reco::TrackRefVector& isolationTracks() const;
00040     void setisolationTracks(const TrackRefVector&);  
00041   private:
00042     // check overlap with another candidate
00043     virtual bool overlap(const Candidate&)const;
00044     math::XYZTLorentzVector alternatLorentzVect_;
00045     reco::TrackRef leadTrack_;
00046     reco::TrackRefVector signalTracks_, isolationTracks_;
00047   };
00048 }
00049 #endif