]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMagFCM.h
Suffix top level Branch names with a dot, to allow switching on/off via SetBranchStat...
[u/mrichter/AliRoot.git] / STEER / AliMagFCM.h
index 8f10f08083a16785ce4de75ae0ca4ba44956b1da..31a5068a3fa25aef2360bcd2a55abd1323b03045 100644 (file)
@@ -5,33 +5,43 @@
 
 /* $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 constan mesh
+  //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();
+  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 void    SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
+  virtual Float_t SolenoidField() const {
+    return -Factor()*fSolenoid;
+  }
   
-  void Copy(AliMagFCM &magf) const;
-  virtual AliMagFCM & operator=(const AliMagFCM &magf);
+  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);
   }