Skip to content

Beam-induced background (BIB)

Review

To obtain a realistic representation of a collision event it is necessary to add Beam Induced Background (BIB) to the signal event.

BIB particles are first generated in FLUKA software and then their interaction with the detector is simulated in GEANT4, exactly like for signal events, as described in the Simulation section. The resulting final-state particles (MCParticle) and simulated hits (SimHit) are saved to LCIO files.

Merging of signal and BIB is done at the level of SimHits, such that they are passed through the digitisation step altogether, as would happen in a real experiment. This is done by the dedicated Marlin processor, OverlayTimingRandomMix, which is among several others collected in the Overlay repository. OverlayTimingRandomMix randomly composes a BIB event out of partial pseudo-events. This processor is defined in the mucoll-benchmarks/digitisation/k4run/digi_steer.py steering file.

Other options for overlay include:

  • OverlayNone - doesn't read any BIB data by defining /dev/null as the input file
  • OverlayFull - reads exactly 1 event from one of the BIB files (corresponds to 1 full BX - requires special read access)
  • OverlayTest - reads all events events from a few small BIB files (corresponds to about 1% of the full BX)

By default, the OverlayTimingRandomMix processor is not included in the list of processors executed in digi_steer.py.

Including 1% of BIB

For the purpose of the tutorial, we will change the NumberBackground parameter of OverlayTimingRandomMix from 192 to 2. This will effectively include 1% of the expected BIB, instead of 100%. Setting this parameter to 19 would include 10% of the BIB, for example. Including 100% of BIB would be prohibitively slow and memory-intensive for this tutorial. For reference, digitization with all BIB included takes roughly 10 minutes per event and 1 GB per event in the output slcio file.

We also need to update the paths to the BIB files to match our environment, and enable overlay in the list of processors. We can do this with command line arguments like:

# Runs in about 1 minute
cd /scratch/${USER}/tutorial2024
export MUPLUS="/ospool/uc-shared/project/muoncollider/tutorial2024/MuColl_v1/BIB10TeV/sim_mp_pruned/"
export MUMINUS="/ospool/uc-shared/project/muoncollider/tutorial2024/MuColl_v1/BIB10TeV/sim_mm_pruned/"
k4run mucoll-benchmarks/digitisation/k4run/digi_steer.py \
    --LcioEvent.Files output_sim.slcio \
    --doOverlayFull \
    --OverlayFullPathToMuPlus ${MUPLUS} \
    --OverlayFullPathToMuMinus ${MUMINUS} \
    --OverlayFullNumberBackground 2
mv output_digi.slcio output_digi_with_bib.slcio

After finishing the digitisation of these few events you can examine the contents of the output file, which now should have many more hits in all the subdetectors due to the BIB contribution:

lcio_event_counter output_digi_with_bib.slcio
anajob -m 1 output_digi_with_bib.slcio

We can then rerun reconstruction:

# Runs in about 5 minutes
cd /scratch/${USER}/tutorial2024
k4run mucoll-benchmarks/reconstruction/k4run/reco_steer.py \
    --LcioEvent.Files output_digi_with_bib.slcio \
    --MatFile ${ACTS_MatFile} \
    --TGeoFile ${ACTS_TGeoFile}
mv output_reco.slcio output_reco_with_bib.slcio

And we can see the number of reconstructed objects like tracks and clusters has increased:

lcio_event_counter output_reco_with_bib.slcio
anajob -m 1 output_reco_with_bib.slcio