Celeritas  0.5.0-86+4a8eea4
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 std::string_view label () const =0
 Name of the process.
 

Protected Member Functions

 Process ()=default
 
 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

◆ CELER_DEFAULT_COPY_MOVE()

celeritas::Process::CELER_DEFAULT_COPY_MOVE ( Process  )
protected

Allow construction and assignment only through daughter classes


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