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