CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h

Go to the documentation of this file.
00001 #ifndef Interpolation_SpecialCylindricalMFGrid_h
00002 #define Interpolation_SpecialCylindricalMFGrid_h
00003 
00014 #include "MagneticField/Interpolation/interface/MFGrid3D.h"
00015 
00016 class binary_ifstream;
00017 
00018 class SpecialCylindricalMFGrid : public MFGrid3D {
00019 public:
00020 
00024   SpecialCylindricalMFGrid( binary_ifstream& istr, 
00025                             const GloballyPositioned<float>& vol,
00026                             int gridType);
00027 
00028   virtual LocalVector uncheckedValueInTesla( const LocalPoint& p) const;
00029 
00030   virtual void dump() const;
00031 
00032   virtual void toGridFrame( const LocalPoint& p, double& a, double& b, double& c) const;
00033 
00034   virtual LocalPoint fromGridFrame( double a, double b, double c) const;
00035 
00036 private:
00037 
00038   //double RParAsFunOfPhi[4];     // R = f(phi) or const. (0,2: const. par. ; 1,3: const./sin(phi))
00039 
00040   double stepConstTerm_;
00041   double stepPhiTerm_;
00042   double startConstTerm_;
00043   double startPhiTerm_;
00044 
00045   double stepSize( double sinPhi) const {return stepConstTerm_ + stepPhiTerm_ /sinPhi;}
00046   double startingPoint( double sinPhi) const {return startConstTerm_ + startPhiTerm_/sinPhi;}
00047   bool sector1;
00048 };
00049 
00050 #endif