Shannon¶
Shannon is the digitisation package for the SHiP experiment. It turns the simulated hits written by aegir into per-detector digitised hit collections, which Trout then reconstructs.
Repository: ShipSoft/Shannon
API reference: Doxygen
How it works¶
Shannon is a set of Phlex plugins
configured with Jsonnet workflows (stage digitisation):
| Plugin | Role |
|---|---|
read_sim_file |
Reads the events RNTuple from an aegir output file |
digitise_hits |
Digitises the simulated hits per detector (upstream tagger, surround tagger, timing detector, straw tubes, calorimeter) |
digitised_output_module |
Writes one RNTuple per detector hit collection into a single ROOT file, plus validation histograms |
Hit smearing uses a counter-based Philox generator from ship-random, seeded per event, so results are reproducible regardless of the number of threads.
workflows/digitise_hits.jsonnet reads ../aegir/fixed_target_mt_output.root
and writes digitised_hits.root. Edit the paths for your own files.
Building¶
git clone https://github.com/ShipSoft/Shannon.git
cd Shannon
pixi run build
pixi run test
pixi run smoke # generate a small input, run workflows/smoke.jsonnet, check the outputs
Other tasks: configure, install, clean, and clang-tidy /
clang-tidy-diff for static analysis. Shannon is also packaged as shannon
on the prefix.dev/ship-experiment/stable channel.