]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCAParam.h
Ensure that the ADC array is only called for valid entries (AliTRDmcmSim) and bug...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAParam.h
CommitLineData
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"
16fc8dc8 12
4687b8fc 13#include <iostream>
00d07bcd 14
326c2d4b 15
16/**
17 * @class ALIHLTTPCCAParam
d54804bf 18 * parameters of the AliHLTTPCCATracker, including geometry information
326c2d4b 19 * and some reconstructon constants.
dc4788ec 20 *
21 * The class is under construction.
22 *
326c2d4b 23 */
24class AliHLTTPCCAParam
25{
26 public:
27
00d07bcd 28#if !defined(HLTCA_GPUCODE)
29 GPUd() AliHLTTPCCAParam();
30#endif
31
32 ~AliHLTTPCCAParam(){;}
326c2d4b 33
00d07bcd 34 GPUd() void Initialize( Int_t iSlice, Int_t nRows, Float_t rowX[],
eb30eb49 35 Float_t alpha, Float_t dAlpha,
36 Float_t rMin, Float_t rMax, Float_t zMin, Float_t zMax,
37 Float_t padPitch, Float_t zSigma, Float_t bz );
00d07bcd 38 GPUd() void Update();
d54804bf 39
00d07bcd 40 GPUd() void Slice2Global( Float_t x, Float_t y, Float_t z,
eb30eb49 41 Float_t *X, Float_t *Y, Float_t *Z ) const;
00d07bcd 42 GPUd() GPUd() void Global2Slice( Float_t x, Float_t y, Float_t z,
eb30eb49 43 Float_t *X, Float_t *Y, Float_t *Z ) const;
693d2443 44
45
46 GPUhd() Int_t ISlice() const { return fISlice;}
47 GPUhd() Int_t NRows() const { return fNRows;}
48
49 GPUhd() Float_t RowX( Int_t iRow ) const { return fRowX[iRow]; }
50
51 GPUd() Float_t Alpha() const { return fAlpha;}
52 GPUd() Float_t DAlpha() const { return fDAlpha;}
53 GPUd() Float_t CosAlpha() const { return fCosAlpha;}
54 GPUd() Float_t SinAlpha() const { return fSinAlpha;}
55 GPUd() Float_t AngleMin() const { return fAngleMin;}
56 GPUd() Float_t AngleMax() const { return fAngleMax;}
57 GPUd() Float_t RMin() const { return fRMin;}
58 GPUd() Float_t RMax() const { return fRMax;}
59 GPUd() Float_t ZMin() const { return fZMin;}
60 GPUd() Float_t ZMax() const { return fZMax;}
61 GPUd() Float_t ErrZ() const { return fErrZ;}
62 GPUd() Float_t ErrX() const { return fErrX;}
63 GPUd() Float_t ErrY() const { return fErrY;}
64 GPUd() Float_t Bz() const { return fBz;}
65
66 GPUd() Float_t TrackConnectionFactor() const { return fTrackConnectionFactor; }
67 GPUd() Float_t TrackChiCut() const { return fTrackChiCut; }
68 GPUd() Float_t TrackChi2Cut() const { return fTrackChi2Cut; }
69 GPUd() Int_t MaxTrackMatchDRow() const { return fMaxTrackMatchDRow; }
70 GPUd() Float_t HitPickUpFactor() const { return fHitPickUpFactor; }
71
72
73
74 GPUhd() void SetISlice( Int_t v ){ fISlice = v;}
75 GPUhd() void SetNRows( Int_t v ){ fNRows = v;}
76 GPUhd() void SetRowX( Int_t iRow, Float_t v ){ fRowX[iRow] = v; }
77 GPUd() void SetAlpha( Float_t v ){ fAlpha = v;}
78 GPUd() void SetDAlpha( Float_t v ){ fDAlpha = v;}
79 GPUd() void SetCosAlpha( Float_t v ){ fCosAlpha = v;}
80 GPUd() void SetSinAlpha( Float_t v ){ fSinAlpha = v;}
81 GPUd() void SetAngleMin( Float_t v ){ fAngleMin = v;}
82 GPUd() void SetAngleMax( Float_t v ){ fAngleMax = v;}
83 GPUd() void SetRMin( Float_t v ){ fRMin = v;}
84 GPUd() void SetRMax( Float_t v ){ fRMax = v;}
85 GPUd() void SetZMin( Float_t v ){ fZMin = v;}
86 GPUd() void SetZMax( Float_t v ){ fZMax = v;}
87 GPUd() void SetErrZ( Float_t v ){ fErrZ = v;}
88 GPUd() void SetErrX( Float_t v ){ fErrX = v;}
89 GPUd() void SetErrY( Float_t v ){ fErrY = v;}
90 GPUd() void SetBz( Float_t v ){ fBz = v;}
91 GPUd() void SetTrackConnectionFactor( Float_t v ){ fTrackConnectionFactor = v;}
92 GPUd() void SetTrackChiCut( Float_t v ) { fTrackChiCut = v; }
93 GPUd() void SetTrackChi2Cut( Float_t v ){ fTrackChi2Cut = v; }
94 GPUd() void SetMaxTrackMatchDRow( Int_t v ){ fMaxTrackMatchDRow = v; }
95 GPUd() void SetHitPickUpFactor( Float_t v ){ fHitPickUpFactor = v; }
96
00d07bcd 97
98 GPUd() Float_t GetClusterError2(Int_t yz, Int_t type, Float_t z, Float_t angle ) const;
99
100 void WriteSettings( std::ostream &out ) const;
101 void ReadSettings( std::istream &in );
693d2443 102
103 GPUd() void SetParamS0Par(Int_t i, Int_t j, Int_t k, Float_t val ){
104 fParamS0Par[i][j][k] = val;
105 }
00d07bcd 106
107 protected:
326c2d4b 108
d54804bf 109 Int_t fISlice; // slice number
326c2d4b 110 Int_t fNRows; // number of rows
d54804bf 111
eb30eb49 112 Float_t fAlpha, fDAlpha; // slice angle and angular size
113 Float_t fCosAlpha, fSinAlpha;// sign and cosine of the slice angle
114 Float_t fAngleMin, fAngleMax; // minimal and maximal angle
115 Float_t fRMin, fRMax;// slice R range
116 Float_t fZMin, fZMax;// slice Z range
117 Float_t fErrX, fErrY, fErrZ;// default cluster errors
118 Float_t fPadPitch; // pad pitch
119 Float_t fBz; // magnetic field value (only constant field can be used)
120
693d2443 121 Float_t fHitPickUpFactor;// multiplier for the chi2 window for hit pick up procedure
eb30eb49 122
eb30eb49 123 Int_t fMaxTrackMatchDRow;// maximal jump in TPC row for connecting track segments
124 Float_t fTrackConnectionFactor; // allowed distance in Chi^2/3.5 for neighbouring tracks
125 Float_t fTrackChiCut; // cut for track Sqrt(Chi2/NDF);
126 Float_t fTrackChi2Cut;// cut for track Chi^2/NDF
127
128 Float_t fRowX[200];// X-coordinate of rows
129 Float_t fParamS0Par[2][3][7]; // cluster error parameterization coeficients
dc4788ec 130
326c2d4b 131};
132
133
134#endif