LDMX Software
Public Member Functions | Private Attributes | List of all members
simcore::BertiniAtLeastNProductsModel Class Reference

Public Member Functions

 BertiniAtLeastNProductsModel (const std::string &name, const framework::config::Parameters &parameters)
 
void ConstructGammaProcess (G4ProcessManager *processManager) override
 The primary part of the model interface, responsible for adding the desired G4HadronicInteraction to the process manager for the G4Gamma class.
 
- Public Member Functions inherited from simcore::PhotoNuclearModel
 PhotoNuclearModel (const std::string &name, const framework::config::Parameters &parameters)
 Base class does not take any parameters or do anything in particular, but any derived class may.
 
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.
 

Private Attributes

double threshold_
 
int Zmin_
 
double Emin_
 
std::vector< int > pdg_ids_
 
int min_products_
 

Additional Inherited Members

- Public Types inherited from simcore::PhotoNuclearModel
using Factory = ::simcore::Factory< PhotoNuclearModel, std::shared_ptr< PhotoNuclearModel >, const std::string &, const framework::config::Parameters & >
 The factory for PhotoNuclearModels.
 

Detailed Description

Definition at line 41 of file BertiniAtLeastNProductsModel.h.

Constructor & Destructor Documentation

◆ BertiniAtLeastNProductsModel()

simcore::BertiniAtLeastNProductsModel::BertiniAtLeastNProductsModel ( const std::string &  name,
const framework::config::Parameters parameters 
)
inline

Definition at line 43 of file BertiniAtLeastNProductsModel.h.

45 : PhotoNuclearModel{name, parameters},
46 threshold_{parameters.getParameter<double>("hard_particle_threshold")},
47 Zmin_{parameters.getParameter<int>("zmin")},
48 Emin_{parameters.getParameter<double>("emin")},
49 pdg_ids_{parameters.getParameter<std::vector<int>>("pdg_ids")},
50 min_products_{parameters.getParameter<int>("min_products")} {}
T getParameter(const std::string &name) const
Retrieve the parameter of the given name.
Definition Parameters.h:89
PhotoNuclearModel(const std::string &name, const framework::config::Parameters &parameters)
Base class does not take any parameters or do anything in particular, but any derived class may.

Member Function Documentation

◆ ConstructGammaProcess()

void simcore::BertiniAtLeastNProductsModel::ConstructGammaProcess ( G4ProcessManager *  processManager)
overridevirtual

The primary part of the model interface, responsible for adding the desired G4HadronicInteraction to the process manager for the G4Gamma class.

Parameters
[in]processManagerthe process manager for the G4Gamma class, passed in automatically by the GammaPhysics module.

Implements simcore::PhotoNuclearModel.

Definition at line 25 of file BertiniAtLeastNProductsModel.cxx.

26 {
27 auto photoNuclearProcess{
28 new G4HadronInelasticProcess("photonNuclear", G4Gamma::Definition())};
29 auto model{new BertiniAtLeastNProductsProcess{threshold_, Zmin_, Emin_,
30 pdg_ids_, min_products_}};
31 model->SetMaxEnergy(15 * CLHEP::GeV);
32 addPNCrossSectionData(photoNuclearProcess);
33 photoNuclearProcess->RegisterMe(model);
34 processManager->AddDiscreteProcess(photoNuclearProcess);
35}
virtual void addPNCrossSectionData(G4HadronInelasticProcess *process) const
Default implementation for adding XS data for the process.

References simcore::PhotoNuclearModel::addPNCrossSectionData().

Member Data Documentation

◆ Emin_

double simcore::BertiniAtLeastNProductsModel::Emin_
private

Definition at line 57 of file BertiniAtLeastNProductsModel.h.

◆ min_products_

int simcore::BertiniAtLeastNProductsModel::min_products_
private

Definition at line 59 of file BertiniAtLeastNProductsModel.h.

◆ pdg_ids_

std::vector<int> simcore::BertiniAtLeastNProductsModel::pdg_ids_
private

Definition at line 58 of file BertiniAtLeastNProductsModel.h.

◆ threshold_

double simcore::BertiniAtLeastNProductsModel::threshold_
private

Definition at line 55 of file BertiniAtLeastNProductsModel.h.

◆ Zmin_

int simcore::BertiniAtLeastNProductsModel::Zmin_
private

Definition at line 56 of file BertiniAtLeastNProductsModel.h.


The documentation for this class was generated from the following files: