ATLAS Offline Software
Interp3D.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #include <map>
6 #include <memory>
7 #include <string>
8 #include <utility>
9 #include <vector>
10 
11 class TH3F;
12 
13 class Interp3D {
14 public:
15  struct VetoInterp {
16  std::vector<std::pair<double, double>> xRange;
17  std::vector<std::pair<double, double>> yRange;
18  };
19 
20  Interp3D() = default;
21  Interp3D(const std::map<std::string, VetoInterp>& noInterp) : m_NoInterp(noInterp) {}
22 
23  ~Interp3D() = default;
24  double Interpol3d(double x, double y, double z, std::shared_ptr<TH3F> h) const;
25  void debug(bool debug = true) { m_debug = debug; }
26 
27 private:
28  std::map<std::string, VetoInterp> m_NoInterp;
29  bool m_debug{false};
30 };
Interp3D
Definition: Interp3D.h:13
Interp3D::m_debug
bool m_debug
Definition: Interp3D.h:29
Interp3D::VetoInterp::yRange
std::vector< std::pair< double, double > > yRange
Definition: Interp3D.h:17
Interp3D::debug
void debug(bool debug=true)
Definition: Interp3D.h:25
x
#define x
Interp3D::m_NoInterp
std::map< std::string, VetoInterp > m_NoInterp
Definition: Interp3D.h:28
z
#define z
Interp3D::VetoInterp::xRange
std::vector< std::pair< double, double > > xRange
Definition: Interp3D.h:16
Interp3D::Interpol3d
double Interpol3d(double x, double y, double z, std::shared_ptr< TH3F > h) const
Definition: Interp3D.cxx:11
Interp3D::~Interp3D
~Interp3D()=default
TH3F
Definition: rootspy.cxx:495
Interp3D::Interp3D
Interp3D()=default
Interp3D::VetoInterp
Definition: Interp3D.h:15
y
#define y
h
Interp3D::Interp3D
Interp3D(const std::map< std::string, VetoInterp > &noInterp)
Definition: Interp3D.h:21