Version: SMASH-3.1
Rivet output

SMASH Rivet output interface directly to Rivet analyses on the events generated by SMASH. That is, instead of writing the events to disk (or pipe) this output module generates HepMC (see also HepMC Output) events in-memory and pass them on directly to Rivet to avoid the costly encoding and decoding of HepMC3 events to and from disk (or pipe). This provides a speed up (at least \(\times 10\)) compared to intermediate files.

The results of the analyses are written to YODA files.

Internal event formats

Internally, this output module generates HepMC events. These can be made in two ways, selected by the formats YODA and YODA-full.

  • YODA In this format only initial (beam) and final state particles are stored in the event structure and there is only one interaction point. Note, the incoming nucleons are combined into single nuclei.
  • YODA-full In this format, the whole event is stored (including intermediate states). Note, the incoming nucleons are combined into single nuclei, only to be split at the main interaction point. This allows tracking of the individual nucleons.

Refer to https://yoda.hepforge.org/ for further details. Only one format can be chosen. SMASH will use the first format recognized as valid, ignoring the rest. Please, note that choosing YODA or YODA-full determines the kind of information available to the analysis, but the content of the final YODA files depends on the analysis itself. Depending on what it does, the analysis might work fine with both formats, nevertheless, if it is not necessary to know the structure of the whole event, it is recommended to choose the lighter YODA format, thus saving computational time and resources (especially the RAM).

Configuration

The Rivet process can be configured in the main configuration file. This is done by adding keys to the Rivet key. Here, we can

  • Set load paths for data and analyses (Paths)
  • Preload data files - e.g., centrality calibrations (Preloads)
  • Specify which analyses to run (Analyses)
  • Choose whether to not validate beams (Ignore_Beams)
  • Set log levels in Rivet (Logging)
  • Specify weight handling (Weights)
  • and more ... (see below)

An example:

Output:
   Rivet:
     Format: ["YODA"]
     Ignore_Beams: True
     Logging:
       Rivet.AnalysisHandler: Debug
       Rivet.Analysis.MC_FSPARTICLES: Debug
     Analyses:
       - MC_FSPARTICLES

The Rivet set-up can be configured using the content specific Rivet section in the configuration file.