14#ifndef ALICEO2_EVENTGEN_GENERATORPYTHIA8_H_
15#define ALICEO2_EVENTGEN_GENERATORPYTHIA8_H_
18#include "Pythia8/Pythia.h"
102 Bool_t
Init()
override;
150 void getNpart(
int& nProtonProj,
int& nNeutronProj,
int& nProtonTarg,
int& nNeutronTarg)
152 getNpart(
mPythia.info, nProtonProj, nNeutronProj, nProtonTarg, nNeutronTarg);
155 void getNremn(
int& nProtonProj,
int& nNeutronProj,
int& nProtonTarg,
int& nNeutronTarg)
157 getNremn(
mPythia.event, nProtonProj, nNeutronProj, nProtonTarg, nNeutronTarg);
162 void getNfreeSpec(
int& nFreenProj,
int& nFreepProj,
int& nFreenTarg,
int& nFreepTarg)
228 const std::vector<int>& old2New,
230 std::vector<bool>&
done,
234 const std::string& what,
235 const std::string& ind =
"");
244 void selectFromAncestor(
int ancestor, Pythia8::Event& inputEvent, Pythia8::Event& outputEvent);
247 void getNcoll(
const Pythia8::Info& info,
int& nColl);
250 void getNpart(
const Pythia8::Info& info,
int& nPart);
254 void getNpart(
const Pythia8::Info& info,
int& nProtonProj,
int& nNeutronProj,
int& nProtonTarg,
int& nNeutronTarg);
256 void getNremn(
const Pythia8::Event&
event,
int& nProtonProj,
int& nNeutronProj,
int& nProtonTarg,
int& nNeutronTarg);
260 void getNfreeSpec(
const Pythia8::Info& info,
int& nFreenProj,
int& nFreepProj,
int& nFreenTarg,
int& nFreepTarg);
~GeneratorPythia8() override=default
static constexpr long MAX_SEED
GeneratorPythia8 & operator=(const GeneratorPythia8 &)
bool setInitialSeed(long seed)
void(* SetRelatives)(Pythia8::Particle &, int, int)
std::pair< int, int >(* FirstLastRelative)(const Pythia8::Particle &)
std::vector< int >(* GetRelatives)(const Pythia8::Particle &)
GeneratorPythia8(const GeneratorPythia8 &)
std::string mHooksFuncName
void setHooksFuncName(std::string val)
int mThisPythia8InstanceID
void selectFromAncestor(int ancestor, Pythia8::Event &inputEvent, Pythia8::Event &outputEvent)
std::string mHooksFileName
void pruneEvent(Pythia8::Event &event, Select select)
bool readString(std::string val)
Pythia8GenConfig mGenConfig
void initUserFilterCallback()
static std::atomic< int > Pythia8InstanceCounter
void setHooksFileName(std::string val)
Bool_t generateEvent() override
void investigateRelatives(Pythia8::Event &event, const std::vector< int > &old2New, size_t index, std::vector< bool > &done, GetRelatives getter, SetRelatives setter, FirstLastRelative firstLast, const std::string &what, const std::string &ind="")
ClassDefOverride(GeneratorPythia8, 1)
void getNpart(int &nPart)
void getNremn(int &nProtonProj, int &nNeutronProj, int &nProtonTarg, int &nNeutronTarg)
void seedGenerator()
performs seeding of the random state of Pythia (called from Init)
void getNpart(int &nProtonProj, int &nNeutronProj, int &nProtonTarg, int &nNeutronTarg)
void getNcoll(int &nColl)
std::function< bool(const Pythia8::Particle &)> UserFilterFcn
void setUserHooks(Pythia8::UserHooks *hooks)
bool readFile(std::string val)
void updateHeader(o2::dataformats::MCEventHeader *eventHeader) override
Bool_t importParticles() override
UserFilterFcn mUserFilterFcn
void getNfreeSpec(int &nFreenProj, int &nFreepProj, int &nFreenTarg, int &nFreepTarg)
void setConfig(std::string val)
GLuint const GLchar * name
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
std::vector< InputSpec > select(char const *matcher="")
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...