Back to home page

sPhenix code displayed by LXR

 
 

    


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 //   /// We need a separate function for truth tracks because the bend
0062 //   /// angle is already properly accounted for
0063 //   float get_phi(TrkrClusterContainer* clusters,
0064 //                 ActsGeometry* tGeometry) const override;
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