]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliTrackerBase.h
Do not reset a zero pointer to MC info
[u/mrichter/AliRoot.git] / STEER / 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
11// Origin: Iouri Belikov, IPHC, iouri.belikov@in2p3.fr
12// Most of the functions implemented by Marian.Ivanov@cern.ch
13//-------------------------------------------------------------------------
14
15#include <TObject.h>
16#include <TGeoGlobalMagField.h>
17
18#include "AliMagF.h"
19
20class AliExternalTrackParam;
21
22class AliTrackerBase : public TObject {
23public:
24 AliTrackerBase();
25 virtual ~AliTrackerBase(){}
26
27 void SetVertex(const Double_t *xyz, const Double_t *ers=0) {
28 fX=xyz[0]; fY=xyz[1]; fZ=xyz[2];
29 if (ers) { fSigmaX=ers[0]; fSigmaY=ers[1]; fSigmaZ=ers[2]; }
30 }
31 Double_t GetX() const {return fX;}
32 Double_t GetY() const {return fY;}
33 Double_t GetZ() const {return fZ;}
34 Double_t GetSigmaX() const {return fSigmaX;}
35 Double_t GetSigmaY() const {return fSigmaY;}
36 Double_t GetSigmaZ() const {return fSigmaZ;}
37
38 static Double_t GetTrackPredictedChi2(AliExternalTrackParam *track,
39 Double_t mass, Double_t step,
40 const AliExternalTrackParam *backup);
41 static
42 Double_t MeanMaterialBudget(const Double_t *start, const Double_t *end,
43 Double_t *mparam);
44 static
45 Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m,
46 Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Double_t sign=1.);
47 static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x,
48 Double_t m,
49 Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8,Double_t sign=1.);
50 //
51 static Double_t GetBz(const Double_t *r);
52 static void GetBxByBz(const Double_t r[3], Double_t b[3]);
53 static Double_t GetBz();
54 static Bool_t UniformField();
55 //
56
57protected:
58 AliTrackerBase(const AliTrackerBase &atr);
59private:
60 AliTrackerBase & operator=(const AliTrackerBase & atr);
61
62 Double_t fX; //X-coordinate of the primary vertex
63 Double_t fY; //Y-coordinate of the primary vertex
64 Double_t fZ; //Z-coordinate of the primary vertex
65
66 Double_t fSigmaX; // error of the primary vertex position in X
67 Double_t fSigmaY; // error of the primary vertex position in Y
68 Double_t fSigmaZ; // error of the primary vertex position in Z
69
70 ClassDef(AliTrackerBase,1) //base tracker
71};
72
73//__________________________________________________________________________
74inline Bool_t AliTrackerBase::UniformField()
75{
76 AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
77 return fld ? fld->IsUniform():kTRUE;
78}
79
80#endif