]>
Commit | Line | Data |
---|---|---|
326c2d4b | 1 | //-*- Mode: C++ -*- |
2 | // @(#) $Id$ | |
3 | ||
4 | //* This file is property of and copyright by the ALICE HLT Project * | |
5 | //* ALICE Experiment at CERN, All rights reserved. * | |
6 | //* See cxx source for full Copyright notice * | |
7 | ||
8 | #ifndef ALIHLTTPCCAPARAM_H | |
9 | #define ALIHLTTPCCAPARAM_H | |
10 | ||
00d07bcd | 11 | #include "AliHLTTPCCADef.h" |
12 | #include <iostream.h> | |
13 | ||
326c2d4b | 14 | |
15 | /** | |
16 | * @class ALIHLTTPCCAParam | |
d54804bf | 17 | * parameters of the AliHLTTPCCATracker, including geometry information |
326c2d4b | 18 | * and some reconstructon constants. |
dc4788ec | 19 | * |
20 | * The class is under construction. | |
21 | * | |
326c2d4b | 22 | */ |
23 | class AliHLTTPCCAParam | |
24 | { | |
25 | public: | |
26 | ||
00d07bcd | 27 | #if !defined(HLTCA_GPUCODE) |
28 | GPUd() AliHLTTPCCAParam(); | |
29 | #endif | |
30 | ||
31 | ~AliHLTTPCCAParam(){;} | |
326c2d4b | 32 | |
00d07bcd | 33 | GPUd() void Initialize( Int_t iSlice, Int_t nRows, Float_t rowX[], |
eb30eb49 | 34 | Float_t alpha, Float_t dAlpha, |
35 | Float_t rMin, Float_t rMax, Float_t zMin, Float_t zMax, | |
36 | Float_t padPitch, Float_t zSigma, Float_t bz ); | |
00d07bcd | 37 | GPUd() void Update(); |
d54804bf | 38 | |
00d07bcd | 39 | GPUd() void Slice2Global( Float_t x, Float_t y, Float_t z, |
eb30eb49 | 40 | Float_t *X, Float_t *Y, Float_t *Z ) const; |
00d07bcd | 41 | GPUd() GPUd() void Global2Slice( Float_t x, Float_t y, Float_t z, |
eb30eb49 | 42 | Float_t *X, Float_t *Y, Float_t *Z ) const; |
00d07bcd | 43 | GPUhd() Int_t &ISlice(){ return fISlice;} |
44 | GPUhd() Int_t &NRows(){ return fNRows;} | |
d54804bf | 45 | |
00d07bcd | 46 | GPUhd() Float_t &RowX( Int_t iRow ){ return fRowX[iRow]; } |
326c2d4b | 47 | |
00d07bcd | 48 | GPUd() Float_t &Alpha(){ return fAlpha;} |
49 | GPUd() Float_t &DAlpha(){ return fDAlpha;} | |
50 | GPUd() Float_t &CosAlpha(){ return fCosAlpha;} | |
51 | GPUd() Float_t &SinAlpha(){ return fSinAlpha;} | |
52 | GPUd() Float_t &AngleMin(){ return fAngleMin;} | |
53 | GPUd() Float_t &AngleMax(){ return fAngleMax;} | |
54 | GPUd() Float_t &RMin(){ return fRMin;} | |
55 | GPUd() GPUd() Float_t &RMax(){ return fRMax;} | |
56 | GPUd() GPUd() Float_t &ZMin(){ return fZMin;} | |
57 | GPUd() Float_t &ZMax(){ return fZMax;} | |
58 | GPUd() Float_t &ErrZ(){ return fErrZ;} | |
59 | GPUd() Float_t &ErrX(){ return fErrX;} | |
60 | GPUd() Float_t &ErrY(){ return fErrY;} | |
61 | GPUd() Float_t &Bz(){ return fBz;} | |
62 | ||
63 | GPUd() Float_t &TrackConnectionFactor(){ return fTrackConnectionFactor; } | |
64 | GPUd() Float_t &TrackChiCut() { return fTrackChiCut; } | |
65 | GPUd() Float_t &TrackChi2Cut(){ return fTrackChi2Cut; } | |
66 | GPUd() Int_t &MaxTrackMatchDRow(){ return fMaxTrackMatchDRow; } | |
67 | GPUd() Float_t &YErrorCorrection(){ return fYErrorCorrection; } | |
68 | GPUd() Float_t &ZErrorCorrection(){ return fZErrorCorrection; } | |
69 | GPUd() Float_t &CellConnectionAngleXY(){ return fCellConnectionAngleXY; } | |
70 | GPUd() Float_t &CellConnectionAngleXZ(){ return fCellConnectionAngleXZ; } | |
71 | ||
72 | GPUd() Float_t GetClusterError2(Int_t yz, Int_t type, Float_t z, Float_t angle ) const; | |
73 | ||
74 | void WriteSettings( std::ostream &out ) const; | |
75 | void ReadSettings( std::istream &in ); | |
76 | ||
77 | protected: | |
326c2d4b | 78 | |
d54804bf | 79 | Int_t fISlice; // slice number |
326c2d4b | 80 | Int_t fNRows; // number of rows |
d54804bf | 81 | |
eb30eb49 | 82 | Float_t fAlpha, fDAlpha; // slice angle and angular size |
83 | Float_t fCosAlpha, fSinAlpha;// sign and cosine of the slice angle | |
84 | Float_t fAngleMin, fAngleMax; // minimal and maximal angle | |
85 | Float_t fRMin, fRMax;// slice R range | |
86 | Float_t fZMin, fZMax;// slice Z range | |
87 | Float_t fErrX, fErrY, fErrZ;// default cluster errors | |
88 | Float_t fPadPitch; // pad pitch | |
89 | Float_t fBz; // magnetic field value (only constant field can be used) | |
90 | ||
91 | Float_t fYErrorCorrection;// correction factor for Y error of input clusters | |
92 | Float_t fZErrorCorrection;// correction factor for Z error of input clusters | |
93 | ||
94 | Float_t fCellConnectionAngleXY; // max phi angle between connected cells | |
95 | Float_t fCellConnectionAngleXZ; // max psi angle between connected cells | |
96 | Int_t fMaxTrackMatchDRow;// maximal jump in TPC row for connecting track segments | |
97 | Float_t fTrackConnectionFactor; // allowed distance in Chi^2/3.5 for neighbouring tracks | |
98 | Float_t fTrackChiCut; // cut for track Sqrt(Chi2/NDF); | |
99 | Float_t fTrackChi2Cut;// cut for track Chi^2/NDF | |
100 | ||
101 | Float_t fRowX[200];// X-coordinate of rows | |
102 | Float_t fParamS0Par[2][3][7]; // cluster error parameterization coeficients | |
dc4788ec | 103 | |
326c2d4b | 104 | }; |
105 | ||
106 | ||
107 | #endif |