]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibAlign.h
Fixing part of the Coding violation
[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   enum HistoType {kY=0, kZ =1, kPhi=2, kTheta=3};
23   AliTPCcalibAlign();
24   AliTPCcalibAlign(const Text_t *name, const Text_t *title);
25   virtual ~AliTPCcalibAlign();
26   virtual void Process(AliTPCseed *track);
27   virtual void Analyze();
28   virtual void Terminate();  
29   //
30   virtual void EvalFitters();
31   void ProcessTracklets(const AliExternalTrackParam &t1,
32                         const AliExternalTrackParam &t2,
33                         Int_t s1,Int_t s2);
34   inline Int_t GetIndex(Int_t s1,Int_t s2){return 72*s1+s2;}
35   //
36   inline TLinearFitter* GetFitter12(Int_t s1,Int_t s2);
37   inline TLinearFitter* GetFitter9(Int_t s1,Int_t s2);
38   inline TLinearFitter* GetFitter6(Int_t s1,Int_t s2);
39   //
40   Bool_t GetTransformation12(Int_t s1,Int_t s2,TMatrixD &a);
41   Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a);
42   Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a);
43   TH1 * GetHisto(HistoType type, Int_t s1, Int_t s2, Bool_t force=kFALSE);
44 //   Bool_t GetTransformationCovar12(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
45 //   Bool_t GetTransformationCovar9(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
46 //   Bool_t GetTransformationCovar6(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
47
48 private:
49   void FillHisto(const AliExternalTrackParam &t1,
50                         const AliExternalTrackParam &t2,
51                         Int_t s1,Int_t s2);
52
53   void Process12(const Double_t *t1, const Double_t *t2,
54                  TLinearFitter *fitter);
55   void Process9(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
56   void Process6(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
57   TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2);
58   TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2);
59   TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2);
60   TObjArray fDphiHistArray;    // array of residual histograms  phi
61   TObjArray fDthetaHistArray;  // array of residual histograms  theta
62   TObjArray fDyHistArray;      // array of residual histograms  y
63   TObjArray fDzHistArray;      // array of residual histograms  z
64   TObjArray fFitterArray12;    // array of fitters
65   TObjArray fFitterArray9;     // array of fitters
66   TObjArray fFitterArray6;     // array of fitters
67   Int_t fPoints[72*72];        // number of points in the fitter
68   ClassDef(AliTPCcalibAlign,1)
69 };
70
71
72 TLinearFitter* AliTPCcalibAlign::GetFitter12(Int_t s1,Int_t s2) {
73   return static_cast<TLinearFitter*>(fFitterArray12[GetIndex(s1,s2)]);
74 }
75 TLinearFitter* AliTPCcalibAlign::GetFitter9(Int_t s1,Int_t s2) {
76   return static_cast<TLinearFitter*>(fFitterArray9[GetIndex(s1,s2)]);
77 }
78 TLinearFitter* AliTPCcalibAlign::GetFitter6(Int_t s1,Int_t s2) {
79   return static_cast<TLinearFitter*>(fFitterArray6[GetIndex(s1,s2)]);
80 }
81
82
83
84
85
86 #endif