LDMX Software
simcore::bertini::BertiniWithHistoryModel Class Reference

PhotoNuclear model that records Bertini cascade history. More...

#include <BertiniWithHistoryModel.h>

Public Member Functions

 BertiniWithHistoryModel (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.
 
 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 max_energy_ {15000.0}
 Maximum energy for the model [MeV].
 
double energy_threshold_ {5000.0}
 Minimum photon energy to record history [MeV].
 

Detailed Description

PhotoNuclear model that records Bertini cascade history.

Uses LDMXCascadeInterface to capture cascade history for each PN interaction. Histories are stored in CascadeHistoryStore and retrieved during event finalization.

sim.photonuclear_model = photonuclear_models.BertiniWithHistoryModel()

Definition at line 32 of file BertiniWithHistoryModel.h.

Constructor & Destructor Documentation

◆ BertiniWithHistoryModel()

simcore::bertini::BertiniWithHistoryModel::BertiniWithHistoryModel ( const std::string & name,
const framework::config::Parameters & parameters )

Definition at line 16 of file BertiniWithHistoryModel.cxx.

18 : PhotoNuclearModel{name, parameters} {
19 max_energy_ = parameters.getParameter<double>("max_energy", 15000.0);
21 parameters.getParameter<double>("energy_threshold", 5000.0);
22}
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.
double energy_threshold_
Minimum photon energy to record history [MeV].
double max_energy_
Maximum energy for the model [MeV].

Member Function Documentation

◆ constructGammaProcess()

void simcore::bertini::BertiniWithHistoryModel::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 24 of file BertiniWithHistoryModel.cxx.

25 {
26 ldmx_log(info) << "BertiniWithHistoryModel::constructGammaProcess";
27 ldmx_log(info) << " Max energy: " << max_energy_ << " MeV";
28 ldmx_log(info) << " Energy threshold: " << energy_threshold_ << " MeV";
29
30 auto photo_nuclear_process =
31 new G4HadronInelasticProcess("photonNuclear", G4Gamma::Definition());
32
33 auto model = new LDMXCascadeInterface("LDMXBertiniWithHistory");
34 model->setEnergyThreshold(energy_threshold_);
35 model->SetMaxEnergy(max_energy_ * CLHEP::MeV);
36
37 ldmx_log(info) << " Created LDMXCascadeInterface model";
38
39 addPNCrossSectionData(photo_nuclear_process);
40 photo_nuclear_process->RegisterMe(model);
41 processManager->AddDiscreteProcess(photo_nuclear_process);
42
43 ldmx_log(info) << " Photonuclear process added to gamma";
44}
virtual void addPNCrossSectionData(G4HadronInelasticProcess *process) const
Default implementation for adding XS data for the process.

Member Data Documentation

◆ energy_threshold_

double simcore::bertini::BertiniWithHistoryModel::energy_threshold_ {5000.0}
private

Minimum photon energy to record history [MeV].

Definition at line 45 of file BertiniWithHistoryModel.h.

45{5000.0};

◆ max_energy_

double simcore::bertini::BertiniWithHistoryModel::max_energy_ {15000.0}
private

Maximum energy for the model [MeV].

Definition at line 42 of file BertiniWithHistoryModel.h.

42{15000.0};

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