]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliFieldMap.h
Some more classes moved from libSTEER to libSTEERBase.
[u/mrichter/AliRoot.git] / STEER / AliFieldMap.h
index bfe0563f571276d0ec02f16348d01bab8e16fe1a..ee3e6fea02057f62569f0fc752224de6cf81e872 100644 (file)
@@ -6,11 +6,13 @@
 /* $Id$ */
 
 //
+// Class to handle the field map of ALICE
+// I/O and interpolation
 // Author: Andreas Morsch <andreas.morsch@cern.ch>
 //
+
 #include <TNamed.h>
 #include <TVector.h>
-#include <TBuffer.h>
 
 class AliFieldMap : public TNamed
 {
@@ -21,39 +23,39 @@ public:
     AliFieldMap(const char *name, const char *title);
     AliFieldMap(const AliFieldMap &mag);
     virtual ~AliFieldMap();
-    void Copy(AliFieldMap &map) const;
+    void Copy(TObject &map) const;
     virtual AliFieldMap & operator=(const AliFieldMap &map);
 
-    virtual void Field(Float_t *x, Float_t *b);
-    Float_t Bx(const Int_t ix, const Int_t iy, const Int_t iz) {
-       return (*fB)(3*(ix*(fZn*fYn)+iy*fZn+iz));
+    virtual void Field(Float_t *x, Float_t *b) const;
+    Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const{
+       return (*fB)(3*((ix*fYn+iy)*fZn+iz));
     }
-    Float_t By(const Int_t ix, const Int_t iy, const Int_t iz) {
-       return (*fB)(3*(ix*(fZn*fYn)+iy*fZn+iz)+1);
+    Float_t By(Int_t ix, Int_t iy, Int_t iz) const{
+       return (*fB)(3*((ix*fYn+iy)*fZn+iz)+1);
     }
-    Float_t Bz(const Int_t ix, const Int_t iy, const Int_t iz) {
-       return (*fB)(3*(ix*(fZn*fYn)+iy*fZn+iz)+2);
+    Float_t Bz(Int_t ix, Int_t iy, Int_t iz) const{
+       return (*fB)(3*((ix*fYn+iy)*fZn+iz)+2);
     }
 
-    Bool_t Inside(Float_t x, Float_t y, Float_t z) 
-       { return (x > fXbeg && x <= fXend &&
-                 y > fYbeg && y <= fYend &&
-                 z > fZbeg && z <= fZend);
+    Bool_t Inside(Float_t x, Float_t y, Float_t z) const
+       { return (x > fXbeg && x < fXend &&
+                 y > fYbeg && y < fYend &&
+                 z > fZbeg && z < fZend);
        }
-    Float_t Xmin()  {return fXbeg;}
-    Float_t Xmax()  {return fXend;}
-    Float_t DelX()  {return fXdel;}
-    Float_t DeliX() {return fXdeli;}
+    Float_t Xmin()  const {return fXbeg;}
+    Float_t Xmax()  const {return fXend;}
+    Float_t DelX()  const {return fXdel;}
+    Float_t DeliX() const {return fXdeli;}
     
-    Float_t Ymin()  {return fYbeg;}
-    Float_t Ymax()  {return fYend;}
-    Float_t DelY()  {return fYdel;}
-    Float_t DeliY() {return fYdeli;}
+    Float_t Ymin()  const {return fYbeg;}
+    Float_t Ymax()  const {return fYend;}
+    Float_t DelY()  const {return fYdel;}
+    Float_t DeliY() const {return fYdeli;}
     
-    Float_t Zmin()  {return fZbeg;}
-    Float_t Zmax()  {return fZend;}
-    Float_t DelZ()  {return fZdel;}
-    Float_t DeliZ() {return fZdeli;}
+    Float_t Zmin()  const {return fZbeg;}
+    Float_t Zmax()  const {return fZend;}
+    Float_t DelZ()  const {return fZdel;}
+    Float_t DeliZ() const {return fZdeli;}
     void    SetLimits(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax,
                      Float_t zmin, Float_t zmax)
        {
@@ -61,8 +63,6 @@ public:
            fZbeg = zmin; fZend = zmax;
        }
     void SetWriteEnable(Int_t flag = 1) {fWriteEnable = flag;}
- private:
-    void    ReadField();
  protected:
     
     Float_t    fXbeg;         // Start of mesh in x
@@ -83,6 +83,9 @@ public:
     Int_t      fWriteEnable;  // Enable flag for writing of field data.
     TVector*   fB;            // Field map
     
+ private:
+    void    ReadField();
+
     ClassDef(AliFieldMap,3)  //Class for Field Map
 };