ra4_draw  4bd0201e3d922d42bd545d4b045ed44db33454a4
hist2d.hpp
Go to the documentation of this file.
1 #ifndef H_HIST2D
2 #define H_HIST2D
3 
4 #include "TH2D.h"
5 #include "TGraph.h"
6 #include "TLine.h"
7 #include "TLatex.h"
8 #include "TLegend.h"
9 
10 #include "core/figure.hpp"
11 #include "core/axis.hpp"
12 #include "core/plot_opt.hpp"
13 #include "core/clusterizer.hpp"
14 
15 class Hist2D: public Figure{
16 public:
18  public:
19  SingleHist2D(const Hist2D &figure,
20  const std::shared_ptr<Process> &process,
21  const TH2D &hist_template);
22  ~SingleHist2D() = default;
23 
25 
26  void RecordEvent(const Baby &baby);
27 
28  private:
29  SingleHist2D() = delete;
30  SingleHist2D(const SingleHist2D &) = delete;
31  SingleHist2D& operator=(const SingleHist2D &) = delete;
32  SingleHist2D(SingleHist2D &&) = delete;
33  SingleHist2D& operator=(SingleHist2D &&) = delete;
34 
37  };
38 
39  Hist2D(const Axis &xaxis, const Axis &yaxis, const NamedFunc &cut,
40  const std::vector<std::shared_ptr<Process> > &processes,
41  const std::vector<PlotOpt> &plot_options = {PlotOpt()});
42  Hist2D(Hist2D &&) = default;
43  Hist2D& operator=(Hist2D &&) = default;
44  ~Hist2D() = default;
45 
46  void Print(double luminosity,
47  const std::string &subdir) override;
48 
49  std::set<const Process*> GetProcesses() const override;
50 
51  FigureComponent * GetComponent(const Process *process) override;
52 
53  std::string Name() const;
54 
55  Hist2D & Weight(const NamedFunc &weight);
56  Hist2D & Tag(const std::string &tag);
57 
60  std::string tag_;
61  std::vector<PlotOpt> plot_options_;
62 
63 private:
64  std::vector<std::unique_ptr<SingleHist2D> > backgrounds_;
65  std::vector<std::unique_ptr<SingleHist2D> > signals_;
66  std::vector<std::unique_ptr<SingleHist2D> > datas_;
67 
68  mutable PlotOpt this_opt_;
69  mutable double luminosity_;
70  static TH2D blank_;
71 
72  Hist2D(const Hist2D &) = delete;
73  Hist2D& operator=(const Hist2D &) = delete;
74  Hist2D() = delete;
75 
76  void MakeOnePlot(const std::string &subdir);
77  TH2D GetBkgHist(bool bkg_is_hist) const;
78  std::vector<TGraph> GetGraphs(const std::vector<std::unique_ptr<SingleHist2D> > &components,
79  bool lumi_weighted) const;
80  std::vector<TLine> GetLines() const;
81  std::vector<std::shared_ptr<TLatex> > GetLabels(bool bkg_is_hist) const;
82  void AddEntry(TLegend &l, const SingleHist2D &h, const TGraph &g) const;
83 
84  const std::vector<std::unique_ptr<SingleHist2D> >& GetComponentList(const Process *process);
85 };
86 
87 #endif
std::string tag_
Definition: hist2d.hpp:60
std::vector< PlotOpt > plot_options_
Definition: hist2d.hpp:61
NamedFunc::VectorType cut_vector_
Definition: hist2d.hpp:36
std::vector< ScalarType > VectorType
Definition: named_func.hpp:16
NamedFunc::VectorType xval_vector_
Definition: hist2d.hpp:36
void Print(double luminosity, const std::string &subdir) override
Definition: hist2d.cpp:149
NamedFunc::VectorType wgt_vector_
Definition: hist2d.hpp:36
std::vector< TGraph > GetGraphs(const std::vector< std::unique_ptr< SingleHist2D > > &components, bool lumi_weighted) const
Definition: hist2d.cpp:289
std::vector< std::unique_ptr< SingleHist2D > > backgrounds_
Definition: hist2d.hpp:64
std::string Name() const
Definition: hist2d.cpp:346
Abstract base class for access to ntuple variables.
Definition: baby.hpp:16
void AddEntry(TLegend &l, const SingleHist2D &h, const TGraph &g) const
Definition: hist2d.cpp:370
double luminosity_
Definition: hist2d.hpp:69
NamedFunc::VectorType yval_vector_
Definition: hist2d.hpp:36
Combines a callable function taking a Baby and returning a scalar or vector with its string represent...
Definition: named_func.hpp:13
const std::vector< std::unique_ptr< SingleHist2D > > & GetComponentList(const Process *process)
Definition: hist2d.cpp:421
NamedFunc proc_and_hist_cut_
Definition: hist2d.hpp:35
Hist2D()=delete
std::set< const Process * > GetProcesses() const override
Definition: hist2d.cpp:396
Definition: axis.hpp:12
SingleHist2D & operator=(const SingleHist2D &)=delete
Axis yaxis_
Definition: hist2d.hpp:58
FigureComponent * GetComponent(const Process *process) override
Definition: hist2d.cpp:410
TH2D GetBkgHist(bool bkg_is_hist) const
Definition: hist2d.cpp:258
std::vector< std::unique_ptr< SingleHist2D > > signals_
Definition: hist2d.hpp:65
static TH2D blank_
Definition: hist2d.hpp:70
std::vector< TLine > GetLines() const
Definition: hist2d.cpp:299
Axis xaxis_
Definition: hist2d.hpp:58
Hist2D & Weight(const NamedFunc &weight)
Definition: hist2d.cpp:360
void RecordEvent(const Baby &baby)
Definition: hist2d.cpp:33
~Hist2D()=default
NamedFunc weight_
Definition: hist2d.hpp:59
Clustering::Clusterizer clusterizer_
Definition: hist2d.hpp:24
PlotOpt this_opt_
Definition: hist2d.hpp:68
std::vector< std::shared_ptr< TLatex > > GetLabels(bool bkg_is_hist) const
Definition: hist2d.cpp:315
void MakeOnePlot(const std::string &subdir)
Definition: hist2d.cpp:162
std::vector< std::unique_ptr< SingleHist2D > > datas_
Definition: hist2d.hpp:66
Hist2D & Tag(const std::string &tag)
Definition: hist2d.cpp:365
NamedFunc cut_
Definition: hist2d.hpp:59