1 #ifndef ALITPCKALMANFIT_H
2 #define ALITPCKALMANFIT_H
10 class TTreeSRedirector;
11 class AliTrackPointArray;
18 class AliTPCkalmanFit: public TNamed{
22 void InitTransformation();
23 void Add(const AliTPCkalmanFit * kalman);
25 void AddCalibration(AliTPCTransformation * calib);
26 AliTPCTransformation * GetTransformation(Int_t i){return (fCalibration)? (AliTPCTransformation *)fCalibration->At(i):0;}
28 void SetStatus(const char * name, Bool_t setOn, Bool_t isOr=kTRUE);
30 void FitTrackLinear(AliTrackPointArray& points, TTreeSRedirector *debug=0);
31 void DumpTrackLinear(AliTrackPointArray& points, TTreeSRedirector *debug);
32 void UpdateLinear(AliTrackPoint &point, TTreeSRedirector *debug=0);
34 void Propagate(TTreeSRedirector *debug=0);
35 void PropagateTime(Int_t time);
36 void Update(const AliTPCkalmanFit * kalman);
38 static AliTrackPointArray * SortPoints(AliTrackPointArray &points);
39 static AliTrackPointArray * MakePointArrayLinear(Double_t alpha, Double_t y0, Double_t z0, Double_t ky, Double_t kz, Double_t err=0.02);
40 void ApplyCalibration(AliTrackPointArray *array, Double_t csign);
41 Bool_t CheckCovariance(TMatrixD &covar, Float_t maxEl);
43 Bool_t DumpCorelation(Double_t threshold, const char *mask0=0, const char *mask1=0);
44 Bool_t DumpCalib(const char *mask=0);
46 Double_t GetTPCDeltaXYZ(Int_t coord, Int_t volID, Double_t x, Double_t y, Double_t z);
47 static Double_t SGetTPCDeltaXYZ(Int_t coord, Int_t volID, Double_t x, Double_t y, Double_t z);
48 AliTPCkalmanFit *Test(Int_t ntracks);
51 // Calibration parameters
53 TObjArray *fCalibration; // array of calibrations
54 TMatrixD *fCalibParam; // calibration parameters
55 TMatrixD *fCalibCovar; // calibration parameters
59 TMatrixD *fLinearParam; // linear parameters
60 TMatrixD *fLinearCovar; // linear covariance
61 THnSparse *fLinearTrackDelta[12]; // linear tracks matching residuals - delta
62 THnSparse *fLinearTrackPull[12]; // linear tracks matching residuals - pull
66 Int_t fLastTimeStamp; // last time stamp - used for propagation of parameters
67 //static AliTPCkalmanFit* Instance();
68 void SetInstance(AliTPCkalmanFit*param){fgInstance = param;}
69 static AliTPCkalmanFit* fgInstance; //! Instance of this class (singleton implementation)
71 Double_t fCurrentAlpha; //! current rotation frame
72 Double_t fCA; //! cosine of current angle
73 Double_t fSA; //! sinus of current angle
74 AliTPCkalmanFit& operator=(const AliTPCkalmanFit&);// not implemented
75 AliTPCkalmanFit(const AliTPCkalmanFit&):TNamed(),
82 fCurrentAlpha(0), //! current rotation frame
83 fCA(0), //! cosine of current angle
84 fSA(0) //! sinus of current angle
87 ClassDef(AliTPCkalmanFit,3);