23#ifndef ALIGNMENTTRACK_H
24#define ALIGNMENTTRACK_H
46 using trackParam_t::setParam;
81 void Clear(Option_t* opt =
"") final;
193 const double kDefQ2PtCosm = 1;
194 const double kDefG2PtColl = 1. / 0.6;
200 const double val = tr.getParam(
i) + this->getParam(
i);
205 tr.setQ2Pt(
isCosmic() ? kDefQ2PtCosm : kDefG2PtColl);
214 for (
int itr = ntr; itr--;) {
221 partr[
i] = getParam(
i) +
par[
i];
223 for (
int itr = ntr; itr--;) {
224 setParams(trSet[itr],
x, alp, partr.data(),
false);
239 for (
int i = 0;
i < ntr; ++
i) {
248 const auto val = tr.getParam(
par) + delta;
256 for (
int i = 0;
i < ntr; ++
i) {
265 set(etp->getX(), etp->getAlpha(), etp->getParams(), etp->getCov().data());
273 setAlpha(trc.getAlpha());
274 setAbsCharge(trc.getAbsCharge());
275 setPID(trc.getPID());
280 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
o2::track::TrackParametrization< double > trackPar_t
std::vector< AlignmentPoint > & getDetPoints()
static constexpr double MaxDefSnp
void setKalmanDone(bool v=true)
double getChi2CosmDn() const
std::vector< AlignmentPoint * > mPoints
AlignmentTrack(const AlignmentTrack &)
virtual void dumpCoordinates() const
bool getResidDone() const
~AlignmentTrack() override=default
double getResidual(int dim, int pntID) const
AlignmentPoint * getPoint(int i)
bool calcResiduals(const double *params=nullptr)
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
std::vector< double > & getLocParsV()
void checkExpandDerGloBuffer(unsigned int minSize)
bool propagateToPoint(trackParam_t &tr, trackPar_t *linRef, const AlignmentPoint *pnt, double maxStep, double maxSnp=0.95, MatCorrType mt=MatCorrType::USEMatCorrLUT, track::TrackLTIntegral *tLT=nullptr, int signCorr=0)
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 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)
bool applyMatCorr(trackPar_t &trPar, const double *corrDiag, const AlignmentPoint *pnt)
const double * getDResDLoc(int dim, int pntID) const
void copyFrom(const o2::track::TrackParametrizationWithError< P > &trc)
void setParams(trackPar_t &tr, double x, double alp, const double *par, bool add)
void Print(Option_t *opt="") const final
GTrackID getCurrentTrackID() const
void modParam(trackPar_t &tr, int par, double delta)
bool propagateParamToPoint(trackPar_t &tr, const AlignmentPoint *pnt, double maxStep=3, double maxSnp=0.95, MatCorrType mt=MatCorrType::USEMatCorrLUT, int signCorr=0)
std::vector< double > mResid[2]
void setParam(trackPar_t &tr, int par, double val)
const double * getLocPars() const
static double richardsonExtrap(double *val, int ord=1)
void richardsonDeriv(const trackPar_t *trSet, const double *delta, const AlignmentPoint *pnt, double &derY, double &derZ)
double getChi2Ini() const
value_t const params_t & par
TrackParametrization< value_T > & linRef
std::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 ...