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_TPCMODULETRACKV1_H
0004 #define TPCTRACKRECO_TPCMODULETRACKV1_H
0005 
0006 #include "Tpc_ModuleTrack.h"
0007 
0008 #include <iostream>
0009 #include <utility>
0010 #include <vector>
0011 
0012 class Tpc_ModuleTrackv1 : public Tpc_ModuleTrack
0013 {
0014  public:
0015   Tpc_ModuleTrackv1();
0016   ~Tpc_ModuleTrackv1() override = default;
0017 
0018   void identify(std::ostream& os = std::cout) const override;
0019   void Reset() override;
0020   int isValid() const override;
0021   PHObject* CloneMe() const override { return new Tpc_ModuleTrackv1(*this); }
0022 
0023   // --- Identity ---
0024   unsigned int get_event() const override { return m_event; }
0025   unsigned int get_track_id() const override { return m_track_id; }
0026 
0027   unsigned int get_region() const override { return m_region; }
0028   unsigned int get_sector() const override { return m_sector; }
0029   int get_side() const override { return m_side; }
0030 
0031   // --- Topology ---
0032   unsigned int get_nblobs() const override { return m_nblobs; }
0033   unsigned int get_nrawhits() const override { return m_nrawhits; }
0034 
0035   unsigned int get_first_layer() const override { return m_first_layer; }
0036   unsigned int get_last_layer() const override { return m_last_layer; }
0037 
0038   // --- Setters ---
0039   void set_event(unsigned int v) override { m_event = v; }
0040   void set_track_id(unsigned int v) override { m_track_id = v; }
0041 
0042   void set_region(unsigned int v) override { m_region = v; }
0043   void set_sector(unsigned int v) override { m_sector = v; }
0044   void set_side(int v) override { m_side = v; }
0045 
0046   void set_nblobs(unsigned int v) override { m_nblobs = v; }
0047   void set_nrawhits(unsigned int v) override { m_nrawhits = v; }
0048 
0049   void set_first_layer(unsigned int v) override { m_first_layer = v; }
0050   void set_last_layer(unsigned int v) override { m_last_layer = v; }
0051 
0052   // --- Hit index access ---
0053   void add_hit_index(TrkrDefs::hitsetkey hsk, TrkrDefs::hitkey hk) override
0054   {
0055     m_hit_indices.emplace_back(hsk, hk);
0056   }
0057 
0058   unsigned int size_hit_indices() const override
0059   {
0060     return static_cast<unsigned int>(m_hit_indices.size());
0061   }
0062 
0063   HitIndex get_hit_index(unsigned int i) const override
0064   {
0065     if (i >= m_hit_indices.size()) return {0, 0};
0066     return m_hit_indices[i];
0067   }
0068 
0069   const std::vector<HitIndex>& get_hit_indices() const override
0070   {
0071     return m_hit_indices;
0072   }
0073 
0074  private:
0075   unsigned int m_event{0};
0076   unsigned int m_track_id{0};
0077 
0078   unsigned int m_region{0};
0079   unsigned int m_sector{0};
0080   int m_side{0};
0081 
0082   unsigned int m_nblobs{0};
0083   unsigned int m_nrawhits{0};
0084 
0085   unsigned int m_first_layer{0};
0086   unsigned int m_last_layer{0};
0087 
0088   std::vector<HitIndex> m_hit_indices;
0089 
0090   ClassDefOverride(Tpc_ModuleTrackv1, 1)
0091 };
0092 #endif