CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/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 "MagneticField/Interpolation/src/Grid1D.h"
00015 #include "MagneticField/Interpolation/src/Grid3D.h"
00016 #include "DataFormats/GeometryVector/interface/Basic3DVector.h"
00017 
00018 #ifdef DEBUG_LinearGridInterpolator3D
00019 #include <iostream>
00020 #include "MagneticField/Interpolation/src/InterpolationDebug.h"
00021 #endif
00022 
00023 class LinearGridInterpolator3D {
00024 public:
00025 
00026   typedef Grid3D::ValueType ValueType;
00027   typedef Grid3D::Scalar Scalar;
00028   typedef ValueType ReturnType; 
00029 
00030   LinearGridInterpolator3D( const Grid3D& g) :
00031     grid(g), grida(g.grida()), gridb(g.gridb()), gridc(g.gridc()) {}
00032 
00033   void throwGridInterpolator3DException(void);
00034   
00035   ReturnType interpolate( Scalar a, Scalar b, Scalar c); 
00036   //  Value operator()( Scalar a, Scalar b, Scalar c) {return interpolate(a,b,c);}
00037 
00038 private:
00039   const Grid3D& grid;
00040   const Grid1D& grida;
00041   const Grid1D& gridb;
00042   const Grid1D& gridc;
00043 
00044 };
00045 
00046 #endif