Skip to content

simulation of muons (and more) through earth material

License

Notifications You must be signed in to change notification settings

alig146/Mu-Simulation

 
 

Repository files navigation

MATHUSLA Mu-Simulation

simulation of muons through earth material

Build & Run

The simulation comes with a simple build script called install which allows for build customization and execution of the muon simulation.

Here is a list of useful commands:

Action Options for ./install
Build Only (none)
Build and Auto Run --run
Clean CMake Build --cmake --clean
More Options --help

After building, the executable, simulation, is moved into the root directory of the project.

The simulation executable itself comes with several configuration parameters:

Action Short Options Long Options
Event Count -e <count> --events=<count>
Particle Generator -g <generator> --gen=<generator>
Detector -d <detector> --det=<detector>
Custom Script -s <file> --script=<file>
Data Output Directory -o <dir> --out=<dir>
Number of Threads -j <count> --threads=<count>
Visualization -v --vis
Save All Generator Events NA --save_all
Save Events With Pseudo-Digi Cuts (only for Cosmic geometry) NA --cut_save
Bias Muon Nuclear interaction in Earth (for Cosmic and Box geometry) NA --bias
Turn On Five Body Muon Decays -f --five_muon
Non-Random Five Body Decays -n --non_random
Quiet Mode -q --quiet
Help -h --help

Note: The Five Body Muon Decays option will only save tracks with a five-body decay in a certain zone in the detector. Be sure this is what you want.

Arguments can also be passed through the simulation to a script. Adding key value pairs which correspond to aliased arguments in a script, will be forwarded through. Here's an example:

./simulation -s example1.mac ke 100 phi 20

This will pass the key value pairs (ke, 100) and (phi, 20) to the underlying script example1.mac. The file can look something like this:

# example1.mac

/gen/select basic

/gen/basic/ke {ke} GeV
/gen/basic/phi {phi} deg

where { } denotes a key. The script will be evaluated by substituting the key for its value so the last two lines become,

/gen/basic/ke 100 GeV
/gen/basic/phi 20 deg

All of the simulation configuration parameters can be passed through ./install --run so the example above could also be written as,

./install --run -s example1.mac ke 100 phi 20

Generators

There are three general purpose generators built in, basic, range, and polar. The basic generator produces a particle with constant pT, eta, and phi while the range generator produces particle within a specified range of values for each of the three variables. Any variable can also be fixed to a constant value. The polar generator uses the angles from spherical coordinates, polar and azimuth, along with an energy input to generate particles. The polar angle in polar generator can be either a constant or within a specified range, while the azimuth is only given within a range.

There is also a Pythia8 generator installed which behaves similiarly to the range generator.

The generator defaults are specified in src/action/GeneratorAction.cc but they can be overwritten by a custom generation script.

Custom Detector

A custom Detector can be specified at run time from one of the following installed detectors:

Detector Status Details
Prototype COMPLETED Test stand for the MATHUSLA project
Box COMPLETED Large Detector as seen in MATHUSLA Original Schematic
Cosmic COMPLETED Identical detector design as in Box but optimized for cosmic studies
Flat BUILDING Cheaper Alternative to Box
MuonMapper COMPLETED Measures Muon Energies after Rock Propagation

Custom Scripts

A custom Geant4 script can be specified at run time. The script can contain generator specific commands and settings as well as Pythia8 settings in the form of readString. The script can also specify the detector to use during the simulation.

About

simulation of muons (and more) through earth material

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.0%
  • C 2.4%
  • CMake 1.9%
  • Python 1.2%
  • Shell 0.5%