Geant4 Cross Reference |
1 ---------------------------------------------- 1 ------------------------------------------------------------------- 2 2 3 ========================================= 3 ========================================================= 4 Geant4 - an Object-Oriented Toolkit for S 4 Geant4 - an Object-Oriented Toolkit for Simulation in HEP 5 ========================================= 5 ========================================================= 6 6 7 Chem5 7 Chem5 8 ------- 8 ------- 9 9 10 Jose Ramos-Mendez(a) and Bruce Faddegon 10 Jose Ramos-Mendez(a) and Bruce Faddegon 11 Department of Radiation Oncology, 11 Department of Radiation Oncology, 12 University of California San Francisco. 12 University of California San Francisco. 13 13 14 (a) CORRESPONDING AUTHOR 14 (a) CORRESPONDING AUTHOR 15 joserm84 _ gmail _ com 15 joserm84 _ gmail _ com 16 16 17 This example is provided by the Geant4-DNA col 17 This example is provided by the Geant4-DNA collaboration. 18 (http://geant4-dna.org) 18 (http://geant4-dna.org) 19 19 20 Any report or published results obtained using 20 Any report or published results obtained using the Geant4-DNA software shall 21 cite the following Geant4-DNA collaboration pu 21 cite the following Geant4-DNA collaboration publications: 22 Phys. Med. 31 (2015) 861-874 22 Phys. Med. 31 (2015) 861-874 23 Med. Phys. 37 (2010) 4692-4708 23 Med. Phys. 37 (2010) 4692-4708 24 24 25 Any report or published results obtained using 25 Any report or published results obtained using this example shall 26 cite the following publication: 26 cite the following publication: 27 Phys. Med. Biol. 63(10) (2018) 105014-12pp 27 Phys. Med. Biol. 63(10) (2018) 105014-12pp 28 28 29 The example is a variation of chem4, it shows 29 The example is a variation of chem4, it shows how to activate 30 chemistry code and score the radiochemical yie 30 chemistry code and score the radiochemical yield G using the contructors 31 G4EmDNAPhysics_option8 and G4EmDNAChemistry_op 31 G4EmDNAPhysics_option8 and G4EmDNAChemistry_option1 32 32 33 1 - GEOMETRY DEFINITION 33 1 - GEOMETRY DEFINITION 34 34 35 The world volume is a simple box which rep 35 The world volume is a simple box which represents a 'pseudo infinite' 36 homogeneous medium. 36 homogeneous medium. 37 37 38 Two parameters define the geometry : 38 Two parameters define the geometry : 39 - the material of the box -- for Geant4-DN 39 - the material of the box -- for Geant4-DNA it has to be water. 40 - the full size of the box. 40 - the full size of the box. 41 41 42 The default geometry is constructed in Det 42 The default geometry is constructed in DetectorConstruction class. 43 43 44 2 - PHYSICS LIST 44 2 - PHYSICS LIST 45 45 46 PhysicsList is Geant4 modular physics list 46 PhysicsList is Geant4 modular physics list using G4EmDNAPhysics_option8 & 47 G4EmDNAChemistry_option1 constructors. 47 G4EmDNAChemistry_option1 constructors. 48 48 49 3 - ACTION INITALIZATION 49 3 - ACTION INITALIZATION 50 50 51 The class ActionInitialization instantiate 51 The class ActionInitialization instantiates and registers 52 to Geant4 kernel all user action classes. 52 to Geant4 kernel all user action classes. 53 53 54 While in sequential mode the action classe 54 While in sequential mode the action classes are instantiated just once, 55 via invoking the method: 55 via invoking the method: 56 ActionInitialization::Build() 56 ActionInitialization::Build() 57 in multi-threading mode the same method is 57 in multi-threading mode the same method is invoked for each thread worker 58 and so all user action classes are defined 58 and so all user action classes are defined thread-local. 59 59 60 A run action class is instantiated both th 60 A run action class is instantiated both thread-local 61 and global that's why its instance is crea 61 and global that's why its instance is created also in the method: 62 ActionInitialization::BuildForMaster() 62 ActionInitialization::BuildForMaster() 63 which is invoked only in multi-threading m 63 which is invoked only in multi-threading mode. 64 64 65 4 - AN EVENT: THE PRIMARY GENERATOR 65 4 - AN EVENT: THE PRIMARY GENERATOR 66 66 67 The primary kinematic consists of a single 67 The primary kinematic consists of a single particle starting at the center 68 of the box. The type of the particle and i 68 of the box. The type of the particle and its energy are set in the 69 PrimaryGeneratorAction class, and can be c 69 PrimaryGeneratorAction class, and can be changed via the G4 build-in 70 commands of G4ParticleGun class. 70 commands of G4ParticleGun class. 71 The chemistry module is triggered in the S 71 The chemistry module is triggered in the StackingAction class when all 72 physical tracks have been processed. 72 physical tracks have been processed. 73 73 74 5 - DETECTOR RESPONSE: Scorers 74 5 - DETECTOR RESPONSE: Scorers 75 75 76 5.1 - Species scorer 76 5.1 - Species scorer 77 77 78 Scorers are defined in DetectorConstructio 78 Scorers are defined in DetectorConstruction::ConstructSDandField(). There is 79 one G4MultiFunctionalDetector object which 79 one G4MultiFunctionalDetector object which computes the energy deposition and 80 the number of species along time in order 80 the number of species along time in order to extract 81 the radiochemical yields: 81 the radiochemical yields: 82 (Number of species X) / (100 eV of deposit 82 (Number of species X) / (100 eV of deposited energy). 83 83 84 Run::RecordEvent(), called at end of event 84 Run::RecordEvent(), called at end of event, collects informations 85 event per event from the hits collections, 85 event per event from the hits collections, and accumulates statistic for 86 RunAction::EndOfRunAction(). 86 RunAction::EndOfRunAction(). 87 87 88 In multi-threading mode the statistics acc 88 In multi-threading mode the statistics accumulated per workers is merged 89 to the master in Run::Merge(). 89 to the master in Run::Merge(). 90 90 91 The information about G-value as a functio 91 The information about G-value as a function of the time for each 92 molecular specie is scored in a ASCII form 92 molecular specie is scored in a ASCII format 93 93 94 94 95 5.2 - Primary killer 95 5.2 - Primary killer 96 96 97 The G-values are computing for a range of 97 The G-values are computing for a range of deposited energy. 98 An infinite volume is assumed as geometric 98 An infinite volume is assumed as geometric scenario. Therefore the energy lost by the 99 primary particle equals the deposited ener 99 primary particle equals the deposited energy from all secondary particles. 100 100 101 The primary is killed once it has deposite 101 The primary is killed once it has deposited more energy than a 102 minimum threshold. 102 minimum threshold. 103 103 104 **IMPORTANT**: However, when the primary p 104 **IMPORTANT**: However, when the primary particle looses more energy 105 in few interaction steps than the maximum 105 in few interaction steps than the maximum allowed thresold, 106 the event is disregarded (=aborted). 106 the event is disregarded (=aborted). 107 107 108 These two macro commands can be used to co 108 These two macro commands can be used to control the energy loss by 109 the primary: 109 the primary: 110 110 111 /primaryKiller/eLossMin 10 keV 111 /primaryKiller/eLossMin 10 keV 112 # after 10 keV of energy loss by the prima 112 # after 10 keV of energy loss by the primary particle, the primary is killed 113 113 114 /primaryKiller/eLossMax 10.1 keV 114 /primaryKiller/eLossMax 10.1 keV 115 # if the primary particle losses more than 115 # if the primary particle losses more than 10.1 keV, the event is aborted 116 116 117 The G-values are then computed for a depos 117 The G-values are then computed for a deposited energy in the range [10.0 keV;10.1 keV]. 118 118 119 Note that if the upper boundary of the ene 119 Note that if the upper boundary of the energy lost by the primary is 120 not set, the chemistry may take a lot of t 120 not set, the chemistry may take a lot of time to compute. 121 This set of macros is embedded in the Prim 121 This set of macros is embedded in the PrimaryKiller class. 122 The species scorer must check whether the 122 The species scorer must check whether the event was aborted before taking it or not into 123 account for the computation of the results 123 account for the computation of the results. 124 124 125 6 - STACKING ACTION 125 6 - STACKING ACTION 126 126 127 StackingAction::NewStage is called when a 127 StackingAction::NewStage is called when a stack of tracks has been processed 128 (for more details, look at the Geant4 doc 128 (for more details, look at the Geant4 documentation). 129 A verification on whether physical tracks 129 A verification on whether physical tracks remain to be processed is done. 130 If no tracks remain to be processed, the 130 If no tracks remain to be processed, the chemical module is then triggered. 131 131 132 7 - VISUALISATION 132 7 - VISUALISATION 133 133 134 The visualization manager is set via the G 134 The visualization manager is set via the G4VisExecutive class 135 in the main() function in chem5.cc. 135 in the main() function in chem5.cc. 136 The initialisation of the drawing is done 136 The initialisation of the drawing is done via a set of /vis/ commands 137 in the macro vis.mac. To activate the visu 137 in the macro vis.mac. To activate the visualization mode run: 138 ./chem5 -vis 138 ./chem5 -vis 139 139 140 8 - OUTPUT 140 8 - OUTPUT 141 141 142 Physics initialization and the defined rea 142 Physics initialization and the defined reaction table are printed. 143 G4Scheduler processes the chemical stage t 143 G4Scheduler processes the chemical stage time step after time step. 144 Chemical reactions are printed. 144 Chemical reactions are printed. 145 The molecular reaction as a function of th 145 The molecular reaction as a function of the elapsed time can be displayed 146 setting the macro command /scheduler/verbo 146 setting the macro command /scheduler/verbose 1 147 147 148 9 - RELEVANT MACRO COMMANDS 148 9 - RELEVANT MACRO COMMANDS 149 /primaryKiller/eLossMin 10 keV # after 10 149 /primaryKiller/eLossMin 10 keV # after 10 keV of energy loss by the primary particle, the primary is killed 150 /primaryKiller/eLossMax 10.1 keV # if the 150 /primaryKiller/eLossMax 10.1 keV # if the primary particle losses more than 10.1 keV, the event is aborted 151 /scheduler/verbose 1 # set the verbose lev 151 /scheduler/verbose 1 # set the verbose level of the G4Scheduler class (time steps, reactions ...) 152 /scheduler/endTime 1 microsecond # set the 152 /scheduler/endTime 1 microsecond # set the time at which the simulation stops 153 /scheduler/whyDoYouStop # for advanced use 153 /scheduler/whyDoYouStop # for advanced users: print information at the end of 154 #the chemical stag 154 #the chemical stage to know why the simulation has stopped 155 155 156 10 - PLOT 156 10 - PLOT 157 The information about all the molecular sp 157 The information about all the molecular species is scored in a ASCII 158 tuple, each value corresponding to the G-v 158 tuple, each value corresponding to the G-value per time. This format is friendly 159 with a wide variety of plotting software. 159 with a wide variety of plotting software. 160 Experimental data of G-values for solvated 160 Experimental data of G-values for solvated electron and hydroxil radical (as a function of the time) 161 from the literature is available in data s 161 from the literature is available in data subdirectory, the references are provided 162 in the header of each file. Further inform 162 in the header of each file. Further information is available in Phys. Med. Biol. 63(10) (2018) 105014-12pp. 163 163 164 A gnuplot script (plot.gp) file is provide 164 A gnuplot script (plot.gp) file is provided to display the output data with the experimental data 165 << 165 166 11 - HOW TO START ? << 167 << 168 To run the example in batch mode: << 169 ./chem5 -mac beam.in << 170 or << 171 ./chem5 << 172 then the macro beam.in is processed by def << 173 << 174 In interactive mode, run: << 175 ./chem5 -gui << 176 or << 177 ./chem5 -gui gui.mac <<