00001 //---------------------------------------------------------------------------// 00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00003 // // 00004 // MAJORANA Simulation // 00005 // // 00006 // This code implementation is the intellectual property of the // 00007 // MAJORANA Collaboration. It is based on Geant4, an intellectual // 00008 // property of the RD44 GEANT4 collaboration. // 00009 // // 00010 // ********************* // 00011 // // 00012 // Neither the authors of this software system, nor their employing // 00013 // institutes, nor the agencies providing financial support for this // 00014 // work make any representation or warranty, express or implied, // 00015 // regarding this software system or assume any liability for its use. // 00016 // By copying, distributing or modifying the Program (or any work based // 00017 // on on the Program) you indicate your acceptance of this statement, // 00018 // and all its terms. // 00019 // // 00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu// 00021 //---------------------------------------------------------------------------// 00032 // Begin description of class here 00039 // End class description 00040 // 00046 // 00047 // --------------------------------------------------------------------------// 00058 // --------------------------------------------------------------------------// 00059 #ifndef MJGeneratorRDMUIcmdWithNucleusAndUnit_h 00060 #define MJGeneratorRDMUIcmdWithNucleusAndUnit_h 1 00061 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00062 // 00063 // MODULE: MJGeneratorRDMUIcmdWithNucleusAndUnit.hh 00064 // 00065 // Version: 0.b.3 00066 // Date: 29/02/00 00067 // Author: F Lei & P R Truscott 00068 // Organisation: DERA UK 00069 // Customer: ESA/ESTEC, NOORDWIJK 00070 // Contract: 12115/96/JG/NL Work Order No. 3 00071 // 00072 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00073 // 00074 // Class Description 00075 // 00076 // The G4MJGeneratorRDMUIcmdWithNucleusAndUnit permits input of the nucleus definition 00077 // in terms of its (atomic weight, atomic number, excitation energy). 00078 // Input is expected in the form: 00079 // 00080 // A, Z, E (energy unit) 00081 // 00082 // where A, Z, E are respectively the atomic weight, atomic number and 00083 // excitation energy. The energy unit can be any of the geant4 defined energy 00084 // units. The default is "keV" 00085 // 00086 // class description - end 00087 // 00088 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00089 // 00090 // CHANGE HISTORY 00091 // -------------- 00092 // 00093 // 29 February 2000, P R Truscott, DERA UK 00094 // 0.b.3 release. 00095 // 00096 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00098 // 00099 // 00100 #include "G4UIcommand.hh" 00101 #include "globals.hh" 00102 00103 #include "generators/MJGeneratorRDMNucleus.hh" 00105 // 00106 class MJGeneratorRDMUIcmdWithNucleusAndUnit : public G4UIcommand 00107 { 00108 public: // with description 00109 MJGeneratorRDMUIcmdWithNucleusAndUnit 00110 (const char * theCommandPath,G4UImessenger * theMessenger); 00111 // Constructor identifying the command path in the User Interface and the 00112 // associated G4UImessenger which will use this G4UIcommand object. 00113 // 00114 ~MJGeneratorRDMUIcmdWithNucleusAndUnit(); 00115 // Desctructor 00116 // 00117 MJGeneratorRDMNucleus GetNewNucleusValue(G4String paramString); 00118 // Extracts the values A, Z, E and unit from paramString. 00119 // 00120 G4double GetNewUnitValue(G4String paramString); 00121 // Returns the value of the unit (paramString) as defined in geant4 00122 // 00123 G4String ConvertToString(MJGeneratorRDMNucleus nuc, const char * unit); 00124 // Converts the Nucleus defined by nuc and the associated units of 00125 // energy *unit into a G4String. 00126 void SetParameterName(const char * theNameA,const char * theNameZ, 00127 const char * theNameE, 00128 G4bool omittable, G4bool currentAsDefault=true); 00129 // Identifies the parameter names associated with A, Z, E 00130 // 00131 void SetDefaultValue(MJGeneratorRDMNucleus defVal); 00132 // Sets the default Nucleus if the command is invoked without any 00133 // parameters. 00134 void SetUnitCandidates(const char * candidateList); 00135 // Sets the list of unit candidates 00136 // 00137 void SetDefaultUnit(const char * defUnit); 00138 // Sets the default unit if the command is invoked without any 00139 // parameters. 00140 }; 00142 #endif 00143