Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::Process Class Referenceabstract

An interface/factory method for creating models. More...

#include <Process.hh>

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

Public Types

Type aliases
using SPConstModel = std::shared_ptr< Model const >
 
using UPConstGridBuilder = std::unique_ptr< ValueGridBuilder const >
 
using VecModel = std::vector< SPConstModel >
 
using StepLimitBuilders = ValueGridArray< UPConstGridBuilder >
 
using ActionIdIter = RangeIter< ActionId >
 

Public Member Functions

virtual ~Process ()
 Default destructor.
 
virtual VecModel build_models (ActionIdIter start_id) const =0
 Construct the models associated with this process.
 
virtual StepLimitBuilders step_limits (Applicability range) const =0
 Get the interaction cross sections for the given energy range.
 
virtual bool use_integral_xs () const =0
 Whether to use the integral method to sample interaction length.
 
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

 CELER_DEFAULT_COPY_MOVE (Process)
 

Detailed Description

An interface/factory method for creating models.

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.

The StepLimitBuilders is a fixed-size array corresponding to the physics interface enum ValueGridType :

Constructor & Destructor Documentation

◆ Process()

celeritas::Process::Process ( )
protecteddefault

Allow construction and assignment only through daughter classes

Member Function Documentation

◆ applies_at_rest()

virtual bool celeritas::Process::applies_at_rest ( ) const
pure virtual

◆ build_models()

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

◆ CELER_DEFAULT_COPY_MOVE()

celeritas::Process::CELER_DEFAULT_COPY_MOVE ( Process  )
protected

Allow construction and assignment only through daughter classes

◆ label()

virtual std::string_view celeritas::Process::label ( ) const
pure virtual

◆ step_limits()

virtual StepLimitBuilders celeritas::Process::step_limits ( Applicability  range) const
pure virtual

◆ use_integral_xs()

virtual bool celeritas::Process::use_integral_xs ( ) const
pure virtual

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