Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "Tpc_PolyTrackv1.h"
0002 
0003 #include <cmath>
0004 #include <limits>
0005 
0006 Tpc_PolyTrackv1::Tpc_PolyTrackv1()
0007 {
0008   Reset();
0009 }
0010 
0011 void Tpc_PolyTrackv1::identify(std::ostream& os) const
0012 {
0013   os << "Tpc_PolyTrackv1:"
0014      << " event=" << m_event
0015      << " track_id=" << m_track_id
0016      << " source_assembled_track_id=" << m_source_assembled_track_id
0017      << " fit_status=" << m_fit_status
0018      << " nclusters=" << m_nclusters
0019      << " pos=(" << m_x << "," << m_y << "," << m_z << ")"
0020      << " mom=(" << m_px << "," << m_py << "," << m_pz << ")"
0021      << " charge=" << m_charge
0022      << " chi2=" << m_chi2
0023      << " ndf=" << m_ndf
0024      << " dedx=" << m_dedx
0025      << " seed=(" << m_seed_x0 << "," << m_seed_y0 << "," << m_seed_z0
0026      << " helix coords =(" << m_helix_x0 << "," << m_helix_y0 << ")"
0027      << "; phi=" << m_seed_phi << " slope=" << m_seed_slope
0028      << " qOverR=" << m_seed_q_over_r << ")"
0029      << " ncluster_keys=" << m_cluster_keys.size()
0030      << std::endl;
0031 }
0032 
0033 void Tpc_PolyTrackv1::Reset()
0034 {
0035   m_event = 0;
0036   m_track_id = 0;
0037   m_source_assembled_track_id = 0;
0038   m_fit_status = 0;
0039   m_nclusters = 0;
0040   m_x = 0.0;
0041   m_y = 0.0;
0042   m_z = 0.0;
0043   m_px = 0.0;
0044   m_py = 0.0;
0045   m_pz = 0.0;
0046   m_charge = 0.0;
0047   m_chi2 = 0.0;
0048   m_ndf = 0.0;
0049   m_dedx = std::numeric_limits<double>::quiet_NaN();
0050   m_seed_x0 = 0.0;
0051   m_seed_y0 = 0.0;
0052   m_helix_x0 = 0.0;
0053   m_helix_y0 = 0.0;
0054   m_seed_z0 = 0.0;
0055   m_seed_phi = 0.0;
0056   m_seed_slope = 0.0;
0057   m_seed_q_over_r = 0.0;
0058   m_cluster_keys.clear();
0059   m_cov.assign(36, 0.0);
0060 }
0061 
0062 int Tpc_PolyTrackv1::isValid() const
0063 {
0064   return (m_fit_status != 0 && get_nclusters() > 0 &&
0065           std::isfinite(m_x) && std::isfinite(m_y) && std::isfinite(m_z) &&
0066           std::isfinite(m_px) && std::isfinite(m_py) && std::isfinite(m_pz))
0067              ? 1
0068              : 0;
0069 }