48 SetHnActivationToAllCmd();
50 SetHnPlottingToAllCmd();
52 SetHnFileNameToAllCmd();
54 auto maxDim = (fHnDimension <
kMaxDim) ? fHnDimension + 1 :
kMaxDim;
55 for (
unsigned int idim = 0; idim < maxDim; ++idim) {
56 fSetAxisLogCmd.push_back(CreateSetAxisLogCommand(idim));
68G4String G4HnMessenger::GetObjectType()
const
70 return (fHnType[0] ==
'h') ?
71 fHnType.substr(1,1) +
"D histogram" :
72 fHnType.substr(1,1) +
"D profile";
76void G4HnMessenger::AddIdParameter(
G4UIcommand& command)
79 htId->SetGuidance(
"Histogram id");
80 htId->SetParameterRange(
"id>=0");
88 auto guidance = GetObjectType() +
" " + optionName +
" option";
89 param->SetGuidance(guidance.c_str());
90 param->SetDefaultValue(
"true");
95void G4HnMessenger::SetHnAsciiCmd()
98 CreateCommand<G4UIcommand>(
"setAscii",
"Print on ascii file the ");
100 AddIdParameter(*fSetAsciiCmd);
101 AddOptionParameter(*fSetAsciiCmd,
"hnAscii");
106void G4HnMessenger::SetHnActivationCmd()
109 CreateCommand<G4UIcommand>(
"setActivation",
"Set activation to the ");
111 AddIdParameter(*fSetActivationCmd);
112 AddOptionParameter(*fSetActivationCmd,
"hnActivation");
116void G4HnMessenger::SetHnActivationToAllCmd()
118 fSetActivationAllCmd =
119 CreateCommand<G4UIcmdWithABool>(
120 "setActivationToAll",
"Set activation to all");
121 fSetActivationAllCmd->SetParameterName(
"Activation",
false);
125void G4HnMessenger::SetHnPlottingCmd()
128 CreateCommand<G4UIcommand>(
"setPlotting",
"(In)Activate batch plotting of the ");
130 AddIdParameter(*fSetPlottingCmd);
131 AddOptionParameter(*fSetPlottingCmd,
"hnPlotting");
135void G4HnMessenger::SetHnPlottingToAllCmd()
138 CreateCommand<G4UIcmdWithABool>(
139 "setPlottingToAll",
"(In)Activate batch plotting of all ");
140 fSetPlottingAllCmd->SetParameterName(
"Plotting",
false);
144void G4HnMessenger::SetHnFileNameCmd()
147 CreateCommand<G4UIcommand>(
"setFileName",
"Set the output file name for the ");
149 AddIdParameter(*fSetFileNameCmd);
152 auto guidance = GetObjectType() +
" output file name";
153 param->SetGuidance(guidance.c_str());
154 fSetFileNameCmd->SetParameter(param);
158void G4HnMessenger::SetHnFileNameToAllCmd()
161 CreateCommand<G4UIcmdWithAString>(
162 "setFileNameToAll",
"Set output file name for all ");
163 fSetFileNameAllCmd->SetParameterName(
"FileName",
false);
167std::unique_ptr<G4UIcommand>
168G4HnMessenger::CreateSetAxisLogCommand(
unsigned int idim)
171 auto axis = xyz.substr(idim, 1);
173 G4String commandName =
"set" + axis +
"axisLog";
174 G4String guidance =
"Activate " + axis +
"-axis log scale for plotting of the ";
176 auto command = CreateCommand<G4UIcommand>(commandName, guidance);
180 AddIdParameter(*command);
183 guidance = GetObjectType() +
" " + axis +
"-axis log scale";
184 parAxisLog->SetGuidance(guidance.c_str());
198 if ( command == fSetActivationAllCmd.get() ) {
199 fManager.
SetActivation(fSetActivationAllCmd->GetNewBoolValue(newValues));
203 if ( command == fSetPlottingAllCmd.get() ) {
204 fManager.
SetPlotting(fSetPlottingAllCmd->GetNewBoolValue(newValues));
208 if ( command == fSetFileNameAllCmd.get() ) {
214 std::vector<G4String> parameters;
221 "\" parameters: " + std::to_string(parameters.size()) +
223 fkClass,
"WarnAboutParameters");
230 if ( command == fSetAsciiCmd.get() ) {
235 if ( command == fSetActivationCmd.get() ) {
240 if ( command == fSetPlottingCmd.get() ) {
245 if ( command == fSetFileNameCmd.get() ) {
250 auto maxDim = (fHnDimension <
kMaxDim) ? fHnDimension + 1 :
kMaxDim;
251 for (
unsigned int idim = 0; idim < maxDim; ++idim) {
252 if ( command == fSetAxisLogCmd[idim].get() ) {
G4bool SetAxisIsLog(unsigned int idim, G4int id, G4bool isLogAxis)
void SetActivation(G4bool activation)
void SetFileName(G4int id, const G4String &fileName)
void SetAscii(G4int id, G4bool ascii)
void SetPlotting(G4int id, G4bool plotting)
~G4HnMessenger() override
void SetNewValue(G4UIcommand *command, G4String value) final
std::size_t GetParameterEntries() const
void SetParameter(G4UIparameter *const newParameter)
static G4int ConvertToInt(const char *st)
static G4bool ConvertToBool(const char *st)
void AvailableForStates(G4ApplicationState s1)
const G4String & GetCommandName() const
void Tokenize(const G4String &line, std::vector< G4String > &tokens)
constexpr unsigned int kMaxDim
void Warn(const G4String &message, const std::string_view inClass, const std::string_view inFunction)