AliRoot Core  ee782a0 (ee782a0)
AliTrackerBase.h
Go to the documentation of this file.
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: Marian.Ivanov@cern.ch
12 //-------------------------------------------------------------------------
13 
14 #include <TObject.h>
15 #include <TGeoGlobalMagField.h>
16 
17 #include "AliMagF.h"
18 
20 class AliTrackPoint;
21 class AliTrackPointArray;
22 
23 class AliTrackerBase : public TObject {
24 public:
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  UInt_t GetTimeStamp() const {return fTimeStamp;}
40  Int_t GetRunNumber() const {return fRun;}
41  void SetTimeStamp(UInt_t t) {fTimeStamp = t;}
42  void SetRunNumber(int run) {fRun = run;}
43 
45  Double_t mass, Double_t step,
46  const AliExternalTrackParam *backup);
47  static void UpdateTrack(AliExternalTrackParam&,
48  const AliExternalTrackParam&);
49  static
50  Double_t MeanMaterialBudget(const Double_t *start, const Double_t *end,
51  Double_t *mparam);
52  static
53  Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m,
54  Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE);
55  static Int_t PropagateTrackTo2(AliExternalTrackParam *track, Double_t x, Double_t m,
56  Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE);
57  static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x, Double_t m,Double_t maxStep, Bool_t rotateTo=kTRUE,
58  Double_t maxSnp=0.8,Int_t sign=0, Bool_t addTimeStep=kFALSE,Bool_t correctMaterialBudget=kTRUE);
59  //
60  static Bool_t PropagateTrackParamOnlyToBxByBz(AliExternalTrackParam *track,Double_t xToGo,Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8);
61  static Bool_t PropagateTrackParamOnlyTo(AliExternalTrackParam *track,Double_t xToGo,Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8);
62 
63  static Double_t GetBz(const Double_t *r);
64  static void GetBxByBz(const Double_t r[3], Double_t b[3]);
65  static Double_t GetBz();
66  static Bool_t UniformField();
67 
68 
69  static Double_t MakeC(Double_t x1,Double_t y1,
70  Double_t x2,Double_t y2,
71  Double_t x3,Double_t y3);
72  static Double_t MakeSnp(Double_t x1,Double_t y1,
73  Double_t x2,Double_t y2,
74  Double_t x3,Double_t y3);
75  static Double_t MakeTgl(Double_t x1,Double_t y1,
76  Double_t x2,Double_t y2,
77  Double_t z1,Double_t z2);
78  static Double_t MakeTgl(Double_t x1,Double_t y1,
79  Double_t x2,Double_t y2,
80  Double_t z1,Double_t z2,Double_t c);
82  AliTrackPoint &point1,
83  AliTrackPoint &point2);
84  static Double_t FitTrack(AliExternalTrackParam *trackParam,
85  AliTrackPointArray *pointArray,
86  Double_t mass, Double_t maxStep);
87  //
88 
89 protected:
90  AliTrackerBase(const AliTrackerBase &atr);
91 private:
93 
94  Double_t fX; //X-coordinate of the primary vertex
95  Double_t fY; //Y-coordinate of the primary vertex
96  Double_t fZ; //Z-coordinate of the primary vertex
97 
98  Double_t fSigmaX; // error of the primary vertex position in X
99  Double_t fSigmaY; // error of the primary vertex position in Y
100  Double_t fSigmaZ; // error of the primary vertex position in Z
101  UInt_t fTimeStamp; // event time stamp
102  Int_t fRun; // run number
103 
104  ClassDef(AliTrackerBase,2) //base tracker
105 };
106 
107 //__________________________________________________________________________
109 {
110  AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
111  return fld ? fld->IsUniform():kTRUE;
112 }
113 
114 #endif
TBrowser b
Definition: RunAnaESD.C:12
static Double_t GetBz()
Double_t GetSigmaZ() const
void SetRunNumber(int run)
Double_t GetSigmaY() const
Double_t GetX() const
Int_t GetRunNumber() const
Bool_t IsUniform() const
Definition: AliMagF.h:57
Double_t fSigmaX
Double_t GetZ() const
Double_t fSigmaY
void SetTimeStamp(UInt_t t)
AliTPCfastTrack * track
static Double_t MakeTgl(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t z1, Double_t z2)
static Double_t MakeSnp(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3)
static Double_t MeanMaterialBudget(const Double_t *start, const Double_t *end, Double_t *mparam)
static void UpdateTrack(AliExternalTrackParam &, const AliExternalTrackParam &)
static Bool_t PropagateTrackParamOnlyToBxByBz(AliExternalTrackParam *track, Double_t xToGo, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8)
static Bool_t PropagateTrackParamOnlyTo(AliExternalTrackParam *track, Double_t xToGo, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8)
static Int_t PropagateTrackTo2(AliExternalTrackParam *track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE)
UInt_t GetTimeStamp() const
Double_t GetY() const
void SetVertex(const Double_t *xyz, const Double_t *ers=0)
static void GetBxByBz(const Double_t r[3], Double_t b[3])
static Double_t FitTrack(AliExternalTrackParam *trackParam, AliTrackPointArray *pointArray, Double_t mass, Double_t maxStep)
Double_t GetSigmaX() const
static Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE)
static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Int_t sign=0, Bool_t addTimeStep=kFALSE, Bool_t correctMaterialBudget=kTRUE)
static Double_t MakeC(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3)
static Double_t GetTrackPredictedChi2(AliExternalTrackParam *track, Double_t mass, Double_t step, const AliExternalTrackParam *backup)
AliTrackerBase & operator=(const AliTrackerBase &atr)
static Bool_t UniformField()
static AliExternalTrackParam * MakeSeed(AliTrackPoint &point0, AliTrackPoint &point1, AliTrackPoint &point2)
virtual ~AliTrackerBase()