File indexing completed on 2026-04-07 07:52:00
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 #include "HepMCG4AsciiReaderMessenger.hh"
0030
0031 #include "HepMCG4AsciiReader.hh"
0032
0033 #include "G4UIcmdWithAString.hh"
0034 #include "G4UIcmdWithAnInteger.hh"
0035 #include "G4UIcmdWithoutParameter.hh"
0036 #include "G4UIdirectory.hh"
0037
0038
0039 HepMCG4AsciiReaderMessenger::HepMCG4AsciiReaderMessenger(HepMCG4AsciiReader* agen) : gen(agen)
0040 {
0041 dir = new G4UIdirectory("/generator/hepmcAscii/");
0042 dir->SetGuidance("Reading HepMC event from an Ascii file");
0043
0044 verbose = new G4UIcmdWithAnInteger("/generator/hepmcAscii/verbose", this);
0045 verbose->SetGuidance("Set verbose level");
0046 verbose->SetParameterName("verboseLevel", false, false);
0047 verbose->SetRange("verboseLevel>=0 && verboseLevel<=1");
0048
0049 open = new G4UIcmdWithAString("/generator/hepmcAscii/open", this);
0050 open->SetGuidance("(re)open data file (HepMC Ascii format)");
0051 open->SetParameterName("input ascii file", true, true);
0052 }
0053
0054
0055 HepMCG4AsciiReaderMessenger::~HepMCG4AsciiReaderMessenger()
0056 {
0057 delete verbose;
0058 delete open;
0059
0060 delete dir;
0061 }
0062
0063
0064 void HepMCG4AsciiReaderMessenger::SetNewValue(G4UIcommand* command, G4String newValues)
0065 {
0066 if (command == verbose) {
0067 int level = verbose->GetNewIntValue(newValues);
0068 gen->SetVerboseLevel(level);
0069 }
0070 else if (command == open) {
0071 gen->SetFileName(newValues);
0072 G4cout << "HepMC Ascii inputfile: " << gen->GetFileName() << G4endl;
0073 gen->Initialize();
0074 }
0075 }
0076
0077
0078 G4String HepMCG4AsciiReaderMessenger::GetCurrentValue(G4UIcommand* command)
0079 {
0080 G4String cv;
0081
0082 if (command == verbose) {
0083 cv = verbose->ConvertToString(gen->GetVerboseLevel());
0084 }
0085 else if (command == open) {
0086 cv = gen->GetFileName();
0087 }
0088 return cv;
0089 }