ra4_draw  4bd0201e3d922d42bd545d4b045ed44db33454a4
axis.hpp
Go to the documentation of this file.
1 #ifndef H_AXIS
2 #define H_AXIS
3 
4 #include <cstddef>
5 
6 #include <vector>
7 #include <set>
8 #include <string>
9 
10 #include "core/named_func.hpp"
11 
12 class Axis{
13 public:
14  Axis(const std::vector<double> &bins,
15  const NamedFunc &var,
16  const std::string &title = "",
17  const std::set<double> &cut_vals = {});
18  Axis(std::size_t nbins,
19  double xmin, double xmax,
20  const NamedFunc &var,
21  const std::string &title = "",
22  const std::set<double> &cut_vals = {});
23 
24  Axis(const Axis &) = default;
25  Axis& operator=(const Axis &) = default;
26  Axis(Axis &&) = default;
27  Axis& operator=(Axis &&) = default;
28  ~Axis() = default;
29 
30  std::size_t Nbins() const;
31  Axis & Bins(const std::vector<double> &bins);
32  Axis & Bins(std::size_t nbins, double xmin, double xmax);
33  const std::vector<double> & Bins() const;
34  double AvgBinWidth() const;
35 
36  std::string Title() const;
37 
39  std::string title_;
40  std::string units_;
41  std::set<double> cut_vals_;
42 
43 private:
44  std::vector<double> bins_;
45 
46  static std::vector<double> GetEdges(std::size_t nbins, double xmin, double xmax);
47  void ParseUnits();
48 };
49 
50 #endif
~Axis()=default
Axis(const std::vector< double > &bins, const NamedFunc &var, const std::string &title="", const std::set< double > &cut_vals={})
Definition: axis.cpp:7
std::string Title() const
Definition: axis.cpp:58
std::string units_
Units of Axis::var_.
Definition: axis.hpp:40
double AvgBinWidth() const
Definition: axis.cpp:53
Combines a callable function taking a Baby and returning a scalar or vector with its string represent...
Definition: named_func.hpp:13
static std::vector< double > GetEdges(std::size_t nbins, double xmin, double xmax)
Definition: axis.cpp:66
std::string title_
Axis title without units.
Definition: axis.hpp:39
Definition: axis.hpp:12
NamedFunc var_
Variable to be plotted.
Definition: axis.hpp:38
void ParseUnits()
Definition: axis.cpp:82
Axis & operator=(const Axis &)=default
std::size_t Nbins() const
Definition: axis.cpp:33
std::vector< double > bins_
List of bin edges.
Definition: axis.hpp:44
std::set< double > cut_vals_
Values of HistoDef::var_ for which to plot a line.
Definition: axis.hpp:41
const std::vector< double > & Bins() const
Definition: axis.cpp:49