/* $Id$ */
-#include "AliMagF.h"
+//-------------------------------------------------------------------------
+// Field with Magnetic Field map
+// Used by AliRun class
+// Author:
+//-------------------------------------------------------------------------
+
+#include "AliMagFC.h"
//
-class AliMagFDM : public AliMagF
+class AliMagFDM : public AliMagFC
{
//Alice Magnetic Field:Magnetic field map from IP to muon filter for Muon arm
public:
- AliMagFDM(){}
- AliMagFDM(const char *name, const char *title, const Int_t integ, const Int_t
- map, const Float_t factor, const Float_t fmax);
+ AliMagFDM();
+ AliMagFDM(const char *name, const char *title, Int_t integ,
+ Float_t factor, Float_t fmax);
virtual ~AliMagFDM(){}
- virtual void Field(Float_t *x, Float_t *b);
+ virtual void Field(Float_t *x, Float_t *b) const;
virtual void ReadField();
-
-
- void FZ(Double_t *u, Float_t *Ar, Float_t *du, Int_t *ki, Int_t *kf, Double_t *a1, Double_t *a2 , Int_t *nu);
- void FRfuncBi(Int_t *kai, Double_t *za1, Double_t *za2, Double_t *al1, Double_t *al2, Double_t *al3, Int_t *ka, Int_t *ma,Double_t *ba);
- void FGfuncBi(Double_t *z1, Double_t *z2, Double_t *y1, Double_t *y2, Double_t *x1, Double_t *x2, Int_t *kvr, Int_t *k, Int_t *l, Int_t *m, Double_t *bb);
+ virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
+ virtual Float_t SolenoidField() const {
+ return -Factor()*fSolenoid;
+ }
+ Int_t FZ(Double_t u, const Float_t *Ar, Float_t du, Int_t ki, Int_t nu) const;
+ Double_t Ba(Int_t kai, Double_t za1, Double_t za2, Double_t al1, Double_t al2, Double_t al3, Int_t ka, Int_t ma) const;
+ Double_t Bb(Double_t z1, Double_t z2, Double_t y1, Double_t y2, Double_t x1, Double_t x2, Int_t kvr, Int_t k, Int_t l, Int_t m) const;
protected:
//
-
- Int_t fInd; // Character number of validity Map region
+ Float_t fSolenoid; // Solenoid Field Strength
+ Int_t fInd; // Character number of validity Map region
Float_t fZmin; // Start of the cartesian part of MAP in z
Float_t fZmax; // End of Map in z