LDMX Software
simcore::BertiniExactlyNProductsModel Class Reference

Public Member Functions

 BertiniExactlyNProductsModel (const std::string &name, const framework::config::Parameters &parameters)
 
void constructGammaProcess (G4ProcessManager *processManager)
 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.
 
 DECLARE_FACTORY (PhotoNuclearModel, std::shared_ptr< PhotoNuclearModel >, const std::string &, const framework::config::Parameters &)
 The factory for PhotoNuclearModels.
 
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_
 
bool check_allmatch_
 
int n_products_
 

Detailed Description

Definition at line 49 of file BertiniExactlyNProductsModel.h.

Constructor & Destructor Documentation

◆ BertiniExactlyNProductsModel()

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

Definition at line 51 of file BertiniExactlyNProductsModel.h.

53 : PhotoNuclearModel{name, parameters},
54 threshold_{parameters.getParameter<double>("hard_particle_threshold")},
55 zmin_{parameters.getParameter<int>("zmin")},
56 emin_{parameters.getParameter<double>("emin")},
57 pdg_ids_{parameters.getParameter<std::vector<int>>("pdg_ids")},
58 check_allmatch_{parameters.getParameter<bool>("check_allmatch")},
59 n_products_{parameters.getParameter<int>("n_products")} {}
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::BertiniExactlyNProductsModel::constructGammaProcess ( G4ProcessManager * processManager)
virtual

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 40 of file BertiniExactlyNProductsModel.cxx.

41 {
42 auto photo_nuclear_process{
43 new G4HadronInelasticProcess("photonNuclear", G4Gamma::Definition())};
44
45 auto model{new BertiniExactlyNProductsProcess{
46 threshold_, zmin_, emin_, pdg_ids_, check_allmatch_, n_products_}};
47 model->SetMaxEnergy(15 * CLHEP::GeV);
48 addPNCrossSectionData(photo_nuclear_process);
49 photo_nuclear_process->RegisterMe(model);
50 process_manager->AddDiscreteProcess(photo_nuclear_process);
51}
virtual void addPNCrossSectionData(G4HadronInelasticProcess *process) const
Default implementation for adding XS data for the process.

References simcore::PhotoNuclearModel::addPNCrossSectionData().

Member Data Documentation

◆ check_allmatch_

bool simcore::BertiniExactlyNProductsModel::check_allmatch_
private

Definition at line 68 of file BertiniExactlyNProductsModel.h.

◆ emin_

double simcore::BertiniExactlyNProductsModel::emin_
private

Definition at line 66 of file BertiniExactlyNProductsModel.h.

◆ n_products_

int simcore::BertiniExactlyNProductsModel::n_products_
private

Definition at line 69 of file BertiniExactlyNProductsModel.h.

◆ pdg_ids_

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

Definition at line 67 of file BertiniExactlyNProductsModel.h.

◆ threshold_

double simcore::BertiniExactlyNProductsModel::threshold_
private

Definition at line 64 of file BertiniExactlyNProductsModel.h.

◆ zmin_

int simcore::BertiniExactlyNProductsModel::zmin_
private

Definition at line 65 of file BertiniExactlyNProductsModel.h.


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