File indexing completed on 2025-12-17 09:20:48
0001 #ifndef TRACKBASEHISTORIC_TRACKSEED_FASTSIM_V2_H
0002 #define TRACKBASEHISTORIC_TRACKSEED_FASTSIM_V2_H
0003
0004 #include "TrackSeed_v2.h"
0005
0006 class TrackSeed_FastSim_v2 : public TrackSeed_v2
0007 {
0008 public:
0009 TrackSeed_FastSim_v2() = default;
0010 TrackSeed_FastSim_v2(const TrackSeed&);
0011 ~TrackSeed_FastSim_v2() = default;
0012
0013 void identify(std::ostream& os = std::cout) const override;
0014 void Reset() override { *this = TrackSeed_FastSim_v2(); }
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_v2(*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
0067 void set_truth_track_id(unsigned int truthTrackId) override
0068 {
0069 m_truth_track_id = truthTrackId;
0070 }
0071
0072 void set_num_measurements(int nmeas) override
0073 {
0074 m_nmeas = nmeas;
0075 }
0076
0077 void add_g4hit_id(int volume, PHG4HitDefs::keytype id) override
0078 {
0079 m_g4hit_ids[volume].insert(id);
0080 }
0081
0082 size_t remove_g4hit_id(int volume, PHG4HitDefs::keytype id) override
0083 {
0084 return m_g4hit_ids[volume].erase(id);
0085 }
0086
0087 size_t remove_g4hit_volume(int volume) override
0088 {
0089 return m_g4hit_ids.erase(volume);
0090 }
0091
0092 TrackSeed::HitIdIter begin_g4hit_id() override
0093 {
0094 return m_g4hit_ids.begin();
0095 }
0096
0097 TrackSeed::HitIdIter end_g4hit_id() override
0098 {
0099 return m_g4hit_ids.end();
0100 }
0101
0102 TrackSeed::HitIdIter find_g4hit_id(int volume) override
0103 {
0104 return m_g4hit_ids.find(volume);
0105 }
0106
0107 void clear_g4hit_id() override
0108 {
0109 return m_g4hit_ids.clear();
0110 }
0111
0112 private:
0113 unsigned int m_truth_track_id = std::numeric_limits<unsigned int>::max();
0114 unsigned int m_nmeas = 0;
0115 HitIdMap m_g4hit_ids;
0116
0117 ClassDefOverride(TrackSeed_FastSim_v2, 1)
0118 };
0119
0120 #endif