Double_t cv[21],Short_t sign);
virtual ~AliExternalTrackParam(){}
void CopyFromVTrack(const AliVTrack *vTrack);
-
+
template <typename T>
void Set(T x, T alpha, const T param[5], const T covar[15]) {
// Sets the parameters
+ if (alpha < -TMath::Pi()) alpha += 2*TMath::Pi();
+ else if (alpha >= TMath::Pi()) alpha -= 2*TMath::Pi();
fX=x; fAlpha=alpha;
for (Int_t i = 0; i < 5; i++) fP[i] = param[i];
for (Int_t i = 0; i < 15; i++) fC[i] = covar[i];
const Double_t *GetParameter() const {return fP;}
const Double_t *GetCovariance() const {return fC;}
-
+ virtual Bool_t IsStartedTimeIntegral() const {return kFALSE;}
+ virtual void AddTimeStep(Double_t ) {} // dummy method, real stuff is done in AliKalmanTrack
Double_t GetAlpha() const {return fAlpha;}
Double_t GetX() const {return fX;}
Double_t GetY() const {return fP[0];}
Double_t *GetResiduals(Double_t *p,Double_t *cov,Bool_t updated=kTRUE) const;
Bool_t Update(Double_t p[2],Double_t cov[3]);
Bool_t Rotate(Double_t alpha);
+ Bool_t Invert();
Bool_t PropagateTo(Double_t x, Double_t b);
+ Bool_t PropagateParamOnlyTo(Double_t xk, Double_t b);
Bool_t Propagate(Double_t alpha, Double_t x, Double_t b);
Bool_t PropagateBxByBz(Double_t alpha, Double_t x, Double_t b[3]);
void Propagate(Double_t len,Double_t x[3],Double_t p[3],Double_t bz) const;
Bool_t GetZAt(Double_t x, Double_t b, Double_t &z) const;
void Print(Option_t* option = "") const;
Double_t GetSnpAt(Double_t x,Double_t b) const;
+ Bool_t GetXatLabR(Double_t r,Double_t &x, Double_t bz, Int_t dir=0) const;
+ Bool_t GetXYZatR(Double_t xr,Double_t bz, Double_t *xyz=0, Double_t* alpSect=0) const;
//Deprecated
Bool_t CorrectForMaterial(Double_t d, Double_t x0, Double_t mass,
private:
Double_t &Par(Int_t i) {return fP[i];}
Double_t &Cov(Int_t i) {return fC[i];}
- private:
+ protected:
Double32_t fX; // X coordinate for the point of parametrisation
Double32_t fAlpha; // Local <-->global coor.system rotation angle
Double32_t fP[5]; // The track parameters