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