Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/basic/B2/

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Name Size       Last modified (GMT) Description
Back Parent directory       2024-12-05 15:16:16
Folder B2a/       2024-12-05 15:16:16
Folder B2b/       2024-12-05 15:16:16
Folder macros/       2024-12-05 15:16:16
File CMakeLists.txt 264 bytes       2024-12-05 15:16:16
File GNUmakefile 415 bytes       2024-12-05 15:16:16
File History 16015 bytes       2024-12-05 15:16:16
File README 9215 bytes       2024-12-05 15:16:16

  1 -------------------------------------------------------------------
  2 
  3      =========================================================
  4      Geant4 - an Object-Oriented Toolkit for Simulation in HEP
  5      =========================================================
  6 
  7                             Example B2
  8                             ----------
  9 
 10  This example simulates a simplified fixed target experiment.
 11 
 12  1- GEOMETRY DEFINITION
 13 
 14      The setup consists of a target followed by six chambers of increasing
 15      transverse size at defined instances from the target. These chambers are
 16      located in a region called the Tracker region.
 17      Their shape are cylinders, constructed as simple cylinders
 18      (in B2a::DetectorConstruction) and as parametrised volumes
 19      (in B2b::DetectorConstruction), see also B2b::ChamberParameterisation class.
 20 
 21      In addition, a global, uniform, and transverse magnetic field can be
 22      applied using G4GlobalMagFieldMessenger, instantiated in
 23      B2[a,b]::DetectorConstruction::ConstructSDandField with a non zero field value,
 24      or via interactive commands.
 25      For example:
 26 
 27      /globalField/setValue 0.2 0 0 tesla
 28 
 29      An instance of the B2::TrackerSD class is created and associated with each
 30      logical chamber volume (in B2a) and with the one G4LogicalVolume associated
 31      with G4PVParameterised (in B2b).
 32 
 33      One can change the materials of the target and the chambers
 34      interactively via the commands defined in B2a::DetectorMessenger
 35      (or B2b::DetectorMessenger). For example:
 36 
 37      /B2/det/setTargetMaterial G4_WATER
 38      /B2/det/setChamberMaterial G4_Ar
 39 
 40  2- PHYSICS LIST
 41 
 42      The particle's type and the physic processes which will be available
 43      in this example are set in the FTFP_BERT physics list. This physics list
 44      requires data files for electromagnetic and hadronic processes.
 45      See more on installation of the datasets in Geant4 Installation Guide,
 46      Chapter 3.3: Note On Geant4 Datasets:
 47      http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/ch03s03.html
 48      The following datasets: G4LEDATA, G4LEVELGAMMADATA, G4SAIDXSDATA and
 49      G4ENSDFSTATEDATA are mandatory for this example.
 50 
 51      In addition, the build-in interactive command:
 52            /process/(in)activate processName
 53      allows the user to activate/inactivate the processes one by one.
 54 
 55  3- ACTION INITALIZATION
 56 
 57    A newly introduced class, B2::ActionInitialization,
 58    instantiates and registers to Geant4 kernel all user action classes.
 59 
 60    While in sequential mode the action classes are instatiated just once,
 61    via invoking the method:
 62       B2::ActionInitialization::Build()
 63    in multi-threading mode the same method is invoked for each thread worker
 64    and so all user action classes are defined thread-local.
 65 
 66    A run action class is instantiated both thread-local
 67    and global that's why its instance has is created also in the method
 68       B2::ActionInitialization::BuildForMaster()
 69    which is invoked only in multi-threading mode.
 70 
 71  4- PRIMARY GENERATOR
 72 
 73      The primary generator action class employs the G4ParticleGun.
 74      The primary kinematics consists of a single particle which starts close
 75      to the world boundary and hits the target perpendicular to the entrance
 76      face. The type of the particle and its energy can be changed via the
 77      Geant4 built-in commands of the G4ParticleGun class.
 78 
 79  5- RUNS and EVENTS
 80 
 81      A run is a set of events.
 82 
 83      The user has control:
 84         - at Begin and End of each run (class B2::RunAction)
 85         - at Begin and End of each event (class B2::EventAction)
 86         - at Begin and End of each track (class TrackingAction, not used here)
 87   - at End of each step (class SteppingAction, not used here)
 88 
 89      The event number is written to the log file every requested number
 90      of events in B2::EventAction::BeginOfEventAction() and
 91      B2::EventAction::EndOfEventAction().
 92      Moreover, for the first 100 events and every 100 events thereafter
 93      information about the number of stored trajectories in the event
 94      is printed as well as the number of hits stored in the G4VHitsCollection.
 95 
 96      The run number is printed at B2::RunAction::BeginOfRunAction(), where the
 97      G4RunManager is also informed how to SetRandomNumberStore for storing
 98      initial random number seeds per run or per event.
 99 
100  6- USER LIMITS
101 
102     This example also illustrates how to introduce tracking constraints
103     like maximum step length, minimum kinetic energy etc. via the G4UserLimits
104     class and associated G4StepLimiter and G4UserSpecialCuts processes.
105     See B2a::DetectorConstruction (or B2b::DetectorConstruction).
106 
107     The maximum step limit in the tracker region can be set by the interactive
108     command (see B2a::DetectorMessenger, B2b::DetectorMessenger classes).
109     For example:
110 
111     /B2/det/stepMax 1.0 mm
112 
113  7- DETECTOR RESPONSE
114 
115      A HIT is a step per step record of all the information needed to
116      simulate and analyse the detector response.
117 
118      In this example the Tracker chambers are considered to be the detector.
119      Therefore, the chambers are declared 'sensitive detectors' (SD) in
120      the B2a::DetectorConstruction (or B2b::DetectorConstruction) class.
121      They are associated with an instance of the B2::TrackerSD class.
122 
123      Then, a Hit is defined as a set of 4 informations per step, inside
124      the chambers, namely:
125         - the track identifier (an integer),
126   - the chamber number,
127   - the total energy deposit in this step, and
128   - the position of the energy deposit.
129 
130      A given hit is an instance of the class B2::TrackerHit which is created
131      during the tracking of a particle, step by step, in the method
132      B2::TrackerSD::ProcessHits(). This hit is inserted in a HitsCollection.
133 
134      The HitsCollection is printed at the end of each event (via the method
135      B2::TrackerSD::EndOfEvent()), under the control of the command:
136      /hits/verbose 2
137 
138  The following paragraphs are common to all basic examples
139 
140  A- VISUALISATION
141 
142    The visualization manager is set via the G4VisExecutive class
143    in the main() function in exampleB2a.cc (or exampleB2b.cc).
144    The initialisation of the drawing is done via a set of /vis/ commands
145    in the macro vis.mac. This macro is automatically read from
146    the main function when the example is used in interactive running mode.
147 
148    By default, vis.mac opens an OpenGL viewer (/vis/open OGL).
149    The user can change the initial viewer by commenting out this line
150    and instead uncommenting one of the other /vis/open statements, such as
151    HepRepFile or DAWNFILE (which produce files that can be viewed with the
152    HepRApp and DAWN viewers, respectively).  Note that one can always
153    open new viewers at any time from the command line.  For example, if
154    you already have a view in, say, an OpenGL window with a name
155    "viewer-0", then
156       /vis/open DAWNFILE
157    then to get the same view
158       /vis/viewer/copyView viewer-0
159    or to get the same view *plus* scene-modifications
160       /vis/viewer/set/all viewer-0
161    then to see the result
162       /vis/viewer/flush
163 
164    The DAWNFILE, HepRepFile drivers are always available
165    (since they require no external libraries), but the OGL driver requires
166    that the Geant4 libraries have been built with the OpenGL option.
167 
168    Since 11.1, the TSG visualization driver can also produce the "offscrean"
169    file output in png, jpeg, gl2ps formats without drawing on the screen.
170    It can be controlled via UI commands provided in '/vis/tsg' which are
171    demonstrated in the tsg_offscreen.mac macro in example B5.
172 
173    For more information on visualization, including information on how to
174    install and run DAWN, OpenGL and HepRApp, see the visualization tutorials,
175    for example,
176    http://geant4.slac.stanford.edu/Presentations/vis/G4[VIS]Tutorial/G4[VIS]Tutorial.html
177    (where [VIS] can be replaced by DAWN, OpenGL and HepRApp)
178 
179    The tracks are automatically drawn at the end of each event, accumulated
180    for all events and erased at the beginning of the next run.
181 
182  B- USER INTERFACES
183 
184    The user command interface is set via the G4UIExecutive class
185    in the main() function in exampleB2a.cc
186 
187    The selection of the user command interface is then done automatically
188    according to the Geant4 configuration or it can be done explicitly via
189    the third argument of the G4UIExecutive constructor (see exampleB4a.cc).
190 
191    The gui.mac macros are provided in examples B2, B4 and B5. This macro
192    is automatically executed if Geant4 is built with any GUI session.
193    It is also possible to customise the icons menu bar which is
194    demonstrated in the icons.mac macro in example B5.
195 
196  C- HOW TO RUN
197 
198     - Execute exampleB2a in the 'interactive mode' with visualization
199         % exampleB2a
200       and type in the commands from run1.mac line by line:
201         Idle> /tracking/verbose 1
202         Idle> /run/beamOn 1
203         Idle> ...
204         Idle> exit
205       or
206         Idle> /control/execute run1.mac  or run2.mac
207         ....
208         Idle> exit
209 
210     - Execute exampleB2a in the 'batch' mode from macro files
211       (without visualization)
212         % exampleB2a run2.mac
213         % exampleB2a exampleB2.in > exampleB2.out
214