]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliL3Transform.h
Minor changes to make it work with new Top Makefile. Also have generated code separat...
[u/mrichter/AliRoot.git] / HLT / src / AliL3Transform.h
CommitLineData
108615fc 1#ifndef ALIL3TRANSFORM_H
2#define ALIL3TRANSFORM_H
3
108615fc 4#include "AliL3RootTypes.h"
108615fc 5
6class AliL3Transform {
494fad94 7
108615fc 8 private:
494fad94 9
ef79795d 10 static Double_t fBField;
293aee2f 11 static Int_t fBFieldFactor;
494fad94 12 static Int_t fNTimeBins;
13 static Int_t fNRowLow;
14 static Int_t fNRowUp;
15 static Int_t fNSectorLow;
16 static Int_t fNSectorUp;
17 static Double_t fPadPitchWidthLow;
18 static Double_t fPadPitchWidthUp;
19 static Double_t fZWidth;
20 static Double_t fZSigma;
21 static Int_t fNSector;
22 static Int_t fNSlice;
23 static Int_t fNRow;
24 static Double_t fPi;
25 static Double_t fNRotShift;
26 static Double_t fZLength;
27 static Double_t fZOffset;
28 static Int_t fNPads[176]; //fill this following Init
29 static Double_t fX[176]; //fill this following Init
30 static Int_t fVersion; //flags which version one is using
9ca67380 31 static Int_t fRows[6][2];
32 static Int_t fNRows[6];
33 static Int_t fNPatches;
768861a0 34
35 static Double_t fDiffT; //Transversal diffusion constant
36 static Double_t fDiffL; //Longitudinal diffusion constant
37 static Double_t fAnodeWireSpacing;
38 static Double_t fInnerPadLength;
39 static Double_t fOuterPadLength;
40 static Double_t fInnerPRFSigma;
41 static Double_t fOuterPRFSigma;
42 static Double_t fTimeSigma; //Minimal longitudinal width
108615fc 43
494fad94 44 public:
45
46 static void Init(const Char_t* path); //new init for all AliRoot versions
47
ef79795d 48 static void SetBField(Double_t f) {fBField = f;}
9ca67380 49 static Int_t GetFirstRow(Int_t patch) {return fRows[patch][0];}
50 static Int_t GetLastRow(Int_t patch) {return fRows[patch][1];}
51 static Int_t GetNRows(Int_t patch) {return fNRows[patch];}
f500b93b 52 static Int_t GetNRows() {return fNRow;}
9ca67380 53 static Int_t GetNPatches() {return fNPatches;}
ef79795d 54 static Double_t GetBField() {return fBField;}
9ca67380 55 static Double_t Pi() {return fPi;}
494fad94 56 static Int_t GetVersion(){return fVersion;}
57 static Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;}
58 static Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;}
6a17f2c9 59 static Double_t GetPadPitchWidth(Int_t patch) {return patch < 2 ? fPadPitchWidthLow : fPadPitchWidthUp;}
494fad94 60 static Double_t GetZWidth() {return fZWidth;}
61 static Double_t GetZLength() {return fZLength;}
62 static Double_t GetZOffset() {return fZOffset;}
768861a0 63 static Double_t GetDiffT() {return fDiffT;}
64 static Double_t GetDiffL() {return fDiffL;}
65 static Double_t GetAnodeWireSpacing() {return fAnodeWireSpacing;}
66 static Double_t GetPadLength(Int_t patch) {return patch < 2 ? fInnerPadLength : fOuterPadLength;}
67 static Double_t GetPRFSigma(Int_t patch) {return patch < 2 ? fInnerPRFSigma : fOuterPRFSigma;}
68 static Double_t GetTimeSigma() {return fTimeSigma;}
494fad94 69 static Int_t GetNSectorLow() {return fNSectorLow;}
70 static Int_t GetNSectorUp() {return fNSectorUp;}
95a00d93 71
494fad94 72 static Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t &sector, Int_t &row);
73 static Bool_t Sector2Slice(Int_t &slice, Int_t sector);
74 static Bool_t Sector2Slice(Int_t &slice, Int_t &slicerow, Int_t sector, Int_t row);
1727f1c9 75
494fad94 76 static Int_t GetNPads(Int_t row){return (row<fNRow)?fNPads[row]:0;}
77 static Int_t GetNTimeBins(){return fNTimeBins;}
78 static Double_t Row2X(Int_t slicerow);
79 static Double_t GetMaxY(Int_t slicerow);
80 static Double_t GetEta(Float_t *xyz);
81 static Double_t GetEta(Int_t row, Int_t pad, Int_t time);
82 static Double_t GetPhi(Float_t *xyz);
1727f1c9 83
494fad94 84 static void XYZtoRPhiEta(Float_t *rpe, Float_t *xyz);
85 static void Local2Global(Float_t *xyz, Int_t slice);
86 static void Local2GlobalAngle(Float_t *angle, Int_t slice);
87 static void Global2LocalAngle(Float_t *angle, Int_t slice);
108615fc 88
494fad94 89 static void Raw2Local(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
90 static void Local2Global(Float_t *xyz, Int_t sector, Int_t row);
91 static void Global2Local(Float_t *xyz, Int_t sector, Bool_t isSlice=kFALSE);
92 static void Raw2Global(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
93 static void Local2Raw(Float_t *xyz, Int_t sector, Int_t row);
94 static void Global2Raw(Float_t *xyz, Int_t sector, Int_t row);
108615fc 95
b661165c 96 ClassDef(AliL3Transform,1) //Transformation class for ALICE TPC
108615fc 97};
108615fc 98#endif
a4e75a99 99
89693986 100
101
102
103