Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef TPCTRACKRECO_TPCPOLYTRACKVERTEXCONTAINERV1_H
0004 #define TPCTRACKRECO_TPCPOLYTRACKVERTEXCONTAINERV1_H
0005 
0006 #include "Tpc_PolyTrackVertexContainer.h"
0007 
0008 #include <iostream>
0009 #include <vector>
0010 
0011 class Tpc_PolyTrackVertex;
0012 
0013 class Tpc_PolyTrackVertexContainerv1 : public Tpc_PolyTrackVertexContainer
0014 {
0015  public:
0016   Tpc_PolyTrackVertexContainerv1();
0017   ~Tpc_PolyTrackVertexContainerv1() 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 { return static_cast<unsigned int>(m_vertices.size()); }
0025   void add_vertex(Tpc_PolyTrackVertex* vtx) override { m_vertices.push_back(vtx); }
0026   const Tpc_PolyTrackVertex* get_vertex(unsigned int i) const override;
0027   Tpc_PolyTrackVertex* get_vertex(unsigned int i) override;
0028 
0029   int get_collision_vertex_valid() const override { return m_collision_vertex_valid; }
0030   unsigned int get_collision_vertex_count() const override { return static_cast<unsigned int>(m_collision_x.size()); }
0031   double get_collision_x(unsigned int i = 0) const override;
0032   double get_collision_y(unsigned int i = 0) const override;
0033   double get_collision_z(unsigned int i = 0) const override;
0034   double get_collision_z_rms(unsigned int i = 0) const override;
0035   unsigned int get_collision_ntracks(unsigned int i = 0) const override;
0036   unsigned int get_collision_min_clusters() const override { return m_collision_min_clusters; }
0037 
0038   void set_collision_vertex_valid(int v) override { m_collision_vertex_valid = v; }
0039   void set_collision_min_clusters(unsigned int v) override { m_collision_min_clusters = v; }
0040   void clear_collision_vertices() override;
0041   void add_collision_vertex(double x, double y, double z, double z_rms, unsigned int ntracks) override;
0042 
0043  private:
0044   std::vector<Tpc_PolyTrackVertex*> m_vertices;
0045   int m_collision_vertex_valid{0};
0046   std::vector<double> m_collision_x;
0047   std::vector<double> m_collision_y;
0048   std::vector<double> m_collision_z;
0049   std::vector<double> m_collision_z_rms;
0050   std::vector<unsigned int> m_collision_ntracks;
0051   unsigned int m_collision_min_clusters{0};
0052 
0053   ClassDefOverride(Tpc_PolyTrackVertexContainerv1, 1)
0054 };
0055 #endif