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