Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // ------------------------------------------- 28 // 29 // GEANT4 Class file 30 // 31 // File name: G4DeexParametersMessenger 32 // 33 // Author: Vladimir Ivanchenko 34 // 35 // Creation date: 17-10-2017 36 // 37 // Modifications: 38 // 39 // ------------------------------------------- 40 // 41 42 //....oooOO0OOooo........oooOO0OOooo........oo 43 //....oooOO0OOooo........oooOO0OOooo........oo 44 45 #include "G4DeexParametersMessenger.hh" 46 #include "G4UIdirectory.hh" 47 #include "G4UIcommand.hh" 48 #include "G4UIparameter.hh" 49 #include "G4UIcmdWithABool.hh" 50 #include "G4UIcmdWithAnInteger.hh" 51 #include "G4UIcmdWithADouble.hh" 52 #include "G4UIcmdWithADoubleAndUnit.hh" 53 #include "G4UIcmdWithAString.hh" 54 #include "G4UImanager.hh" 55 #include "G4DeexPrecoParameters.hh" 56 57 #include <sstream> 58 59 //....oooOO0OOooo........oooOO0OOooo........oo 60 61 G4DeexParametersMessenger::G4DeexParametersMes 62 : theParameters(ptr) 63 { 64 fDirectory = new G4UIdirectory("/process/had 65 fDirectory->SetGuidance("Commands for nuclea 66 67 readCmd = new G4UIcmdWithABool("/process/had 68 readCmd->SetGuidance("Enable/disable downloa 69 readCmd->SetParameterName("readIC",true); 70 readCmd->SetDefaultValue(false); 71 readCmd->AvailableForStates(G4State_PreInit) 72 readCmd->SetToBeBroadcasted(false); 73 74 icCmd = new G4UIcmdWithABool("/process/had/d 75 icCmd->SetGuidance("Enable/disable simulatio 76 icCmd->SetParameterName("IC",true); 77 icCmd->SetDefaultValue(true); 78 icCmd->AvailableForStates(G4State_PreInit); 79 80 corgCmd = new G4UIcmdWithABool("/process/had 81 corgCmd->SetGuidance("Enable/disable simulat 82 corgCmd->SetParameterName("corrG",true); 83 corgCmd->SetDefaultValue(false); 84 corgCmd->AvailableForStates(G4State_PreInit) 85 corgCmd->SetToBeBroadcasted(false); 86 87 isoCmd = new G4UIcmdWithABool("/process/had/ 88 isoCmd->SetGuidance("Enable/disable simulati 89 isoCmd->SetParameterName("isoProd",true); 90 isoCmd->SetDefaultValue(false); 91 isoCmd->AvailableForStates(G4State_PreInit); 92 isoCmd->SetToBeBroadcasted(false); 93 94 maxjCmd = new G4UIcmdWithAnInteger("/process 95 maxjCmd->SetGuidance("Set max value for 2J f 96 maxjCmd->SetParameterName("max2J",true); 97 maxjCmd->SetDefaultValue(10); 98 maxjCmd->AvailableForStates(G4State_PreInit) 99 maxjCmd->SetToBeBroadcasted(false); 100 101 verbCmd = new G4UIcmdWithAnInteger("/process 102 verbCmd->SetGuidance("Set verbosity level.") 103 verbCmd->SetParameterName("verb",true); 104 verbCmd->SetDefaultValue(1); 105 verbCmd->AvailableForStates(G4State_PreInit) 106 verbCmd->SetToBeBroadcasted(false); 107 108 xsTypeCmd = new G4UIcommand("/process/had/de 109 xsTypeCmd->SetGuidance("Defined type of inve 110 xsTypeCmd->SetGuidance(" model : PRECO 111 xsTypeCmd->SetGuidance(" type of XS : Dostr 112 xsTypeCmd->AvailableForStates(G4State_PreIni 113 xsTypeCmd->SetToBeBroadcasted(false); 114 115 auto modName = new G4UIparameter("modName",' 116 xsTypeCmd->SetParameter(modName); 117 modName->SetParameterCandidates("PRECO DEEX" 118 119 auto mtype = new G4UIparameter("TypeXS",'s', 120 xsTypeCmd->SetParameter(mtype); 121 mtype->SetParameterCandidates("Dostrovski, P 122 } 123 124 //....oooOO0OOooo........oooOO0OOooo........oo 125 126 G4DeexParametersMessenger::~G4DeexParametersMe 127 { 128 delete fDirectory; 129 130 delete readCmd; 131 delete icCmd; 132 delete corgCmd; 133 delete isoCmd; 134 delete maxjCmd; 135 delete verbCmd; 136 delete xsTypeCmd; 137 } 138 139 //....oooOO0OOooo........oooOO0OOooo........oo 140 141 void G4DeexParametersMessenger::SetNewValue(G4 142 G4String newValue) 143 { 144 if (command == readCmd) { 145 theParameters->SetStoreICLevelData(readCmd 146 } else if (command == icCmd) { 147 theParameters->SetInternalConversionFlag(i 148 } else if (command == corgCmd) { 149 theParameters->SetCorrelatedGamma(corgCmd- 150 } else if (command == isoCmd) { 151 theParameters->SetIsomerProduction(isoCmd- 152 } else if (command == maxjCmd) { 153 theParameters->SetTwoJMAX(maxjCmd->GetNewI 154 } else if (command == verbCmd) { 155 theParameters->SetVerbose(verbCmd->GetNewI 156 } else if (command == xsTypeCmd) { 157 G4String s1(""),s2(""); 158 std::istringstream is(newValue); 159 is >> s1 >> s2; 160 G4int n; 161 if (s2 == "Dostrovski") { n = 0; } 162 else if (s2 == "PARTICLEXS") { n = 1; } 163 else if (s2 == "Chatterjee") { n = 2; } 164 else if (s2 == "Kalbach") { n = 3; } 165 else { return; } 166 if (s1 == "PRECO") { theParameters->SetPre 167 if (s1 == "DEEX") { theParameters->SetDeex 168 } 169 } 170 171 //....oooOO0OOooo........oooOO0OOooo........oo 172