Celeritas
0.5.0-86+4a8eea4
|
Callback class to gather and process data from many tracks at a single step. More...
#include <StepInterface.hh>
Classes | |
struct | Filters |
Filtering to apply to the gathered data for this step. More... | |
Type aliases | |
using | HostStepState = StepState< MemSpace::host > |
Detector filtering required for this interface. | |
using | DeviceStepState = StepState< MemSpace::device > |
Detector filtering required for this interface. | |
using | MapVolumeDetector = std::map< VolumeId, DetectorId > |
Detector filtering required for this interface. | |
virtual Filters | filters () const =0 |
Detector filtering required for this interface. | |
virtual StepSelection | selection () const =0 |
Selection of data required for this interface. | |
virtual void | process_steps (HostStepState)=0 |
Process CPU-generated hit data. | |
virtual void | process_steps (DeviceStepState)=0 |
Process device-generated hit data. | |
~StepInterface ()=default | |
Detector filtering required for this interface. | |
Callback class to gather and process data from many tracks at a single step.
The filtering mechanism allows different step interfaces to gather data from different detector volumes. Filtered step interfaces cannot be combined with unfiltered in a single hit collector. (FIXME: maybe we need a slightly different class hierarchy for the two cases?) If detectors are in use, and all StepInterface
instances in use by a StepCollector
select the "nonzero_energy_deposition" flag, then the StepStateData::detector
entry for a thread with no energy deposition will be cleared even if it is in a sensitive detector. Otherwise entries with zero energy deposition will remain.