57   } 
else if (first == 
"p") {
    66 void Replace(std::string& str, 
const std::string& from, 
const std::string& to) {
    68   if (from.empty()) 
return;
    70   while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
    71     str.
replace(start_pos, from.length(), to);
    72     start_pos += to.length(); 
    99   Replace(newStr, 
"UHNTYPE_", upperHnType);
   102   Replace(newStr, 
"HNTYPE_", 
fHnType);
   106   Replace(newStr, 
"NDIM_", second);
   111   Replace(newStr, 
"LOBJECT", lowerObjectType);
   114   Replace(newStr, 
"OBJECT", ObjectType(
fHnType));
   119   Replace(newStr, 
"UAXIS", upperAxis);
   122   Replace(newStr, 
"AXIS", axis);
   133 std::unique_ptr<G4UIdirectory> 
   137   directory->SetGuidance(
Update(
"NDIM_D LOBJECT control"));
   142 std::unique_ptr<G4UIcommand> 
   146   parId->SetGuidance(
Update(
"OBJECT id"));
   147   parId->SetParameterRange(
"id>=0");
   150   parTitle->SetGuidance(
Update(
"OBJECT title"));
   151   parTitle->SetDefaultValue(
"none");
   153   std::unique_ptr<G4UIcommand> command(
   155   command->SetGuidance(
Update(
"Set title for the NDIM_D LOBJECT of given id"));
   156   command->SetParameter(parId);
   157   command->SetParameter(parTitle);
   165 std::unique_ptr<G4UIcommand> 
   170   parId->SetGuidance(
Update( 
"OBJECT id"));
   171   parId->SetParameterRange(
"id>=0");
   174   parNbins->SetGuidance(
"Number of bins");
   177   parValMin->SetGuidance(
"Minimum value, expressed in unit");
   180   parValMax->SetGuidance(
"Maximum value, expressed in unit");
   183   parValUnit->SetGuidance(
"The unit applied to filled values and valMin, valMax");
   184   parValUnit->SetDefaultValue(
"none");
   187   parValFcn->SetParameterCandidates(
"log log10 exp none");
   188   G4String fcnGuidance = 
"The function applied to filled values (log, log10, exp, none).\n";
   189   fcnGuidance += 
"Note that the unit parameter cannot be omitted in this case,\n";
   190   fcnGuidance += 
"but none value should be used instead.";
   191   parValFcn->SetGuidance(fcnGuidance);
   192   parValFcn->SetDefaultValue(
"none");
   194   auto parValBinScheme = 
new G4UIparameter(
"valBinScheme", 
's', 
true);
   195   parValBinScheme->SetParameterCandidates(
"linear log");
   196   G4String binSchemeGuidance = 
"The binning scheme (linear, log).\n";
   198     += 
"Note that the unit and fcn parameters cannot be omitted in this case,\n";
   199   binSchemeGuidance += 
"but none value should be used instead.";
   200   parValBinScheme->SetGuidance(binSchemeGuidance);
   201   parValBinScheme->SetDefaultValue(
"linear");
   203   std::unique_ptr<G4UIcommand> command(
   205   command->SetGuidance(
Update(
"Set parameters for the NDIM_D LOBJECT of given id:"));
   206   command->SetGuidance(
   207     Update(
"  nAXISbins; AXISvalMin; AXISvalMax; AXISunit; AXISfunction; AXISbinScheme", axis));
   208   command->SetParameter(parId);
   209   command->SetParameter(parNbins);
   210   command->SetParameter(parValMin);
   211   command->SetParameter(parValMax);
   212   command->SetParameter(parValUnit);
   213   command->SetParameter(parValFcn);
   214   command->SetParameter(parValBinScheme);
   221  std::unique_ptr<G4UIcommand>  
   226   parId->SetGuidance(
Update(
"OBJECT id"));
   227   parId->SetParameterRange(
"id>=0");
   230   parValMin->SetGuidance(
Update(
"Minimum AXIS-value expressed in unit", axis));
   233   parValMax->SetGuidance(
Update(
"Maximum AXIS-value expressed in unit", axis));
   236   parValUnit->SetGuidance(
"The unit applied to filled values and valMin, valMax");
   237   parValUnit->SetDefaultValue(
"none");
   240   parValFcn->SetParameterCandidates(
"log log10 exp none");
   241   G4String fcnGuidance = 
"The function applied to filled values (log, log10, exp, none).\n";
   242   fcnGuidance += 
"Note that the unit parameter cannot be omitted in this case,\n";
   243   fcnGuidance += 
"but none value should be used instead.";
   244   parValFcn->SetGuidance(fcnGuidance);
   245   parValFcn->SetDefaultValue(
"none");
   247   std::unique_ptr<G4UIcommand> command(
   249   command->SetGuidance(
Update(
"Set parameters for the NDIM_D LOBJECT of #id:"));
   250   command->SetGuidance(
   251     Update(
"  AXISvalMin; AXISvalMax; AXISunit; AXISfunction", axis));
   258 std::unique_ptr<G4UIcommand> 
   263   parId->SetGuidance(
Update(
"OBJECT id"));
   264   parId->SetParameterRange(
"id>=0");
   267   parAxis->SetGuidance(
Update(
"Histogram AXIS-axis title", axis));
   268   parAxis->SetDefaultValue(
"none");
   270   std::unique_ptr<G4UIcommand> command( 
   272   command->SetGuidance(
Update(
"Set AXIS-axis title for the NDIM_D LOBJECT of given id", axis));
   273   command->SetParameter(parId);
   274   command->SetParameter(parAxis);
   282                                            std::vector<G4String>& parameters, 
   283                                            G4int& counter)
 const   288   data.
fSunit = parameters[counter++];
   289   data.
fSfcn = parameters[counter++];
   295                                              std::vector<G4String>& parameters, 
   296                                              G4int& counter)
 const   300   data.
fSunit = parameters[counter++];
   301   data.
fSfcn = parameters[counter++];
   306                                                     G4int nofParameters)
 const   311     << 
"\" parameters: " << nofParameters
   324     << 
"Command setX, setY, setZ must be called sucessively in this order. " << 
G4endl   325     << 
"Command was ignored." << 
G4endl;
 std::unique_ptr< G4UIcommand > CreateSetAxisCommand(const G4String &axis, G4UImessenger *messenger) const
 
const G4String & GetCommandName() const
 
std::ostringstream G4ExceptionDescription
 
std::unique_ptr< G4UIcommand > CreateSetTitleCommand(G4UImessenger *messenger) const
 
std::unique_ptr< G4UIdirectory > CreateHnDirectory() const
 
std::unique_ptr< G4UIcommand > CreateSetBinsCommand(const G4String &axis, G4UImessenger *messenger) const
 
void GetBinData(BinData &data, std::vector< G4String > ¶meters, G4int &counter) const
 
void WarnAboutSetCommands() const
 
G4String & replace(unsigned int, unsigned int, const char *, unsigned int)
 
void WarnAboutParameters(G4UIcommand *command, G4int nofParameters) const
 
void GetValueData(ValueData &data, std::vector< G4String > ¶meters, G4int &counter) const
 
static G4double ConvertToDouble(const char *st)
 
static const double second
 
G4String Update(const G4String &str, const G4String &axis="") const
 
~G4AnalysisMessengerHelper()
 
static G4int ConvertToInt(const char *st)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
G4AnalysisMessengerHelper(const G4String &hnType)
 
std::unique_ptr< G4UIcommand > CreateSetValuesCommand(const G4String &axis, G4UImessenger *messenger) const
 
G4int GetParameterEntries() const