Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "Tpc_PolyTrackVertexContainerv1.h"
0002 #include "Tpc_PolyTrackVertex.h"
0003 
0004 Tpc_PolyTrackVertexContainerv1::Tpc_PolyTrackVertexContainerv1()
0005 {
0006   Reset();
0007 }
0008 
0009 Tpc_PolyTrackVertexContainerv1::~Tpc_PolyTrackVertexContainerv1()
0010 {
0011   Reset();
0012 }
0013 
0014 void Tpc_PolyTrackVertexContainerv1::identify(std::ostream& os) const
0015 {
0016   os << "Tpc_PolyTrackVertexContainerv1 with " << m_vertices.size()
0017      << " vertices and " << m_collision_x.size()
0018      << " collision vertices" << std::endl;
0019 }
0020 
0021 void Tpc_PolyTrackVertexContainerv1::Reset()
0022 {
0023   for (Tpc_PolyTrackVertex* vtx : m_vertices)
0024   {
0025     delete vtx;
0026   }
0027   m_vertices.clear();
0028   m_collision_vertex_valid = 0;
0029   clear_collision_vertices();
0030 }
0031 
0032 int Tpc_PolyTrackVertexContainerv1::isValid() const
0033 {
0034   return 1;
0035 }
0036 
0037 PHObject* Tpc_PolyTrackVertexContainerv1::CloneMe() const
0038 {
0039   Tpc_PolyTrackVertexContainerv1* copy = new Tpc_PolyTrackVertexContainerv1();
0040   copy->m_collision_vertex_valid = m_collision_vertex_valid;
0041   copy->m_collision_x = m_collision_x;
0042   copy->m_collision_y = m_collision_y;
0043   copy->m_collision_z = m_collision_z;
0044   copy->m_collision_z_rms = m_collision_z_rms;
0045   copy->m_collision_ntracks = m_collision_ntracks;
0046   copy->m_collision_min_clusters = m_collision_min_clusters;
0047   for (Tpc_PolyTrackVertex* vtx : m_vertices)
0048   {
0049     if (vtx)
0050     {
0051       copy->m_vertices.push_back(static_cast<Tpc_PolyTrackVertex*>(vtx->CloneMe()));
0052     }
0053   }
0054   return copy;
0055 }
0056 
0057 const Tpc_PolyTrackVertex* Tpc_PolyTrackVertexContainerv1::get_vertex(unsigned int i) const
0058 {
0059   if (i >= m_vertices.size())
0060   {
0061     return nullptr;
0062   }
0063   return m_vertices[i];
0064 }
0065 
0066 Tpc_PolyTrackVertex* Tpc_PolyTrackVertexContainerv1::get_vertex(unsigned int i)
0067 {
0068   if (i >= m_vertices.size())
0069   {
0070     return nullptr;
0071   }
0072   return m_vertices[i];
0073 }
0074 
0075 double Tpc_PolyTrackVertexContainerv1::get_collision_x(unsigned int i) const
0076 {
0077   if (i >= m_collision_x.size())
0078   {
0079     return 0.0;
0080   }
0081   return m_collision_x[i];
0082 }
0083 
0084 double Tpc_PolyTrackVertexContainerv1::get_collision_y(unsigned int i) const
0085 {
0086   if (i >= m_collision_y.size())
0087   {
0088     return 0.0;
0089   }
0090   return m_collision_y[i];
0091 }
0092 
0093 double Tpc_PolyTrackVertexContainerv1::get_collision_z(unsigned int i) const
0094 {
0095   if (i >= m_collision_z.size())
0096   {
0097     return 0.0;
0098   }
0099   return m_collision_z[i];
0100 }
0101 
0102 double Tpc_PolyTrackVertexContainerv1::get_collision_z_rms(unsigned int i) const
0103 {
0104   if (i >= m_collision_z_rms.size())
0105   {
0106     return 0.0;
0107   }
0108   return m_collision_z_rms[i];
0109 }
0110 
0111 unsigned int Tpc_PolyTrackVertexContainerv1::get_collision_ntracks(unsigned int i) const
0112 {
0113   if (i >= m_collision_ntracks.size())
0114   {
0115     return 0;
0116   }
0117   return m_collision_ntracks[i];
0118 }
0119 
0120 void Tpc_PolyTrackVertexContainerv1::clear_collision_vertices()
0121 {
0122   m_collision_x.clear();
0123   m_collision_y.clear();
0124   m_collision_z.clear();
0125   m_collision_z_rms.clear();
0126   m_collision_ntracks.clear();
0127 }
0128 
0129 void Tpc_PolyTrackVertexContainerv1::add_collision_vertex(double x, double y, double z, double z_rms, unsigned int ntracks)
0130 {
0131   m_collision_x.push_back(x);
0132   m_collision_y.push_back(y);
0133   m_collision_z.push_back(z);
0134   m_collision_z_rms.push_back(z_rms);
0135   m_collision_ntracks.push_back(ntracks);
0136 }