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 OpNovice 7 OpNovice 8 -------- 8 -------- 9 9 10 This example presently illustrates the followi 10 This example presently illustrates the following basic concepts, and in 11 particular (indicated with ***), how to use G4 11 particular (indicated with ***), how to use G4 for optical photon 12 generation and transport. Other extended examp 12 generation and transport. Other extended example of what is possible 13 in Geant4 with optical photons can be found at 13 in Geant4 with optical photons can be found at 14 examples/extended/optical/LXe and wls. 14 examples/extended/optical/LXe and wls. 15 15 16 main() 16 main() 17 ------ 17 ------ 18 18 19 ==> define Random Number generator initial se 19 ==> define Random Number generator initial seed 20 20 21 G4Optical Physics 21 G4Optical Physics 22 ----------------- 22 ----------------- 23 23 24 The G4OpticalPhysics physics class is used. T 24 The G4OpticalPhysics physics class is used. The messenger is the 25 G4OpticalParametersMessenger class. 25 G4OpticalParametersMessenger class. 26 26 27 ==> define particles; including *** G4Optical 27 ==> define particles; including *** G4OpticalPhoton *** 28 define processes; including *** G4Cerenko 28 define processes; including *** G4Cerenkov *** 29 *** G4Scintil 29 *** G4Scintillation *** 30 *** G4OpAbsor 30 *** G4OpAbsorption *** 31 *** G4OpRayle 31 *** G4OpRayleigh *** 32 *** G4OpBound 32 *** G4OpBoundaryProcess *** 33 33 34 ==> A messenger command allows to define inte 34 ==> A messenger command allows to define interactively the 35 verbose level and the maximum number of C 35 verbose level and the maximum number of Cerenkov photons per step 36 (see for instance OpNovice.in) 36 (see for instance OpNovice.in) 37 37 38 G4VUserDetectorConstruction 38 G4VUserDetectorConstruction 39 --------------------------- 39 --------------------------- 40 40 41 ==> define material: Air and Water 41 ==> define material: Air and Water 42 define simple G4box geometry 42 define simple G4box geometry 43 *** add G4MaterialPropertiesTable to G4Ma 43 *** add G4MaterialPropertiesTable to G4Material *** 44 *** define G4LogicalSurface(s) 44 *** define G4LogicalSurface(s) *** 45 *** define G4OpticalSurface 45 *** define G4OpticalSurface *** 46 *** add G4MaterialPropertiesTable to G4Op 46 *** add G4MaterialPropertiesTable to G4OpticalSurface *** 47 47 48 alternatively the Configuration can be read fr 48 alternatively the Configuration can be read from a gdml file. 49 The provided gdml file NoviceExample.gdml corr 49 The provided gdml file NoviceExample.gdml corresponds to the detector 50 defined in OpNoviceDetectorConstruction. 50 defined in OpNoviceDetectorConstruction. 51 51 52 G4VUserPrimaryGeneratorAction 52 G4VUserPrimaryGeneratorAction 53 ----------------------------- 53 ----------------------------- 54 54 55 ==> Use G4ParticleGun to shoot a charge parti 55 ==> Use G4ParticleGun to shoot a charge particle into a Cerenkov radiator 56 56 57 ==> A messenger command allows to define inte 57 ==> A messenger command allows to define interactively the polarization of an 58 primary optical photon (see for instance 58 primary optical photon (see for instance optPhoton.mac) 59 59 60 G4UserRunAction and G4Run 60 G4UserRunAction and G4Run 61 ------------------------- 61 ------------------------- 62 62 63 Used to accumulate statistics. 63 Used to accumulate statistics. 64 64 65 G4UserStackingAction and G4UserEventAction 65 G4UserStackingAction and G4UserEventAction 66 ------------------------------------------ 66 ------------------------------------------ 67 67 68 ==> show how to count the number of secondary 68 ==> show how to count the number of secondary particles in an event 69 69 70 Visualisation 70 Visualisation 71 ------------- 71 ------------- 72 72 73 The Visualization Manager is set in the main( 73 The Visualization Manager is set in the main(). 74 The initialisation of the drawing is done via 74 The initialisation of the drawing is done via a set of /vis/ commands 75 in the macro vis.mac. This macro is automatic 75 in the macro vis.mac. This macro is automatically read from 76 the main in case of interactive running mode. 76 the main in case of interactive running mode. 77 77 78 The detector has a default view which is a lo 78 The detector has a default view which is a longitudinal view of the tank. 79 The tracks are drawn at the end of event, and 79 The tracks are drawn at the end of event, and erased at the end of run. 80 80 81 HOW TO START 81 HOW TO START 82 ------------ 82 ------------ 83 83 84 - compile and link to generate an executable 84 - compile and link to generate an executable 85 85 86 This example handles the program arguments 86 This example handles the program arguments in a new way. 87 It can be run with the following optional o 87 It can be run with the following optional optionaarguments: 88 $ OpNovice [-g gdmlfile] [-m macro ] [-u UI 88 $ OpNovice [-g gdmlfile] [-m macro ] [-u UIsession] [-t nThreads] 89 89 90 The -t option is available only in multi-th 90 The -t option is available only in multi-threading mode 91 and it allows the user to override the Gean 91 and it allows the user to override the Geant4 default number of 92 threads. The number of threads can be also 92 threads. The number of threads can be also set via G4FORCENUMBEROFTHREADS 93 environment variable which has the top prio 93 environment variable which has the top priority. 94 94 95 - execute OpNovice in 'batch' mode from macro 95 - execute OpNovice in 'batch' mode from macro files 96 $ OpNovice -m OpNovice.in 96 $ OpNovice -m OpNovice.in 97 97 98 - execute OpNovice in 'batch' mode from macro 98 - execute OpNovice in 'batch' mode from macro files using a gdml file 99 to define the geometry 99 to define the geometry 100 $ OpNovice -g NoviceExample.gdml -m OpNovice 100 $ OpNovice -g NoviceExample.gdml -m OpNovice.in 101 101 102 - execute OpNovice in 'interactive mode' with 102 - execute OpNovice in 'interactive mode' with visualization 103 $ OpNovice 103 $ OpNovice 104 .... 104 .... 105 Idle> type your commands. For instance: 105 Idle> type your commands. For instance: 106 Idle> /control/execute optPhoton.mac 106 Idle> /control/execute optPhoton.mac 107 .... 107 .... 108 Idle> exit 108 Idle> exit 109 109 110 Macros 110 Macros 111 ------ 111 ------ 112 112 113 The following macros are provided: 113 The following macros are provided: 114 114 115 - optPhoton.mac: Shoot optical photons with e << 115 optPhoton.mac: Shoot optical photons with energy 3 eV 116 - OpNovice.in: Shoot positrons with energy 50 << 116 OpNovice.in: Shoot positrons with energy 500 keV. 117 - gui.mac: Configure the graphical user inter << 117 gui.mac: Configure the graphical user interface. 118 - vis.mac: Configure visualization. << 118 vis.mac: Configure visualization.ls 119 119 120 120 121 gdml files 121 gdml files 122 ---------- 122 ---------- 123 NoviceExample.gdml: example gdml file correspo 123 NoviceExample.gdml: example gdml file corresponding to 124 OpNoviceDetectorConstruction 124 OpNoviceDetectorConstruction