File indexing completed on 2025-08-06 08:18:15
0001 #ifndef TRACKBASEHISTORIC_SVTXTRACKINFOV2_H
0002 #define TRACKBASEHISTORIC_SVTXTRACKINFOV2_H
0003
0004 #include "SvtxTrackInfo.h"
0005 #include "TrackStateInfo_v1.h"
0006
0007 class PHObject;
0008
0009 class SvtxTrackInfo_v2 final : public SvtxTrackInfo
0010 {
0011 public:
0012 SvtxTrackInfo_v2() {}
0013
0014
0015 SvtxTrackInfo_v2(const SvtxTrackInfo&) {}
0016
0017
0018 SvtxTrackInfo_v2(const SvtxTrackInfo_v2& source)
0019 {
0020 m_track_id = source.get_track_id();
0021 m_outer_tpc_subsurfkey = source.get_subsurfkey();
0022 m_chisq = source.get_chisq();
0023 m_ndf = source.get_ndf();
0024 m_crossing = source.get_crossing();
0025 m_hitbitmap = source.get_hitbitmap();
0026
0027 set_x(source.get_x());
0028 set_y(source.get_y());
0029 set_z(source.get_z());
0030 set_phi(source.get_phi());
0031 set_theta(source.get_theta());
0032 set_qOp(source.get_qOp());
0033
0034 set_x_outer_tpc(source.get_x_outer_tpc());
0035 set_y_outer_tpc(source.get_y_outer_tpc());
0036 set_z_outer_tpc(source.get_z_outer_tpc());
0037 set_phi_outer_tpc(source.get_phi_outer_tpc());
0038 set_theta_outer_tpc(source.get_theta_outer_tpc());
0039 set_qOp_outer_tpc(source.get_qOp_outer_tpc());
0040
0041 for (int i = 0; i < 5; i++)
0042 {
0043 for (int j = i; j < 5; j++)
0044 {
0045 set_covariance(i, j, source.get_covariance(i, j));
0046 set_covariance_outer_tpc(i, j, source.get_covariance_outer_tpc(i, j));
0047 }
0048 }
0049 }
0050
0051
0052 SvtxTrackInfo_v2& operator=(const SvtxTrackInfo_v2& track);
0053
0054
0055 ~SvtxTrackInfo_v2() override {}
0056
0057
0058 void identify(std::ostream& os = std::cout) const override
0059 {
0060 os << "SvtxTrackInfo_v2 class" << std::endl;
0061 }
0062 void Reset() override { *this = SvtxTrackInfo_v2(); }
0063
0064 PHObject* CloneMe() const override { return new SvtxTrackInfo_v2(*this); }
0065
0066
0067 using PHObject::CopyFrom;
0068
0069 void CopyFrom(const SvtxTrackInfo&) override;
0070 void CopyFrom(SvtxTrackInfo* source) override
0071 {
0072 CopyFrom(*source);
0073 }
0074
0075
0076
0077
0078
0079 unsigned int get_track_id() const override { return m_track_id; }
0080 void set_track_id(unsigned int id) override { m_track_id = id; }
0081
0082 uint16_t get_subsurfkey() const override { return m_outer_tpc_subsurfkey; }
0083 void set_subsurfkey(uint16_t key) override { m_outer_tpc_subsurfkey = key; }
0084
0085 float get_chisq() const override { return m_chisq; }
0086 void set_chisq(float chisq) override { m_chisq = chisq; }
0087
0088 uint8_t get_ndf() const override { return m_ndf; }
0089 void set_ndf(uint8_t ndf) override { m_ndf = ndf; }
0090
0091 uint64_t get_hitbitmap() const override { return m_hitbitmap; }
0092 void set_hitbitmap(uint64_t hitbitmap) override { m_hitbitmap = hitbitmap; }
0093
0094 short int get_crossing() const override { return m_crossing; }
0095 void set_crossing(short int crossing) override { m_crossing = crossing; }
0096
0097 float get_x() const override { return m_state_vertex.get_x(); }
0098 void set_x(float x) override { m_state_vertex.set_x(x); }
0099
0100 float get_y() const override { return m_state_vertex.get_y(); }
0101 void set_y(float y) override { m_state_vertex.set_y(y); }
0102
0103 float get_z() const override { return m_state_vertex.get_z(); }
0104 void set_z(float z) override { m_state_vertex.set_z(z); }
0105
0106 void set_phi(const float phi) override { m_state_vertex.set_phi(phi); }
0107 void set_theta(const float theta) override { m_state_vertex.set_theta(theta); }
0108 void set_qOp(const float qop) override { m_state_vertex.set_qOp(qop); }
0109
0110 float get_pos(unsigned int i) const override { return m_state_vertex.get_pos(i); }
0111
0112 float get_px() const override { return m_state_vertex.get_px(); }
0113 float get_py() const override { return m_state_vertex.get_py(); }
0114 float get_pz() const override { return m_state_vertex.get_pz(); }
0115 float get_mom(unsigned int i) const override { return m_state_vertex.get_mom(i); }
0116
0117 float get_p() const override { return m_state_vertex.get_p(); }
0118 float get_pt() const override { return m_state_vertex.get_pt(); }
0119 float get_eta() const override { return m_state_vertex.get_eta(); }
0120 float get_phi() const override { return m_state_vertex.get_phi(); }
0121 float get_theta() const override { return m_state_vertex.get_theta(); }
0122 float get_qOp() const override { return m_state_vertex.get_qOp(); }
0123 int get_charge() const override { return m_state_vertex.get_charge(); }
0124
0125 float get_covariance(int i, int j) const override { return m_state_vertex.get_covariance(i, j); }
0126 void set_covariance(int i, int j, float value) override { m_state_vertex.set_covariance(i, j, value); }
0127
0128 float get_x_outer_tpc() const override { return m_state_outer_tpc.get_x(); }
0129 void set_x_outer_tpc(float x) override { m_state_outer_tpc.set_x(x); }
0130
0131 float get_y_outer_tpc() const override { return m_state_outer_tpc.get_y(); }
0132 void set_y_outer_tpc(float y) override { m_state_outer_tpc.set_y(y); }
0133
0134 float get_z_outer_tpc() const override { return m_state_outer_tpc.get_z(); }
0135 void set_z_outer_tpc(float z) override { m_state_outer_tpc.set_z(z); }
0136
0137 void set_phi_outer_tpc(const float phi) override { m_state_outer_tpc.set_phi(phi); }
0138 void set_theta_outer_tpc(const float theta) override { m_state_outer_tpc.set_theta(theta); }
0139 void set_qOp_outer_tpc(const float qop) override { m_state_outer_tpc.set_qOp(qop); }
0140
0141 float get_px_outer_tpc() const override { return m_state_outer_tpc.get_px(); }
0142 float get_py_outer_tpc() const override { return m_state_outer_tpc.get_py(); }
0143 float get_pz_outer_tpc() const override { return m_state_outer_tpc.get_pz(); }
0144
0145 float get_mom_outer_tpc(unsigned int i) const override { return m_state_outer_tpc.get_mom(i); }
0146
0147 float get_p_outer_tpc() const override { return m_state_outer_tpc.get_p(); }
0148 float get_pt_outer_tpc() const override { return m_state_outer_tpc.get_pt(); }
0149 float get_eta_outer_tpc() const override { return m_state_outer_tpc.get_eta(); }
0150 float get_phi_outer_tpc() const override { return m_state_outer_tpc.get_phi(); }
0151 float get_theta_outer_tpc() const override { return m_state_outer_tpc.get_theta(); }
0152 float get_qOp_outer_tpc() const override { return m_state_outer_tpc.get_qOp(); }
0153
0154 float get_covariance_outer_tpc(int i, int j) const override { return m_state_outer_tpc.get_covariance(i, j); }
0155 void set_covariance_outer_tpc(int i, int j, float value) override { m_state_outer_tpc.set_covariance(i, j, value); }
0156
0157 private:
0158
0159 unsigned int m_track_id = std::numeric_limits<unsigned int>::quiet_NaN();
0160 uint16_t m_outer_tpc_subsurfkey = std::numeric_limits<uint16_t>::quiet_NaN();
0161 float m_chisq = std::numeric_limits<float>::quiet_NaN();
0162 uint8_t m_ndf = std::numeric_limits<uint8_t>::quiet_NaN();
0163 uint64_t m_hitbitmap = std::numeric_limits<uint64_t>::quiet_NaN();
0164 short int m_crossing = std::numeric_limits<short int>::quiet_NaN();
0165
0166
0167 TrackStateInfo_v1 m_state_vertex;
0168 TrackStateInfo_v1 m_state_outer_tpc;
0169
0170 ClassDefOverride(SvtxTrackInfo_v2, 1)
0171 };
0172
0173 #endif