]>
Commit | Line | Data |
---|---|---|
98937d93 | 1 | #ifndef ALITRACKFITTERRIEMAN_H |
2 | #define ALITRACKFITTERRIEMAN_H | |
6b6cba33 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
98937d93 | 5 | |
6b6cba33 | 6 | /* $Id$ */ |
7 | ||
8 | /////////////////////////////////////////////////////////////////////////////// | |
9 | // | |
10 | // Class to the track points on the Riemann sphere. Inputs are | |
11 | // the set of id's (volids) of the volumes in which residuals are | |
12 | // calculated to construct a chi2 function to be minimized during | |
13 | // the alignment procedures | |
14 | // | |
15 | ////////////////////////////////////////////////////////////////////////////// | |
98937d93 | 16 | |
17 | #include "AliTrackFitter.h" | |
8849da04 | 18 | #include "AliRieman.h" |
19 | class TTreeSRedirector; | |
20 | class AliRieman; | |
98937d93 | 21 | |
22 | class AliTrackFitterRieman : public AliTrackFitter{ | |
23 | public: | |
24 | AliTrackFitterRieman(); | |
25 | AliTrackFitterRieman(AliTrackPointArray *array, Bool_t owner = kTRUE); | |
26 | AliTrackFitterRieman(const AliTrackFitterRieman &rieman); | |
27 | AliTrackFitterRieman &operator =(const AliTrackFitterRieman& rieman); | |
8849da04 | 28 | virtual ~AliTrackFitterRieman(); |
98937d93 | 29 | |
cc345ce3 | 30 | Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0, |
25be1e5c | 31 | AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, |
32 | AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer); | |
98937d93 | 33 | Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const; |
186e6ced | 34 | void SetMaxDelta(Float_t maxDelta) { fMaxDelta = maxDelta;} |
35 | Float_t GetMaxDelta() const { return fMaxDelta;} | |
dfce6628 | 36 | void SetCorrection(Bool_t correction){ fBCorrection=correction;} |
37 | Bool_t GetCorrection() const {return fBCorrection ;} | |
98937d93 | 38 | void Reset(); |
39 | void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz); | |
9c4c8863 | 40 | Bool_t Update(); |
98937d93 | 41 | |
1501484e | 42 | Double_t GetC() const {return fRieman->GetC();} |
dfce6628 | 43 | Double_t GetYat(Double_t x) const; |
44 | Double_t GetZat(Double_t x) const; | |
8849da04 | 45 | Double_t GetDYat(Double_t x) const {return fRieman->GetDYat(x);} |
dfce6628 | 46 | Double_t GetDZat(Double_t x) const {return fRieman->GetDZat(x);} |
47 | Double_t GetErrY2at(Double_t x) const; | |
48 | Double_t GetErrZ2at(Double_t x) const; | |
49 | ||
8849da04 | 50 | Bool_t GetXYZat(Double_t r, Float_t *xyz) const {return fRieman->GetXYZat(r, fAlpha,xyz);} |
51 | AliRieman *GetRieman() const {return fRieman;} | |
d4af2e1d | 52 | |
53 | // Methods needed in order to use the class | |
54 | // inside the millipede alignment algorithm | |
55 | Double_t GetAlpha() const { return fAlpha; } | |
56 | void SetParam(Int_t i, Double_t par); | |
57 | ||
58 | void SetMinPointRadius(Double_t radius) { fMinPointRadius = radius; } | |
59 | void SetMaxPointRadius(Double_t radius) { fMaxPointRadius = radius; } | |
60 | Double_t GetMinPointRadius() const { return fMinPointRadius; } | |
61 | Double_t GetMaxPointRadius() const { return fMaxPointRadius; } | |
62 | ||
98937d93 | 63 | protected: |
dfce6628 | 64 | Bool_t fBCorrection; //add correction for non-helicity |
98937d93 | 65 | Double_t fAlpha; //angle to transform to the fitting coordinate system |
46ae650f | 66 | Int_t fNUsed; //actual number of space-points used in the fit |
8849da04 | 67 | Bool_t fConv; //indicates convergation |
186e6ced | 68 | Float_t fMaxDelta; // maximal allowed delta in PCA exported for PCA minimization |
8849da04 | 69 | AliRieman *fRieman; // rieman fitter |
dfce6628 | 70 | Double_t fCorrY[4]; // correction polynom coef |
71 | Double_t fCorrZ[4]; // correction polynom coef | |
d4af2e1d | 72 | Double_t fMinPointRadius; // minimal allowed radius for the point to be included in the fit |
73 | Double_t fMaxPointRadius; // maximal allowed radius for the point to be included in the fit | |
98937d93 | 74 | private: |
57c8a1c2 | 75 | Bool_t Begin(Int_t, Int_t) {Reset(); return kTRUE;} |
9c4c8863 | 76 | Bool_t AddPoint(const AliTrackPoint *) {return kTRUE;} |
8849da04 | 77 | TTreeSRedirector *fDebugStream; //!debug streamer |
d4af2e1d | 78 | ClassDef(AliTrackFitterRieman,3) // Fast fit of helices on ITS RecPoints |
98937d93 | 79 | |
80 | }; | |
81 | ||
82 | #endif |