59 double refX, refY, refZ;
60 std::vector<double> params;
61 std::vector<double> cov;
62 TrackStateType ts_type;
84 void setNhits(
int nhits) { n_hits_ = nhits; }
85 int getNhits()
const {
return n_hits_; }
87 std::optional<TrackState> getTrackState(TrackStateType tstype)
const {
88 for (
auto ts : trackStates_)
89 if (ts.ts_type == tstype)
return std::optional<TrackState>(ts);
97 void setNoutliers(
int nout) { n_outliers_ = nout; }
98 int getNoutliers()
const {
return n_outliers_; }
100 void setNdf(
int ndf) { ndf_ = ndf; }
101 int getNdf()
const {
return ndf_; };
103 void setNsharedHits(
int nsh) { n_shared_hits_ = nsh; }
104 int getNsharedHits()
const {
return n_shared_hits_; }
106 void setChi2(
double chi2) { chi2_ = chi2; }
107 double getChi2()
const {
return chi2_; }
109 void setTrackID(
int trackid) { trackID_ = trackid; };
110 int getTrackID()
const {
return trackID_; };
112 void setTruthProb(
double truthProb) { truthProb_ = truthProb; };
113 double getTruthProb()
const {
return truthProb_; };
115 void setPdgID(
int pdgID) { pdgID_ = pdgID; };
116 int getPdgID()
const {
return pdgID_; };
119 int q()
const {
return perigee_pars_[4] > 0 ? 1 : -1; }
126 void addMeasurementIndex(
unsigned int measIdx) {
127 meas_idxs_.push_back(measIdx);
129 std::vector<unsigned int> getMeasurementsIdxs()
const {
return meas_idxs_; }
131 void addOutlierIndex(
unsigned int measIdx) {
132 outlier_idxs_.push_back(measIdx);
134 std::vector<unsigned int> getOutlierIdxs()
const {
return outlier_idxs_; }
136 void addHoleIndex(
unsigned int measIdx) { hole_idxs_.push_back(measIdx); }
137 std::vector<unsigned int> getHoleIdxs()
const {
return hole_idxs_; }
139 void addSharedIndex(
unsigned int measIdx) { shared_idxs_.push_back(measIdx); }
140 std::vector<unsigned int> getSharedIdxs()
const {
return shared_idxs_; }
159 std::vector<double> getPerigeeParameters()
const {
return perigee_pars_; }
161 void setPerigeeCov(
const std::vector<double>& cov) { perigee_cov_ = cov; }
162 std::vector<double> getPerigeeCov()
const {
return perigee_cov_; }
164 void setPerigeeLocation(
const std::vector<double>& perigee) {
168 void setPerigeeLocation(
const double& x,
const double& y,
const double& z) {
174 void setMomentum(
const double& px,
const double& py,
const double& pz) {
180 void setPosition(
const double& x,
const double& y,
const double& z) {
186 std::vector<double> getPerigeeLocation()
const {
return perigee_; };
187 double getPerigeeX()
const {
return perigee_[0]; };
188 double getPerigeeY()
const {
return perigee_[1]; };
189 double getPerigeeZ()
const {
return perigee_[2]; };
191 std::vector<double> getMomentum()
const {
return momentum_; };
192 std::vector<double> getPosition()
const {
return position_; };
196 double getD0()
const {
return perigee_pars_[0]; };
197 double getZ0()
const {
return perigee_pars_[1]; };
198 double getPhi()
const {
return perigee_pars_[2]; };
199 double getTheta()
const {
return perigee_pars_[3]; };
200 double getQoP()
const {
return perigee_pars_[4]; };
201 double getT()
const {
return perigee_pars_[5]; };
204 trackStates_.push_back(ts);
207 std::vector<TrackState> getTrackStates()
const {
return trackStates_; }
213 int n_shared_hits_{0};
227 std::vector<double> perigee_pars_{0., 0., 0., 0., 0., 0.};
236 std::vector<double> perigee_cov_;
239 std::vector<double> perigee_{0., 0., 0.};
242 std::vector<double> momentum_{0., 0., 0.};
245 std::vector<double> position_{0., 0., 0.};
248 std::vector<unsigned int> meas_idxs_{};
251 std::vector<unsigned int> outlier_idxs_{};
254 std::vector<unsigned int> hole_idxs_{};
257 std::vector<unsigned int> shared_idxs_{};
263 double truthProb_{0.};
269 std::vector<TrackState> trackStates_;