Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:20:45

0001 /*
0002  * SvtxTrack_FastSim_v2.h
0003  */
0004 
0005 #ifndef TRACKBASEHISTORIC_SVTXTRACKFASTSIMV2_H
0006 #define TRACKBASEHISTORIC_SVTXTRACKFASTSIMV2_H
0007 
0008 #include "SvtxTrack_v2.h"
0009 
0010 // SvtxTrack_FastSim with recording of associated G4hits
0011 class SvtxTrack_FastSim_v2 final : public SvtxTrack_v2
0012 {
0013  public:
0014   //* constructor
0015   SvtxTrack_FastSim_v2() = default;
0016 
0017   //* base class copy constructor
0018   SvtxTrack_FastSim_v2(const SvtxTrack&);
0019 
0020   //* destructor
0021   ~SvtxTrack_FastSim_v2() override = default;
0022 
0023   // copy content from base class
0024   void CopyFrom(const SvtxTrack&) override;
0025   void CopyFrom(SvtxTrack* source) override
0026   {
0027     CopyFrom(*source);
0028   }
0029 
0030   // The "standard PHObject response" functions...
0031   void identify(std::ostream& os = std::cout) const override;
0032   void Reset() override { *this = SvtxTrack_FastSim_v2(); }
0033   int isValid() const override;
0034 
0035   PHObject* CloneMe() const override
0036   {
0037     return new SvtxTrack_FastSim_v2(*this);
0038   }
0039 
0040   //!@name accessors
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   //!@name modifiers
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_v2, 1)
0142 };
0143 
0144 #endif /* __SVTXTRACK_FAST_SIMV1_H__ */