Back to home page

sPhenix code displayed by LXR

 
 

    


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