completely re-worked TPC CA tracking code (Sergey/Ivan)
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAParam.cxx
CommitLineData
326c2d4b 1// @(#) $Id$
2//*************************************************************************
3// This file is property of and copyright by the ALICE HLT Project *
4// ALICE Experiment at CERN, All rights reserved. *
5// *
6// Primary Authors: Jochen Thaeder <thaeder@kip.uni-heidelberg.de> *
7// Ivan Kisel <kisel@kip.uni-heidelberg.de> *
8// for The ALICE HLT Project. *
9// *
10// Permission to use, copy, modify and distribute this software and its *
11// documentation strictly for non-commercial purposes is hereby granted *
12// without fee, provided that the above copyright notice appears in all *
13// copies and that both the copyright notice and this permission notice *
14// appear in the supporting documentation. The authors make no claims *
15// about the suitability of this software for any purpose. It is *
16// provided "as is" without express or implied warranty. *
17//*************************************************************************
18
19#include "AliHLTTPCCAParam.h"
20#include "TMath.h"
21
22
23ClassImp(AliHLTTPCCAParam);
24
25AliHLTTPCCAParam::AliHLTTPCCAParam()
26 : fISec(0),fNRows(63),fRowXFirst(85.225), fRowXStep(0.75),fAlpha(0.174533), fDAlpha(0.349066),
27 fCosAlpha(0), fSinAlpha(0), fAngleMin(0), fAngleMax(0), fRMin(83.65), fRMax(133.3),
28 fZMin(0.0529937), fZMax(249.778), fErrZ(0.228808), fErrX(0), fErrY(0),fPadPitch(0.4),fBz(-5.),
29 fCellConnectionFactor(5), fTrackChiCut(6), fTrackChi2Cut(0), fMaxTrackMatchDRow(3),
30 fYErrorCorrection(0.33), fZErrorCorrection(0.45)
31{
32 Update();
33}
34
35void AliHLTTPCCAParam::Initialize( Int_t iSec,
36 Int_t NRows,
37 Double_t RowXFirst, Double_t RowXStep,
38 Double_t Alpha, Double_t DAlpha,
39 Double_t RMin, Double_t RMax,
40 Double_t ZMin, Double_t ZMax,
41 Double_t PadPitch, Double_t ZSigma,
42 Double_t Bz
43 )
44{
45 // initialization
46 fISec = iSec;
47 fAlpha = Alpha;
48 fDAlpha = DAlpha;
49 fRMin = RMin;
50 fRMax = RMax;
51 fZMin = ZMin;
52 fZMax = ZMax;
53 fPadPitch = PadPitch;
54 fErrY = 1.; // not in use
55 fErrZ = ZSigma;
56 fBz = Bz;
57 fNRows = NRows;
58 fRowXFirst = RowXFirst;
59 fRowXStep = RowXStep;
60 Update();
61}
62
63void AliHLTTPCCAParam::Update()
64{
65 // update of calculated values
66 fCosAlpha = TMath::Cos(fAlpha);
67 fSinAlpha = TMath::Sin(fAlpha);
68 fAngleMin = fAlpha - fDAlpha/2.;
69 fAngleMax = fAlpha + fDAlpha/2.;
70 fErrX = fPadPitch/TMath::Sqrt(12.);
71 fTrackChi2Cut = fTrackChiCut * fTrackChiCut;
72}
73
74void AliHLTTPCCAParam::Sec2Global( Double_t x, Double_t y, Double_t z,
75 Double_t *X, Double_t *Y, Double_t *Z ) const
76{
77 // conversion of coorinates sector->global
78 *X = x*fCosAlpha - y*fSinAlpha;
79 *Y = y*fCosAlpha + x*fSinAlpha;
80 *Z = z;
81}
82
83void AliHLTTPCCAParam::Global2Sec( Double_t X, Double_t Y, Double_t Z,
84 Double_t *x, Double_t *y, Double_t *z ) const
85{
86 // conversion of coorinates global->sector
87 *x = X*fCosAlpha + Y*fSinAlpha;
88 *y = Y*fCosAlpha - X*fSinAlpha;
89 *z = Z;
90}