ra4_draw  4bd0201e3d922d42bd545d4b045ed44db33454a4
figure.hpp
Go to the documentation of this file.
1 #ifndef H_FIGURE
2 #define H_FIGURE
3 
4 #include <memory>
5 #include <vector>
6 #include <mutex>
7 
8 #include "core/process.hpp"
9 #include "core/baby.hpp"
10 #include "core/named_func.hpp"
11 
12 class Figure{
13 public:
15  public:
16  FigureComponent(const Figure &figure,
17  const std::shared_ptr<Process> &process);
18  virtual ~FigureComponent() = default;
19 
20  virtual void RecordEvent(const Baby &baby) = 0;
21 
22  const Figure& figure_;
23  std::shared_ptr<Process> process_;
24  std::mutex mutex_;
25 
26  private:
27  FigureComponent() = delete;
28  FigureComponent(const FigureComponent &) = delete;
29  FigureComponent& operator=(const FigureComponent &) = delete;
30  FigureComponent(FigureComponent &&) = delete;
32  };
33 
34  Figure() = default;
35  Figure(const Figure &) = default;
36  Figure& operator=(const Figure &) = default;
37  Figure(Figure &&) = default;
38  Figure& operator=(Figure &&) = default;
39  virtual ~Figure() = default;
40 
41  virtual void Print(double luminosity,
42  const std::string &subdir) = 0;
43 
44  virtual std::set<const Process*> GetProcesses() const = 0;
45 
46  virtual FigureComponent * GetComponent(const Process *process) = 0;
47 };
48 
49 #endif
std::shared_ptr< Process > process_
Process associated to this part of the figure.
Definition: figure.hpp:23
virtual ~FigureComponent()=default
Abstract base class for access to ntuple variables.
Definition: baby.hpp:16
const Figure & figure_
Reference to figure containing this component.
Definition: figure.hpp:22
Figure()=default
virtual std::set< const Process * > GetProcesses() const =0
FigureComponent & operator=(const FigureComponent &)=delete
virtual void Print(double luminosity, const std::string &subdir)=0
virtual void RecordEvent(const Baby &baby)=0
virtual ~Figure()=default
virtual FigureComponent * GetComponent(const Process *process)=0