Back to home page

sPhenix code displayed by LXR

 
 

    


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   //! dtor
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}; };  // bool is if there is the key, and if so, then hitsetket is the correspeonding key
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   // PHObject virtual overloads
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  // TRACKBASE_TRKRTRUTHTRACK_H