Go to the documentation of this file.
22 nodes[n - 1].SetSmoothedParam(nodes[n - 1].GetUpdatedParam());
25 for (
int i = n - 1;
i > 0;
i--) {
31 for (
int i = 0;
i < n;
i++) {
34 nodes[
i].SetChiSqSmoothed(chi2Hit);
52 std::vector<litfloat> invPrevPredC(
59 std::vector<litfloat> Ft(prevNode->
GetF());
64 const std::vector<litfloat>& thisUpdC =
69 std::vector<litfloat> A(25);
70 std::vector<litfloat> temp1(25);
80 const std::vector<litfloat>& thisUpdX =
82 const std::vector<litfloat>& prevSmoothedX =
84 const std::vector<litfloat>& prevPredX =
87 std::vector<litfloat> temp2(7), temp3(7);
88 Subtract(prevSmoothedX, prevPredX, temp2);
90 std::vector<litfloat> thisSmoothedX(7);
91 Add(thisUpdX, temp3, thisSmoothedX);
99 const std::vector<litfloat>& prevSmoothedC =
101 const std::vector<litfloat>& prevPredC =
103 std::vector<litfloat> temp4(15);
104 Subtract(prevSmoothedC, prevPredC, temp4);
109 std::vector<litfloat> temp5(15);
111 std::vector<litfloat> thisSmoothedC(15);
112 Add(thisUpdC, temp5, thisSmoothedC);
void SetSmoothedParam(const CbmLitTrackParam *par)
CbmLitKalmanSmoother()
Constructor.
bool Add(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
const CbmLitTrackParam * GetUpdatedParam() const
const CbmLitTrackParam * GetPredictedParam() const
Data class for track parameters.
void SetParamFirst(const CbmLitTrackParam *par)
bool Mult25On15(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
const CbmLitTrackParam * GetSmoothedParam() const
litfloat ChiSq(const CbmLitTrackParam *par, const CbmLitHit *hit)
vector< litfloat > GetStateVector() const
Return state vector as vector.
virtual LitStatus Fit(CbmLitTrack *track, bool downstream=false)
Inherited from CbmLitTrackFitter.
void Smooth(CbmLitFitNode *thisNode, const CbmLitFitNode *prevNode)
Smooth one fit node.
const vector< litfloat > & GetF() const
const vector< CbmLitFitNode > & GetFitNodes() const
bool Similarity(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
Int_t NDF(const CbmLitTrack *track)
bool Transpose25(std::vector< litfloat > &a)
Data class for storage of fitted track parameters, transport matrix and chi-square on each detector s...
virtual ~CbmLitKalmanSmoother()
Destructor.
bool InvSym15(std::vector< litfloat > &a)
Base data class for track.
vector< CbmLitFitNode > FitNodeVector
void SetStateVector(const vector< litfloat > &x)
Set parameters from vector.
void SetFitNodes(const vector< CbmLitFitNode > &nodes)
void SetCovMatrix(const vector< litfloat > &C)
Base data class for track.
bool Mult15On25(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
const vector< litfloat > & GetCovMatrix() const
Implementation of Kalman smoother algorithm.
bool Mult25On5(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
const CbmLitHit * GetHit(Int_t index) const
bool Subtract(const std::vector< litfloat > &a, const std::vector< litfloat > &b, std::vector< litfloat > &c)
void SetChi2(litfloat chi2)