]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibAlign.h
Use the inteface from AliTPCcalibBase (Magnus)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibAlign.h
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"
14 #include "AliTPCcalibBase.h"
15 #include "TH1.h"
16
17 class AliExternalTrackParam;
18 class AliTPCseed;
19
20 class AliTPCcalibAlign:public AliTPCcalibBase {
21 public:
22   AliTPCcalibAlign();
23
24   virtual ~AliTPCcalibAlign();
25
26   virtual void Process(AliTPCseed *track);
27
28   void ProcessTracklets(const AliExternalTrackParam &t1,
29                         const AliExternalTrackParam &t2,
30                         Int_t s1,Int_t s2);
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);
44
45   TObjArray fDphiHistArray;
46   TObjArray fDthetaHistArray;
47   TObjArray fDyHistArray;
48   TObjArray fDzHistArray;
49
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