/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/MagneticField/MagneticField-00-01-38/MagneticField/MucMagneticField.h

Go to the documentation of this file.
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 //  backwards compatibility will be enabled ONLY in CLHEP 1.9
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];//barrel iron par bx,by,bz in each layer
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];//barrel air par bx,by,bz in each layer 
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];//endcap iron par bx,by,bz in each layer
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];//endcap air par bx,by,bz in each layer
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];//barrel par
00072   double ep[npar1];//endcap par
00073 
00074   std::string filename;
00075   std::string path;             // path to data files
00076 };
00077 #endif

Generated on Tue Nov 29 23:12:44 2016 for BOSS_7.0.2 by  doxygen 1.4.7