Exercise #2 -- Particles and Interactions
This tutorial has been updated for use at
the October 2003 Fermilab
Geant4 Tutorial, but is also designed for use by anyone else who wants to
build and run Geant4 examples.
At this point it is assumed that the user has successfully completed Exercise
#1 which set up the spectrometer geometry and introduced a charged geantino.
Exercise # 2 builds on Exercise # 1 by introducing real particles and assigning
physics processes to them in the User Physics List. The User Primary Generator
will then be modified so that the user can run different particle types and
observe the effects in the spectrometer.
Before starting the exercise you should download and unpack the
TryOut2.tar.gz from
here.
In
this example the electromagnetic physics is defined in a Modular Physics
List which includes gammas, electrons, positrons and electron neutrinos and
anti-neutrinos. The following physics processes are registered to the gamma:
- pair production
- Compton scattering
- photo-electric effect
to the electron:
- multiple scattering
- e bremsstrahlung
- e ionization
and to the positron:
- multiple scattering
- e bremsstrahlung
- e ionization
- e+ annihilation
-
Add electromagnetic physics
- from the CD distribution in directory examples/extended/analysis/A01/ ,
copy the files /include/A01EMPhysics.hh and /src/A01EMPhysics.cc to the
/include and /src directories of TryOut02.
- In TryOut02/src edit the file A01PhysicsList.cc:
- un-comment the line //////////#include "A01EMPhysics.hh"
- and the line ////////// RegisterPhysics( new A01EMPhysics("standard
EM"));
-
Tell the event generator to shoot a positron
- modify TryOut02/src/A01PrimaryGeneratorAction.cc :
- change the line:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="chargedgeantino"));
to:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="e+"));
-
Compile and build
-
Run some events
- run the executable :
../bin/$G4SYSTEM/A01app
- set up graphics and shoot one positron :
at the Idle> prompt
enter /control/execute opengl.mac
- run more events :
/run/beamOn 1
- end the session :
Idle> exit
-
What to expect
After the first event the visualization should look
like this:
Here the positron is bent in the magnetic field and showers in the
electromagnetic calorimeter. The straight green lines are gammas.
The Modular Physics List for Muon
Physics defines mu+, mu-, tau+, tau- and the associated neutrinos. The following
physics processes are registered to the mu+ and mu-:
- multiple scattering
- mu bremsstrahlung
- mu ionization
- e+e- pair production by muons
and to the tau+ and tau-
- multiple scattering
- hadron ionization
Note that although taus have been defined and
assigned physics processes, if we try to run taus at this stage of the example
we are likely to get a program abort. This is because the tau will most likely
decay to hadrons which have not been defined yet.
-
Add muon physics
- from the CD distribution in directory examples/extended/analysis/A01/ ,
copy the files /include/A01MuonPhysics.hh and /src/A01MuonPhysics.cc to the
/include and /src directories of TryOut02.
- In TryOut02/src edit the file A01PhysicsList.cc:
- un-comment the line //////////#include "A01MuonPhysics.hh"
- and the line ////////// RegisterPhysics( new A01MuonPhysics("standard
EM"));
-
Tell the event generator to shoot a muon
- modify TryOut02/src/A01PrimaryGeneratorAction.cc :
- change the line:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="e+"));
to:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="mu+"));
-
Compile and build
-
Run two events
- ../bin/$G4SYSTEM/A01app
- Idle> /control/execute opengl.mac
- Idle> /run/beamOn 1
- Idle> exit
-
What to expect
After the second event the visualization should look
like this:
The
muon is bent in the magnetic field. Along its path electron secondaries (red)
are produced as the muon ionizes the air. The muon then interacts in the
electromagnetic calorimeter, but as expected, does not shower as much as the
positron.
The Modular Physics List for
Hadron Physics defines all the hadrons likely to be encountered in a simulation.
These include:
- light mesons: pi, K, eta
- charmed mesons: D, J/psi
- bottom mesons: B
- nucleons: p, n
- strange baryons: lambda, sigma, xi, omega
- charmed baryons
- short-lived: resonances, quarks
For a list of all the hadrons
available see Section
5.3.2.1 of the User's Guide for Application Developers.
Physics processes are assigned to pi, K, p, n, lambda, sigma, xi, and omega,
and their anti-particles. These include:
- hadron elastic
- hadron inelastic
- capture and fission for neutrons
- annihilation at rest for anti-protons and anti-neutrons
- multiple scattering for charged hadrons
- hadron ionization for charged hadrons
The hadron inelastic processes require at least one of the many hadronic
models to be registered to them. For this example the Low Energy Parameterized
(LEP) model (for energies below ~10 GeV), and the High Energy Parameterized
(HEP) model (for energies above ~10 GeV), are registered.
-
Add hadrons only
- from the CD distribution in directory examples/extended/analysis/A01/ ,
copy the files /include/A01HadronPhysics.hh and /src/A01HadronPhysics.cc to
the /include and /src directories of TryOut02.
- In TryOut02/src edit the file A01PhysicsList.cc:
- un-comment the line //////////#include "A01HadronPhysics.hh"
- and the line ////////// RegisterPhysics( new
A01HadronPhysics("standard EM"));
- Comment out the method A01HadronPhysics::ConstructProcess()
-
Tell the event generator to shoot a pi+
- modify TryOut02/src/A01PrimaryGeneratorAction.cc :
- change the line:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="mu+"));
to:
particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="pi+"));
-
Compile and build
-
Run one event
- ../bin/$G4SYSTEM/A01app
- Idle> /control/execute opengl.mac
- Idle> exit
-
What to expect
After the first event the visualization should look
like this:
The
pi+ decays in the middle of the first spectrometer arm into a muon (blue) and
a neutrino (green). The muon travels through the second arm causing ionization
and then misses the calorimeters. Up to now, decay has not been discussed, but
the decay process has already been assigned to the unstable particle types in
the A01GeneralPhysics modular physics list. At this momentum (1 GeV) most
pions will not decay in the spectrometer. Most subsequent events therefore
show no interaction because at this point in the example there are no
processes defined for pions except for transportation and decay.
-
Add hadron physics
- Un-comment the method A01HadronPhysics::ConstructProcess()
-
Compile and build
-
Get a better view of the hadronic calorimeter
- in Tryout02/opengl.mac change
/vis/viewer/set/viewpointThetaPhi
150. 90.
to
/vis/viewer/set/viewpointThetaPhi 100. 90.
-
Run two events
- ../bin/$G4SYSTEM/A01app
- Idle> /control/execute opengl.mac
- Idle> /run/beamOn 1
- Idle> exit
-
What to expect
After the second event the visualization should look
like this:
The pion transits the entire spectrometer, punches through the
electromagnetic calorimeter, and showers in the hadronic calorimeter. Many low
energy protons, neutrons (green) and light ions (blue) are produced. The
proton tracks do not appear because they are short and do not leave the
calorimeter. The light ion tracks escape the calorimeter because no multiple
scattering or energy loss processes have been assigned to them.
The Modular Physics List for Ion
Physics defines the light ions likely to be produced by the hadronic
interactions. These include:
- deuterons
- tritons
- helium-3
- alphas
- generic ion
The physics processes assigned to these particles are:
- hadron elastic
- hadron inelastic
- multiple scattering for charged hadrons
- hadron ionization for charged hadrons
For light ions only the Low
Energy Parameterized (LEP) model is registered to the hadron inelastic
processes.
-
Add ion physics
- from the CD distribution in directory examples/extended/analysis/A01/ ,
copy the files /include/A01IonPhysics.hh and /src/A01IonPhysics.cc to the
/include and /src directories of TryOut02.
- In TryOut02/src edit the file A01PhysicsList.cc:
- add the line
# include "A01IonPhysics.hh"
- in the constructor of A01PhysicsList add the line
RegisterPhysics(
new A01IonPhysics("ion"));
-
Compile and build
-
Run three events
- ../bin/$G4SYSTEM/A01app
- Idle> /control/execute opengl.mac
- Idle> /run/beamOn 1
Idle> /run/beamOn 1
-
What to expect
After the third event the visualization should look
like this:
As
before, the pion punches through the electromagnetic calorimeter and showers
in the hadronic calorimeter. This time however, the light ions created in the
hadronic interactions do not emerge because multiple scattering and ionization
have been turned on for those particles.
A number of
pre-packaged physics lists are available for specific use cases. These are built
around the various hadronic models that are appropriate for the use cases. These
lists can be downloaded, compiled and run as is. See the download and
instructions page to get
started.
Tutorial by: Dennis Wright
11
October 2003