]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCAParam.h
added offline wrapper for HLT TPC CA tracker (Sergey)
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAParam.h
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
11 #include "Rtypes.h"
12
13 /**
14  * @class ALIHLTTPCCAParam
15  * parameters of the AliHLTTPCCATracker, including geometry information
16  * and some reconstructon constants.
17  *
18  * The class is under construction.
19  *
20  */
21 class AliHLTTPCCAParam
22 {
23  public:
24
25   AliHLTTPCCAParam();
26   virtual ~AliHLTTPCCAParam(){;}
27
28   void Initialize( Int_t iSlice, Int_t nRows, Double_t rowX[],
29                    Double_t alpha, Double_t dAlpha,
30                    Double_t rMin, Double_t rMax, Double_t zMin, Double_t zMax,
31                    Double_t padPitch, Double_t zSigma, Double_t bz );
32   void Update();
33   
34   void Slice2Global( Double_t x, Double_t y,  Double_t z, 
35                      Double_t *X, Double_t *Y,  Double_t *Z ) const;
36   void Global2Slice( Double_t x, Double_t y,  Double_t z, 
37                      Double_t *X, Double_t *Y,  Double_t *Z ) const;
38   Int_t &ISlice(){ return fISlice;}
39   Int_t &NRows(){ return fNRows;}
40   
41   Double_t &RowX( Int_t iRow ){ return fRowX[iRow]; }
42   
43   Double_t &Alpha(){ return fAlpha;}
44   Double_t &DAlpha(){ return fDAlpha;}
45   Double_t &CosAlpha(){ return fCosAlpha;}
46   Double_t &SinAlpha(){ return fSinAlpha;}
47   Double_t &AngleMin(){ return fAngleMin;}
48   Double_t &AngleMax(){ return fAngleMax;}
49   Double_t &RMin(){ return fRMin;}
50   Double_t &RMax(){ return fRMax;}
51   Double_t &ZMin(){ return fZMin;}
52   Double_t &ZMax(){ return fZMax;}
53   Double_t &ErrZ(){ return fErrZ;}
54   Double_t &ErrX(){ return fErrX;}
55   Double_t &ErrY(){ return fErrY;}
56   Double_t &Bz(){ return fBz;}
57
58   Double_t &TrackConnectionFactor(){ return fTrackConnectionFactor; }
59   Double_t &TrackChiCut() { return fTrackChiCut; }
60   Double_t &TrackChi2Cut(){ return fTrackChi2Cut; }
61   Int_t    &MaxTrackMatchDRow(){ return fMaxTrackMatchDRow; }
62   Double_t &YErrorCorrection(){ return fYErrorCorrection; }
63   Double_t &ZErrorCorrection(){ return fZErrorCorrection; }
64   Double_t &CellConnectionAngleXY(){ return fCellConnectionAngleXY; }
65   Double_t &CellConnectionAngleXZ(){ return fCellConnectionAngleXZ; }
66
67  protected:
68
69   Int_t fISlice; // slice number
70   Int_t fNRows; // number of rows
71
72   Double_t fAlpha, fDAlpha; // slice angle and angular size
73   Double_t fCosAlpha, fSinAlpha;// sign and cosine of the slice angle
74   Double_t fAngleMin, fAngleMax; // minimal and maximal angle
75   Double_t fRMin, fRMax;// slice R range
76   Double_t fZMin, fZMax;// slice Z range
77   Double_t fErrX, fErrY, fErrZ;// default cluster errors
78   Double_t fPadPitch; // pad pitch 
79   Double_t fBz;       // magnetic field value (only constant field can be used)
80
81   Double_t fYErrorCorrection;// correction factor for Y error of input clusters
82   Double_t fZErrorCorrection;// correction factor for Z error of input clusters
83
84   Double_t fCellConnectionAngleXY; // max phi angle between connected cells
85   Double_t fCellConnectionAngleXZ; // max psi angle between connected cells
86   Int_t    fMaxTrackMatchDRow;// maximal jump in TPC row for connecting track segments
87   Double_t fTrackConnectionFactor; // allowed distance in Chi^2/3.5 for neighbouring tracks
88   Double_t fTrackChiCut; // cut for track Sqrt(Chi2/NDF);
89   Double_t fTrackChi2Cut;// cut for track Chi^2/NDF
90
91   Double_t fRowX[200];// X-coordinate of rows
92
93   ClassDef(AliHLTTPCCAParam,1);
94 };
95
96
97 #endif