00001 #ifndef RecoTauTag_Pi0Tau_Tau3D_h 00002 #define RecoTauTag_Pi0Tau_Tau3D_h 00003 00004 #include "DataFormats/TrackReco/interface/Track.h" 00005 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00006 #include "RecoTauTag/Pi0Tau/interface/Pi0.h" 00007 #include "RecoTauTag/Pi0Tau/interface/Pi0Fwd.h" 00008 00009 namespace reco { 00010 00018 class Tau3D { 00019 00020 public: 00021 00022 Tau3D(); 00023 00024 Tau3D(const reco::TrackRef seedTrack, 00025 const reco::TrackRefVector &trackColl, 00026 const reco::Pi0Collection &pi0Coll); 00027 00028 Tau3D(const Tau3D& other); 00029 00030 // \return seed track 00031 reco::TrackRef seedTrack() const { return seedTrack_; } 00032 00033 // \return collection of tracks in 30 degree cone without any threshold 00034 const reco::TrackRefVector &tracks() const { return tracks_; } 00035 00036 // \return collection of pi0s in 30 degree cone without any threshold 00037 const reco::Pi0Collection &pi0s() const { return pi0s_; } 00038 00039 // overwriting ostream << 00040 friend std::ostream& operator<<(std::ostream& out, 00041 const Tau3D& tau); 00042 00043 private: 00044 00045 // seed track ie. highest pt track 00046 reco::TrackRef seedTrack_; 00047 00048 // collection of tracks in 30 degree cone without any threshold 00049 reco::TrackRefVector tracks_; 00050 00051 // collection of pi0s in 30 degree cone without any threshold 00052 reco::Pi0Collection pi0s_; 00053 00054 }; 00055 00056 } 00057 #endif