Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:16

0001 #ifndef DataFormats_TauReco_BaseTau_h
0002 #define DataFormats_TauReco_BaseTau_h
0003 
0004 /* class BaseTau
0005  * base class 
0006  * authors: Simone Gennai (simone.gennai@cern.ch), Ludovic Houchu (Ludovic.Houchu@cern.ch)
0007  * created: Jun 21 2007,
0008  * revised: Sep 4 2007
0009  */
0010 #include "DataFormats/Math/interface/LorentzVector.h"
0011 #include "DataFormats/TauReco/interface/BaseTauFwd.h"
0012 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
0013 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0014 
0015 #include <limits>
0016 
0017 namespace reco {
0018   class BaseTau : public RecoCandidate {
0019   public:
0020     BaseTau();
0021     BaseTau(Charge q, const LorentzVector&, const Point& = Point(0, 0, 0));
0022     ~BaseTau() override {}
0023     BaseTau* clone() const override;
0024 
0025     // rec. jet Lorentz-vector combining (Tracks and neutral ECAL Island BasicClusters) or (charged hadr. PFCandidates and gamma PFCandidates)
0026     math::XYZTLorentzVector alternatLorentzVect() const;
0027     void setalternatLorentzVect(const math::XYZTLorentzVector&);
0028 
0029     // leading Track
0030     virtual reco::TrackRef leadTrack() const;
0031     void setleadTrack(const TrackRef&);
0032 
0033     // Tracks which passed quality cuts and are inside a tracker signal cone around leading Track
0034     virtual const reco::TrackRefVector& signalTracks() const;
0035     void setsignalTracks(const TrackRefVector&);
0036 
0037     // Tracks which passed quality cuts and are inside a tracker isolation annulus around leading Track
0038     virtual const reco::TrackRefVector& isolationTracks() const;
0039     void setisolationTracks(const TrackRefVector&);
0040 
0041   private:
0042     // check overlap with another candidate
0043     bool overlap(const Candidate&) const override;
0044     math::XYZTLorentzVector alternatLorentzVect_;
0045     reco::TrackRef leadTrack_;
0046     reco::TrackRefVector signalTracks_, isolationTracks_;
0047   };
0048 }  // namespace reco
0049 #endif