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 46 of file BertiniExactlyNProductsModel.h.

Constructor & Destructor Documentation

◆ BertiniExactlyNProductsModel()

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

Definition at line 48 of file BertiniExactlyNProductsModel.h.

50 : PhotoNuclearModel{name, parameters},
51 threshold_{parameters.getParameter<double>("hard_particle_threshold")},
52 zmin_{parameters.getParameter<int>("zmin")},
53 emin_{parameters.getParameter<double>("emin")},
54 pdg_ids_{parameters.getParameter<std::vector<int>>("pdg_ids")},
55 check_allmatch_{parameters.getParameter<bool>("check_allmatch")},
56 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 42 of file BertiniExactlyNProductsModel.cxx.

43 {
44 auto photo_nuclear_process{
45 new G4HadronInelasticProcess("photonNuclear", G4Gamma::Definition())};
46
47 auto model{new BertiniExactlyNProductsProcess{
48 threshold_, zmin_, emin_, pdg_ids_, check_allmatch_, n_products_}};
49 model->SetMaxEnergy(15 * CLHEP::GeV);
50 addPNCrossSectionData(photo_nuclear_process);
51 photo_nuclear_process->RegisterMe(model);
52 process_manager->AddDiscreteProcess(photo_nuclear_process);
53}
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 65 of file BertiniExactlyNProductsModel.h.

◆ emin_

double simcore::BertiniExactlyNProductsModel::emin_
private

Definition at line 63 of file BertiniExactlyNProductsModel.h.

◆ n_products_

int simcore::BertiniExactlyNProductsModel::n_products_
private

Definition at line 66 of file BertiniExactlyNProductsModel.h.

◆ pdg_ids_

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

Definition at line 64 of file BertiniExactlyNProductsModel.h.

◆ threshold_

double simcore::BertiniExactlyNProductsModel::threshold_
private

Definition at line 61 of file BertiniExactlyNProductsModel.h.

◆ zmin_

int simcore::BertiniExactlyNProductsModel::zmin_
private

Definition at line 62 of file BertiniExactlyNProductsModel.h.


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