Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:16

0001 #ifndef TRACKBASEHISTORIC_TRACKSEED_V1_H
0002 #define TRACKBASEHISTORIC_TRACKSEED_V1_H
0003 
0004 #include "TrackSeed.h"
0005 
0006 #include <trackbase/TrkrDefs.h>
0007 
0008 #include <limits.h>
0009 #include <cmath>
0010 #include <iostream>
0011 
0012 class TrackSeed_v1 : public TrackSeed
0013 {
0014  public:
0015   TrackSeed_v1() = default;
0016 
0017   /// Copy constructors
0018   TrackSeed_v1(const TrackSeed&);
0019   TrackSeed_v1(const TrackSeed_v1&);
0020   TrackSeed_v1& operator=(const TrackSeed_v1& seed);
0021 
0022   void identify(std::ostream& os = std::cout) const override;
0023   void Reset() override { *this = TrackSeed_v1(); }
0024   int isValid() const override { return 1; }
0025   void CopyFrom(const TrackSeed&) override;
0026   void CopyFrom(TrackSeed* seed) override { CopyFrom(*seed); }
0027   PHObject* CloneMe() const override { return new TrackSeed_v1(*this); }
0028 
0029 
0030   ///@name accessors
0031   //@{
0032   int get_charge() const override;
0033   float get_pz() const override;
0034   float get_pt() const override;
0035   float get_p() const override;
0036 
0037   float get_eta() const override;
0038   float get_theta() const override;
0039 
0040   float get_qOverR() const override { return m_qOverR; }
0041   float get_X0() const override { return m_X0; }
0042   float get_Y0() const override { return m_Y0; }
0043   float get_Z0() const override { return m_Z0; }
0044   float get_slope() const override { return m_slope; }
0045   short int get_crossing() const override { return m_crossing; }
0046 
0047   bool empty_cluster_keys() const override { return m_cluster_keys.empty(); }
0048 
0049   size_t size_cluster_keys() const override { return m_cluster_keys.size(); }
0050 
0051   ConstClusterKeyIter find_cluster_key(TrkrDefs::cluskey clusterid) const override { return m_cluster_keys.find(clusterid); }
0052   ConstClusterKeyIter begin_cluster_keys() const override { return m_cluster_keys.begin(); }
0053   ConstClusterKeyIter end_cluster_keys() const override { return m_cluster_keys.end(); }
0054   ClusterKeyIter find_cluster_keys(unsigned int clusterid) override { return m_cluster_keys.find(clusterid); }
0055   ClusterKeyIter begin_cluster_keys() override { return m_cluster_keys.begin(); }
0056   ClusterKeyIter end_cluster_keys() override { return m_cluster_keys.end(); }
0057   //@}
0058 
0059   ///@name modifiers
0060   //@{
0061   void set_crossing(const short int crossing) override { m_crossing = crossing; }
0062   void set_qOverR(const float qOverR) override { m_qOverR = qOverR; }
0063   void set_X0(const float X0) override { m_X0 = X0; }
0064   void set_Y0(const float Y0) override { m_Y0 = Y0; }
0065   void set_Z0(const float Z0) override { m_Z0 = Z0; }
0066   void set_slope(const float slope) override { m_slope = slope; }
0067 
0068   void clear_cluster_keys() override { m_cluster_keys.clear(); }
0069   void insert_cluster_key(TrkrDefs::cluskey clusterid) override { m_cluster_keys.insert(clusterid); }
0070   size_t erase_cluster_key(TrkrDefs::cluskey clusterid) override { return m_cluster_keys.erase(clusterid); }
0071   //@}
0072 
0073  private:
0074   ClusterKeySet m_cluster_keys;
0075 
0076   float m_qOverR = NAN;
0077   float m_X0 = NAN;
0078   float m_Y0 = NAN;
0079   float m_slope = NAN;
0080   float m_Z0 = NAN;
0081 
0082   short int m_crossing = std::numeric_limits<short int>::max();
0083 
0084   ClassDefOverride(TrackSeed_v1, 1);
0085 };
0086 
0087 #endif