(Marian, Magnus)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibAlign.h
CommitLineData
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"
14
15class AliExternalTrackParam;
16
17class AliTPCcalibAlign:public TObject {
18public:
19 AliTPCcalibAlign();
20
21 virtual ~AliTPCcalibAlign();
22
23 void Process(const AliExternalTrackParam &t1,
24 const AliExternalTrackParam &t2,
25 Int_t s1,Int_t s2);
26 void Eval();
27 TLinearFitter* GetFitter12(Int_t s1,Int_t s2) {
28 return static_cast<TLinearFitter*>(fFitterArray12[s1*72+s2]);
29 }
30 TLinearFitter* GetFitter9(Int_t s1,Int_t s2) {
31 return static_cast<TLinearFitter*>(fFitterArray9[s1*72+s2]);
32 }
33 TLinearFitter* GetFitter6(Int_t s1,Int_t s2) {
34 return static_cast<TLinearFitter*>(fFitterArray6[s1*72+s2]);
35 }
36 Bool_t GetTransformation12(Int_t s1,Int_t s2,TMatrixD &a);
37 Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a);
38 Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a);
39private:
40 void Process12(Double_t *t1,
41 Double_t *t2,
42 TLinearFitter *fitter);
43 void Process9(Double_t *t1,
44 Double_t *t2,
45 TLinearFitter *fitter);
46 void Process6(Double_t *t1,
47 Double_t *t2,
48 TLinearFitter *fitter);
49 TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2) {
50 //get or make fitter
51 if (!fFitterArray12[s1*72+s2])
52 fFitterArray12[s1*72+s2]=new TLinearFitter(12,"x0++x1++x2++x3++x4++x5++x6++x7++x8++x9++x10++x11");
53 return GetFitter12(s1,s2);
54 }
55 TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2) {
56 //get or make fitter
57 if (!fFitterArray9[s1*72+s2])
58 fFitterArray9[s1*72+s2]=new TLinearFitter(9,"x0++x1++x2++x3++x4++x5++x6++x7++x8");
59 return GetFitter9(s1,s2);
60 }
61 TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2) {
62 //get or make fitter
63 if (!fFitterArray6[s1*72+s2])
64 fFitterArray6[s1*72+s2]=new TLinearFitter(6,"x0++x1++x2++x3++x4++x5");
65 return GetFitter6(s1,s2);
66 }
67 TObjArray fFitterArray12;
68 TObjArray fFitterArray9;
69 TObjArray fFitterArray6;
70 Int_t fPoints[72*72];
71
72 ClassDef(AliTPCcalibAlign,1)
73};
74
75#endif