bdb6a10ae9a4ff24207808515f245c4d0172885d
[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 CATracker, including geometry information
16  * and some reconstructon constants.
17  */
18 class AliHLTTPCCAParam
19 {
20  public:
21
22   AliHLTTPCCAParam();
23   virtual ~AliHLTTPCCAParam(){;}
24
25   void Initialize( Int_t iSec, Int_t NRows, Double_t RowXFirst, Double_t RowXStep,
26                    Double_t Alpha, Double_t DAlpha,
27                    Double_t RMin, Double_t RMax, Double_t ZMin, Double_t ZMax,
28                    Double_t PadPitch, Double_t ZSigma, Double_t Bz );
29   void Update();
30
31   void Sec2Global( Double_t x, Double_t y,  Double_t z, 
32                    Double_t *X, Double_t *Y,  Double_t *Z ) const;
33   void Global2Sec( Double_t x, Double_t y,  Double_t z, 
34                    Double_t *X, Double_t *Y,  Double_t *Z ) const;
35   Int_t &ISec(){ return fISec;}
36   Int_t &NRows(){ return fNRows;}
37   Double_t &RowXFirst(){ return fRowXFirst; }
38   Double_t &RowXStep(){ return fRowXStep; }
39   
40   Double_t &Alpha(){ return fAlpha;}
41   Double_t &DAlpha(){ return fDAlpha;}
42   Double_t &CosAlpha(){ return fCosAlpha;}
43   Double_t &SinAlpha(){ return fSinAlpha;}
44   Double_t &AngleMin(){ return fAngleMin;}
45   Double_t &AngleMax(){ return fAngleMax;}
46   Double_t &RMin(){ return fRMin;}
47   Double_t &RMax(){ return fRMax;}
48   Double_t &ZMin(){ return fZMin;}
49   Double_t &ZMax(){ return fZMax;}
50   Double_t &ErrZ(){ return fErrZ;}
51   Double_t &ErrX(){ return fErrX;}
52   Double_t &ErrY(){ return fErrY;}
53   Double_t &Bz(){ return fBz;}
54
55   Double_t &CellConnectionFactor(){ return fCellConnectionFactor; }
56   Double_t &TrackChiCut() { return fTrackChiCut; }
57   Double_t  TrackChi2Cut(){ return fTrackChi2Cut; }
58   Int_t    &MaxTrackMatchDRow(){ return fMaxTrackMatchDRow; }
59   Double_t &YErrorCorrection(){ return fYErrorCorrection; }
60   Double_t &ZErrorCorrection(){ return fZErrorCorrection; }
61
62  protected:
63
64   Int_t fISec; // sector number
65   Int_t fNRows; // number of rows
66   Double_t fRowXFirst, fRowXStep; // X coordinate of the first row and step between rows
67   Double_t fAlpha, fDAlpha; // sector angle and angular size
68   Double_t fCosAlpha, fSinAlpha;// sign and cosine of the sector angle
69   Double_t fAngleMin, fAngleMax; // minimal and maximal angle
70   Double_t fRMin, fRMax;// sector R range
71   Double_t fZMin, fZMax;// sector Z range
72   Double_t fErrZ, fErrX, fErrY;// default cluster errors
73   Double_t fPadPitch; // pad pitch 
74   Double_t fBz;       // magnetic field value (only constant field can be used)
75
76   Double_t fCellConnectionFactor; // allowed distance in Chi^2/3.5 for neighbouring cells
77   Double_t fTrackChiCut; // cut for track Sqrt(Chi2/NDF);
78   Double_t fTrackChi2Cut;// cut for track Chi^2/NDF
79   Int_t    fMaxTrackMatchDRow;// maximal jump in TPC row for connecting track segments
80   Double_t fYErrorCorrection;// correction factor for Y error of input clusters
81   Double_t fZErrorCorrection;// correction factor for Z error of input clusters
82
83   ClassDef(AliHLTTPCCAParam,1);
84 };
85
86
87 #endif