Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-08-31 08:21:22

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef TPCTRACKRECO_TPCMODULETRACKCONTAINERV1_H
0004 #define TPCTRACKRECO_TPCMODULETRACKCONTAINERV1_H
0005 
0006 #include "Tpc_ModuleTrackContainer.h"
0007 
0008 #include <iostream>
0009 #include <vector>
0010 
0011 class Tpc_ModuleTrack;
0012 
0013 class Tpc_ModuleTrackContainerv1 : public Tpc_ModuleTrackContainer
0014 {
0015  public:
0016   Tpc_ModuleTrackContainerv1();
0017   ~Tpc_ModuleTrackContainerv1() override;
0018 
0019   void identify(std::ostream& os = std::cout) const override;
0020   void Reset() override;
0021   int isValid() const override;
0022   PHObject* CloneMe() const override;
0023 
0024   unsigned int size() const override
0025   {
0026     return static_cast<unsigned int>(m_tracks.size());
0027   }
0028 
0029   // Takes ownership of the track pointer.
0030   void add_track(Tpc_ModuleTrack* trk) override
0031   {
0032     m_tracks.push_back(trk);
0033   }
0034 
0035   const Tpc_ModuleTrack* get_track(unsigned int i) const override
0036   {
0037     if (i >= m_tracks.size()) return nullptr;
0038     return m_tracks[i];
0039   }
0040 
0041   Tpc_ModuleTrack* get_track(unsigned int i) override
0042   {
0043     if (i >= m_tracks.size()) return nullptr;
0044     return m_tracks[i];
0045   }
0046 
0047  private:
0048   std::vector<Tpc_ModuleTrack*> m_tracks;
0049 
0050   ClassDefOverride(Tpc_ModuleTrackContainerv1, 1)
0051 };
0052 #endif