G4RadioactiveDecaymessenger Class Reference

#include <G4RadioactiveDecaymessenger.hh>

Inheritance diagram for G4RadioactiveDecaymessenger:

G4UImessenger

Public Member Functions

 G4RadioactiveDecaymessenger (G4RadioactiveDecay *theRadioactiveDecayContainer)
 ~G4RadioactiveDecaymessenger ()
void SetNewValue (G4UIcommand *command, G4String newValues)

Detailed Description

Definition at line 71 of file G4RadioactiveDecaymessenger.hh.


Constructor & Destructor Documentation

G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger ( G4RadioactiveDecay theRadioactiveDecayContainer  ) 

Definition at line 36 of file G4RadioactiveDecaymessenger.cc.

References G4UIparameter::SetGuidance(), and G4UIparameter::SetParameterRange().

00037 :theRadioactiveDecayContainer(theRadioactiveDecayContainer1)
00038 {
00039   //
00040   //
00041   // main directory for control of the RDM
00042   //
00043   //
00044   grdmDirectory = new G4UIdirectory("/grdm/");
00045   grdmDirectory->SetGuidance("Controls for the Radioactive Decay Module.");
00046   //
00047   //
00048   // Command to define the limits on nucleus the RDM will treat.
00049   //
00050   nucleuslimitsCmd = new
00051     G4UIcmdWithNucleusLimits("/grdm/nucleusLimits",this);
00052   nucleuslimitsCmd->SetGuidance 
00053     ("Set the atomic weight and number limits for the RDM.");
00054   nucleuslimitsCmd->SetParameterName("aMin","aMax","zMin","zMax",true);
00055   //
00056 
00057   //
00058   // The next command contols whether the decay will be treated analoguely or 
00059   // with variance reduction
00060   //
00061   analoguemcCmd = new G4UIcmdWithABool ("/grdm/analogueMC",this);
00062   analoguemcCmd->SetGuidance("false: variance reduction method; true: analogue method");
00063   analoguemcCmd->SetParameterName("AnalogueMC",true);
00064   analoguemcCmd->SetDefaultValue(true);
00065   //
00066   // The next command contols whether beta decay will be treated faithfully or 
00067   // in fast mode
00068   //
00069   fbetaCmd = new G4UIcmdWithABool ("/grdm/fBeta",this);
00070   fbetaCmd->SetGuidance("false: use 3-body decay, true: use histogram method");
00071   fbetaCmd->SetParameterName("fBeta",true);
00072   fbetaCmd->SetDefaultValue(false);
00073 
00074   //
00075   //
00076   // Command to selete a logical volume for RDM.
00077   //
00078   avolumeCmd = new
00079     G4UIcmdWithAString("/grdm/selectVolume",this);
00080   avolumeCmd->SetGuidance 
00081     ("Suppply a logical volumes name to add it to the RDM apply list");
00082   avolumeCmd->SetParameterName("aVolume",false);
00083   //
00084   //
00085   //
00086   // Command to de-selete a logical volume for RDM.
00087   //
00088   deavolumeCmd = new
00089     G4UIcmdWithAString("/grdm/deselectVolume",this);
00090   deavolumeCmd->SetGuidance 
00091     ("Suppply a logical volumes name to remove it from the RDM apply list");
00092   deavolumeCmd->SetParameterName("aVolume",false);
00093   //
00094   //
00095   // Command to selete all logical volumes for RDM.
00096   //
00097   allvolumesCmd = new
00098     G4UIcmdWithoutParameter("/grdm/allVolumes",this);
00099   allvolumesCmd->SetGuidance 
00100     (" apply RDM to all logical volumes. No parameter required.");
00101   //  allvolumeCmd->SetParameterName("AddAVolume",true);
00102 
00103   //
00104   // Command to de-selete a logical volume for RDM.
00105   //
00106   deallvolumesCmd = new
00107     G4UIcmdWithoutParameter("/grdm/noVolumes",this);
00108   deallvolumesCmd->SetGuidance 
00109     (" RDM is not applied to any logical volumes");
00110 
00111   //  deallvolumesCmd->SetParameterName("RemoveAVolume",true);
00112   //
00113   // The next command contols whether the branching ratio biasing will be applied or not
00114   //
00115   brbiasCmd = new G4UIcmdWithABool ("/grdm/BRbias",this);
00116   brbiasCmd->SetGuidance("false: no biasing; true: all branches are treated as equal");
00117   brbiasCmd->SetParameterName("BRBias",true);
00118   brbiasCmd->SetDefaultValue(true);
00119   //
00120   // Command contols whether ICM will be applied or not
00121   //
00122   icmCmd = new G4UIcmdWithABool ("/grdm/applyICM",this);
00123   icmCmd->SetGuidance("True: ICM is applied; false: no");
00124   icmCmd->SetParameterName("applyICM",true);
00125   icmCmd->SetDefaultValue(true);
00126   //icmCmd->AvailableForStates(G4State_PreInit);
00127   //
00128   // Command contols whether ARM will be applied or not
00129   //
00130   armCmd = new G4UIcmdWithABool ("/grdm/applyARM",this);
00131   armCmd->SetGuidance("True: ARM is applied; false: no");
00132   armCmd->SetParameterName("applyARM",true);
00133   armCmd->SetDefaultValue(true);
00134   //armCmd->AvailableForStates(G4State_PreInit);
00135   //
00136   // Command to set the h-l thresold for isomer production
00137   //
00138   hlthCmd = new G4UIcmdWithADoubleAndUnit("/grdm/hlThreshold",this);
00139   hlthCmd->SetGuidance("Set the h-l threshold for isomer production");
00140   hlthCmd->SetParameterName("hlThreshold",false);
00141   // hlthCmd->SetRange("hlThreshold>0.");
00142   hlthCmd->SetUnitCategory("Time");
00143   //  hlthCmd->AvailableForStates(G4State_PreInit);
00144   //
00145   // Command to define the incident particle source time profile.
00146   //
00147   sourcetimeprofileCmd = new
00148     G4UIcmdWithAString("/grdm/sourceTimeProfile",this);
00149   sourcetimeprofileCmd->SetGuidance 
00150     ("Supply the name of the ascii file containing the source particle time profile");
00151   sourcetimeprofileCmd->SetParameterName("STimeProfile",true);
00152   sourcetimeprofileCmd->SetDefaultValue("source.data");
00153   //
00154   //
00155   // Command to define the incident particle source time profile.
00156   //
00157   decaybiasprofileCmd = new
00158     G4UIcmdWithAString("/grdm/decayBiasProfile",this);
00159   decaybiasprofileCmd->SetGuidance 
00160     ("Supply the name of the ascii file containing the decay bias time profile");
00161   decaybiasprofileCmd->SetParameterName("DBiasProfile",true);
00162   decaybiasprofileCmd->SetDefaultValue("bias.data");
00163 
00164   //
00165   // Command to set the directional bias (collimation) vector
00166   //
00167   colldirCmd = new G4UIcmdWith3Vector("/grdm/decayDirection",this);
00168   colldirCmd->SetGuidance("Supply the direction vector for decay products");
00169   colldirCmd->SetParameterName("X","Y","Z",false);
00170 
00171   //
00172   // Command to set the directional bias (collimation) half angle ("cone")
00173   //
00174   collangleCmd = new G4UIcmdWithADoubleAndUnit("/grdm/decayHalfAngle",this);
00175   collangleCmd->SetGuidance
00176     ("Supply maximum angle from direction vector for decay products");
00177   collangleCmd->SetParameterName("halfAngle",false);
00178   collangleCmd->SetUnitCategory("Angle");
00179 
00180   //
00181   // This command setup the nuclei spliting parameter
00182   //
00183   splitnucleiCmd = new G4UIcmdWithAnInteger("/grdm/splitNuclei",this);
00184   splitnucleiCmd->SetGuidance("Set number of spliting for the isotopes.");
00185   splitnucleiCmd->SetParameterName("NSplit",true);
00186   splitnucleiCmd->SetDefaultValue(1);
00187   splitnucleiCmd->SetRange("NSplit>=1");
00188 
00189   //
00190   // This command setup the verbose level of radioactive decay
00191   //
00192   verboseCmd = new G4UIcmdWithAnInteger("/grdm/verbose",this);
00193   verboseCmd->SetGuidance("Set verbose level: 0, 1, 2 or 3");
00194   verboseCmd->SetParameterName("VerboseLevel",true);
00195   verboseCmd->SetDefaultValue(1);
00196   verboseCmd->SetRange("VerboseLevel>=0");
00197 
00198   //
00199   //This commansd allows the user to define its own decay datafile for
00200   // a given isotope
00201   //
00202   userDecayDataCmd = new G4UIcommand("/grdm/setRadioactiveDecayFile",this);
00203   G4UIparameter*  Z_para= new G4UIparameter("Z_isotope",'i',true);
00204   Z_para->SetParameterRange("Z_isotope > 0");
00205   Z_para->SetGuidance("Z: Charge number of isotope");
00206 
00207 
00208   G4UIparameter*  A_para= new G4UIparameter("A_isotope",'i',true);
00209   A_para->SetParameterRange("A_isotope > 1");
00210   A_para->SetGuidance("A: mass number of isotope");
00211 
00212   G4UIparameter*  FileName_para= new G4UIparameter("file_name",'s',true);
00213   FileName_para->SetGuidance("Name of the user data file");
00214   userDecayDataCmd->SetParameter(Z_para);
00215   userDecayDataCmd->SetParameter(A_para);
00216   userDecayDataCmd->SetParameter(FileName_para);
00217 
00218   //
00219   //This commands allows the user to define its own evaporation data file for
00220   // a given isotope
00221   //
00222   userEvaporationDataCmd = new G4UIcommand("/grdm/setPhotoEvaporationFile",this);
00223   userEvaporationDataCmd->SetParameter(Z_para);
00224   userEvaporationDataCmd->SetParameter(A_para);
00225   userEvaporationDataCmd->SetParameter(FileName_para);
00226 
00227 
00228 }

G4RadioactiveDecaymessenger::~G4RadioactiveDecaymessenger (  ) 

Definition at line 231 of file G4RadioactiveDecaymessenger.cc.

00232 {
00233   delete grdmDirectory;
00234   delete nucleuslimitsCmd;
00235   delete sourcetimeprofileCmd;
00236   delete decaybiasprofileCmd;
00237   delete analoguemcCmd;
00238   delete fbetaCmd;
00239   delete brbiasCmd;
00240   delete splitnucleiCmd;
00241   delete verboseCmd;
00242   delete avolumeCmd;
00243   delete deavolumeCmd;
00244   delete allvolumesCmd;
00245   delete deallvolumesCmd;
00246   delete icmCmd;
00247   delete armCmd;
00248   delete hlthCmd;
00249   delete userDecayDataCmd;
00250   delete userEvaporationDataCmd;
00251   delete colldirCmd;
00252   delete collangleCmd;
00253 
00254 }


Member Function Documentation

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

Reimplemented from G4UImessenger.

Definition at line 257 of file G4RadioactiveDecaymessenger.cc.

References G4RadioactiveDecay::AddUserDecayDataFile(), G4NuclearLevelStore::AddUserEvaporationDataFile(), G4NuclearLevelStore::GetInstance(), G4UIcmdWith3Vector::GetNew3VectorValue(), G4UIcmdWithABool::GetNewBoolValue(), G4UIcmdWithADoubleAndUnit::GetNewDoubleValue(), G4UIcmdWithAnInteger::GetNewIntValue(), and G4UIcmdWithNucleusLimits::GetNewNucleusLimitsValue().

00258 {
00259   if (command==nucleuslimitsCmd) {theRadioactiveDecayContainer->
00260       SetNucleusLimits(nucleuslimitsCmd->GetNewNucleusLimitsValue(newValues));}
00261   else if  (command==analoguemcCmd) {theRadioactiveDecayContainer->
00262       SetAnalogueMonteCarlo(analoguemcCmd->GetNewBoolValue(newValues));}
00263   else if  (command==fbetaCmd) {theRadioactiveDecayContainer->
00264       SetFBeta(fbetaCmd->GetNewBoolValue(newValues));}
00265   else if  (command==avolumeCmd) {theRadioactiveDecayContainer->
00266       SelectAVolume(newValues);}
00267   else if  (command==deavolumeCmd) {theRadioactiveDecayContainer->
00268       DeselectAVolume(newValues);}
00269   else if  (command==allvolumesCmd) {theRadioactiveDecayContainer->
00270       SelectAllVolumes();}
00271   else if  (command==deallvolumesCmd) {theRadioactiveDecayContainer->
00272       DeselectAllVolumes();}
00273   else if  (command==brbiasCmd) {theRadioactiveDecayContainer->
00274       SetBRBias(brbiasCmd->GetNewBoolValue(newValues));}
00275   else if (command==sourcetimeprofileCmd) {theRadioactiveDecayContainer->
00276       SetSourceTimeProfile(newValues);}
00277   else if (command==decaybiasprofileCmd) {theRadioactiveDecayContainer->
00278       SetDecayBias(newValues);}
00279   else if (command==splitnucleiCmd) {theRadioactiveDecayContainer->
00280       SetSplitNuclei(splitnucleiCmd->GetNewIntValue(newValues));}
00281   else if (command==verboseCmd) {theRadioactiveDecayContainer->
00282       SetVerboseLevel(verboseCmd->GetNewIntValue(newValues));}
00283   else if (command==icmCmd ) {theRadioactiveDecayContainer->
00284       SetICM(icmCmd->GetNewBoolValue(newValues));}
00285   else if (command==armCmd ) {theRadioactiveDecayContainer->
00286       SetARM(armCmd->GetNewBoolValue(newValues));}
00287   else if (command==hlthCmd ) {theRadioactiveDecayContainer->
00288       SetHLThreshold(hlthCmd->GetNewDoubleValue(newValues));}
00289 
00290   else if (command ==userDecayDataCmd){
00291           G4int  Z,A;
00292           G4String  file_name;
00293           const char* nv = (const char*)newValues;
00294           std::istringstream is(nv);
00295           is >> Z>>A>>file_name;
00296           theRadioactiveDecayContainer->AddUserDecayDataFile(Z,A,file_name);
00297   }
00298   else if (command ==userEvaporationDataCmd){
00299           G4int  Z,A;
00300           G4String  file_name;
00301           const char* nv = (const char*)newValues;
00302           std::istringstream is(nv);
00303           is >> Z>>A>>file_name;
00304           G4NuclearLevelStore::GetInstance()->AddUserEvaporationDataFile(Z,A,file_name);
00305   }
00306   else if (command==colldirCmd) {theRadioactiveDecayContainer->
00307       SetDecayDirection(colldirCmd->GetNew3VectorValue(newValues));}
00308   else if (command==collangleCmd) {theRadioactiveDecayContainer->
00309       SetDecayHalfAngle(collangleCmd->GetNewDoubleValue(newValues));}
00310 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:15 2013 for Geant4 by  doxygen 1.4.7