23#ifndef ALIGNMENTTRACK_H
24#define ALIGNMENTTRACK_H
45 using trackParam_t::setParam;
80 void Clear(Option_t* opt =
"") final;
191 const double kDefQ2PtCosm = 1;
192 const double kDefG2PtColl = 1. / 0.6;
198 const double val = tr.getParam(
i) + this->getParam(
i);
203 tr.setQ2Pt(
isCosmic() ? kDefQ2PtCosm : kDefG2PtColl);
212 for (
int itr = ntr; itr--;) {
219 partr[
i] = getParam(
i) +
par[
i];
221 for (
int itr = ntr; itr--;) {
222 setParams(trSet[itr],
x, alp, partr.data(),
false);
237 for (
int i = 0;
i < ntr; ++
i) {
246 const auto val = tr.getParam(
par) + delta;
254 for (
int i = 0;
i < ntr; ++
i) {
263 set(etp->getX(), etp->getAlpha(), etp->getParams(), etp->getCov().data());
271 setAlpha(trc.getAlpha());
272 setAbsCharge(trc.getAbsCharge());
273 setPID(trc.getPID());
278 setCov(
double(trc.getCov()[
i]),
i);
Meausered point in the sensor.
Global index for barrel track: provides provenance (detectors combination), index in respective array...
void addLocPars(const double *pars)
void setRefPoint(AlignmentPoint *p)
static constexpr double MaxDefStep
bool propagateToPoint(trackParam_t &tr, const AlignmentPoint *pnt, double maxStep, double maxSnp=0.95, MatCorrType mt=MatCorrType::USEMatCorrLUT, track::TrackLTIntegral *tLT=nullptr, int signCorr=0)
std::vector< AlignmentPoint > & getDetPoints()
static constexpr double MaxDefSnp
void setKalmanDone(bool v=true)
double getChi2CosmDn() const
void richardsonDeriv(const trackParam_t *trSet, const double *delta, const AlignmentPoint *pnt, double &derY, double &derZ)
std::vector< AlignmentPoint * > mPoints
AlignmentTrack(const AlignmentTrack &)
virtual void dumpCoordinates() const
void setParams(trackParam_t &tr, double x, double alp, const double *par, bool add)
bool getResidDone() const
~AlignmentTrack() override=default
double getResidual(int dim, int pntID) const
bool applyMatCorr(trackParam_t &trPar, const double *corrDiag, const AlignmentPoint *pnt)
AlignmentPoint * getPoint(int i)
bool calcResiduals(const double *params=nullptr)
void modParam(trackParam_t &tr, int par, double delta)
const double * getDResDGlo(int dim, int id) const
std::vector< double > mDResDGlo[2]
const int * getGloParID() const
bool getKalmanDone() const
bool calcResidDeriv(double *params=nullptr)
void imposePtBOff(double pt)
void setFieldON(bool v=true)
const AlignmentPoint * getPoint(int i) const
bool getDerivDone() const
bool propagateParamToPoint(trackParam_t &tr, const AlignmentPoint *pnt, double maxStep=3, double maxSnp=0.95, MatCorrType mt=MatCorrType::USEMatCorrLUT, int signCorr=0)
std::vector< double > & getLocParsV()
void checkExpandDerGloBuffer(unsigned int minSize)
bool fitLeg(trackParam_t &trc, int pFrom, int pTo, bool &inv)
void setChi2Ini(double c)
std::vector< double > mDResDLoc[2]
void setCosmic(bool v=true)
auto & addDetectorPoint()
std::vector< AlignmentPoint > mDetPoints
std::vector< double > mLocPar
void setDerivDone(bool v=true)
void setParam(trackParam_t &tr, int par, double val)
void setLocPars(const double *pars)
int getNLocExtPar() const
int getInnerPointID() const
bool calcResidDerivGlo(AlignmentPoint *pnt)
void Clear(Option_t *opt="") final
void suppressLastPoints(int n)
const AlignmentPoint * getInnerPoint() const
bool combineTracks(trackParam_t &trcL, const trackParam_t &trcU)
double getChi2CosmUp() const
void setCurrentTrackID(GTrackID id)
AlignmentTrack & operator=(const AlignmentTrack &)
std::vector< int > mGloParID
void setResidDone(bool v=true)
const double * getDResDLoc(int dim, int pntID) const
void copyFrom(const o2::track::TrackParametrizationWithError< P > &trc)
void Print(Option_t *opt="") const final
GTrackID getCurrentTrackID() const
std::vector< double > mResid[2]
const double * getLocPars() const
static double richardsonExtrap(double *val, int ord=1)
double getChi2Ini() const
value_t const params_t & par
gpu::gpustd::array< value_t, kNParams > params_t
GLenum const GLfloat * params
typename track::TrackParametrizationWithError< double > trackParam_t
PropagatorImpl< double > PropagatorD
void align(gsl::span< ElinkEncoder< BareFormat, CHARGESUM > > elinks)
constexpr int kCovMatSize
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...