+ Double_t fParams[2]; // Fitparameter
+ Double_t fCovarianceMatrix[3]; // Covariance Matrix
+ Double_t fSums[6]; // Sums
+ };
+
+ class AliTRDtrackFitterRieman{
+ public:
+ AliTRDtrackFitterRieman();
+ ~AliTRDtrackFitterRieman();
+
+ Double_t Eval();
+ void Reset();
+
+ Double_t GetYat(Double_t x) const;
+ Double_t GetDyDxAt(Double_t x) const;
+ Double_t GetZat(Double_t x) const;
+ Double_t GetDzDx() const { return fParameters[4]; };
+ Double_t GetCurvature() const;
+ void GetCovAt(Double_t x, Double_t *cov) const;
+
+ void SetRiemanFitter(TLinearFitter *const fitter) { fTrackFitter = fitter; }
+ void SetTracklet(Int_t il, AliTRDseedV1 * const tracklet);
+ void SetSysClusterError(Double_t err) { fSysClusterError = err; };
+ private:
+ AliTRDtrackFitterRieman(const AliTRDtrackFitterRieman &);
+ AliTRDtrackFitterRieman &operator=(const AliTRDtrackFitterRieman &);
+ void UpdateFitters(AliTRDseedV1 * const tracklet);
+ Bool_t CheckAcceptable(Double_t offset, Double_t slope);
+ Double_t CalculateReferenceX();
+
+ TLinearFitter *fTrackFitter; // Fitter for linearized track model
+ AliTRDLeastSquare *fZfitter; // Linear fitter in z-Direction
+ AliTRDseedV1 *fTracklets[kNPlanes]; // Tracklet container
+ TMatrixD *fCovarPolY; // Polynomial Covariance Matrix Estimation (y-direction)
+ TMatrixD *fCovarPolZ; // Polynomial Covariance Matrix Estimation (z-direction)
+ Double_t fXref; // Reference x position for fit in z-Direction
+ Double_t fSysClusterError; // Systematic cluster Error
+ Double_t fParameters[5]; // Track Model Parameter
+ Double_t fSumPolY[5]; // Sums for polynomial Covariance Matrix Estimation (y-direction)
+ Double_t fSumPolZ[3]; // Sums for polynomial Covariance Matrix Estimation (z-direction)