00001 #include <vector>
00002 #include <map>
00003 #include <utility>
00004 #include <memory>
00005 #include <string>
00006
00007 class TH3F;
00008
00009 class Interp3D {
00010
00011 public:
00012 struct VetoInterp {
00013 std::vector<std::pair<double,double>> xRange;
00014 std::vector<std::pair<double,double>> yRange;
00015 };
00016
00017 Interp3D() { m_NoInterp.clear(); m_debug = false; };
00018 Interp3D(const std::map<std::string,VetoInterp>& noInterp)
00019 : m_NoInterp (noInterp),
00020 m_debug (false)
00021 {
00022 };
00023 ~Interp3D() {};
00024
00025 double Interpol3d(double x,double y,double z, std::shared_ptr<TH3F> h);
00026 void debug(bool debug = true) { m_debug = debug; };
00027
00028 private:
00029 std::map<std::string,VetoInterp> m_NoInterp;
00030 bool m_debug;
00031
00032 };
00033