Geant4-11
plotter_common.icc
Go to the documentation of this file.
1// Copyright (C) 2010, Guy Barrand. All rights reserved.
2// See the file tools.license for terms.
3
4 //proxies to have less verbose user programming :
5
6 //WARNING : the plotter must have at least 1x1 plotting area,
7 // else the below will crash because current_plotter()
8 // will return a null pointer.
9
10 tools::sg::plots& plots() {return m_plots;}
11 const tools::sg::plots& plots() const {return m_plots;}
12
13 void next() {m_plots.next();}
14 bool set_current_plotter(unsigned int a_index) {return m_plots.set_current_plotter(a_index);}
15
16 void add_plottable(tools::sg::plottable* a_plottable) {
17 m_plots.current_plotter().add_plottable(a_plottable); //it takes ownership.
18 }
19
20 tools::sg::plottable* plot(const tools::histo::h1d& a_histo) {
21 //tools::sg::plottable* p = new tools::sg::h1d2plot<tools::histo::h1d>(a_histo);
22 tools::sg::plottable* p = new tools::sg::h1d2plot(a_histo);
23 m_plots.current_plotter().add_plottable(p); //it takes ownership.
24 return p;
25 }
26
27 tools::sg::plottable* plot(const tools::histo::h2d& a_histo) {
28 //tools::sg::plottable* p = new tools::sg::h2d2plot<tools::histo::h2d>(a_histo);
29 tools::sg::plottable* p = new tools::sg::h2d2plot(a_histo);
30 m_plots.current_plotter().add_plottable(p); //it takes ownership.
31 return p;
32 }
33
34 tools::sg::plottable* plot(const tools::histo::p1d& a_histo) {
35 tools::sg::plottable* p = new tools::sg::p1d2plot(a_histo);
36 m_plots.current_plotter().add_plottable(p); //it takes ownership.
37 return p;
38 }
39
40 tools::sg::plottable* plot(const tools::histo::c2d& a_cloud) {
41 tools::sg::plottable* p = new tools::sg::c2d2plot(a_cloud);
42 m_plots.current_plotter().add_plottable(p); //it takes ownership.
43 return p;
44 }
45
46 tools::sg::plottable* plot(const tools::histo::c3d& a_cloud) {
47 tools::sg::plottable* p = new tools::sg::c3d2plot(a_cloud);
48 m_plots.current_plotter().add_plottable(p); //it takes ownership.
49 return p;
50 }
51
52 tools::sg::plottable* plot_cp(const tools::histo::h1d& a_histo) {
53 //tools::sg::plottable* p = new tools::sg::h1d2plot_cp<tools::histo::h1d>(a_histo);
54 tools::sg::plottable* p = new tools::sg::h1d2plot_cp(a_histo);
55 m_plots.current_plotter().add_plottable(p); //it takes ownership.
56 return p;
57 }
58
59 tools::sg::plottable* plot_cp(const tools::histo::h2d& a_histo) {
60 //tools::sg::plottable* p = new tools::sg::h2d2plot_cp<tools::histo::h2d>(a_histo);
61 tools::sg::plottable* p = new tools::sg::h2d2plot_cp(a_histo);
62 m_plots.current_plotter().add_plottable(p); //it takes ownership.
63 return p;
64 }
65
66 tools::sg::plottable* plot_cp(const tools::histo::p1d& a_histo) {
67 tools::sg::plottable* p = new tools::sg::p1d2plot_cp(a_histo);
68 m_plots.current_plotter().add_plottable(p); //it takes ownership.
69 return p;
70 }
71
72
73 //tools::sg::plottable* plot(const tools::histo::p2d& a_histo) {
74 // tools::sg::plottable* p = new tools::sg::p2d2plot(a_histo);
75 // m_plots.current_plotter().add_plottable(p); //it takes ownership.
76 // return p;
77 //}
78
79 tools::sg::plottable* plot_cp(const tools::histo::c2d& a_cloud) {
80 tools::sg::plottable* p = new tools::sg::c2d2plot_cp(a_cloud);
81 m_plots.current_plotter().add_plottable(p); //it takes ownership.
82 return p;
83 }
84
85 tools::sg::plottable* plot_cp(const tools::histo::c3d& a_cloud) {
86 tools::sg::plottable* p = new tools::sg::c3d2plot_cp(a_cloud);
87 m_plots.current_plotter().add_plottable(p); //it takes ownership.
88 return p;
89 }
90
91 template <class T>
92 tools::sg::plottable* plot(const T& a_func) {
93 tools::sg::plottable* p = new tools::sg::f1d2plot<T>(a_func);
94 m_plots.current_plotter().add_plottable(p);
95 return p;
96 }
97
98 template <class T>
99 tools::sg::plottable* plot(const std::vector<T>& a_xs,const std::vector<T>& a_ys) {
100 tools::sg::plottable* p = new tools::sg::xy2plot<T>(a_xs,a_ys);
101 m_plots.current_plotter().add_plottable(p);
102 return p;
103 }
104
105 tools::sg::plottable* plot_fit(const std::vector<std::string>& a_names,const std::vector<double>& a_output) {
106 tools::sg::plottable* p = new tools::sg::fit2plot(a_names,a_output);
107 m_plots.current_plotter().add_plottable(p);
108 return p;
109 }
110