00001 #ifndef MUCMAGNETICFIELD_H
00002 #define MUCMAGNETICFIELD_H 1
00003
00004 #include <string>
00005
00006 #include "CLHEP/Geometry/Vector3D.h"
00007 #include "CLHEP/Geometry/Point3D.h"
00008
00009 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00010
00011 typedef HepGeom::Point3D<double> HepPoint3D;
00012 typedef HepGeom::Vector3D<double> HepVector3D;
00013 #endif
00014
00015 class MucMagneticField
00016 {
00017 public:
00018 #ifndef BEAN
00019 MucMagneticField();
00020 #else
00021 MucMagneticField(const std::string Path);
00022 #endif
00023 ~MucMagneticField();
00024
00025 void getMucField(int part,int layer,int mat, HepPoint3D& r,HepVector3D& b);
00026 void readPar();
00027
00028 std::string getPath() {return path;}
00029
00030 private:
00031 static const int npar = 18;
00032 double bipx0[npar],bipy0[npar],bipz0[npar];
00033 double bipx1[npar],bipy1[npar],bipz1[npar];
00034 double bipx2[npar],bipy2[npar],bipz2[npar];
00035 double bipx3[npar],bipy3[npar],bipz3[npar];
00036 double bipx4[npar],bipy4[npar],bipz4[npar];
00037 double bipx5[npar],bipy5[npar],bipz5[npar];
00038 double bipx6[npar],bipy6[npar],bipz6[npar];
00039 double bipx7[npar],bipy7[npar],bipz7[npar];
00040 double bipx8[npar],bipy8[npar],bipz8[npar];
00041
00042 double bapx0[npar],bapy0[npar],bapz0[npar];
00043 double bapx1[npar],bapy1[npar],bapz1[npar];
00044 double bapx2[npar],bapy2[npar],bapz2[npar];
00045 double bapx3[npar],bapy3[npar],bapz3[npar];
00046 double bapx4[npar],bapy4[npar],bapz4[npar];
00047 double bapx5[npar],bapy5[npar],bapz5[npar];
00048 double bapx6[npar],bapy6[npar],bapz6[npar];
00049 double bapx7[npar],bapy7[npar],bapz7[npar];
00050
00051 static const int npar1 = 17;
00052 double aipx0[npar1],aipy0[npar1],aipz0[npar1];
00053 double aipx1[npar1],aipy1[npar1],aipz1[npar1];
00054 double aipx2[npar1],aipy2[npar1],aipz2[npar1];
00055 double aipx3[npar1],aipy3[npar1],aipz3[npar1];
00056 double aipx4[npar1],aipy4[npar1],aipz4[npar1];
00057 double aipx5[npar1],aipy5[npar1],aipz5[npar1];
00058 double aipx6[npar1],aipy6[npar1],aipz6[npar1];
00059 double aipx7[npar1],aipy7[npar1],aipz7[npar1];
00060 double aipx8[npar1],aipy8[npar1],aipz8[npar1];
00061
00062 double aapx0[npar1],aapy0[npar1],aapz0[npar1];
00063 double aapx1[npar1],aapy1[npar1],aapz1[npar1];
00064 double aapx2[npar1],aapy2[npar1],aapz2[npar1];
00065 double aapx3[npar1],aapy3[npar1],aapz3[npar1];
00066 double aapx4[npar1],aapy4[npar1],aapz4[npar1];
00067 double aapx5[npar1],aapy5[npar1],aapz5[npar1];
00068 double aapx6[npar1],aapy6[npar1],aapz6[npar1];
00069 double aapx7[npar1],aapy7[npar1],aapz7[npar1];
00070
00071 double bp[npar];
00072 double ep[npar1];
00073
00074 std::string filename;
00075 std::string path;
00076 };
00077 #endif