Celeritas  0.5.0-56+6b053cd
Classes | Public Member Functions | Static Public Member Functions | List of all members
celeritas::CutoffParams Class Referencefinal

Management particle and material cutoffs. More...

#include <CutoffParams.hh>

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

Classes

struct  Input
 Input data to construct this class. More...
 

Public Types

Type aliases
using SPConstParticles = std::shared_ptr< ParticleParams const >
 
using SPConstMaterials = std::shared_ptr< MaterialParams const >
 
using MaterialCutoffs = std::vector< ParticleCutoff >
 
- Public Types inherited from celeritas::ParamsDataInterface< CutoffParamsData >
using HostRef = HostCRef< CutoffParamsData >
 
using DeviceRef = DeviceCRef< CutoffParamsData >
 

Public Member Functions

 CutoffParams (Input const &input)
 Construct on both host and device.
 
CutoffView get (MaterialId material) const
 Access cutoffs on host.
 
HostRef const & host_ref () const final
 Access cutoff data on the host.
 
DeviceRef const & device_ref () const final
 Access cutoff data on the device.
 
- Public Member Functions inherited from celeritas::ParamsDataInterface< CutoffParamsData >
CutoffParamsData< Ownership::const_reference, M > const & ref () const
 Dispatch a "ref" call to host or device data.
 

Static Public Member Functions

static std::shared_ptr< CutoffParamsfrom_import (ImportData const &data, SPConstParticles particle_params, SPConstMaterials material_params)
 Construct with imported data.
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::ParamsDataInterface< CutoffParamsData >
 CELER_DEFAULT_COPY_MOVE (ParamsDataInterface)
 

Detailed Description

Management particle and material cutoffs.

Geant4 provides accessors to its production cuts from its G4MaterialCutsCouple class, which couples cutoff and material data. During import, for simplicity, G4's production cuts are stored alongside the material information, in ImportPhysMaterial . Since this is a direct import, the cutoff map in ImportPhysMaterial stores only the cuts available in Geant4, i.e. only values for gammas, electrons, positrons, and protons.

In Celeritas, particle cutoff is stored contiguously in a single vector of size num_particles * num_materials, which stores all particle cutoffs for all materials. During import, any particle that is not in Geant4's list receives a zero cutoff value. This opens the possibility to expand cutoffs in the future, when data is not imported anymore.

The Input structure provides a failsafe mechanism to construct the host/device data.

Some processes (e.g. photoelectric effect, decay) can produce secondaries below the production threshold, while others (e.g. bremsstrahlung, ionization) use the production cut as their instrinsic limit. By default all of these secondaries are transported, even if their energy is below the threshold. If the apply_post_interaction option is enabled, any secondary photon, electron, or positron with energy below the cutoff will be killed (the flag will be ignored for other particle types).


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