Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:31

0001 #ifndef Interpolation_LinearGridInterpolator3D_h
0002 #define Interpolation_LinearGridInterpolator3D_h
0003 
0004 /** \class LinearGridInterpolator3D
0005  *
0006  *  Linear interpolation in a regular 3D grid.
0007  *
0008  *  \author T. Todorov 
0009  */
0010 
0011 #include "DataFormats/GeometryVector/interface/Basic3DVector.h"
0012 #include "Grid1D.h"
0013 #include "Grid3D.h"
0014 #include "DataFormats/GeometryVector/interface/Basic3DVector.h"
0015 #include "FWCore/Utilities/interface/Visibility.h"
0016 
0017 #ifdef DEBUG_LinearGridInterpolator3D
0018 #include <iostream>
0019 #include "InterpolationDebug.h"
0020 #endif
0021 
0022 class dso_internal LinearGridInterpolator3D {
0023 public:
0024   typedef Grid3D::ValueType ValueType;
0025   typedef Grid3D::Scalar Scalar;
0026   typedef ValueType ReturnType;
0027 
0028   LinearGridInterpolator3D(const Grid3D& g) : grid(g), grida(g.grida()), gridb(g.gridb()), gridc(g.gridc()) {}
0029 
0030   void throwGridInterpolator3DException(void);
0031 
0032   ReturnType interpolate(Scalar a, Scalar b, Scalar c);
0033   //  Value operator()( Scalar a, Scalar b, Scalar c) {return interpolate(a,b,c);}
0034 
0035 private:
0036   const Grid3D& grid;
0037   const Grid1D& grida;
0038   const Grid1D& gridb;
0039   const Grid1D& gridc;
0040 };
0041 
0042 #endif