Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4RadioactiveDecaymessenger Class Reference

#include <G4RadioactiveDecaymessenger.hh>

Inheritance diagram for G4RadioactiveDecaymessenger:
Collaboration diagram for G4RadioactiveDecaymessenger:

Public Member Functions

 G4RadioactiveDecaymessenger (G4RadioactiveDecay *theRadioactiveDecayContainer)
 
 ~G4RadioactiveDecaymessenger ()
 
void SetNewValue (G4UIcommand *command, G4String newValues)
 
- Public Member Functions inherited from G4UImessenger
 G4UImessenger ()
 
 G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
virtual ~G4UImessenger ()
 
virtual G4String GetCurrentValue (G4UIcommand *command)
 
G4bool operator== (const G4UImessenger &messenger) const
 
G4bool CommandsShouldBeInMaster () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4UImessenger
G4String ItoS (G4int i)
 
G4String DtoS (G4double a)
 
G4String BtoS (G4bool b)
 
G4int StoI (G4String s)
 
G4double StoD (G4String s)
 
G4bool StoB (G4String s)
 
void AddUIcommand (G4UIcommand *newCommand)
 
void CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true)
 
template<typename T >
T * CreateCommand (const G4String &cname, const G4String &dsc)
 
- Protected Attributes inherited from G4UImessenger
G4UIdirectorybaseDir
 
G4String baseDirName
 
G4bool commandsShouldBeInMaster
 

Detailed Description

Definition at line 71 of file G4RadioactiveDecaymessenger.hh.

Constructor & Destructor Documentation

G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger ( G4RadioactiveDecay theRadioactiveDecayContainer)

Definition at line 34 of file G4RadioactiveDecaymessenger.cc.

35 :theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
36 {
37  // main directory for control of the RDM
38  grdmDirectory = new G4UIdirectory("/grdm/");
39  grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
40 
41  // Command to define the limits on nucleus the RDM will treat.
42  nucleuslimitsCmd = new
43  G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this);
44  nucleuslimitsCmd->SetGuidance
45  ("Set the atomic weight and number limits for the RDM.");
46  nucleuslimitsCmd->SetParameterName("aMin","aMax","zMin","zMax",true);
47 
48  // The next command contols whether the decay will be treated analoguely or
49  // with variance reduction
50  analoguemcCmd = new G4UIcmdWithABool ("/grdm/analogueMC",this);
51  analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
52  analoguemcCmd->SetParameterName("AnalogueMC",true);
53  analoguemcCmd->SetDefaultValue(true);
54  //
55  // The next command contols whether beta decay will be treated faithfully or
56  // in fast mode
57  //
58  fbetaCmd = new G4UIcmdWithABool ("/grdm/fBeta",this);
59  fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
60  fbetaCmd->SetParameterName("fBeta",true);
61  fbetaCmd->SetDefaultValue(false);
62 
63  //
64  //
65  // Command to selete a logical volume for RDM.
66  //
67  avolumeCmd = new
68  G4UIcmdWithAString("/grdm/selectVolume",this);
69  avolumeCmd->SetGuidance
70  ("Suppply a logical volumes name to add it to the RDM apply list");
71  avolumeCmd->SetParameterName("aVolume",false);
72  //
73  //
74  //
75  // Command to de-selete a logical volume for RDM.
76  //
77  deavolumeCmd = new
78  G4UIcmdWithAString("/grdm/deselectVolume",this);
79  deavolumeCmd->SetGuidance
80  ("Suppply a logical volumes name to remove it from the RDM apply list");
81  deavolumeCmd->SetParameterName("aVolume",false);
82  //
83  //
84  // Command to selete all logical volumes for RDM.
85  //
86  allvolumesCmd = new
87  G4UIcmdWithoutParameter("/grdm/allVolumes",this);
88  allvolumesCmd->SetGuidance
89  (" apply RDM to all logical volumes. No parameter required.");
90  // allvolumeCmd->SetParameterName("AddAVolume",true);
91 
92  //
93  // Command to de-selete a logical volume for RDM.
94  //
95  deallvolumesCmd = new
96  G4UIcmdWithoutParameter("/grdm/noVolumes",this);
97  deallvolumesCmd->SetGuidance
98  (" RDM is not applied to any logical volumes");
99 
100  // deallvolumesCmd->SetParameterName("RemoveAVolume",true);
101  //
102  // The next command contols whether the branching ratio biasing will be applied or not
103  //
104  brbiasCmd = new G4UIcmdWithABool ("/grdm/BRbias",this);
105  brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
106  brbiasCmd->SetParameterName("BRBias",true);
107  brbiasCmd->SetDefaultValue(true);
108  //
109  // Command contols whether ICM will be applied or not
110  //
111  icmCmd = new G4UIcmdWithABool ("/grdm/applyICM",this);
112  icmCmd->SetGuidance("True: ICM is applied; false: no");
113  icmCmd->SetParameterName("applyICM",true);
114  icmCmd->SetDefaultValue(true);
115  //
116  // Command contols whether ARM will be applied or not
117  //
118  armCmd = new G4UIcmdWithABool ("/grdm/applyARM",this);
119  armCmd->SetGuidance("True: ARM is applied; false: no");
120  armCmd->SetParameterName("applyARM",true);
121  armCmd->SetDefaultValue(true);
122  //armCmd->AvailableForStates(G4State_PreInit);
123  //
124  // Command to set the h-l thresold for isomer production
125  //
126  hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this);
127  hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
128  hlthCmd->SetParameterName("hlThreshold",false);
129  // hlthCmd->SetRange("hlThreshold>0.");
130  hlthCmd->SetUnitCategory("Time");
131  // hlthCmd->AvailableForStates(G4State_PreInit);
132  //
133  // Command to define the incident particle source time profile.
134  //
135  sourcetimeprofileCmd = new
136  G4UIcmdWithAString("/grdm/sourceTimeProfile",this);
137  sourcetimeprofileCmd->SetGuidance
138  ("Supply the name of the ascii file containing the source particle time profile");
139  sourcetimeprofileCmd->SetParameterName("STimeProfile",true);
140  sourcetimeprofileCmd->SetDefaultValue("source.data");
141  //
142  //
143  // Command to define the incident particle source time profile.
144  //
145  decaybiasprofileCmd = new
146  G4UIcmdWithAString("/grdm/decayBiasProfile",this);
147  decaybiasprofileCmd->SetGuidance
148  ("Supply the name of the ascii file containing the decay bias time profile");
149  decaybiasprofileCmd->SetParameterName("DBiasProfile",true);
150  decaybiasprofileCmd->SetDefaultValue("bias.data");
151 
152  //
153  // Command to set the directional bias (collimation) vector
154  //
155  colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this);
156  colldirCmd->SetGuidance("Supply the direction vector for decay products");
157  colldirCmd->SetParameterName("X","Y","Z",false);
158 
159  //
160  // Command to set the directional bias (collimation) half angle ("cone")
161  //
162  collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this);
163  collangleCmd->SetGuidance
164  ("Supply maximum angle from direction vector for decay products");
165  collangleCmd->SetParameterName("halfAngle",false);
166  collangleCmd->SetUnitCategory("Angle");
167 
168  //
169  // This command setup the nuclei spliting parameter
170  //
171  splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this);
172  splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
173  splitnucleiCmd->SetParameterName("NSplit",true);
174  splitnucleiCmd->SetDefaultValue(1);
175  splitnucleiCmd->SetRange("NSplit>=1");
176 
177  //
178  // This command setup the verbose level of radioactive decay
179  //
180  verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this);
181  verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
182  verboseCmd->SetParameterName("VerboseLevel",true);
183  verboseCmd->SetDefaultValue(1);
184  verboseCmd->SetRange("VerboseLevel>=0");
185 
186  //
187  //This commansd allows the user to define its own decay datafile for
188  // a given isotope
189  //
190  userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this);
191  G4UIparameter* Z_para= new G4UIparameter("Z_isotope",'i',true);
192  Z_para->SetParameterRange("Z_isotope > 0");
193  Z_para->SetGuidance("Z: Charge number of isotope");
194 
195 
196  G4UIparameter* A_para= new G4UIparameter("A_isotope",'i',true);
197  A_para->SetParameterRange("A_isotope > 1");
198  A_para->SetGuidance("A: mass number of isotope");
199 
200  G4UIparameter* FileName_para= new G4UIparameter("file_name",'s',true);
201  FileName_para->SetGuidance("Name of the user data file");
202  userDecayDataCmd->SetParameter(Z_para);
203  userDecayDataCmd->SetParameter(A_para);
204  userDecayDataCmd->SetParameter(FileName_para);
205 
206  //
207  //This commands allows the user to define its own evaporation data file for
208  // a given isotope
209  //
210  userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this);
211  userEvaporationDataCmd->SetParameter(Z_para);
212  userEvaporationDataCmd->SetParameter(A_para);
213  userEvaporationDataCmd->SetParameter(FileName_para);
214 
215 
216 }
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameter(G4UIparameter *const newParameter)
Definition: G4UIcommand.hh:152
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetParameterName(const char *theNameAMin, const char *theNameAMax, const char *theNameZMin, const char *theNameZMax, G4bool omittable, G4bool currentAsDefault=true)
void SetParameterRange(const char *theRange)
void SetParameterName(const char *theNameX, const char *theNameY, const char *theNameZ, G4bool omittable, G4bool currentAsDefault=false)
void SetUnitCategory(const char *unitCategory)
void SetDefaultValue(G4bool defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetRange(const char *rs)
Definition: G4UIcommand.hh:125
void SetGuidance(const char *aGuidance)
Definition: G4UIcommand.hh:161
void SetDefaultValue(const char *defVal)
void SetDefaultValue(G4int defVal)
void SetGuidance(const char *theGuidance)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)

Here is the call graph for this function:

G4RadioactiveDecaymessenger::~G4RadioactiveDecaymessenger ( )

Definition at line 219 of file G4RadioactiveDecaymessenger.cc.

220 {
221  delete grdmDirectory;
222  delete nucleuslimitsCmd;
223  delete sourcetimeprofileCmd;
224  delete decaybiasprofileCmd;
225  delete analoguemcCmd;
226  delete fbetaCmd;
227  delete brbiasCmd;
228  delete splitnucleiCmd;
229  delete verboseCmd;
230  delete avolumeCmd;
231  delete deavolumeCmd;
232  delete allvolumesCmd;
233  delete deallvolumesCmd;
234  delete icmCmd;
235  delete armCmd;
236  delete hlthCmd;
237  delete userDecayDataCmd;
238  delete userEvaporationDataCmd;
239  delete colldirCmd;
240  delete collangleCmd;
241 
242 }

Member Function Documentation

void G4RadioactiveDecaymessenger::SetNewValue ( G4UIcommand command,
G4String  newValues 
)
virtual

Reimplemented from G4UImessenger.

Definition at line 245 of file G4RadioactiveDecaymessenger.cc.

246 {
247  if (command==nucleuslimitsCmd) {theRadioactiveDecayContainer->
248  SetNucleusLimits(nucleuslimitsCmd->GetNewNucleusLimitsValue(newValues));
249 
250  } else if (command==analoguemcCmd) {theRadioactiveDecayContainer->
251  SetAnalogueMonteCarlo(analoguemcCmd->GetNewBoolValue(newValues));
252 
253  } else if (command==fbetaCmd) {theRadioactiveDecayContainer->
254  SetFBeta(fbetaCmd->GetNewBoolValue(newValues));
255 
256  } else if (command==avolumeCmd) {theRadioactiveDecayContainer->
257  SelectAVolume(newValues);
258 
259  } else if (command==deavolumeCmd) {theRadioactiveDecayContainer->
260  DeselectAVolume(newValues);}
261  else if (command==allvolumesCmd) {theRadioactiveDecayContainer->
262  SelectAllVolumes();}
263  else if (command==deallvolumesCmd) {theRadioactiveDecayContainer->
264  DeselectAllVolumes();}
265  else if (command==brbiasCmd) {theRadioactiveDecayContainer->
266  SetBRBias(brbiasCmd->GetNewBoolValue(newValues));}
267  else if (command==sourcetimeprofileCmd) {theRadioactiveDecayContainer->
268  SetSourceTimeProfile(newValues);}
269  else if (command==decaybiasprofileCmd) {theRadioactiveDecayContainer->
270  SetDecayBias(newValues);}
271  else if (command==splitnucleiCmd) {theRadioactiveDecayContainer->
272  SetSplitNuclei(splitnucleiCmd->GetNewIntValue(newValues));}
273  else if (command==verboseCmd) {theRadioactiveDecayContainer->
274  SetVerboseLevel(verboseCmd->GetNewIntValue(newValues));}
275  else if (command==icmCmd ) {theRadioactiveDecayContainer->
276  SetICM(icmCmd->GetNewBoolValue(newValues));}
277  else if (command==armCmd ) {theRadioactiveDecayContainer->
278  SetARM(armCmd->GetNewBoolValue(newValues));}
279  else if (command==hlthCmd ) {theRadioactiveDecayContainer->
280  SetHLThreshold(hlthCmd->GetNewDoubleValue(newValues));
281 
282  } else if (command ==userDecayDataCmd){
283  G4int Z,A;
284  G4String file_name;
285  const char* nv = (const char*)newValues;
286  std::istringstream is(nv);
287  is >> Z >> A >> file_name;
288  theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
289 
290  } else if (command ==userEvaporationDataCmd){
291  G4int Z,A;
292  G4String file_name;
293  const char* nv = (const char*)newValues;
294  std::istringstream is(nv);
295  is >> Z >> A >> file_name;
297 
298  } else if (command==colldirCmd) {theRadioactiveDecayContainer->
299  SetDecayDirection(colldirCmd->GetNew3VectorValue(newValues));
300 
301  } else if (command==collangleCmd) {theRadioactiveDecayContainer->
302  SetDecayHalfAngle(collangleCmd->GetNewDoubleValue(newValues));
303  }
304 }
static G4int GetNewIntValue(const char *paramString)
G4bool AddPrivateData(G4int Z, G4int A, const G4String &filename)
static G4double GetNewDoubleValue(const char *paramString)
int G4int
Definition: G4Types.hh:78
static G4bool GetNewBoolValue(const char *paramString)
double A(double temperature)
static G4ThreeVector GetNew3VectorValue(const char *paramString)
G4NucleusLimits GetNewNucleusLimitsValue(G4String paramString)
static G4NuclearLevelData * GetInstance()
void AddUserDecayDataFile(G4int Z, G4int A, G4String filename)

Here is the call graph for this function:


The documentation for this class was generated from the following files: