X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliTrackFitterRieman.h;h=e7ab0efec33b364ef1503806b3cdd139f6ece77f;hb=c973e857bf38543c4c517c6cf58f9f7f9c60bb7e;hp=57ff95bf0c7e0a00c97439cfe18c96fc0894e4e4;hpb=6b6cba33c24c613006a073283a9fbbfb58f79032;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliTrackFitterRieman.h b/STEER/AliTrackFitterRieman.h index 57ff95bf0c7..e7ab0efec33 100644 --- a/STEER/AliTrackFitterRieman.h +++ b/STEER/AliTrackFitterRieman.h @@ -15,6 +15,9 @@ ////////////////////////////////////////////////////////////////////////////// #include "AliTrackFitter.h" +#include "AliRieman.h" +class TTreeSRedirector; +class AliRieman; class AliTrackFitterRieman : public AliTrackFitter{ public: @@ -22,42 +25,57 @@ class AliTrackFitterRieman : public AliTrackFitter{ AliTrackFitterRieman(AliTrackPointArray *array, Bool_t owner = kTRUE); AliTrackFitterRieman(const AliTrackFitterRieman &rieman); AliTrackFitterRieman &operator =(const AliTrackFitterRieman& rieman); - virtual ~AliTrackFitterRieman() {} + virtual ~AliTrackFitterRieman(); Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0, - AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer, - AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer); + AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, + AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer); Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const; - + void SetMaxDelta(Float_t maxDelta) { fMaxDelta = maxDelta;} + Float_t GetMaxDelta() const { return fMaxDelta;} + void SetCorrection(Bool_t correction){ fBCorrection=correction;} + Bool_t GetCorrection() const {return fBCorrection ;} void Reset(); void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz); - void Update(); + Bool_t Update(); - Double_t GetC() const; + Double_t GetC() const {return fRieman->GetC();} Double_t GetYat(Double_t x) const; Double_t GetZat(Double_t x) const; - Double_t GetDYat(Double_t x) const; - Double_t GetDZat(Double_t x) const; - Bool_t GetXYZat(Double_t r, Float_t *xyz) const; + Double_t GetDYat(Double_t x) const {return fRieman->GetDYat(x);} + Double_t GetDZat(Double_t x) const {return fRieman->GetDZat(x);} + Double_t GetErrY2at(Double_t x) const; + Double_t GetErrZ2at(Double_t x) const; - protected: + Bool_t GetXYZat(Double_t r, Float_t *xyz) const {return fRieman->GetXYZat(r, fAlpha,xyz);} + AliRieman *GetRieman() const {return fRieman;} + + // Methods needed in order to use the class + // inside the millipede alignment algorithm + Double_t GetAlpha() const { return fAlpha; } + void SetParam(Int_t i, Double_t par); + + void SetMinPointRadius(Double_t radius) { fMinPointRadius = radius; } + void SetMaxPointRadius(Double_t radius) { fMaxPointRadius = radius; } + Double_t GetMinPointRadius() const { return fMinPointRadius; } + Double_t GetMaxPointRadius() const { return fMaxPointRadius; } + protected: + Bool_t fBCorrection; //add correction for non-helicity Double_t fAlpha; //angle to transform to the fitting coordinate system - Double_t fSumXY[9]; //sums for XY part - Double_t fSumYY; //sum for YY part - Double_t fSumXZ[9]; //sums for XZ part - Double_t fSumZZ; //sum for ZZ part Int_t fNUsed; //actual number of space-points used in the fit - Bool_t fConv; // indicates convergation - Float_t *fX; // Array of x coordinates - Float_t *fY; // Array of y coordinates - Float_t *fZ; // Array of z coordinates - Float_t *fSy; // Array of errors on y coordinate - Float_t *fSz; // Array of errors on z coordinate - + Bool_t fConv; //indicates convergation + Float_t fMaxDelta; // maximal allowed delta in PCA exported for PCA minimization + AliRieman *fRieman; // rieman fitter + Double_t fCorrY[4]; // correction polynom coef + Double_t fCorrZ[4]; // correction polynom coef + Double_t fMinPointRadius; // minimal allowed radius for the point to be included in the fit + Double_t fMaxPointRadius; // maximal allowed radius for the point to be included in the fit private: - - ClassDef(AliTrackFitterRieman,1) // Fast fit of helices on ITS RecPoints + Bool_t Begin(Int_t, Int_t) {Reset(); return kTRUE;} + Bool_t AddPoint(const AliTrackPoint *) {return kTRUE;} + TTreeSRedirector *fDebugStream; //!debug streamer + ClassDef(AliTrackFitterRieman,3) // Fast fit of helices on ITS RecPoints };