6#ifndef SIMCORE_PRIMARYGENERATOR_H
7#define SIMCORE_PRIMARYGENERATOR_H
17#include "G4VPrimaryGenerator.hh"
22#include "Framework/Configure/Parameters.h"
24#include "Framework/RunHeader.h"
49 std::shared_ptr<PrimaryGenerator>,
71 std::string name() {
return name_; }
87#define DECLARE_GENERATOR(CLASS) \
88 FACTORY_REGISTRATION(simcore::PrimaryGenerator, CLASS)
Header holding Factory class and supporting macros.
#define DECLARE_FACTORY_WITH_WAREHOUSE(...)
This macro is used in the public portion of your prototype class declaration.
Class encapsulating parameters for configuring a processor.
Interface that defines a simulation primary generator.
virtual ~PrimaryGenerator()=default
Destructor.
virtual void GeneratePrimaryVertex(G4Event *)=0
Generate a Primary Vertex.
std::string name_
Name of the PrimaryGenerator.
virtual void RecordConfig(const std::string &id, ldmx::RunHeader &rh)=0
Record the configuration of the primary generator into the run header.
PrimaryGenerator(const std::string &name, const framework::config::Parameters ¶meters)
Constructor.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...