]>
Commit | Line | Data |
---|---|---|
98937d93 | 1 | #ifndef ALITRACKRESIDUALS_H |
2 | #define ALITRACKRESIDUALS_H | |
3 | ||
4 | //************************************************************************ | |
5 | // AliTrackResiduals: base class for collecting the track space point * | |
6 | // residuals produced by the fast track fitters (AliTrackFitter class). * | |
7 | // It provides an interface to the arrays which contain the space points * | |
8 | // and track extrapolation points within the detector volume to be * | |
9 | // aligned. The derived classes should implement method to analyze the * | |
10 | // track residuals and minimize their sum in order to get the * | |
11 | // AliAlignObj for the given detector volume. * | |
12 | //************************************************************************ | |
13 | ||
14 | #include "TObject.h" | |
15 | ||
90dbf5fb | 16 | #include "AliAlignObjParams.h" |
46ae650f | 17 | |
98937d93 | 18 | class AliTrackPointArray; |
19 | ||
20 | class AliTrackResiduals : public TObject { | |
21 | ||
22 | public: | |
23 | ||
24 | AliTrackResiduals(); | |
46ae650f | 25 | AliTrackResiduals(Int_t ntracks); |
98937d93 | 26 | AliTrackResiduals(const AliTrackResiduals &res); |
27 | AliTrackResiduals& operator= (const AliTrackResiduals& res); | |
28 | virtual ~AliTrackResiduals(); | |
29 | ||
30 | void SetNTracks(Int_t ntracks); | |
98937d93 | 31 | Bool_t AddTrackPointArrays(AliTrackPointArray *volarray, AliTrackPointArray *trackarray); |
cc345ce3 | 32 | void InitAlignObj(); |
33 | void SetMinNPoints(Int_t n) { fMinNPoints = n; } | |
98937d93 | 34 | |
35 | virtual Bool_t Minimize() = 0; | |
36 | ||
37 | Int_t GetNTracks() const { return fN; } | |
38 | Int_t GetNFilledTracks() const { return fLast; } | |
39 | Bool_t GetTrackPointArrays(Int_t i, AliTrackPointArray* &volarray, AliTrackPointArray* &trackarray) const; | |
40 | AliAlignObj *GetAlignObj() const { return fAlignObj; } | |
46ae650f | 41 | Float_t GetChi2() const { return fChi2; } |
42 | Int_t GetNdf() const { return fNdf; } | |
cc345ce3 | 43 | Int_t GetMinNPoints() const { return fMinNPoints; } |
29317b68 | 44 | void FixParameter(Int_t par,Float_t value=0.) {fBFixed[par]=kTRUE; fFixed[par]= value;} |
cc101660 | 45 | const Int_t GetNFreeParam(); |
29317b68 | 46 | void ReleaseParameter(Int_t par) {fBFixed[par]=kFALSE;} |
98937d93 | 47 | |
48 | protected: | |
49 | ||
50 | void DeleteTrackPointArrays(); | |
51 | ||
52 | Int_t fN; // Number of tracks | |
53 | Int_t fLast; // Index of the last filled track arrays | |
54 | AliAlignObj *fAlignObj; // Pointer to the volume alignment object to be fitted | |
55 | AliTrackPointArray **fVolArray; //! Pointers to the arrays containing space points | |
56 | AliTrackPointArray **fTrackArray; //! Pointers to the arrays containing track extrapolation points | |
46ae650f | 57 | Float_t fChi2; // Chi2 (or distance) of residuals minimization |
58 | Int_t fNdf; // Number of degrees of freedom | |
cc345ce3 | 59 | Int_t fMinNPoints; // Minimum allowed Number of points in the volume which is to be aligned |
98937d93 | 60 | Bool_t fIsOwner; // Track point arrays owned by the object |
29317b68 | 61 | Float_t fFixed[6]; // The fixed values of parameters |
62 | Bool_t fBFixed[6]; // The flag for fixing parameter | |
98937d93 | 63 | |
29317b68 | 64 | ClassDef(AliTrackResiduals,2) |
98937d93 | 65 | |
66 | }; | |
67 | ||
68 | #endif |