]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMagF.h
Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / AliMagF.h
index 5b53ee9c9016d2c63ca82875235f650425c15d03..1665243df6e52c79a8d0d17a33148c8151bc54e2 100644 (file)
@@ -5,6 +5,12 @@
 
 /* $Id$ */
 
+//----------------------------------------------------------------------
+// Basic magnetic field class
+// Used in all the detectors, and also in the traking classes
+// Author:
+//----------------------------------------------------------------------
+
 #include "TNamed.h"
 
 enum Field_t {kUndef=1, kConst=1, kConMesh=2, kDipoMap=3};
@@ -13,57 +19,29 @@ class AliMagF : public TNamed {
 
 public:
   AliMagF();
-  AliMagF(const char *name, const char *title, const Int_t integ, 
-         const Float_t factor = 1., const Float_t fmax = 10.);
+  AliMagF(const char *name, const char *title, Int_t integ, 
+         Float_t factor = 1., Float_t fmax = 10.);
   virtual ~AliMagF() {}
-  virtual void Field(Float_t *x, Float_t *b);
+  virtual void Field(Float_t *x, Float_t *b) const;
   virtual Int_t Type() const {return fType;}
   virtual Float_t Max() const {return fMax;}
   virtual Int_t Map() const {return fMap;}
   virtual Int_t Integ() const {return fInteg;}
+  virtual Int_t PrecInteg() const {return fPrecInteg;}  
   virtual Float_t Factor() const {return fFactor;}
   virtual void ReadField() {}
-  virtual void SetDebug(Int_t level=0) {fDebug=level;}
   virtual Float_t SolenoidField() const {return 2.;}
-  
-  virtual Int_t GetDebug() const {return fDebug;}
-  
-protected:
-  Int_t     fMap;    // Field Map identifier
-  Int_t     fType;   // Mag Field type
-  Int_t     fInteg;  // Integration method as indicated in Geant
-  Float_t   fFactor; // Multiplicative factor
-  Float_t   fMax;    // Max Field as indicated in Geant
-  Int_t     fDebug;  // Debug flag
-
-  ClassDef(AliMagF,1)  //Base class for all Alice MagField
+  virtual void SetPrecInteg(Int_t integ) {fPrecInteg = integ;}
+  virtual void SetReadField(Bool_t flag = kTRUE) {fReadField = flag;}
+ protected:
+  Int_t     fMap;       // Field Map identifier
+  Int_t     fType;      // Mag Field type
+  Int_t     fInteg;     // Default integration method as indicated in Geant
+  Int_t     fPrecInteg; // Alternative integration method, e.g. for higher precision
+  Float_t   fFactor;    // Multiplicative factor
+  Float_t   fMax;       // Max Field as indicated in Geant
+  Bool_t    fReadField; // Flag for reading the field from file (if available) 
+  ClassDef(AliMagF,5)   //Base class for all Alice MagField
 };
 
-//ZDC part -------------------------------------------------------------------
-
-// ************************ LHC optics v6.4 *****************************
-static const Float_t kG1=20.443;
-static const Float_t kFDIP=-37.85;
-static const Float_t kFCORN2=-9.6979; 
-//
-// ZBEG       Beginning of the inner triplet
-// D1BEG      Beginning of separator dipole 1
-// D2BEG      Beginning of separator dipole 2
-// CORBEG     Corrector dipole beginning (because of dimuon arm)
-//
-static const Float_t kCORBEG2=1972.5,kCOREND2=kCORBEG2+153., kCOR2RA2=4.5*4.5;
-//
-static const Float_t kZBEG=2296.5;
-static const Float_t kZ1BEG=kZBEG+   0., kZ1END=kZ1BEG+637.,kZ1RA2=3.5*3.5;
-static const Float_t kZ2BEG=kZBEG+ 908.5,kZ2END=kZ2BEG+550.,kZ2RA2=3.5*3.5;
-static const Float_t kZ3BEG=kZBEG+1558.5,kZ3END=kZ3BEG+550.,kZ3RA2=3.5*3.5;
-static const Float_t kZ4BEG=kZBEG+2430., kZ4END=kZ4BEG+637.,kZ4RA2=3.5*3.5;
-static const Float_t kD1BEG=5838.3    ,kD1END=kD1BEG+945.,kD1RA2=4.5*4.5;
-static const Float_t kD2BEG=12167.8   ,kD2END=kD2BEG+945.,kD2RA2=4.5*4.5;
-//
-static const Float_t kXCEN1D2=-9.7    ,kYCEN1D2=0.;
-static const Float_t kXCEN2D2=9.7     ,kYCEN2D2=0.;
-
-//ZDC part -------------------------------------------------------------------
-
 #endif