Celeritas 0.7-develop+ddcb429
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::InteractionProcess Class Referenceabstract

An interface/factory method for creating models of particle-matter interactions. More...

#include <Process.hh>

Inheritance diagram for celeritas::InteractionProcess:
Inheritance graph
[legend]

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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ InteractionProcess() [1/3]

celeritas::InteractionProcess::InteractionProcess ( )
protecteddefault

Allow construction and assignment only through daughter classes

◆ InteractionProcess() [2/3]

celeritas::InteractionProcess::InteractionProcess ( InteractionProcess const &  )
protecteddefault

Allow construction and assignment only through daughter classes

◆ InteractionProcess() [3/3]

celeritas::InteractionProcess::InteractionProcess ( InteractionProcess &&  )
protecteddefault

Allow construction and assignment only through daughter classes

Member Function Documentation

◆ build_models()

virtual VecModel celeritas::InteractionProcess::build_models ( ActionIdIter  start_id) const
pure virtual

◆ energy_loss()

virtual EnergyLossGrid celeritas::InteractionProcess::energy_loss ( Applicability  range) const
pure virtual

◆ macro_xs()

virtual XsGrid celeritas::InteractionProcess::macro_xs ( Applicability  range) const
pure virtual

◆ operator=() [1/2]

InteractionProcess & celeritas::InteractionProcess::operator= ( InteractionProcess &&  )
protecteddefault

Allow construction and assignment only through daughter classes

◆ operator=() [2/2]

InteractionProcess & celeritas::InteractionProcess::operator= ( InteractionProcess const &  )
protecteddefault

Allow construction and assignment only through daughter classes

◆ supports_integral_xs()

virtual bool celeritas::InteractionProcess::supports_integral_xs ( ) const
pure virtual

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