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 }