/* $Id$ */
//
+// Class to handle the field map of ALICE
+// I/O and interpolation
// Author: Andreas Morsch <andreas.morsch@cern.ch>
//
+
#include <TNamed.h>
-class TVector;
+#include <TVector.h>
class AliFieldMap : public TNamed
{
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 *x, float *b) const;
+ virtual void Field(double *x, double *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) const
- { return (x > fXbeg && x <= fXend &&
- y > fYbeg && y <= fYend &&
- z > fZbeg && z <= fZend);
+ { return (x > fXbeg && x < fXend &&
+ y > fYbeg && y < fYend &&
+ z > fZbeg && z < fZend);
}
Float_t Xmin() const {return fXbeg;}
Float_t Xmax() const {return fXend;}