Transport

The detector simulation is triggered with

o2-sim <args>

The simulation creates the following output files:

File Description
o2sim_Kine.root contains kinematics information (primaries and secondaries) and event meta information
o2sim_geometry.root contains the final ROOT geometry created for simulation run
o2sim_grp.root special global run parameters (grp) such as field
o2sim_XXXHits.root hit file for each participating active detector XXX
o2sim_configuration.ini summary of parameter values with which the simulation was done
o2sim_serverlog log file produced from the particle generator server
o2sim_workerlog0 log file produced form the transportation processes
o2sim_hitmergerlog log file produced from the IO process

Main command line options

The following options are available:

Option Description
-h [ --help ] Prints the list of possible command line options and their default values.
-e [ --mcEngine ] arg (=TGeant4) VMC backend to be used. TGeant3 or TGeant4. See transport section
-g [ --generator ] arg (=boxgen) Event generator to be used. See generators section
-t [ --trigger ] arg Event generator trigger to be used. See trigger section
-m [ --modules ] arg (=all modules) List of modules/geometries to include (default is ALL); example -m PIPE ITS TPC
--skipModules arg list of modules excluded in geometry (precedence over -m) See transport section
--readoutDetectors arg list of detectors creating hits, all if not given; added to to active modules. See transport section
--skipReadoutDetectors arg list of detectors to skip hit creation (precedence over –readoutDetectors). See transport section
-n [ --nEvents ] arg (=0) number of events
--startEvent arg (=0) index of first event to be used (when applicable, e.g. for hepmc generator). See generators section
--extKinFile arg (=Kinematics.root) name of kinematics file for event generator from file (when applicable). See generators section
--embedIntoFile arg filename containing the reference events to be used for the embedding
-b [ --bMax ] arg (=0) maximum value for impact parameter sampling (when applicable)
--isMT arg (=0) multi-threaded mode (Geant4 only)
-o [ --outPrefix ] arg (=o2sim) prefix of output files
--logseverity arg (=INFO) severity level for FairLogger
--logverbosity arg (=medium) level of verbosity for FairLogger (low, medium, high, veryhigh)
--configKeyValues Like --configFile but allowing to set parameters on the command line as a string sequence. Example --configKeyValues "Stack.pruneKine=false". Takes precedence over --configFile. Parameters need to be known ConfigurableParams.
--configFile arg Path to an INI or JSON configuration file
--chunkSize arg (=500) max size of primary chunk (subevent) distributed by server
--chunkSizeI arg (=-1) internalChunkSize
--seed arg (=0) initial seed as ULong_t (default: 0 == random)
--field arg (=-5) L3 field rounded to kGauss, allowed values +-2,+-5 and 0; +-U for uniform field; "ccdb" for taking it from CCDB
-j [ --nworkers ] arg (=4) number of parallel simulation workers (only for parallel mode)
--noemptyevents only writes events with at least one hit
--CCDBUrl arg (=<http://alice-ccdb.cern.ch)> URL for CCDB to be used.
--timestamp arg global timestamp value in ms (for anchoring) - default is now … or beginning of run if ALICE run number was given
--run arg (=-1) ALICE run number
--asservice arg (=0) run in service/server mode
--noGeant prohibits any Geant transport/physics
--forwardKine forward kinematics on a FairMQ channel
--noDiscOutput switch off writing sim results to disc (useful in combination with forwardKine)
--fromCollContext arg Use a pregenerated collision context to infer number of events to simulate, how to embedd them, the vertex position etc. Takes precedence of other options such as "–nEvents".

There is further documentation on generators and transport engines. For module and detector composition, please see below.

Expert control via environment variables

o2-sim is sensitive to the following environment variables:

Variable Description
ALICE_O2SIM_DUMPLOG When set, the output of all FairMQ components will be shown on the screen and can be piped into a user logfile.
ALICE_NOSIMSHM When set, communication between simulation processes will not happen using a shared memory mechanism but using ROOT serialization.

Configurable Parameters

Simulation makes use of configurable parameters as described in the ConfigurableParam.md documentation. Detector code as well as general simulation code declare such parameter and access them during runtime. Once a parameter is declared, it can be influenced/set from the outside via configuration files or from the command line. See the --configFile as well as --configKeyValues command line options. The complete list of parameters and their default values can be inspected in the file o2sim_configuration.ini that is produced by an empty run o2-sim -n 0 -m CAVE.

Important parameters influencing the transport simulation are:

Main parameter key Description
G4 Parameters influencing the Geant4 engine, such as the physics list. Example "G4.physicsmode=kFTFP_BERT_optical_biasing"
Stack Parameters influencing the particle stack. Example include whether the stack does kinematics pruning or whether it keeps secondaries at all.
SimCutParams Parameters allowing to set some sime geometry stepping cuts in R, Z, etc.
Diamond Parameter allowing to set the interaction vertex location and the spread/width. Is used in all event generators.
Pythia6 Parameters that influence the pythia6 generator.
Pythia8 Parameters that influence the pythia8 generator.
HepMC Parameters that influence the HepMC generator.
TriggerParticle Parameters influencing the trigger mechanism in particle generators.

Simulation geometry, modules and detectors

In simulation we call a "module" of the ALICE experiment a coherent object assembled from various smaller volumes. It has a well-defined purpose and can - in principle - be installed and operated without any other module. There is an important difference between simulation and the real experiment: In simulation, modules can be completely taken out anytime so that they do not add to the overall material budget. On the other hand, that is not possible in the experiment. The entirety of all modules (usually embedded in a so-called "world volume") yields the simulation geometry. Particles traversing a module, depending on their type, location and momentum, might deposit energy in the material. A "detector" in the simulation context is a special module in that it has sensitive volumes that can register these energy deposits. In simulation, the energy deposits are called "hits". All modules that are not detectors are also called "passive modules".

By default, o2-sim runs a simulation with the complete Run3 geometry. Modules can be excluded from the geometry using the --skipModules <mod1> [<mod2> [...]]. In that case they do not contribute to the overall material budget in the simulation. If only certain modules should be included, one uses -m|--modules <mod1> [<mod2> [...]]. Note that --skipModules takes precedence over -m.

By default, all detectors produce hits and are therefore considered read-out. The detectors' readout can be switched off with --skipReadoutDetectors <det1> [<det2> []]. Reading out only a certain subset of detectors is achieved with -readoutDetectors <det1> [<det2> [...]]. Note that --skipReadoutDetectors takes precedence over --readoutDetectors. No matter what the readout options are: If a detector is in the list of modules, its material will contribute to the overall geometry and therefore material budget. However, these options are useful to safe time and resources if one is only interested in the readout of certain detectors. The header files of all passive module and their geometry description can be found here while the detectors are described here. In the latter case the overall file structure is more complex and usually, the geometry description is in some simulation sub-directory. O2 has its special base class for detectors.

Available Run3 modules

The detector names are centrally defined. Any of those can be passed to the --redoutDetectors and -m options (as well as their corresponding --skip counter part).

Passive modules are not yet centrally defined. Currently there are

  • HALL: the experimental cavern,
  • MAG: the L3 magnet,
  • PIPE: the beampipe,
  • ABSO: the absorber,
  • DIPO: the dipole magnet,
  • COMP: the compensator in very forward region,
  • SHIL: the shield to filter muons.

The modules for the ALICE Run5 developments are descried here.

..under construction…