]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliTrackerBase.h
Updates in event mixing code for low-pt code
[u/mrichter/AliRoot.git] / STEER / ESD / AliTrackerBase.h
CommitLineData
4811a3f4 1#ifndef ALITRACKERBASE_H
2#define ALITRACKERBASE_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id: AliTrackerBase.h 38069 2009-12-24 16:56:18Z belikov $ */
7
8//-------------------------------------------------------------------------
9// class AliTrackerBase
10// This is the base tracker class, independent on STEER
075f4221 11// Origin: Marian.Ivanov@cern.ch
4811a3f4 12//-------------------------------------------------------------------------
13
14#include <TObject.h>
15#include <TGeoGlobalMagField.h>
16
17#include "AliMagF.h"
18
19class AliExternalTrackParam;
075f4221 20class AliTrackPoint;
21class AliTrackPointArray;
4811a3f4 22
23class AliTrackerBase : public TObject {
24public:
25 AliTrackerBase();
26 virtual ~AliTrackerBase(){}
27
28 void SetVertex(const Double_t *xyz, const Double_t *ers=0) {
29 fX=xyz[0]; fY=xyz[1]; fZ=xyz[2];
30 if (ers) { fSigmaX=ers[0]; fSigmaY=ers[1]; fSigmaZ=ers[2]; }
31 }
32 Double_t GetX() const {return fX;}
33 Double_t GetY() const {return fY;}
34 Double_t GetZ() const {return fZ;}
35 Double_t GetSigmaX() const {return fSigmaX;}
36 Double_t GetSigmaY() const {return fSigmaY;}
37 Double_t GetSigmaZ() const {return fSigmaZ;}
38
39 static Double_t GetTrackPredictedChi2(AliExternalTrackParam *track,
40 Double_t mass, Double_t step,
41 const AliExternalTrackParam *backup);
363db7c3 42 static void UpdateTrack(AliExternalTrackParam&,
43 const AliExternalTrackParam&);
4811a3f4 44 static
45 Double_t MeanMaterialBudget(const Double_t *start, const Double_t *end,
46 Double_t *mparam);
47 static
48 Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m,
cd5c09f1 49 Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE);
69749404 50 static Int_t PropagateTrackTo2(AliExternalTrackParam *track, Double_t x, Double_t m,
51 Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE);
4811a3f4 52 static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x,
13545423 53 Double_t m,Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8,Int_t sign=0, Bool_t addTimeStep=kFALSE);
4811a3f4 54 //
55 static Double_t GetBz(const Double_t *r);
56 static void GetBxByBz(const Double_t r[3], Double_t b[3]);
57 static Double_t GetBz();
075f4221 58 static Bool_t UniformField();
59
60
61 static Double_t MakeC(Double_t x1,Double_t y1,
62 Double_t x2,Double_t y2,
63 Double_t x3,Double_t y3);
64 static Double_t MakeSnp(Double_t x1,Double_t y1,
65 Double_t x2,Double_t y2,
66 Double_t x3,Double_t y3);
67 static Double_t MakeTgl(Double_t x1,Double_t y1,
68 Double_t x2,Double_t y2,
69 Double_t z1,Double_t z2);
70 static Double_t MakeTgl(Double_t x1,Double_t y1,
71 Double_t x2,Double_t y2,
72 Double_t z1,Double_t z2,Double_t c);
73 static AliExternalTrackParam *MakeSeed(AliTrackPoint &point0,
74 AliTrackPoint &point1,
75 AliTrackPoint &point2);
76 static Double_t FitTrack(AliExternalTrackParam *trackParam,
77 AliTrackPointArray *pointArray,
78 Double_t mass, Double_t maxStep);
4811a3f4 79 //
80
81protected:
82 AliTrackerBase(const AliTrackerBase &atr);
83private:
84 AliTrackerBase & operator=(const AliTrackerBase & atr);
85
86 Double_t fX; //X-coordinate of the primary vertex
87 Double_t fY; //Y-coordinate of the primary vertex
88 Double_t fZ; //Z-coordinate of the primary vertex
89
90 Double_t fSigmaX; // error of the primary vertex position in X
91 Double_t fSigmaY; // error of the primary vertex position in Y
92 Double_t fSigmaZ; // error of the primary vertex position in Z
93
94 ClassDef(AliTrackerBase,1) //base tracker
95};
96
97//__________________________________________________________________________
98inline Bool_t AliTrackerBase::UniformField()
99{
100 AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
101 return fld ? fld->IsUniform():kTRUE;
102}
103
104#endif