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 */
7 // Revision of includes 07/05/2004
10 /// \class AliMUONTrackExtrap
11 /// \brief Track parameters in ALICE dimuon spectrometer
13 //////////////////////////////////////////////////////////////
14 /// Tools for track extrapolation in ALICE dimuon spectrometer
15 //////////////////////////////////////////////////////////////
20 class AliMUONTrackParam;
22 class AliMUONTrackExtrap : public TObject
26 AliMUONTrackExtrap() : TObject(){};
28 virtual ~AliMUONTrackExtrap(){};
31 static void SetField(const AliMagF* magField) {fgkField = magField;}
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);
37 static void ExtrapOneStepRungekutta(Double_t charge, Double_t step, Double_t* vect, Double_t* vout);
41 static const AliMagF* fgkField; //!< field map
44 AliMUONTrackExtrap(const AliMUONTrackExtrap& trackExtrap);
45 AliMUONTrackExtrap& operator=(const AliMUONTrackExtrap& trackExtrap);
47 static void SetGeant3ParametersFromTrackParam(AliMUONTrackParam* trackParam, Double_t *vGeant3, Double_t forwardBackward);
48 static void SetTrackParamFromGeant3Parameters(Double_t *vGeant3, Double_t Charge, AliMUONTrackParam* trackParam);
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);
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);
57 static void GetField(Double_t *Position, Double_t *Field);
59 ClassDef(AliMUONTrackExtrap, 0) // Tools for track extrapolation in ALICE dimuon spectrometer