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