]>
Commit | Line | Data |
---|---|---|
9318a5b4 | 1 | #ifndef ALITPCCALIBALIGN_H |
2 | #define ALITPCCALIBALIGN_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //// | |
8 | //// | |
9 | //// | |
10 | ||
11 | #include "TObject.h" | |
12 | #include "TObjArray.h" | |
13 | #include "TLinearFitter.h" | |
e4042305 | 14 | #include "AliTPCcalibBase.h" |
15 | #include "TH1.h" | |
9318a5b4 | 16 | |
17 | class AliExternalTrackParam; | |
e4042305 | 18 | class AliTPCseed; |
9318a5b4 | 19 | |
e4042305 | 20 | class AliTPCcalibAlign:public AliTPCcalibBase { |
9318a5b4 | 21 | public: |
22 | AliTPCcalibAlign(); | |
e149f26d | 23 | AliTPCcalibAlign(const Text_t *name, const Text_t *title); |
9318a5b4 | 24 | |
25 | virtual ~AliTPCcalibAlign(); | |
26 | ||
e4042305 | 27 | virtual void Process(AliTPCseed *track); |
28 | ||
29 | void ProcessTracklets(const AliExternalTrackParam &t1, | |
30 | const AliExternalTrackParam &t2, | |
31 | Int_t s1,Int_t s2); | |
9318a5b4 | 32 | void Eval(); |
33 | TLinearFitter* GetFitter12(Int_t s1,Int_t s2) { | |
34 | return static_cast<TLinearFitter*>(fFitterArray12[s1*72+s2]); | |
35 | } | |
36 | TLinearFitter* GetFitter9(Int_t s1,Int_t s2) { | |
37 | return static_cast<TLinearFitter*>(fFitterArray9[s1*72+s2]); | |
38 | } | |
39 | TLinearFitter* GetFitter6(Int_t s1,Int_t s2) { | |
40 | return static_cast<TLinearFitter*>(fFitterArray6[s1*72+s2]); | |
41 | } | |
42 | Bool_t GetTransformation12(Int_t s1,Int_t s2,TMatrixD &a); | |
43 | Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a); | |
44 | Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a); | |
e4042305 | 45 | |
46 | TObjArray fDphiHistArray; | |
47 | TObjArray fDthetaHistArray; | |
48 | TObjArray fDyHistArray; | |
49 | TObjArray fDzHistArray; | |
50 | ||
9318a5b4 | 51 | private: |
52 | void Process12(Double_t *t1, | |
53 | Double_t *t2, | |
54 | TLinearFitter *fitter); | |
55 | void Process9(Double_t *t1, | |
56 | Double_t *t2, | |
57 | TLinearFitter *fitter); | |
58 | void Process6(Double_t *t1, | |
59 | Double_t *t2, | |
60 | TLinearFitter *fitter); | |
61 | TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2) { | |
62 | //get or make fitter | |
63 | if (!fFitterArray12[s1*72+s2]) | |
64 | fFitterArray12[s1*72+s2]=new TLinearFitter(12,"x0++x1++x2++x3++x4++x5++x6++x7++x8++x9++x10++x11"); | |
65 | return GetFitter12(s1,s2); | |
66 | } | |
67 | TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2) { | |
68 | //get or make fitter | |
69 | if (!fFitterArray9[s1*72+s2]) | |
70 | fFitterArray9[s1*72+s2]=new TLinearFitter(9,"x0++x1++x2++x3++x4++x5++x6++x7++x8"); | |
71 | return GetFitter9(s1,s2); | |
72 | } | |
73 | TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2) { | |
74 | //get or make fitter | |
75 | if (!fFitterArray6[s1*72+s2]) | |
76 | fFitterArray6[s1*72+s2]=new TLinearFitter(6,"x0++x1++x2++x3++x4++x5"); | |
77 | return GetFitter6(s1,s2); | |
78 | } | |
79 | TObjArray fFitterArray12; | |
80 | TObjArray fFitterArray9; | |
81 | TObjArray fFitterArray6; | |
82 | Int_t fPoints[72*72]; | |
83 | ||
84 | ClassDef(AliTPCcalibAlign,1) | |
85 | }; | |
86 | ||
87 | #endif |