X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliTrackFitterRieman.h;h=e7ab0efec33b364ef1503806b3cdd139f6ece77f;hb=f7ce7a372c80bb893d8bab14717fdf0293b98156;hp=b66a7007a5fa729c3b19e79231cd5d4316e217c2;hpb=cc345ce3ffb30ad8ccf49530109e2330605cfb88;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliTrackFitterRieman.h b/STEER/AliTrackFitterRieman.h index b66a7007a5f..e7ab0efec33 100644 --- a/STEER/AliTrackFitterRieman.h +++ b/STEER/AliTrackFitterRieman.h @@ -1,9 +1,23 @@ #ifndef ALITRACKFITTERRIEMAN_H #define ALITRACKFITTERRIEMAN_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ -#include "TMatrixDSym.h" +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////////////// +// +// Class to the track points on the Riemann sphere. Inputs are +// the set of id's (volids) of the volumes in which residuals are +// calculated to construct a chi2 function to be minimized during +// the alignment procedures +// +////////////////////////////////////////////////////////////////////////////// #include "AliTrackFitter.h" +#include "AliRieman.h" +class TTreeSRedirector; +class AliRieman; class AliTrackFitterRieman : public AliTrackFitter{ public: @@ -14,39 +28,54 @@ class AliTrackFitterRieman : public AliTrackFitter{ 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(); - Double_t GetYat(Double_t x); + 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); + 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; - Float_t *fY; - Float_t *fZ; - Float_t *fSy; - Float_t *fSz; - + 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 };