5#ifndef GENERATOR_PYTHIA8_USER_RESONANCE_FACTORY_H
6#define GENERATOR_PYTHIA8_USER_RESONANCE_FACTORY_H
8#include "Pythia8/ResonanceWidths.h"
9#include "Pythia8/Pythia.h"
16 using Pythia8::ResonanceWidths;
27 static std::shared_ptr<ResonanceWidths>
create(
const std::string &name,
int pdgid);
35 virtual std::shared_ptr<ResonanceWidths>
create(
int idResIn)
const = 0;
56 std::shared_ptr<ResonanceWidths>
create(
int idResIn)
const{
57 return std::make_shared<T>(idResIn);
67 static std::map<std::string, const ICreator*> &
s_creators();
Creator(const std::string &name)
std::shared_ptr< ResonanceWidths > create(int idResIn) const
virtual std::shared_ptr< ResonanceWidths > create(int idResIn) const =0
static std::shared_ptr< ResonanceWidths > create(const std::string &name, int pdgid)
Call this with the name of the ResonanceWidth and PDG ID to which it will be applied e....
static std::map< std::string, const ICreator * > & s_creators()
static function to instantiate map of string name Vs. creator object on first use