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