Celeritas  0.5.0-86+4a8eea4
Public Types | Public Member Functions | Public Attributes | List of all members
celeritas::optical::ScintillationData< W, M > Struct Template Reference

Data characterizing the scintillation spectrum for all particles and materials. More...

#include <ScintillationData.hh>

Public Types

template<class T >
using Items = Collection< T, W, M >
 
template<class T >
using OpticalMaterialItems = Collection< T, W, M, OpticalMaterialId >
 
template<class T >
using ScintPidItems = Collection< T, W, M, ParticleScintSpectrumId >
 

Public Member Functions

CELER_FUNCTION operator bool () const
 Whether all data are assigned and valid.
 
CELER_FUNCTION bool scintillation_by_particle () const
 Whether sampling must happen by particle type.
 
ParticleScintSpectrumId spectrum_index (ScintillationParticleId pid, OpticalMaterialId mat_id) const
 Retrieve spectrum index given optical particle and material ids.
 
template<Ownership W2, MemSpace M2>
ScintillationDataoperator= (ScintillationData< W2, M2 > const &other)
 Assign from another set of data.
 

Public Attributes

size_type num_scint_particles {}
 Number of scintillation particles, used by this->spectrum_index.
 
OpticalMaterialItems< real_typeresolution_scale
 Resolution scale for each material [OpticalMaterialid].
 
OpticalMaterialItems< MatScintSpectrumRecordmaterials
 Material-dependent scintillation spectrum data [OpticalMaterialid].
 
Collection< ScintillationParticleId, W, M, ParticleIdpid_to_scintpid
 Index between ScintillationParticleId and ParticleId.
 
ScintPidItems< ParScintSpectrumRecordparticles
 Particle/material scintillation spectrum data [ParticleScintSpectrumId].
 
Items< real_typereals
 Backend storage for real values.
 
Items< ScintRecordscint_records
 Backend storage for scintillation components.
 

Detailed Description

template<Ownership W, MemSpace M>
struct celeritas::optical::ScintillationData< W, M >

Data characterizing the scintillation spectrum for all particles and materials.

Sampling using material-only data or particle- and material-dependent data are mutually exclusive. Therefore, either materials or particles are loaded at the beginning of the simulation, but never both at the same time. The scintillation_by_particle() function can be used to check that.


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