]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITRACKFITTERRIEMAN_H | |
2 | #define ALITRACKFITTERRIEMAN_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
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 | ////////////////////////////////////////////////////////////////////////////// | |
16 | ||
17 | #include "AliTrackFitter.h" | |
18 | #include "AliRieman.h" | |
19 | class TTreeSRedirector; | |
20 | class AliRieman; | |
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); | |
28 | virtual ~AliTrackFitterRieman(); | |
29 | ||
30 | Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0, | |
31 | AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer, | |
32 | AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer); | |
33 | Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const; | |
34 | void SetMaxDelta(Float_t maxDelta) { fMaxDelta = maxDelta;} | |
35 | Float_t GetMaxDelta() const { return fMaxDelta;} | |
36 | void SetCorrection(Bool_t correction){ fBCorrection=correction;} | |
37 | Bool_t GetCorrection() const {return fBCorrection ;} | |
38 | void Reset(); | |
39 | void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz); | |
40 | Bool_t Update(); | |
41 | ||
42 | Double_t GetC() const {return fRieman->GetC();} | |
43 | Double_t GetYat(Double_t x) const; | |
44 | Double_t GetZat(Double_t x) const; | |
45 | Double_t GetDYat(Double_t x) const {return fRieman->GetDYat(x);} | |
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 | ||
50 | Bool_t GetXYZat(Double_t r, Float_t *xyz) const {return fRieman->GetXYZat(r, fAlpha,xyz);} | |
51 | AliRieman *GetRieman() const {return fRieman;} | |
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 | ||
63 | protected: | |
64 | Bool_t fBCorrection; //add correction for non-helicity | |
65 | Double_t fAlpha; //angle to transform to the fitting coordinate system | |
66 | Int_t fNUsed; //actual number of space-points used in the fit | |
67 | Bool_t fConv; //indicates convergation | |
68 | Float_t fMaxDelta; // maximal allowed delta in PCA exported for PCA minimization | |
69 | AliRieman *fRieman; // rieman fitter | |
70 | Double_t fCorrY[4]; // correction polynom coef | |
71 | Double_t fCorrZ[4]; // correction polynom coef | |
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 | |
74 | private: | |
75 | Bool_t Begin(Int_t, Int_t) {Reset(); return kTRUE;} | |
76 | Bool_t AddPoint(const AliTrackPoint *) {return kTRUE;} | |
77 | TTreeSRedirector *fDebugStream; //!debug streamer | |
78 | ClassDef(AliTrackFitterRieman,3) // Fast fit of helices on ITS RecPoints | |
79 | ||
80 | }; | |
81 | ||
82 | #endif |