]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackParam.h
Minor fix for the pid efficiency calculation + cosmetics in the drawProtonQAResults...
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackParam.h
CommitLineData
d54804bf 1//-*- Mode: C++ -*-
2// $Id$
ce565086 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//*************************************************************************
d54804bf 9
10
11#ifndef ALIHLTTPCCATRACKPARAM_H
12#define ALIHLTTPCCATRACKPARAM_H
13
00d07bcd 14#include "AliHLTTPCCADef.h"
d54804bf 15
eb30eb49 16
d54804bf 17/**
18 * @class AliHLTTPCCATrackParam
19 *
20 * AliHLTTPCCATrackParam class describes the track parametrisation
21 * which is used by the AliHLTTPCCATracker slice tracker.
22 *
23 */
d54804bf 24class AliHLTTPCCATrackParam
25{
26 public:
27
ce565086 28 struct AliHLTTPCCATrackFitParam
00d07bcd 29 {
ce565086 30 Float_t fBethe, fE,fTheta2, fEP2, fSigmadE2, fK22,fK33,fK43,fK44;// parameters
00d07bcd 31 };
32
693d2443 33 GPUd() Float_t X() const { return fX; }
34 GPUd() Float_t Y() const { return fP[0]; }
35 GPUd() Float_t Z() const { return fP[1]; }
36 GPUd() Float_t SinPhi()const { return fP[2]; }
37 GPUd() Float_t DzDs() const { return fP[3]; }
38 GPUd() Float_t Kappa() const { return fP[4]; }
39 GPUd() Float_t CosPhi()const { return fCosPhi; }
40 GPUd() Float_t Chi2() const { return fChi2; }
41 GPUd() Int_t NDF() const { return fNDF; }
42
43 Float_t Err2Y() const { return fC[0]; }
44 Float_t Err2Z() const { return fC[2]; }
45 Float_t Err2SinPhi() const { return fC[5]; }
46 Float_t Err2DzDs() const { return fC[9]; }
47 Float_t Err2Kappa() const { return fC[14]; }
d54804bf 48
00d07bcd 49 GPUd() Float_t GetX() const { return fX; }
50 GPUd() Float_t GetY() const { return fP[0]; }
51 GPUd() Float_t GetZ() const { return fP[1]; }
52 GPUd() Float_t GetSinPhi() const { return fP[2]; }
53 GPUd() Float_t GetDzDs() const { return fP[3]; }
54 GPUd() Float_t GetKappa() const { return fP[4]; }
55 GPUd() Float_t GetCosPhi() const { return fCosPhi; }
56 GPUd() Float_t GetChi2() const { return fChi2; }
57 GPUd() Int_t GetNDF() const { return fNDF; }
58
59 GPUd() Float_t GetErr2Y() const { return fC[0]; }
60 GPUd() Float_t GetErr2Z() const { return fC[2]; }
61 GPUd() Float_t GetErr2SinPhi() const { return fC[5]; }
62 GPUd() Float_t GetErr2DzDs() const { return fC[9]; }
63 GPUd() Float_t GetErr2Kappa() const { return fC[14]; }
64
693d2443 65 GPUhd() const Float_t *Par() const { return fP; }
66 GPUhd() const Float_t *Cov() const { return fC; }
d54804bf 67
eb30eb49 68 const Float_t *GetPar() const { return fP; }
69 const Float_t *GetCov() const { return fC; }
70
693d2443 71 GPUhd() void SetPar( Int_t i, Float_t v ){ fP[i] = v; }
72 GPUhd() void SetCov( Int_t i, Float_t v ){ fC[i] = v; }
73
74 GPUd() void SetX( Float_t v ) { fX = v; }
75 GPUd() void SetY( Float_t v ) { fP[0] = v; }
76 GPUd() void SetZ( Float_t v ) { fP[1] = v; }
77 GPUd() void SetSinPhi( Float_t v ){ fP[2] = v; }
78 GPUd() void SetDzDs( Float_t v ) { fP[3] = v; }
79 GPUd() void SetKappa( Float_t v ) { fP[4] = v; }
80 GPUd() void SetCosPhi( Float_t v ){ fCosPhi = v; }
81 GPUd() void SetChi2( Float_t v ) { fChi2 = v; }
82 GPUd() void SetNDF( Int_t v ) { fNDF = v; }
83
84
85 GPUd() Float_t GetDist2( const AliHLTTPCCATrackParam &t ) const;
86 GPUd() Float_t GetDistXZ2( const AliHLTTPCCATrackParam &t ) const;
87
00d07bcd 88 GPUd() void ConstructXY3( const Float_t x[3], const Float_t y[3], const Float_t sigmaY2[3], Float_t CosPhi0 );
d54804bf 89
00d07bcd 90 GPUd() void ConstructXYZ3( const Float_t p0[5], const Float_t p1[5], const Float_t p2[5],
91 Float_t CosPhi0, Float_t t0[]=0 );
d54804bf 92
00d07bcd 93 GPUd() Float_t GetS( Float_t x, Float_t y ) const;
d54804bf 94
00d07bcd 95 GPUd() void GetDCAPoint( Float_t x, Float_t y, Float_t z,
96 Float_t &px, Float_t &py, Float_t &pz ) const;
d54804bf 97
00d07bcd 98 GPUd() Int_t TransportToX( Float_t X, Float_t maxSinPhi );
693d2443 99 GPUd() Int_t TransportToX( Float_t X, AliHLTTPCCATrackParam &t0, Float_t maxSinPhi );
100
00d07bcd 101 GPUd() Bool_t TransportToXWithMaterial( Float_t X, AliHLTTPCCATrackFitParam &par );
693d2443 102 GPUd() Bool_t TransportToXWithMaterial( Float_t X, AliHLTTPCCATrackParam &t0, AliHLTTPCCATrackFitParam &par );
00d07bcd 103 GPUd() Bool_t TransportToXWithMaterial( Float_t X, Float_t Bz );
693d2443 104 GPUd() Bool_t Rotate( Float_t alpha, Float_t maxSinPhi=.99 );
105 GPUd() Bool_t RotateNoCos( Float_t alpha, AliHLTTPCCATrackParam &t0, Float_t maxSinPhi=.99 );
d54804bf 106
00d07bcd 107 GPUd() Bool_t Filter2( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 );
693d2443 108 GPUd() Bool_t Filter2NoCos( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z );
4687b8fc 109
693d2443 110 GPUd() Int_t TransportToX0( Float_t X, Float_t sinPhi, Float_t cosPhi );
111 GPUd() Int_t TransportToX0( Float_t X, Float_t maxSinPhi );
4687b8fc 112 GPUd() Bool_t Filter20( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 );
693d2443 113 GPUd() Bool_t Filter200( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z );
4687b8fc 114
00d07bcd 115 GPUd() Bool_t Filter2v1( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 );
116 GPUd() void FilterY( Float_t y, Float_t erry );
117 GPUd() void FilterZ( Float_t z, Float_t errz );
eb30eb49 118
ce565086 119 GPUd() static Float_t ApproximateBetheBloch( Float_t beta2 );
00d07bcd 120 GPUd() void CalculateFitParameters( AliHLTTPCCATrackFitParam &par, Float_t Bz, Float_t mass = 0.13957 );
ce565086 121 GPUd() Bool_t CorrectForMeanMaterial( Float_t xOverX0, Float_t xTimesRho, const AliHLTTPCCATrackFitParam &par );
00d07bcd 122 GPUd() void Print() const;
d54804bf 123
00d07bcd 124private:
d54804bf 125
126 Float_t fX; // x position
127 Float_t fCosPhi; // cosPhi
128 Float_t fP[5]; // 'active' track parameters: Y, Z, SinPhi, DzDs, Kappa
129 Float_t fC[15]; // the covariance matrix for Y,Z,SinPhi,..
130 Float_t fChi2; // the chi^2 value
131 Int_t fNDF; // the Number of Degrees of Freedom
d54804bf 132};
133
134
135#endif