Detector simulation¶
Detector¶
This tutorial will focus on one particular detector geometry: MuColl_v1
. A description is provided on mcd-wiki and enumerated on github at MuonColliderSoft/lcgeo. This 3 TeV detector is composed of trackers, calorimeters, a solenoid magnet, and a muon spectrometer.
When working with muon collider software, the geometry is often managed with the environment variable MUCOLL_GEO
. You can check which detector geometry you're simulating with echo $MUCOLL_GEO
:
echo $MUCOLL_GEO
# Should give:
# /opt/spack/opt/spack/linux-almalinux9-x86_64/gcc-11.3.1/lcgeo-0.20-grx3loszut2wlx5dbtguwxcuxs7whjad/share/lcgeo/compact/MuColl/MuColl_v1/MuColl_v1.xml
This tutorial will not cover how to modify the detector geometry. This is an important area of study, but it's too involved for this tutorial. Please follow up with experts if you're interested!
Simulation¶
In the simulation step, MC particles are propagated through the detector with GEANT4. GEANT4 is the standard toolkit for the simulation of the passage of particles through matter. This is a computationally expensive step, and it is often the slowest step in the production of data.
We use the ddsim
simulation program, which is part of the DD4Hep detector description toolkit. To see a complete list of available command-line parameters:
Typically, the detector description and configurable options are gathered in a steering file and provided to ddsim
:
# Check the geometry
echo $MUCOLL_GEO
# Runs in 1-2 minutes
cd /scratch/$USER/tutorial2024
ddsim --steeringFile mucoll-benchmarks/simulation/ilcsoft/steer_baseline.py \
--inputFile output_gen.slcio \
--outputFile output_sim.slcio
ls
Command-line arguments like --inputFile/--outputFile
override whatever exists in the steering file. Alternatively, you could modify the relevant parameters in the steering file, and run ddsim
without any additional command-line parameters.
Output of a simulation job is stored in the LCIO format and contains several kinds of objects:
- input
MCParticles
- potential secondary
MCParticles
created during the interaction with detector material SimHits
representing energy deposits of individualMCParticles
in the detector
A number of different SimHit
classes are available to represent the most relevant information for each type of subdetector, such as SimTrackerHit
, SimCalorimeterHit
, etc. In order to check the collections in the simulation output file:
You can also inspect individual SimCalorimeterHits with a python script using pyLCIO
: