]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCcalibAlign.h
Move pio calibration staff to directiry Calib;
[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"
e4042305 14#include "AliTPCcalibBase.h"
15#include "TH1.h"
9318a5b4 16
17class AliExternalTrackParam;
e4042305 18class AliTPCseed;
8b3c60d8 19class TGraphErrors;
9318a5b4 20
e4042305 21class AliTPCcalibAlign:public AliTPCcalibBase {
9318a5b4 22public:
972cf6f2 23 enum HistoType {kY=0, kZ =1, kPhi=2, kTheta=3};
8b3c60d8 24 enum FitType{ k6=0, k9=1, k12};
9318a5b4 25 AliTPCcalibAlign();
e149f26d 26 AliTPCcalibAlign(const Text_t *name, const Text_t *title);
9318a5b4 27 virtual ~AliTPCcalibAlign();
e4042305 28 virtual void Process(AliTPCseed *track);
7eaa723e 29 virtual void Analyze();
30 virtual void Terminate();
31 //
32 virtual void EvalFitters();
8b3c60d8 33 TH1 * GetHisto(HistoType type, Int_t s1, Int_t s2, Bool_t force=kFALSE);
34 void MakeTree(const char *fname="alignTree.root");
35 TGraphErrors * MakeGraph(Int_t sec0, Int_t sec1, Int_t dsec,
36 Int_t i0, Int_t i1, FitType type);
e4042305 37 void ProcessTracklets(const AliExternalTrackParam &t1,
38 const AliExternalTrackParam &t2,
39 Int_t s1,Int_t s2);
972cf6f2 40 inline Int_t GetIndex(Int_t s1,Int_t s2){return 72*s1+s2;}
41 //
42 inline TLinearFitter* GetFitter12(Int_t s1,Int_t s2);
43 inline TLinearFitter* GetFitter9(Int_t s1,Int_t s2);
44 inline TLinearFitter* GetFitter6(Int_t s1,Int_t s2);
45 //
9318a5b4 46 Bool_t GetTransformation12(Int_t s1,Int_t s2,TMatrixD &a);
47 Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a);
48 Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a);
972cf6f2 49// Bool_t GetTransformationCovar12(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
50// Bool_t GetTransformationCovar9(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
51// Bool_t GetTransformationCovar6(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
e4042305 52
9318a5b4 53private:
972cf6f2 54 void FillHisto(const AliExternalTrackParam &t1,
55 const AliExternalTrackParam &t2,
56 Int_t s1,Int_t s2);
9318a5b4 57
972cf6f2 58 void Process12(const Double_t *t1, const Double_t *t2,
59 TLinearFitter *fitter);
60 void Process9(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
61 void Process6(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
62 TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2);
63 TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2);
64 TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2);
65 TObjArray fDphiHistArray; // array of residual histograms phi
66 TObjArray fDthetaHistArray; // array of residual histograms theta
67 TObjArray fDyHistArray; // array of residual histograms y
68 TObjArray fDzHistArray; // array of residual histograms z
69 TObjArray fFitterArray12; // array of fitters
70 TObjArray fFitterArray9; // array of fitters
71 TObjArray fFitterArray6; // array of fitters
72 Int_t fPoints[72*72]; // number of points in the fitter
9318a5b4 73 ClassDef(AliTPCcalibAlign,1)
74};
75
972cf6f2 76
77TLinearFitter* AliTPCcalibAlign::GetFitter12(Int_t s1,Int_t s2) {
78 return static_cast<TLinearFitter*>(fFitterArray12[GetIndex(s1,s2)]);
79}
80TLinearFitter* AliTPCcalibAlign::GetFitter9(Int_t s1,Int_t s2) {
81 return static_cast<TLinearFitter*>(fFitterArray9[GetIndex(s1,s2)]);
82}
83TLinearFitter* AliTPCcalibAlign::GetFitter6(Int_t s1,Int_t s2) {
84 return static_cast<TLinearFitter*>(fFitterArray6[GetIndex(s1,s2)]);
85}
86
87
88
89
90
9318a5b4 91#endif