58 double refX, refY, refZ;
59 std::vector<double> params;
60 std::vector<double> cov;
61 TrackStateType ts_type;
83 void setNhits(
int nhits) { n_hits_ = nhits; }
84 int getNhits()
const {
return n_hits_; }
86 std::optional<TrackState> getTrackState(TrackStateType tstype)
const {
87 for (
auto ts : trackStates_)
88 if (ts.ts_type == tstype) return std::optional<TrackState>(ts);
96 void setNoutliers(
int nout) { n_outliers_ = nout; }
97 int getNoutliers()
const {
return n_outliers_; }
99 void setNdf(
int ndf) { ndf_ = ndf; }
100 int getNdf()
const {
return ndf_; };
102 void setNsharedHits(
int nsh) { n_shared_hits_ = nsh; }
103 int getNsharedHits()
const {
return n_shared_hits_; }
105 void setChi2(
double chi2) { chi2_ = chi2; }
106 double getChi2()
const {
return chi2_; }
108 void setTrackID(
int trackid) { trackID_ = trackid; };
109 int getTrackID()
const {
return trackID_; };
111 void setTruthProb(
double truthProb) { truthProb_ = truthProb; };
112 double getTruthProb()
const {
return truthProb_; };
114 void setPdgID(
int pdgID) { pdgID_ = pdgID; };
115 int getPdgID()
const {
return pdgID_; };
118 int q()
const {
return perigee_pars_[4] > 0 ? 1 : -1; }
125 void addMeasurementIndex(
unsigned int measIdx) {
126 meas_idxs_.push_back(measIdx);
128 std::vector<unsigned int> getMeasurementsIdxs()
const {
return meas_idxs_; }
147 std::vector<double> getPerigeeParameters()
const {
return perigee_pars_; }
149 void setPerigeeCov(
const std::vector<double>& cov) { perigee_cov_ = cov; }
150 std::vector<double> getPerigeeCov()
const {
return perigee_cov_; }
152 void setPerigeeLocation(
const std::vector<double>& perigee) {
156 void setPerigeeLocation(
const double& x,
const double& y,
const double& z) {
162 void setMomentum(
const double& px,
const double& py,
const double& pz) {
168 void setPosition(
const double& x,
const double& y,
const double& z) {
174 std::vector<double> getPerigeeLocation()
const {
return perigee_; };
175 double getPerigeeX()
const {
return perigee_[0]; };
176 double getPerigeeY()
const {
return perigee_[1]; };
177 double getPerigeeZ()
const {
return perigee_[2]; };
179 std::vector<double> getMomentum()
const {
return momentum_; };
180 std::vector<double> getPosition()
const {
return position_; };
184 double getD0()
const {
return perigee_pars_[0]; };
185 double getZ0()
const {
return perigee_pars_[1]; };
186 double getPhi()
const {
return perigee_pars_[2]; };
187 double getTheta()
const {
return perigee_pars_[3]; };
188 double getQoP()
const {
return perigee_pars_[4]; };
189 double getT()
const {
return perigee_pars_[5]; };
192 trackStates_.push_back(ts);
195 std::vector<TrackState> getTrackStates()
const {
return trackStates_; }
201 int n_shared_hits_{0};
215 std::vector<double> perigee_pars_{0., 0., 0., 0., 0., 0.};
224 std::vector<double> perigee_cov_;
227 std::vector<double> perigee_{0., 0., 0.};
230 std::vector<double> momentum_{0., 0., 0.};
233 std::vector<double> position_{0., 0., 0.};
236 std::vector<unsigned int> meas_idxs_{};
242 double truthProb_{0.};
248 std::vector<TrackState> trackStates_;