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
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
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
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