Geant4-11
G4Plotter.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// Guy Barrand 25th September 2021
27//
28
29#ifndef G4PLOTTER_HH
30#define G4PLOTTER_HH
31
32#include "G4String.hh"
33
34#include <utility>
35#include <vector>
36
37namespace tools {namespace histo {class h1d;}}
38namespace tools {namespace histo {class h2d;}}
39
40class G4Plotter {
41public:
42 using RegionStyle = std::pair<unsigned int,G4String>;
43 using Parameter = std::pair<G4String,G4String>;
44 using RegionParameter = std::pair<unsigned int,Parameter>;
45 using Region_h1d = std::pair<unsigned int,tools::histo::h1d*>;
46 using Region_h2d = std::pair<unsigned int,tools::histo::h2d*>;
47 using Region_h1 = std::pair<unsigned int,int>;
48 using Region_h2 = std::pair<unsigned int,int>;
49
50 G4Plotter();
51 virtual ~G4Plotter() = default;
52 G4Plotter(const G4Plotter&);
54
55 void SetLayout(unsigned int colums,unsigned int rows);
56 void AddStyle(const G4String& style);
57 void AddRegionStyle(unsigned int region,const G4String& style);
58 void AddRegionParameter(unsigned int region,const G4String& parameter,const G4String& value);
59 void AddRegionHistogram(unsigned int region,tools::histo::h1d* histo);
60 void AddRegionHistogram(unsigned int region,tools::histo::h2d* histo);
61 void AddRegionH1(unsigned int region,int id);
62 void AddRegionH2(unsigned int region,int id);
63 void Reset();
64 void Clear();
65 void ClearRegion(unsigned int region);
66
67 unsigned int GetColumns() const {return fColumns;}
68 unsigned int GetRows() const {return fRows;}
69 const std::vector<G4String>& GetStyles() const {return fStyles;}
70 const std::vector<RegionStyle>& GetRegionStyles() const {return fRegionStyles;}
71 const std::vector<RegionParameter>& GetRegionParameters() const {return fRegionParameters;}
72 const std::vector<Region_h1d>& GetRegionH1Ds() const {return fRegion_h1ds;}
73 const std::vector<Region_h2d>& GetRegionH2Ds() const {return fRegion_h2ds;}
74
75 const std::vector<Region_h1>& GetRegionH1s() const {return fRegion_h1s;}
76 const std::vector<Region_h2>& GetRegionH2s() const {return fRegion_h2s;}
77
78private:
79 unsigned int fColumns;
80 unsigned int fRows;
81 std::vector<G4String> fStyles;
82 std::vector<RegionStyle> fRegionStyles;
83 std::vector<RegionParameter> fRegionParameters;
84 std::vector<Region_h1d> fRegion_h1ds;
85 std::vector<Region_h2d> fRegion_h2ds;
86 std::vector<Region_h1> fRegion_h1s;
87 std::vector<Region_h2> fRegion_h2s;
88};
89
90#endif
std::pair< unsigned int, G4String > RegionStyle
Definition: G4Plotter.hh:42
unsigned int GetRows() const
Definition: G4Plotter.hh:68
const std::vector< RegionParameter > & GetRegionParameters() const
Definition: G4Plotter.hh:71
std::vector< Region_h2d > fRegion_h2ds
Definition: G4Plotter.hh:85
void AddRegionH2(unsigned int region, int id)
Definition: G4Plotter.cc:80
std::vector< RegionParameter > fRegionParameters
Definition: G4Plotter.hh:83
std::vector< RegionStyle > fRegionStyles
Definition: G4Plotter.hh:82
const std::vector< G4String > & GetStyles() const
Definition: G4Plotter.hh:69
std::pair< unsigned int, tools::histo::h1d * > Region_h1d
Definition: G4Plotter.hh:45
void AddRegionStyle(unsigned int region, const G4String &style)
Definition: G4Plotter.cc:64
void AddRegionH1(unsigned int region, int id)
Definition: G4Plotter.cc:77
const std::vector< Region_h2 > & GetRegionH2s() const
Definition: G4Plotter.hh:76
const std::vector< Region_h2d > & GetRegionH2Ds() const
Definition: G4Plotter.hh:73
G4Plotter & operator=(const G4Plotter &)
Definition: G4Plotter.cc:44
virtual ~G4Plotter()=default
std::pair< unsigned int, int > Region_h2
Definition: G4Plotter.hh:48
void Clear()
Definition: G4Plotter.cc:95
std::vector< Region_h1 > fRegion_h1s
Definition: G4Plotter.hh:86
std::pair< G4String, G4String > Parameter
Definition: G4Plotter.hh:43
std::vector< Region_h1d > fRegion_h1ds
Definition: G4Plotter.hh:84
void Reset()
Definition: G4Plotter.cc:84
const std::vector< RegionStyle > & GetRegionStyles() const
Definition: G4Plotter.hh:70
std::pair< unsigned int, Parameter > RegionParameter
Definition: G4Plotter.hh:44
const std::vector< Region_h1 > & GetRegionH1s() const
Definition: G4Plotter.hh:75
std::pair< unsigned int, int > Region_h1
Definition: G4Plotter.hh:47
const std::vector< Region_h1d > & GetRegionH1Ds() const
Definition: G4Plotter.hh:72
unsigned int GetColumns() const
Definition: G4Plotter.hh:67
void AddRegionHistogram(unsigned int region, tools::histo::h1d *histo)
Definition: G4Plotter.cc:71
void AddStyle(const G4String &style)
Definition: G4Plotter.cc:61
std::vector< Region_h2 > fRegion_h2s
Definition: G4Plotter.hh:87
unsigned int fRows
Definition: G4Plotter.hh:80
void ClearRegion(unsigned int region)
Definition: G4Plotter.cc:101
std::pair< unsigned int, tools::histo::h2d * > Region_h2d
Definition: G4Plotter.hh:46
void SetLayout(unsigned int colums, unsigned int rows)
Definition: G4Plotter.cc:57
void AddRegionParameter(unsigned int region, const G4String &parameter, const G4String &value)
Definition: G4Plotter.cc:67
unsigned int fColumns
Definition: G4Plotter.hh:79
std::vector< G4String > fStyles
Definition: G4Plotter.hh:81