Skip to content
Snippets Groups Projects
README 3.26 KiB
Newer Older
  • Learn to ignore specific revisions
  • Chad Lantz's avatar
    Chad Lantz committed
    -------------------------------------------------------------------
    
         =========================================================
         Geant4 - an Object-Oriented Toolkit for Simulation in HEP
         =========================================================
    
                                OpNovice
                                --------
    
    This example presently illustrates the following basic concepts, and in
    particular (indicated with ***), how to use G4 for optical photon
    generation and transport. Other extended example of what is possible
    in Geant4 with optical photons can be found at
    examples/extended/optical/LXe and wls.
    
    main()
    ------
    
     ==> define Random Number Engine and initial seed
    
    G4VUserPhysicsList
    ------------------
    
     ==> define particles; including *** G4OpticalPhoton     ***
         define processes; including *** G4Cerenkov          ***
                                     *** G4Scintillation     ***
                                     *** G4OpAbsorption      ***
                                     *** G4OpRayleigh        ***
                                     *** G4OpBoundaryProcess ***
    
     ==> A messenger command allows to define interactivly the 
         verbose level and the maximum number of Cerenkov photons per step
         (see for instance OpNovice.in)
    
    G4VUserDetectorConstruction
    ---------------------------
    
     ==> define material: Air and Water
         define simple G4box geometry
         *** add G4MaterialPropertiesTable to G4Material       ***
         *** define G4LogicalSurface(s)                        ***
         *** define G4OpticalSurface                           ***
         *** add G4MaterialPropertiesTable to G4OpticalSurface ***
    
    G4VUserPrimaryGeneratorAction
    -----------------------------
    
     ==> Use G4ParticleGun to shoot a charge particle into a Cerenkov radiator
     
     ==> A messenger command allows to define interactively the polarization of an
         primary optical photon (see for instance optPhoton.mac)
     
    G4UserRunAction
    ---------------
    
    ==> define G4Timer (start/stop)
        set verbose levels
    
    G4UserStackingAction
    --------------------
    
    ==> show how to count the number of secondary particles in an event
    
    Visualisation
    -------------
     
     The Visualization Manager is set in the main().
     The initialisation of the drawing is done via a set of /vis/ commands
     in the macro vis.mac. This macro is automatically read from
     the main in case of interactive running mode.
     
     The detector has a default view which is a longitudinal view of the tank.
     The tracks are drawn at the end of event, and erased at the end of run.
     
     HOW TO START
     ------------
     
     - compile and link to generate an executable
     	% cd OpNovice
     	% gmake
    
       This example handles the program arguments in a new way.
       It can be run with the following optional arguments:
       % OpNovice [-m macro ] [-u UIsession] [-t nThreads]
    
       The -t option is available only in multi-threading mode
       and it allows the user to override the Geant4 default number of
       threads. The number of threads can be also set via G4FORCENUMBEROFTHREADS
       environment variable which has the top priority.
    
     - execute OpNovice in 'batch' mode from macro files
     	% OpNovice -m OpNovice.in
     
     - execute OpNovice in 'interactive mode' with visualization
     	% OpNovice
     	....
     	Idle> type your commands. For instance:
     	Idle> /control/execute optPhoton.mac
     	....
     	Idle> exit