Geant4-11
Functions
anonymous_namespace{G4H3ToolsManager.cc} Namespace Reference

Functions

void AddH3Annotation (tools::histo::h3d *h3d, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &yfcnName, const G4String &zfcnName)
 
void ConfigureToolsH3 (tools::histo::h3d *h3d, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const std::vector< G4double > &zedges, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &yfcnName, const G4String &zfcnName)
 
void ConfigureToolsH3 (tools::histo::h3d *h3d, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4int nzbins, G4double zmin, G4double zmax, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &yfcnName, const G4String &zfcnName, const G4String &xbinSchemeName, const G4String &ybinSchemeName, const G4String &zbinSchemeName, std::string_view className)
 
tools::histo::h3d * CreateToolsH3 (const G4String &title, const std::vector< G4double > &xedges, const std::vector< G4double > &yedges, const std::vector< G4double > &zedges, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &yfcnName, const G4String &zfcnName)
 
tools::histo::h3d * CreateToolsH3 (const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4int nzbins, G4double zmin, G4double zmax, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &zfcnName, const G4String &yfcnName, const G4String &xbinSchemeName, const G4String &ybinSchemeName, const G4String &zbinSchemeName, std::string_view className)
 
void UpdateH3Information (G4HnInformation *hnInformation, const G4String &xunitName, const G4String &yunitName, const G4String &zunitName, const G4String &xfcnName, const G4String &yfcnName, const G4String &zfcnName, G4BinScheme xbinScheme, G4BinScheme ybinScheme, G4BinScheme zbinScheme)
 

Function Documentation

◆ AddH3Annotation()

void anonymous_namespace{G4H3ToolsManager.cc}::AddH3Annotation ( tools::histo::h3d *  h3d,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String yfcnName,
const G4String zfcnName 
)

Definition at line 71 of file G4H3ToolsManager.cc.

78{
79 G4String xaxisTitle;
80 G4String yaxisTitle;
81 G4String zaxisTitle;
82 UpdateTitle(xaxisTitle, xunitName, xfcnName);
83 UpdateTitle(yaxisTitle, yunitName, yfcnName);
84 UpdateTitle(zaxisTitle, zunitName, zfcnName);
85 h3d->add_annotation(tools::histo::key_axis_x_title(), xaxisTitle);
86 h3d->add_annotation(tools::histo::key_axis_y_title(), yaxisTitle);
87 h3d->add_annotation(tools::histo::key_axis_z_title(), zaxisTitle);
88}
void UpdateTitle(G4String &title, const G4String &unitName, const G4String &fcnName)

References G4Analysis::UpdateTitle().

Referenced by G4H3ToolsManager::AddH3(), G4H3ToolsManager::CreateH3(), and G4H3ToolsManager::SetH3().

◆ ConfigureToolsH3() [1/2]

void anonymous_namespace{G4H3ToolsManager.cc}::ConfigureToolsH3 ( tools::histo::h3d *  h3d,
const std::vector< G4double > &  xedges,
const std::vector< G4double > &  yedges,
const std::vector< G4double > &  zedges,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String yfcnName,
const G4String zfcnName 
)

Definition at line 228 of file G4H3ToolsManager.cc.

238{
239 auto xunit = GetUnitValue(xunitName);
240 auto xfcn = GetFunction(xfcnName);
241 std::vector<G4double> xnewEdges;
242 ComputeEdges(xedges, xunit, xfcn, xnewEdges);
243
244 auto yunit = GetUnitValue(yunitName);
245 auto yfcn = GetFunction(yfcnName);
246 std::vector<G4double> ynewEdges;
247 ComputeEdges(yedges, yunit, yfcn, ynewEdges);
248
249 auto zunit = GetUnitValue(zunitName);
250 auto zfcn = GetFunction(zfcnName);
251 std::vector<G4double> znewEdges;
252 ComputeEdges(zedges, zunit, zfcn, znewEdges);
253
254 h3d->configure(xnewEdges, ynewEdges, znewEdges);
255}
G4double GetUnitValue(const G4String &unit)
void ComputeEdges(G4int nbins, G4double xmin, G4double xmax, G4double unit, G4Fcn fcn, G4BinScheme, std::vector< G4double > &edges)
Definition: G4BinScheme.cc:53
G4Fcn GetFunction(const G4String &fcnName)
Definition: G4Fcn.cc:36

References G4Analysis::ComputeEdges(), G4Analysis::GetFunction(), and G4Analysis::GetUnitValue().

Referenced by G4H3ToolsManager::SetH3().

◆ ConfigureToolsH3() [2/2]

void anonymous_namespace{G4H3ToolsManager.cc}::ConfigureToolsH3 ( tools::histo::h3d *  h3d,
G4int  nxbins,
G4double  xmin,
G4double  xmax,
G4int  nybins,
G4double  ymin,
G4double  ymax,
G4int  nzbins,
G4double  zmin,
G4double  zmax,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String yfcnName,
const G4String zfcnName,
const G4String xbinSchemeName,
const G4String ybinSchemeName,
const G4String zbinSchemeName,
std::string_view  className 
)

Definition at line 178 of file G4H3ToolsManager.cc.

192{
193 auto xunit = GetUnitValue(xunitName);
194 auto yunit = GetUnitValue(yunitName);
195 auto zunit = GetUnitValue(zunitName);
196 auto xfcn = GetFunction(xfcnName);
197 auto yfcn = GetFunction(yfcnName);
198 auto zfcn = GetFunction(zfcnName);
199 auto xbinScheme = GetBinScheme(xbinSchemeName);
200 auto ybinScheme = GetBinScheme(ybinSchemeName);
201 auto zbinScheme = GetBinScheme(zbinSchemeName);
202
203 if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog && zbinScheme != G4BinScheme::kLog) {
204 if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser || zbinScheme == G4BinScheme::kUser) {
205 // This should never happen, but let's make sure about it
206 // by issuing a warning
207 Warn("User binning scheme setting was ignored.\n"
208 "Linear binning will be applied with given (nbins, xmin, xmax) values.",
209 className, "ConfigureToolsH3");
210 }
211 h3d->configure(nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit),
212 nybins, yfcn(ymin/yunit), yfcn(ymax/yunit),
213 nzbins, zfcn(zmin/zunit), zfcn(zmax/zunit));
214 }
215 else {
216 // Compute bins
217 std::vector<G4double> xedges;
218 ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges);
219 std::vector<G4double> yedges;
220 ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges);
221 std::vector<G4double> zedges;
222 ComputeEdges(nzbins, zmin, zmax, zunit, zfcn, zbinScheme, zedges);
223 h3d->configure(xedges, yedges, zedges);
224 }
225}
static char className[]
Definition: G4Win32.cc:36
G4BinScheme GetBinScheme(const G4String &binSchemeName)
Definition: G4BinScheme.cc:36
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)

References className, G4Analysis::ComputeEdges(), G4Analysis::GetBinScheme(), G4Analysis::GetFunction(), G4Analysis::GetUnitValue(), kLog, kUser, and G4Analysis::Warn().

◆ CreateToolsH3() [1/2]

tools::histo::h3d * anonymous_namespace{G4H3ToolsManager.cc}::CreateToolsH3 ( const G4String title,
const std::vector< G4double > &  xedges,
const std::vector< G4double > &  yedges,
const std::vector< G4double > &  zedges,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String yfcnName,
const G4String zfcnName 
)

Definition at line 145 of file G4H3ToolsManager.cc.

156{
157 auto xunit = GetUnitValue(xunitName);
158 auto yunit = GetUnitValue(yunitName);
159 auto zunit = GetUnitValue(zunitName);
160 auto xfcn = GetFunction(xfcnName);
161 auto yfcn = GetFunction(yfcnName);
162 auto zfcn = GetFunction(zfcnName);
163
164 // Apply function
165 std::vector<G4double> xnewEdges;
166 ComputeEdges(xedges, xunit, xfcn, xnewEdges);
167 std::vector<G4double> ynewEdges;
168 ComputeEdges(yedges, yunit, yfcn, ynewEdges);
169 std::vector<G4double> znewEdges;
170 ComputeEdges(zedges, zunit, zfcn, znewEdges);
171
172 return new tools::histo::h3d(title, xnewEdges, ynewEdges, znewEdges);
173 // h3 objects are deleted in destructor and reset when
174 // closing a file.
175}

References G4Analysis::ComputeEdges(), G4Analysis::GetFunction(), and G4Analysis::GetUnitValue().

Referenced by G4H3ToolsManager::CreateH3().

◆ CreateToolsH3() [2/2]

tools::histo::h3d * anonymous_namespace{G4H3ToolsManager.cc}::CreateToolsH3 ( const G4String title,
G4int  nxbins,
G4double  xmin,
G4double  xmax,
G4int  nybins,
G4double  ymin,
G4double  ymax,
G4int  nzbins,
G4double  zmin,
G4double  zmax,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String zfcnName,
const G4String yfcnName,
const G4String xbinSchemeName,
const G4String ybinSchemeName,
const G4String zbinSchemeName,
std::string_view  className 
)

Definition at line 91 of file G4H3ToolsManager.cc.

106{
107 auto xunit = GetUnitValue(xunitName);
108 auto yunit = GetUnitValue(yunitName);
109 auto zunit = GetUnitValue(zunitName);
110 auto xfcn = GetFunction(xfcnName);
111 auto yfcn = GetFunction(yfcnName);
112 auto zfcn = GetFunction(zfcnName);
113 auto xbinScheme = GetBinScheme(xbinSchemeName);
114 auto ybinScheme = GetBinScheme(ybinSchemeName);
115 auto zbinScheme = GetBinScheme(zbinSchemeName);
116
117 if ( xbinScheme != G4BinScheme::kLog && ybinScheme != G4BinScheme::kLog && zbinScheme != G4BinScheme::kLog) {
118 if ( xbinScheme == G4BinScheme::kUser || ybinScheme == G4BinScheme::kUser || zbinScheme == G4BinScheme::kUser) {
119 // This should never happen, but let's make sure about it
120 // by issuing a warning
121 Warn("User binning scheme setting was ignored.\n"
122 "Linear binning will be applied with given (nbins, xmin, xmax) values.",
123 className, "CreateToolsH3");
124 }
125 return new tools::histo::h3d(title,
126 nxbins, xfcn(xmin/xunit), xfcn(xmax/xunit),
127 nybins, yfcn(ymin/yunit), yfcn(ymax/yunit),
128 nzbins, zfcn(zmin/zunit), zfcn(zmax/zunit));
129 // h3 objects are deleted in destructor and reset when
130 // closing a file.
131 }
132 else {
133 // Compute edges
134 std::vector<G4double> xedges;
135 ComputeEdges(nxbins, xmin, xmax, xunit, xfcn, xbinScheme, xedges);
136 std::vector<G4double> yedges;
137 ComputeEdges(nybins, ymin, ymax, yunit, yfcn, ybinScheme, yedges);
138 std::vector<G4double> zedges;
139 ComputeEdges(nzbins, zmin, zmax, zunit, zfcn, zbinScheme, zedges);
140 return new tools::histo::h3d(title, xedges, yedges, zedges);
141 }
142}

References className, G4Analysis::ComputeEdges(), G4Analysis::GetBinScheme(), G4Analysis::GetFunction(), G4Analysis::GetUnitValue(), kLog, kUser, and G4Analysis::Warn().

◆ UpdateH3Information()

void anonymous_namespace{G4H3ToolsManager.cc}::UpdateH3Information ( G4HnInformation hnInformation,
const G4String xunitName,
const G4String yunitName,
const G4String zunitName,
const G4String xfcnName,
const G4String yfcnName,
const G4String zfcnName,
G4BinScheme  xbinScheme,
G4BinScheme  ybinScheme,
G4BinScheme  zbinScheme 
)

Definition at line 54 of file G4H3ToolsManager.cc.

64{
65 hnInformation->SetDimension(kX, xunitName, xfcnName, xbinScheme);
66 hnInformation->SetDimension(kY, yunitName, yfcnName, ybinScheme);
67 hnInformation->SetDimension(kZ, zunitName, zfcnName, zbinScheme);
68}
void SetDimension(G4int dimension, const G4String &unitName, const G4String &fcnName, G4BinScheme binScheme)
constexpr G4int kX
constexpr G4int kZ
constexpr G4int kY

References G4Analysis::kX, G4Analysis::kY, G4Analysis::kZ, and G4HnInformation::SetDimension().

Referenced by G4H3ToolsManager::SetH3().