1 #ifndef ALITPCCALIBALIGN_H
2 #define ALITPCCALIBALIGN_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
12 #include "TObjArray.h"
13 #include "TLinearFitter.h"
14 #include "AliTPCcalibBase.h"
17 class AliExternalTrackParam;
20 class AliTPCcalibAlign:public AliTPCcalibBase {
22 enum HistoType {kY=0, kZ =1, kPhi=2, kTheta=3};
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();
30 virtual void EvalFitters();
31 void ProcessTracklets(const AliExternalTrackParam &t1,
32 const AliExternalTrackParam &t2,
34 inline Int_t GetIndex(Int_t s1,Int_t s2){return 72*s1+s2;}
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);
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);
49 void FillHisto(const AliExternalTrackParam &t1,
50 const AliExternalTrackParam &t2,
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)
72 TLinearFitter* AliTPCcalibAlign::GetFitter12(Int_t s1,Int_t s2) {
73 return static_cast<TLinearFitter*>(fFitterArray12[GetIndex(s1,s2)]);
75 TLinearFitter* AliTPCcalibAlign::GetFitter9(Int_t s1,Int_t s2) {
76 return static_cast<TLinearFitter*>(fFitterArray9[GetIndex(s1,s2)]);
78 TLinearFitter* AliTPCcalibAlign::GetFitter6(Int_t s1,Int_t s2) {
79 return static_cast<TLinearFitter*>(fFitterArray6[GetIndex(s1,s2)]);