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(); |
23 | |
24 | virtual ~AliTPCcalibAlign(); |
25 | |
e4042305 |
26 | virtual void Process(AliTPCseed *track); |
27 | |
28 | void ProcessTracklets(const AliExternalTrackParam &t1, |
29 | const AliExternalTrackParam &t2, |
30 | Int_t s1,Int_t s2); |
9318a5b4 |
31 | void Eval(); |
32 | TLinearFitter* GetFitter12(Int_t s1,Int_t s2) { |
33 | return static_cast<TLinearFitter*>(fFitterArray12[s1*72+s2]); |
34 | } |
35 | TLinearFitter* GetFitter9(Int_t s1,Int_t s2) { |
36 | return static_cast<TLinearFitter*>(fFitterArray9[s1*72+s2]); |
37 | } |
38 | TLinearFitter* GetFitter6(Int_t s1,Int_t s2) { |
39 | return static_cast<TLinearFitter*>(fFitterArray6[s1*72+s2]); |
40 | } |
41 | Bool_t GetTransformation12(Int_t s1,Int_t s2,TMatrixD &a); |
42 | Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a); |
43 | Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a); |
e4042305 |
44 | |
45 | TObjArray fDphiHistArray; |
46 | TObjArray fDthetaHistArray; |
47 | TObjArray fDyHistArray; |
48 | TObjArray fDzHistArray; |
49 | |
9318a5b4 |
50 | private: |
51 | void Process12(Double_t *t1, |
52 | Double_t *t2, |
53 | TLinearFitter *fitter); |
54 | void Process9(Double_t *t1, |
55 | Double_t *t2, |
56 | TLinearFitter *fitter); |
57 | void Process6(Double_t *t1, |
58 | Double_t *t2, |
59 | TLinearFitter *fitter); |
60 | TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2) { |
61 | //get or make fitter |
62 | if (!fFitterArray12[s1*72+s2]) |
63 | fFitterArray12[s1*72+s2]=new TLinearFitter(12,"x0++x1++x2++x3++x4++x5++x6++x7++x8++x9++x10++x11"); |
64 | return GetFitter12(s1,s2); |
65 | } |
66 | TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2) { |
67 | //get or make fitter |
68 | if (!fFitterArray9[s1*72+s2]) |
69 | fFitterArray9[s1*72+s2]=new TLinearFitter(9,"x0++x1++x2++x3++x4++x5++x6++x7++x8"); |
70 | return GetFitter9(s1,s2); |
71 | } |
72 | TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2) { |
73 | //get or make fitter |
74 | if (!fFitterArray6[s1*72+s2]) |
75 | fFitterArray6[s1*72+s2]=new TLinearFitter(6,"x0++x1++x2++x3++x4++x5"); |
76 | return GetFitter6(s1,s2); |
77 | } |
78 | TObjArray fFitterArray12; |
79 | TObjArray fFitterArray9; |
80 | TObjArray fFitterArray6; |
81 | Int_t fPoints[72*72]; |
82 | |
83 | ClassDef(AliTPCcalibAlign,1) |
84 | }; |
85 | |
86 | #endif |