1#ifndef SIMCORE_PHOTONUCLEAR_MODEL_H
2#define SIMCORE_PHOTONUCLEAR_MODEL_H
3#include <G4CrossSectionDataSetRegistry.hh>
4#include <G4HadronInelasticProcess.hh>
5#include <G4HadronicInteraction.hh>
6#include <G4PhotoNuclearCrossSection.hh>
7#include <G4ProcessManager.hh>
11#include "Framework/Configure/Parameters.h"
93#define DECLARE_PHOTONUCLEAR_MODEL(CLASS) \
94 FACTORY_REGISTRATION(simcore::PhotoNuclearModel, CLASS)
Header holding Factory class and supporting macros.
Class encapsulating parameters for configuring a processor.
virtual void removeExistingModel(G4ProcessManager *processManager)
Removes any existing photonNuclear process from the process manager of the G4Gamma class.
virtual void addPNCrossSectionData(G4HadronInelasticProcess *process) const
Default implementation for adding XS data for the process.
PhotoNuclearModel(const std::string &name, const framework::config::Parameters ¶meters)
Base class does not take any parameters or do anything in particular, but any derived class may.
DECLARE_FACTORY(PhotoNuclearModel, std::shared_ptr< PhotoNuclearModel >, const std::string &, const framework::config::Parameters &)
The factory for PhotoNuclearModels.
virtual void constructGammaProcess(G4ProcessManager *processManager)=0
The primary part of the model interface, responsible for adding the desired G4HadronicInteraction to ...
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...