CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/MagneticField/Interpolation/src/LinearGridInterpolator3D.h

Go to the documentation of this file.
00001 #ifndef Interpolation_LinearGridInterpolator3D_h
00002 #define Interpolation_LinearGridInterpolator3D_h
00003 
00013 #include "DataFormats/GeometryVector/interface/Basic3DVector.h"
00014 #include "Grid1D.h"
00015 #include "Grid3D.h"
00016 #include "DataFormats/GeometryVector/interface/Basic3DVector.h"
00017 #include "FWCore/Utilities/interface/Visibility.h"
00018 
00019 
00020 #ifdef DEBUG_LinearGridInterpolator3D
00021 #include <iostream>
00022 #include "InterpolationDebug.h"
00023 #endif
00024 
00025 class dso_internal LinearGridInterpolator3D {
00026 public:
00027 
00028   typedef Grid3D::ValueType ValueType;
00029   typedef Grid3D::Scalar Scalar;
00030   typedef ValueType ReturnType; 
00031 
00032   LinearGridInterpolator3D( const Grid3D& g) :
00033     grid(g), grida(g.grida()), gridb(g.gridb()), gridc(g.gridc()) {}
00034 
00035   void throwGridInterpolator3DException(void);
00036   
00037   ReturnType interpolate( Scalar a, Scalar b, Scalar c); 
00038   //  Value operator()( Scalar a, Scalar b, Scalar c) {return interpolate(a,b,c);}
00039 
00040 private:
00041   const Grid3D& grid;
00042   const Grid1D& grida;
00043   const Grid1D& gridb;
00044   const Grid1D& gridc;
00045 
00046 };
00047 
00048 #endif