00001 #include "globals.hh"
00002 #include "G4MagneticField.hh"
00003 #include "G4ios.hh"
00004
00005 #include <fstream>
00006 #include <vector>
00007 #include <cmath>
00008
00009 using namespace std;
00010
00011 class musrTabulatedField3D
00012 #ifndef STANDALONE
00013 : public G4MagneticField
00014 #endif
00015 {
00016
00017
00018 vector< vector< vector< double > > > xField;
00019 vector< vector< vector< double > > > yField;
00020 vector< vector< vector< double > > > zField;
00021
00022 int nx,ny,nz;
00023
00024 double minx, maxx, miny, maxy, minz, maxz;
00025
00026 double dx, dy, dz;
00027 double ffieldValue;
00028 bool invertX, invertY, invertZ;
00029
00030 public:
00031 musrTabulatedField3D(const char* filename, double fieldValue );
00032 void GetFieldValue( const double Point[4],
00033 double *Bfield ) const;
00034 G4double GetFieldSetValue();
00035 };
00036