X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliMagFDM.h;h=ee102b518e1304cb33d68f764259e7f1606978ba;hb=8b035d03f8682baff6aa6da797b3c4a65fb7f51d;hp=b762526f207261d36ce594a77b29efe6fbaa5d87;hpb=d8408e768ac2e9da27b286f8cb2c3e705b46e543;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliMagFDM.h b/STEER/AliMagFDM.h index b762526f207..ee102b518e1 100644 --- a/STEER/AliMagFDM.h +++ b/STEER/AliMagFDM.h @@ -5,31 +5,39 @@ /* $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 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