]>
Commit | Line | Data |
---|---|---|
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 | ||
20 | class AliExternalTrackParam; | |
21 | ||
22 | class AliTrackerBase : public TObject { | |
23 | public: | |
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 | ||
57 | protected: | |
58 | AliTrackerBase(const AliTrackerBase &atr); | |
59 | private: | |
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 | //__________________________________________________________________________ | |
74 | inline Bool_t AliTrackerBase::UniformField() | |
75 | { | |
76 | AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); | |
77 | return fld ? fld->IsUniform():kTRUE; | |
78 | } | |
79 | ||
80 | #endif |