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