/* $Id$ */
-#include "AliMagF.h"
-class TVector;
+//-----------------------------------------------------------------------
+// Class for Alice magnetic field with constant mesh
+// Used in the configuration macros (macros/Config.C, etc.)
+// Author:
+//-----------------------------------------------------------------------
-class AliMagFCM : public AliMagF
+#include "AliMagFC.h"
+#include <TVector.h>
+
+class AliMagFCM : public AliMagFC
{
//Alice Magnetic Field with constant mesh
public:
AliMagFCM();
- AliMagFCM(const char *name, const char *title, const Int_t integ,
- const Float_t factor, const Float_t fmax);
+ AliMagFCM(const char *name, const char *title, Int_t integ,
+ Float_t factor, Float_t fmax);
AliMagFCM(const AliMagFCM &mag);
virtual ~AliMagFCM() {delete fB;}
- virtual void Field(Float_t *x, Float_t *b);
+ virtual void Field(Float_t *x, Float_t *b) const;
virtual void ReadField();
virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
- virtual Float_t SolenoidField() const {return fSolenoid;}
+ virtual Float_t SolenoidField() const {
+ return -Factor()*fSolenoid;
+ }
- void Copy(AliMagFCM &magf) const;
+ void Copy(TObject &magf) const;
virtual AliMagFCM & operator=(const AliMagFCM &magf)
{magf.Copy(*this); return *this;}
- Float_t Bx(const Int_t ix, const Int_t iy, const Int_t iz) {
+ Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const {
return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix));
}
- Float_t By(const Int_t ix, const Int_t iy, const Int_t iz) {
+ Float_t By(Int_t ix, Int_t iy, Int_t iz) const {
return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+1);
}
- Float_t Bz(const Int_t ix, const Int_t iy, const Int_t iz) {
+ Float_t Bz(Int_t ix, Int_t iy, Int_t iz) const {
return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+2);
}