New class AliMUONTrackExtrap containing static method for tack extrapolation (Philipp...
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackExtrap.h
CommitLineData
c04e3238 1#ifndef ALIMUONTRACKEXTRAP_H
2#define ALIMUONTRACKEXTRAP_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/*$Id$*/
7// Revision of includes 07/05/2004
8
9/// \ingroup rec
10/// \class AliMUONTrackExtrap
11/// \brief Track parameters in ALICE dimuon spectrometer
12///
13//////////////////////////////////////////////////////////////
14/// Tools for track extrapolation in ALICE dimuon spectrometer
15//////////////////////////////////////////////////////////////
16
17#include <TObject.h>
18
19class AliMagF;
20class AliMUONTrackParam;
21
22class AliMUONTrackExtrap : public TObject
23{
24 public:
25 /// Constructor
26 AliMUONTrackExtrap() : TObject(){};
27 /// Destructor
28 virtual ~AliMUONTrackExtrap(){};
29
30 /// set field map
31 static void SetField(const AliMagF* magField) {fgkField = magField;}
32
33 static void ExtrapToZ(AliMUONTrackParam *trackParam, Double_t Z);
34 static void ExtrapToStation(AliMUONTrackParam *trackParamIn, Int_t station, AliMUONTrackParam *trackParamOut);
35 static void ExtrapToVertex(AliMUONTrackParam *trackParam, Double_t xVtx, Double_t yVtx, Double_t zVtx);
36
37 static void ExtrapOneStepRungekutta(Double_t charge, Double_t step, Double_t* vect, Double_t* vout);
38
39
40 private:
41 static const AliMagF* fgkField; //!< field map
42
43 // Functions
44 AliMUONTrackExtrap(const AliMUONTrackExtrap& trackExtrap);
45 AliMUONTrackExtrap& operator=(const AliMUONTrackExtrap& trackExtrap);
46
47 static void SetGeant3ParametersFromTrackParam(AliMUONTrackParam* trackParam, Double_t *vGeant3, Double_t forwardBackward);
48 static void SetTrackParamFromGeant3Parameters(Double_t *vGeant3, Double_t Charge, AliMUONTrackParam* trackParam);
49
50 static void BransonCorrection(AliMUONTrackParam *trackParam, Double_t xVtx, Double_t yVtx, Double_t zVtx);
51 static Double_t TotalMomentumEnergyLoss(Double_t thetaLimit, Double_t pTotal, Double_t theta);
52 static void FieldCorrection(AliMUONTrackParam *trackParam, Double_t Z);
53
54 static void ExtrapOneStepHelix(Double_t charge, Double_t step, Double_t *vect, Double_t *vout);
55 static void ExtrapOneStepHelix3(Double_t field, Double_t step, Double_t *vect, Double_t *vout);
56
57 static void GetField(Double_t *Position, Double_t *Field);
58
59 ClassDef(AliMUONTrackExtrap, 0) // Tools for track extrapolation in ALICE dimuon spectrometer
60};
61
62#endif