Warning, file /geant4/examples/extended/eventgenerator/pythia/decayer6/src/G4Pythia6DecayerMessenger.cc was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 #include "G4Pythia6DecayerMessenger.hh"
0038
0039 #include "EDecayType.hh"
0040
0041 #include "G4Pythia6Decayer.hh"
0042
0043 #include <G4UIcmdWithAnInteger.hh>
0044 #include <G4UIdirectory.hh>
0045 #include <sstream>
0046
0047
0048
0049 G4Pythia6DecayerMessenger::G4Pythia6DecayerMessenger(G4Pythia6Decayer* pythia6Decayer)
0050 : G4UImessenger(),
0051 fPythia6Decayer(pythia6Decayer),
0052 fDirectory(0),
0053 fVerboseCmd(0),
0054 fDecayTypeCmd(0)
0055 {
0056
0057
0058 fDirectory = new G4UIdirectory("/pythia6Decayer/");
0059 fDirectory->SetGuidance("G4Pythia6Decayer control commands.");
0060
0061 fVerboseCmd = new G4UIcmdWithAnInteger("/pythia6Decayer/verbose", this);
0062 fVerboseCmd->SetGuidance("Set Pythia6Decayer verbose level");
0063 fVerboseCmd->SetParameterName("VerboseLevel", false);
0064 fVerboseCmd->SetRange("VerboseLevel >= 0 && VerboseLevel <= 1");
0065 fVerboseCmd->AvailableForStates(G4State_Idle);
0066
0067 fDecayTypeCmd = new G4UIcmdWithAnInteger("/pythia6Decayer/forceDecayType", this);
0068 fDecayTypeCmd->SetGuidance("Force the specified decay type");
0069 fDecayTypeCmd->SetParameterName("DecayType", false);
0070 std::ostringstream os;
0071 os << "DecayType >= " << kSemiElectronic << " && DecayType <= " << kMaxDecay;
0072 fDecayTypeCmd->SetRange(os.str().c_str());
0073 fDecayTypeCmd->AvailableForStates(G4State_Idle);
0074 }
0075
0076
0077
0078 G4Pythia6DecayerMessenger::~G4Pythia6DecayerMessenger()
0079 {
0080
0081
0082 delete fDirectory;
0083 delete fVerboseCmd;
0084 delete fDecayTypeCmd;
0085 }
0086
0087
0088
0089
0090
0091
0092
0093 void G4Pythia6DecayerMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
0094 {
0095
0096
0097 if (command == fVerboseCmd) {
0098 fPythia6Decayer->SetVerboseLevel(fVerboseCmd->GetNewIntValue(newValue));
0099 }
0100 else if (command == fDecayTypeCmd) {
0101 fPythia6Decayer->ForceDecayType(EDecayType(fDecayTypeCmd->GetNewIntValue(newValue)));
0102 }
0103 }
0104
0105