Transport engines

GEANT4

Scaling hadronic cross sections

Hadronic cross sections can be scaled by passing a specific Geant4 configuration to the transport simulation. This is an example where various hadronic cross sections are scaled.

FLUKA

Informtation about FLUKA.

GEANT3

Information about GEANT3.

MCReplay engine

The MCReplay engine can be used to replay a simulation based on steps logged by the MCStepLogger. It is therefore not actually a simulation engine but only mimics one. It simply injects each step, one after the other, from a previous simulation.

To run it, first follow the steps as explained in MCStepLogger to produce a file containing logged steps. To then replay them, do

o2-sim-serial -n <ref_nevents> -e MCReplay -g extkinO2 --extKinFile o2sim_Kine.root -o replay

Note that it will look for the recorded steps in the same directory, trying to find MCStepLoggerOutput.root. If the name or the path of the step log file is different, it can be passed with --configKeyValues="MCReplayParam.stepFilename=<path/step/file/name>".

It is advisory to at least use another output prefix as done in this case (-o replay) since otherwise the previous output files might be overwritten. Or simply run in a different directory.

It is also possible to set a minimum energy cut (in units of GeV) that particles at least have to have when produced. To do so, use --configKeyValues="MCReplayParam.energyCut=0.1" if everything produced below 0.1 GeV should be dropped.

Energy cuts can also be set per simulation medium and type. More information on this will be added shortly.

Important remarks

Make sure to use/exclude the same modules as used in the reference run (-m and --skipModules flags, see here).

It is of course not possible to simulate more events than those simulated during the step logging.

Use cases

Comparing the produced hits with those from the reference run it is possible to omit steps/particle production which have a negligible impact on the hits and hence on digits. As a result, the detector simulation can be tuned to be faster and more efficient.

O2TrivialMCEngine

This engine is not an actual engine but it serves as a kind of placeholder for scenarios in which no real engine is needed. Currently, there is one particular use case which is when only the kinematics of primaries is of interest. Such a run is typically initiated with

o2-sim --noGeant

It is indeed not necessary to explicitly specify the engine, it is set automatically.

…under construction…