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().