LDMX Software
|
Public Types | |
using | Factory = ::simcore::Factory< PhotoNuclearModel, std::shared_ptr< PhotoNuclearModel >, const std::string &, const framework::config::Parameters & > |
The factory for PhotoNuclearModels. | |
Public Member Functions | |
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 the process manager for the G4Gamma 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. | |
Definition at line 27 of file PhotoNuclearModel.h.
using simcore::PhotoNuclearModel::Factory = ::simcore::Factory<PhotoNuclearModel, std::shared_ptr<PhotoNuclearModel>, const std::string&, const framework::config::Parameters&> |
The factory for PhotoNuclearModels.
Definition at line 52 of file PhotoNuclearModel.h.
|
inline |
Base class does not take any parameters or do anything in particular, but any derived class may.
[in] | name | unique instance name for this model |
[in] | parameters | python configuration |
Definition at line 36 of file PhotoNuclearModel.h.
|
virtual |
Default implementation for adding XS data for the process.
The default implementation is adapted from G4PhotoNuclearProcess.hh but can be overridden to add cross sections in another way (e.g. from FLUKA). If no cross-section is added to the process, the simulation process will halt when attempting to calculate the mean free path so there is no way of accidentally forgetting to enable the XS data.
Typically called during ConstructGammaProcess
.
Definition at line 15 of file PhotonuclearModel.cxx.
Referenced by simcore::BertiniAtLeastNProductsModel::ConstructGammaProcess(), simcore::BertiniNothingHardModel::ConstructGammaProcess(), and simcore::BertiniSingleNeutronModel::ConstructGammaProcess().
|
pure virtual |
The primary part of the model interface, responsible for adding the desired G4HadronicInteraction to the process manager for the G4Gamma class.
[in] | processManager | the process manager for the G4Gamma class, passed in automatically by the GammaPhysics module. |
Implemented in simcore::BertiniModel, simcore::BertiniAtLeastNProductsModel, simcore::BertiniNothingHardModel, simcore::BertiniSingleNeutronModel, and simcore::NoPhotoNuclearModel.
|
virtual |
Removes any existing photonNuclear process from the process manager of the G4Gamma class.
Should in general not be overridden for most models other than the default Bertini model (which just retains the default interaction).
[in] | processManager | the process manager for the G4Gamma class, passed in automatically by the GammaPhysics module. |
Reimplemented in simcore::BertiniModel.
Definition at line 4 of file PhotonuclearModel.cxx.