12#ifndef ALICEO2_EVENTGEN_EVENTDECAYER_H_
13#define ALICEO2_EVENTGEN_EVENTDECAYER_H_
15#include "Pythia8/Pythia.h"
19#include <unordered_map>
56 void setUnits(
double positionUnit,
double timeUnit,
double momentumUnit = 1.,
double energyUnit = 1.)
58 mPositionUnit = positionUnit;
60 mMomentumUnit = momentumUnit;
61 mEnergyUnit = energyUnit;
66 int seed()
const {
return mSeed; }
69 bool decayable(
int pdg)
const;
70 bool decayOne(std::vector<TParticle>& particles,
int index);
74 mutable ::Pythia8::Pythia mPythia;
75 std::vector<std::string> mConfigs;
76 std::unordered_map<int, G4ParticleInfo> mG4Particles;
77 bool mHasG4Table =
false;
78 bool mVerbose =
false;
79 double mPositionUnit = 1.;
80 double mTimeUnit = 1.;
81 double mMomentumUnit = 1.;
82 double mEnergyUnit = 1.;
Decays unstable generator particles with Pythia8 before transport, keeping the full chain.
bool vertexLimitsActive() const
void setUnits(double positionUnit, double timeUnit, double momentumUnit=1., double energyUnit=1.)
Sets the caller's units in cm, s, GeV/c and GeV, as the unit setters of Generator (default cm,...
EventDecayerReport decay(std::vector< TParticle > &particles)
std::string configSummary() const
GLsizei const GLchar *const * path
void report(gsl::span< o2::InteractionTimeRecord > irs, int threshold, bool verbose)
std::unordered_map< int, G4ParticleInfo > loadG4ParticleTable(std::string const &path)
Reads the Geant4 particle table written by o2-sim-g4-particle-table.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Counts of what one or more EventDecayer::decay calls did, per PDG code.
std::map< int, long > unknownInG4
std::map< int, std::pair< double, double > > lifetimeMismatch
std::map< int, long > failed
void merge(EventDecayerReport const &other)
std::map< int, long > unknownInO2
std::map< int, long > decayed
One entry of the Geant4 particle table.
VectorOfTObjectPtrs other