|
Celeritas 0.7-develop+ddcb429
|
An interface/factory method for creating models of particle-matter interactions. More...
#include <Process.hh>

Public Types | |
Type aliases | |
| using | SPConstModel = std::shared_ptr< Model const > |
| using | VecModel = std::vector< SPConstModel > |
| using | XsGrid = inp::XsGrid |
| using | EnergyLossGrid = inp::UniformGrid |
Public Types inherited from celeritas::Process | |
| using | ActionIdIter = RangeIter< ActionId > |
Public Member Functions | |
| virtual VecModel | build_models (ActionIdIter start_id) const =0 |
| Construct the models associated with this process. | |
| virtual XsGrid | macro_xs (Applicability range) const =0 |
| Get the interaction cross sections [l/len] for the given energy range. | |
| virtual EnergyLossGrid | energy_loss (Applicability range) const =0 |
| Get the energy loss [MeV/len] for the given energy range. | |
| virtual bool | supports_integral_xs () const =0 |
| Whether the integral method can be used to sample interaction length. | |
Public Member Functions inherited from celeritas::Process | |
| virtual | ~Process () |
| Default destructor. | |
| virtual bool | applies_at_rest () const =0 |
| Whether the process applies when the particle is stopped. | |
| virtual std::string_view | label () const =0 |
| Name of the process. | |
Protected Member Functions | |
| InteractionProcess (InteractionProcess const &)=default | |
| InteractionProcess & | operator= (InteractionProcess const &)=default |
| InteractionProcess (InteractionProcess &&)=default | |
| InteractionProcess & | operator= (InteractionProcess &&)=default |
Protected Member Functions inherited from celeritas::Process | |
| Process (Process const &)=default | |
| Process & | operator= (Process const &)=default |
| Process (Process &&)=default | |
| Process & | operator= (Process &&)=default |
An interface/factory method for creating models of particle-matter interactions.
Currently processes pull their data from Geant4 which combines multiple model cross sections into an individual range for each particle type. Therefore we make the process responsible for providing the combined cross section values – currently this will use preprocessed Geant4 data but later we could provide helper functions so that each Process can individually combine its models.
Each process has an interaction ("post step doit") and may have both energy loss and range limiters.
|
protecteddefault |
Allow construction and assignment only through daughter classes
|
protecteddefault |
Allow construction and assignment only through daughter classes
|
protecteddefault |
Allow construction and assignment only through daughter classes
|
pure virtual |
Construct the models associated with this process.
Implemented in celeritas::BremsstrahlungProcess, celeritas::ComptonProcess, celeritas::CoulombScatteringProcess, celeritas::EIonizationProcess, celeritas::ElectroNuclearProcess, celeritas::EPlusAnnihilationProcess, celeritas::GammaConversionProcess, celeritas::GammaNuclearProcess, celeritas::MuBremsstrahlungProcess, celeritas::MuIonizationProcess, celeritas::MuPairProductionProcess, celeritas::PhotoelectricProcess, celeritas::RayleighProcess, celeritas::MucfProcess, celeritas::NeutronCaptureProcess, celeritas::NeutronElasticProcess, celeritas::NeutronInelasticProcess, and celeritas::test::MockProcess.
|
pure virtual |
Get the energy loss [MeV/len] for the given energy range.
Implemented in celeritas::BremsstrahlungProcess, celeritas::ComptonProcess, celeritas::CoulombScatteringProcess, celeritas::EIonizationProcess, celeritas::ElectroNuclearProcess, celeritas::EPlusAnnihilationProcess, celeritas::GammaConversionProcess, celeritas::GammaNuclearProcess, celeritas::MuBremsstrahlungProcess, celeritas::MuIonizationProcess, celeritas::MuPairProductionProcess, celeritas::PhotoelectricProcess, celeritas::RayleighProcess, celeritas::NeutronCaptureProcess, celeritas::NeutronElasticProcess, celeritas::NeutronInelasticProcess, celeritas::test::MockProcess, and celeritas::MucfProcess.
|
pure virtual |
Get the interaction cross sections [l/len] for the given energy range.
Implemented in celeritas::BremsstrahlungProcess, celeritas::ComptonProcess, celeritas::CoulombScatteringProcess, celeritas::EIonizationProcess, celeritas::ElectroNuclearProcess, celeritas::EPlusAnnihilationProcess, celeritas::GammaConversionProcess, celeritas::GammaNuclearProcess, celeritas::MuBremsstrahlungProcess, celeritas::MuIonizationProcess, celeritas::MuPairProductionProcess, celeritas::PhotoelectricProcess, celeritas::RayleighProcess, celeritas::NeutronCaptureProcess, celeritas::NeutronElasticProcess, celeritas::NeutronInelasticProcess, celeritas::test::MockProcess, and celeritas::MucfProcess.
|
protecteddefault |
Allow construction and assignment only through daughter classes
|
protecteddefault |
Allow construction and assignment only through daughter classes
Whether the integral method can be used to sample interaction length.
Implemented in celeritas::BremsstrahlungProcess, celeritas::ComptonProcess, celeritas::CoulombScatteringProcess, celeritas::EIonizationProcess, celeritas::ElectroNuclearProcess, celeritas::EPlusAnnihilationProcess, celeritas::GammaConversionProcess, celeritas::GammaNuclearProcess, celeritas::MuBremsstrahlungProcess, celeritas::MuIonizationProcess, celeritas::MuPairProductionProcess, celeritas::PhotoelectricProcess, celeritas::RayleighProcess, celeritas::MucfProcess, celeritas::NeutronCaptureProcess, celeritas::NeutronElasticProcess, celeritas::NeutronInelasticProcess, and celeritas::test::MockProcess.