File indexing completed on 2025-12-17 09:20:47
0001 #ifndef TRACKBASEHISTORIC_TRACKSEED_FASTSIM_V1_H
0002 #define TRACKBASEHISTORIC_TRACKSEED_FASTSIM_V1_H
0003
0004 #include "TrackSeed_v1.h"
0005
0006 class TrackSeed_FastSim_v1 : public TrackSeed_v1
0007 {
0008 public:
0009 TrackSeed_FastSim_v1() = default;
0010 TrackSeed_FastSim_v1(const TrackSeed&);
0011 ~TrackSeed_FastSim_v1() = default;
0012
0013 void identify(std::ostream& os = std::cout) const override;
0014 void Reset() override { *this = TrackSeed_FastSim_v1(); }
0015 int isValid() const override { return 1; }
0016 void CopyFrom(const TrackSeed&) override;
0017 void CopyFrom(TrackSeed* seed) override { CopyFrom(*seed); }
0018
0019 PHObject* CloneMe() const override { return new TrackSeed_FastSim_v1(*this); }
0020
0021 unsigned int get_truth_track_id() const override
0022 {
0023 return m_truth_track_id;
0024 }
0025
0026 unsigned int get_num_measurements() const override
0027 {
0028 return m_nmeas;
0029 }
0030
0031 const HitIdMap& g4hit_ids() const override
0032 {
0033 return m_g4hit_ids;
0034 }
0035
0036 bool empty_g4hit_id() const override
0037 {
0038 return m_g4hit_ids.empty();
0039 }
0040
0041 size_t size_g4hit_id() const override
0042 {
0043 return m_g4hit_ids.size();
0044 }
0045
0046 TrackSeed::HitIdConstIter begin_g4hit_id() const override
0047 {
0048 return m_g4hit_ids.begin();
0049 }
0050
0051 TrackSeed::HitIdConstIter end_g4hit_id() const override
0052 {
0053 return m_g4hit_ids.end();
0054 }
0055
0056 TrackSeed::HitIdConstIter find_g4hit_id(int volume) const override
0057 {
0058 return m_g4hit_ids.find(volume);
0059 }
0060
0061
0062
0063
0064
0065
0066 void set_truth_track_id(unsigned int truthTrackId) override
0067 {
0068 m_truth_track_id = truthTrackId;
0069 }
0070
0071 void set_num_measurements(int nmeas) override
0072 {
0073 m_nmeas = nmeas;
0074 }
0075
0076 void add_g4hit_id(int volume, PHG4HitDefs::keytype id) override
0077 {
0078 m_g4hit_ids[volume].insert(id);
0079 }
0080
0081 size_t remove_g4hit_id(int volume, PHG4HitDefs::keytype id) override
0082 {
0083 return m_g4hit_ids[volume].erase(id);
0084 }
0085
0086 size_t remove_g4hit_volume(int volume) override
0087 {
0088 return m_g4hit_ids.erase(volume);
0089 }
0090
0091 TrackSeed::HitIdIter begin_g4hit_id() override
0092 {
0093 return m_g4hit_ids.begin();
0094 }
0095
0096 TrackSeed::HitIdIter end_g4hit_id() override
0097 {
0098 return m_g4hit_ids.end();
0099 }
0100
0101 TrackSeed::HitIdIter find_g4hit_id(int volume) override
0102 {
0103 return m_g4hit_ids.find(volume);
0104 }
0105
0106 void clear_g4hit_id() override
0107 {
0108 return m_g4hit_ids.clear();
0109 }
0110
0111 private:
0112 unsigned int m_truth_track_id = std::numeric_limits<unsigned int>::max();
0113 unsigned int m_nmeas = 0;
0114 HitIdMap m_g4hit_ids;
0115
0116 ClassDefOverride(TrackSeed_FastSim_v1, 1)
0117 };
0118
0119 #endif