00001 #ifndef ZReflectedMFGrid_H 00002 #define ZReflectedMFGrid_H 00003 00004 #include "MagneticField/Interpolation/interface/MFGrid.h" 00005 00006 class ZReflectedMFGrid : public MFGrid { 00007 public: 00008 00009 ZReflectedMFGrid( const GloballyPositioned<float>& vol, 00010 MFGrid* sectorGrid); 00011 00012 ~ZReflectedMFGrid(); 00013 00014 virtual LocalVector valueInTesla( const LocalPoint& p) const; 00015 00016 virtual void toGridFrame( const LocalPoint& p, double& a, double& b, double& c) const ; 00017 00018 virtual LocalPoint fromGridFrame( double a, double b, double c) const ; 00019 00020 virtual std::vector<int> dimensions() const ; 00021 00022 virtual LocalPoint nodePosition( int i, int j, int k) const ; 00023 00024 virtual LocalVector nodeValue( int i, int j, int k) const ; 00025 00026 00027 private: 00028 00029 double thePhiMin; 00030 double thePhiMax; 00031 MFGrid* theSectorGrid; 00032 double theDelta; 00033 00034 void throwUp( const std::string& message) const; 00035 00036 }; 00037 00038 #endif