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"
12#include "SimCore/Factory.h"
94#define DECLARE_PHOTONUCLEAR_MODEL(CLASS) \
96 auto v = ::simcore::PhotoNuclearModel::Factory::get().declare<CLASS>(); \
Class encapsulating parameters for configuring a processor.
Factory to dynamically create objects derived from a specific prototype class.
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.
virtual void ConstructGammaProcess(G4ProcessManager *processManager)=0
The primary part of the model interface, responsible for adding the desired G4HadronicInteraction to ...