00001 #ifndef Interpolation_TrapezoidalCartesianMFGrid_h 00002 #define Interpolation_TrapezoidalCartesianMFGrid_h 00003 00015 #include "MagneticField/Interpolation/interface/MFGrid3D.h" 00016 #include "MagneticField/Interpolation/src/Trapezoid2RectangleMappingX.h" 00017 00018 class binary_ifstream; 00019 00020 class TrapezoidalCartesianMFGrid : public MFGrid3D { 00021 public: 00022 00023 TrapezoidalCartesianMFGrid( binary_ifstream& istr, 00024 const GloballyPositioned<float>& vol); 00025 00026 virtual LocalVector uncheckedValueInTesla( const LocalPoint& p) const; 00027 00028 void dump() const; 00029 00030 virtual void toGridFrame( const LocalPoint& p, double& a, double& b, double& c) const; 00031 00032 virtual LocalPoint fromGridFrame( double a, double b, double c) const; 00033 00034 private: 00035 00036 Trapezoid2RectangleMappingX mapping_; 00037 bool increasingAlongX; 00038 bool convertToLocal; 00039 00040 }; 00041 00042 #endif