34d230c6da481979d64d60f617f35b4f4bb4b37c
[u/mrichter/AliRoot.git] / STEER / AliTrackResiduals.h
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
16 class AliAlignObj;
17 class AliTrackPointArray;
18
19 class AliTrackResiduals : public TObject {
20
21  public:
22
23   AliTrackResiduals();
24   AliTrackResiduals(Int_t ntracks, AliAlignObj *alignobj);
25   AliTrackResiduals(const AliTrackResiduals &res);
26   AliTrackResiduals& operator= (const AliTrackResiduals& res);
27   virtual ~AliTrackResiduals();
28
29   void   SetNTracks(Int_t ntracks);
30   void   SetAlignObj(AliAlignObj *alignobj) { fAlignObj = alignobj; }
31   Bool_t AddTrackPointArrays(AliTrackPointArray *volarray, AliTrackPointArray *trackarray);
32
33   virtual Bool_t Minimize() = 0;
34
35   Int_t  GetNTracks() const { return fN; }
36   Int_t  GetNFilledTracks() const { return fLast; }
37   Bool_t GetTrackPointArrays(Int_t i, AliTrackPointArray* &volarray, AliTrackPointArray* &trackarray) const;
38   AliAlignObj *GetAlignObj() const { return fAlignObj; }
39
40  protected:
41
42   void DeleteTrackPointArrays();
43
44   Int_t              fN;            // Number of tracks
45   Int_t              fLast;         // Index of the last filled track arrays
46   AliAlignObj        *fAlignObj;    // Pointer to the volume alignment object to be fitted
47   AliTrackPointArray **fVolArray;   //! Pointers to the arrays containing space points
48   AliTrackPointArray **fTrackArray; //! Pointers to the arrays containing track extrapolation points
49   Bool_t             fIsOwner;      // Track point arrays owned by the object
50
51   ClassDef(AliTrackResiduals,1)
52
53 };
54
55 #endif