5#ifndef GENERATOR_PYTHIA8_USER_HOOKS_FACTORY_H
6#define GENERATOR_PYTHIA8_USER_HOOKS_FACTORY_H
8#include "Pythia8/Pythia.h"
9#include "Pythia8/UserHooks.h"
14#define PYTHIA8_PTRWRAP(A) A
15#define PYTHIA8_INITUSERHOOK_WRAP(A) A->initPtr(infoPtr, settingsPtr, particleDataPtr, rndmPtr, beamAPtr, beamBPtr, beamPomAPtr, beamPomBPtr, coupSMPtr, partonSystemsPtr, sigmaTotPtr)
16#ifdef PYTHIA_VERSION_INTEGER
17 #define PYTHIA8_3SERIES
18 #if PYTHIA_VERSION_INTEGER > 8303
19 #define PYTHIA8_304SERIES
22 #undef PYTHIA8_PTRWRAP
23 #define PYTHIA8_PTRWRAP(A) std::shared_ptr<Pythia8::UserHooks>(A)
24 #undef PYTHIA8_INITUSERHOOK_WRAP
25 #define PYTHIA8_INITUSERHOOK_WRAP(A) registerSubObject(*A)
32 using Pythia8::UserHooks;
39 static UserHooks *
create(
const std::string &hookName);
47 virtual UserHooks *
create()
const = 0;
83 static std::map<std::string, std::string> &
userWords();
87 static std::map<std::string, const ICreator*> &
s_creators();
Pythia8::UserHooks * UserHooksPtrType
Creator(const std::string &name)
UserHooks * create() const
virtual UserHooks * create() const =0
static std::map< std::string, std::string > & userWords()
static std::map< std::string, T > & userSettings()
static UserHooks * create(const std::string &hookName)
static std::map< std::string, double > & userParams()
static std::map< std::string, int > & userModes()
static std::map< std::string, const ICreator * > & s_creators()
static function to instantiate map of string name Vs. creator object on first use
Some common functions for determining pTs and navigating event records for the PoWHEG + Pythia user h...