Skip to content

Commit bd7bd67

Browse files
authored
Update simulation documentation
1 parent 438c714 commit bd7bd67

File tree

1 file changed

+45
-19
lines changed

1 file changed

+45
-19
lines changed

doc/DetectorSimulation.md

Lines changed: 45 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,55 @@ Detector simulation, the simulation of detector response from virtual particle e
1313
b) the conversion of those traces into (electronic) signals in the detector readout (usually called digitization).
1414

1515
The first part is handled by the `o2-sim` executable. The second part is handled in the `o2-sim-digitizer-workflow`.
16-
17-
# Documentation of `o2-sim`
1816

19-
The purpose of the `o2-sim` executable is to simulate the passage of particles emerging from a collision inside the detector and to obtain their effect in terms of energy deposits (called hits) which could be converted into detectable signals.
17+
## Key new features with respect to AliRoot
2018

21-
## Command overview
22-
* **Basic help:** Help on command line options can be obtained with `o2-sim --help`
23-
* **Typical example:** A typical (exemplary) invocation is of the form
19+
The Run3 simulation offers the following features
2420

25-
```o2-sim -n 10 -g pythia8 -e TGeant4 -j 2 --skipModules ZDC,PHS```
21+
- **distributed system based on FairMQ** that is splitting event generation, particle transport and IO into separate asyncronous components that can be deployed on different machines
22+
- **sub-event parallelism** making it possible to transport a single big event in a short time and to reduce memory consumption
23+
- **parallelism** independent on transport engine
24+
- **configuration via pre-defined parameter classes and ini/text files**
25+
- **clear separation of transport and digitization** - each phase can be run fully independently
2626

27-
which would launch a simulation for 10 pythia8 events on the whole ALICE detector but ZDC and PHOS, using Geant4 on 2 worker processes.
28-
* **Generated output**: The simulation creates at least the following files:
29-
30-
31-
| file | description |
32-
| ----------------- | ---------------- |
33-
| `o2sim.root` | contains kinematics and hits |
34-
| `O2geometry.root` | contains the ROOT geometry created for simulation |
35-
| `o2sim_grp.root` | the grp parameters |
3627

28+
# Documentation of transport simulation
29+
30+
The purpose of the `o2-sim` executable is to simulate the passage of particles emerging from a collision inside the detector and to obtain their effect in terms of energy deposits (called hits) which could be converted into detectable signals. It is the driver executable which will spawn a topology of sub-processes that interact via messages in a distributed system.
3731

38-
## Main configuration Options
32+
## Usage overview
33+
* **Quick start example:** A typical (exemplary) invocation is of the form
34+
35+
```o2-sim -n 10 -g pythia8 -e TGeant4 -j 2 --skipModules ZDC,PHS```
36+
37+
which would launch a simulation for 10 pythia8 events on the whole ALICE detector but ZDC and PHOS, using Geant4 on 2 parallel worker processes.
38+
* **Generated output**: The simulation creates the following output files:
39+
40+
| File | Description |
41+
| --------------------- | -------------------------------------------------------------------------------------- |
42+
| `o2sim_Kine.root` | contains kinematics information (primaries and secondaries) and event meta information |
43+
| `o2sim_geometry.root` | contains the ROOT geometry created for simulation |
44+
| `o2sim_grp.root` | special global run parameters (grp) such as field |
45+
| `o2sim_XXXHits.root` | hit file for each participating active detector XXX |
46+
| `o2sim_configuration.ini` | summary of parameter values with which the simulation was done |
47+
48+
49+
* **Main command line options**: The following major options are available (incomplete):
50+
51+
| Option | Description |
52+
| --------------------- | -------------------------------------------------------------------------------------- |
53+
| -h,--help | Prints the list of possible command line options and their default values. |
54+
| -n,--number | The number of events to simulate. |
55+
| -g,--generator | name of a predefined generator template to use (such as pythia8, pythia8hi). Configuration of generations is explained in a dedicated section. |
56+
| -e,--engine | Select the VMC transport engine (TGeant4, TGeant3). |
57+
| -m,--modules | List of modules/geometries to include (default is ALL); example -m PIPE ITS TPC |
58+
| -j,--nworkers | Number of parallel simulation engine workers (default is half the number of hyperthread CPU cores) |
59+
| --chunkSize | Size of a sub-event. This determines how many primary tracks will be sent to a simulation worker to process. |
60+
| --skipModules | List of modules to skip / not to include (precedence over -m) |
61+
| --configFile | A `.ini` file containing a list of (non-default) parameters to configure the simulation run. See section on configurable parameters for more details. |
62+
| --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. |
63+
| --seed | The initial seed to (all) random number instances. Default is -1 which leads to random behaviour. |
3964

40-
control of verbosity
4165

4266
## Configuration via Parameters
4367

@@ -273,4 +297,6 @@ o2::eventgen::DeepTrigger
273297

274298
## Development
275299

276-
# Documentation of `o2-sim-digitizer-workflow`
300+
# Documentation of the digitization step
301+
302+
Digitization, the transformation of hits produced in the transport simulation to electronics detector output, is steered by the `o2-sim-digitizer-workflow` executable.

0 commit comments

Comments
 (0)