File indexing completed on 2025-08-05 08:18:19
0001 #ifndef TRACKBASE_TRKRTRUTHTRACK_H
0002 #define TRACKBASE_TRKRTRUTHTRACK_H
0003
0004 #include <phool/PHObject.h>
0005 #include <trackbase/TrkrDefs.h>
0006
0007 #include <limits>
0008 #include <vector>
0009
0010 class TrkrTruthTrack : public PHObject
0011 {
0012 public:
0013
0014 ~TrkrTruthTrack() override = default;
0015 TrkrTruthTrack(){};
0016
0017 virtual unsigned int getTrackid() const { return std::numeric_limits<unsigned int>::max(); };
0018
0019 virtual float getX0() const { return std::numeric_limits<float>::quiet_NaN(); };
0020 virtual float getY0() const { return std::numeric_limits<float>::quiet_NaN(); };
0021 virtual float getZ0() const { return std::numeric_limits<float>::quiet_NaN(); };
0022
0023 virtual float getPseudoRapidity() const { return std::numeric_limits<float>::quiet_NaN(); };
0024 virtual float getPt() const { return std::numeric_limits<float>::quiet_NaN(); };
0025 virtual float getPhi() const { return std::numeric_limits<float>::quiet_NaN(); };
0026
0027 virtual std::vector<TrkrDefs::cluskey>& getClusters();
0028 virtual void addCluster(TrkrDefs::cluskey){};
0029
0030 virtual bool has_hitsetkey(TrkrDefs::hitsetkey) const { return false; };
0031 virtual bool has_hitsetkey(TrkrDefs::cluskey) const { return false; };
0032 virtual std::pair<bool, TrkrDefs::cluskey> get_cluskey(TrkrDefs::hitsetkey) const { return {false, 0}; };
0033
0034 virtual void setTrackid(unsigned int){};
0035 virtual void setX0(float){};
0036 virtual void setY0(float){};
0037 virtual void setZ0(float){};
0038
0039 virtual void setPseudoRapity(float){};
0040 virtual void setPt(float){};
0041 virtual void setPhi(float){};
0042
0043 struct Comp
0044 {
0045 bool operator()(const unsigned int lhs, const TrkrTruthTrack* rhs) const
0046 {
0047 return lhs < rhs->getTrackid();
0048 }
0049 bool operator()(const TrkrTruthTrack* lhs, const unsigned int& rhs) const
0050 {
0051 return lhs->getTrackid() < rhs;
0052 }
0053 bool operator()(const TrkrTruthTrack* lhs, const TrkrTruthTrack* rhs) const
0054 {
0055 return lhs->getTrackid() < rhs->getTrackid();
0056 }
0057 };
0058
0059
0060 void identify(std::ostream& os = std::cout) const override
0061 {
0062 os << "TrkrTruthTrack base class" << std::endl;
0063 };
0064
0065 protected:
0066 ClassDefOverride(TrkrTruthTrack, 1)
0067 };
0068
0069 #endif