1 #ifndef ALITPCUNLINEARITY_H
2 #define ALITPCUNLINEARITY_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 #include "AliTPCcalibBase.h"
11 #include "TObjArray.h"
12 #include "TTreeStream.h"
25 class AliTPCcalibUnlinearity:public AliTPCcalibBase {
27 AliTPCcalibUnlinearity();
28 AliTPCcalibUnlinearity(const Text_t *name, const Text_t *title);
29 virtual ~AliTPCcalibUnlinearity();
31 virtual void Process(AliTPCseed *track);
32 virtual void Analyze(){return;}
33 virtual void Terminate();
34 virtual Long64_t Merge(TCollection* list){return 0;}
36 void ProcessTree(TTree * tree, Long64_t nmaxPoints);
37 void AddPoint(Int_t sector, Int_t row, Double_t dz, Double_t dy, Double_t p2, Double_t p3, Double_t dr, Int_t npoints=1);
40 void ProcessDiff(AliTPCseed *track, Int_t isec);
44 TLinearFitter * GetFitterOutR(Int_t sector) {return (TLinearFitter*)fFittersOutR.At(sector);}
45 TLinearFitter * GetFitterOutZ(Int_t sector) {return (TLinearFitter*)fFittersOutZ.At(sector);}
46 TVectorD * GetParamOutR(Int_t sector) {return (TVectorD*)fParamsOutR.At(sector);}
47 TVectorD * GetParamOutZ(Int_t sector) {return (TVectorD*)fParamsOutZ.At(sector);}
49 Double_t GetDr(Int_t sector, Double_t dout, Double_t dr);
50 Double_t GetDz(Int_t sector, Double_t dout, Double_t dr);
51 Double_t GetGDr(Int_t stype,Float_t gx, Float_t gy,Float_t gz);
53 static Double_t SGetDr(Int_t sector, Double_t dout, Double_t dr);
54 static Double_t SGetDz(Int_t sector, Double_t dout, Double_t dr);
55 static Double_t SGetGDr(Int_t stype,Float_t gx, Float_t gy,Float_t gz);
57 static AliTPCcalibUnlinearity* Instance();
58 void SetInstance(AliTPCcalibUnlinearity*param){fgInstance = param;}
59 //TMatrixD * GetNormCovariance(Int_t sector, Int_t type);
60 //TMatrixD * GetNormCovariance(Int_t sector, Int_t type);
61 static void MakeQPosNormAll(TTree * chainres, AliTPCClusterParam * param, Int_t maxPoints);
63 THnSparse * fDiffHistoLine; // matrix with cluster residuals - linear fit
64 THnSparse * fDiffHistoPar; // matrix with cluster residuals - parabolic fit
67 TObjArray fFittersOutR; // Unlinearity fitters for radial distortion - outer field cage
68 TObjArray fFittersOutZ; // Unlinearity fitters for z distortion - outer field cage
69 TObjArray fParamsOutR; // Parameters for radial distortion - outer field cage
70 TObjArray fParamsOutZ; // Parameters for z distortion - outer field cage
71 TObjArray fErrorsOutR; // Parameters for radial distortion - outer field cage
72 TObjArray fErrorsOutZ; // Parameters for z distortion - outer field cage
76 AliTPCcalibUnlinearity(const AliTPCcalibUnlinearity&);
77 AliTPCcalibUnlinearity& operator=(const AliTPCcalibUnlinearity&);
78 static AliTPCcalibUnlinearity* fgInstance; //! Instance of this class (singleton implementation)
80 ClassDef(AliTPCcalibUnlinearity, 1);