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