Skip to content
Snippets Groups Projects
.README.txt 3.77 KiB
Newer Older
Chad Lantz's avatar
Chad Lantz committed

///\file "zdclg/.README.txt"
///\brief LightGuide README page
Chad Lantz's avatar
Chad Lantz committed

This simulation is based on OpNovice and OpNovice2
Chad Lantz's avatar
Chad Lantz committed

Build requirements
  Geant4 compiled with GDML and additional datasets
  ROOT
  -CADMesh is required to read CAD models (i.e. stl, step), but is optional for compiling
Chad Lantz's avatar
Chad Lantz committed

Chad Lantz's avatar
Chad Lantz committed

define Random Number Engine, initial seed, CAD input and GDML output
Chad Lantz's avatar
Chad Lantz committed

\section lightGuide_s2 G4VUserPhysicsList
Chad Lantz's avatar
Chad Lantz committed

 - Define particles; including - *** G4OpticalPhoton     ***
Chad Lantz's avatar
Chad Lantz committed
   - *** G4Cerenkov          ***
   - *** G4Scintillation     ***
   - *** G4OpAbsorption      ***
   - *** G4OpRayleigh        ***
   - *** G4OpBoundaryProcess ***

Chad Lantz's avatar
Chad Lantz committed

defines many materials for potential use
    For our purposes the G4OpticalSurface AlSurface and the G4Material Al and Air
    will be given optical properties and used for construction.
Chad Lantz's avatar
Chad Lantz committed

\section lightGuide_s4 G4VUserDetectorConstruction
Chad Lantz's avatar
Chad Lantz committed

A light guide is made either by simple G4trd or by importing a model
    via CADMesh.
    define G4LogicalBorderSurface between the light guide and world volume
    defines a PMT window sensitive detector at the top of the light guide
    AlSurface properties can be modified via DetectorMessenger via the following commands
    /lightGuide/surfaceModel
    /lightGuide/surfaceType
    /lightGuide/surfaceFinish
    /lightGuide/surfaceSigmaAlpha
    /lightGuide/surfaceProperty
Chad Lantz's avatar
Chad Lantz committed

Chad Lantz's avatar
Chad Lantz committed

\section lightGuide_s5 G4VUserPrimaryGeneratorAction
Chad Lantz's avatar
Chad Lantz committed

Use G4GeneralParticleSource to shoot an optical photon into the light guide
Particle type and distribution is set in run1.mac

\section lightGuide_s6 G4UserRunAction

define G4Timer (start/stop)
define G4AnalysisManager (output .root file)
set verbose levels

\section lightGuide_s7 PMTHit

stores G4int         trackID,
       G4ThreeVector pos;      // Origin position of the photon
       G4ThreeVector hit;      // Location where the photon hit the PMT window
       G4double      energy;   // Energy of the photon
       G4ThreeVector momentum; // Momentum of the photon (direction)
       G4double      time;     // Time of arrival of the photon
for each hit on the PMT sensitive detector

\section lightGuide_s8 PMTSD

Records a PMTHit if the photon strikes the PMT window

\section lightGuide_s9 G4UserEventAction
Chad Lantz's avatar
Chad Lantz committed

 Show how to count the number of secondary particles in an event

Chad Lantz's avatar
Chad Lantz committed
 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
Chad Lantz's avatar
Chad Lantz committed
 the main in case of interactive running mode.
Chad Lantz's avatar
Chad Lantz committed

 - compile and link to generate an executable
\verbatim
  % mkdir zdclg-build zdclg-install
  % cd zdclg-build
  % cmake -DCMAKE_INSTALL_PREFIX=../zdclg-install /path/to/zdclg
Chad Lantz's avatar
Chad Lantz committed
\endverbatim

   This example handles the program arguments in a new way.
   It can be run with the following optional arguments:
\verbatim
  % ./lightGuide [-m macro ]
                 [-u UIsession]
                 [-t nThreads]
                 [-r seed]
                 [-o outputFileName]
                 [-c CADmodelName filetype]
                 [-co GDMLoutFileName]
Chad Lantz's avatar
Chad Lantz committed
\endverbatim

   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 lightGuide in 'batch' mode from macro files
Chad Lantz's avatar
Chad Lantz committed
\verbatim
Chad Lantz's avatar
Chad Lantz committed
\endverbatim

 - execute lightGuide in 'interactive mode' with visualization
Chad Lantz's avatar
Chad Lantz committed
\verbatim
Chad Lantz's avatar
Chad Lantz committed
....
Idle> type your commands. For instance:
Chad Lantz's avatar
Chad Lantz committed
....
Idle> exit
\endverbatim

*/