Celeritas 0.6.0-rc.2.10+develop.de0a3a05
|
Control options for Geant4 sensitive detector integration. More...
#include <Scoring.hh>
Public Types | |
using | SetVolume = std::unordered_set< G4LogicalVolume const * > |
Provide either a set of labels or a set of pointers to Geant4 objects. | |
using | SetString = std::unordered_set< std::string > |
using | VariantSetVolume = std::variant< SetVolume, SetString > |
using | PointAttrs = EnumArray< StepPoint, GeantSdStepPointAttributes > |
Public Attributes | |
bool | ignore_zero_deposition {true} |
Skip steps that do not deposit energy locally. | |
bool | energy_deposition {true} |
Save energy deposition. | |
bool | step_length {true} |
Save physical step length. | |
bool | track {true} |
Create a track with the dynamic particle type and post-step data. | |
PointAttrs | points |
Options for saving and converting beginning- and end-of-step data. | |
VariantSetVolume | force_volumes |
Manually list LVs that don't have an SD on the master thread. | |
VariantSetVolume | skip_volumes |
List LVs that should not have automatic hit mapping. | |
Control options for Geant4 sensitive detector integration.
By default, Celeritas connects to Geant4 sensitive detectors so that it reconstructs full-fidelity hits with all available step information.
false
.touchable
step option is the most expensive detector option. Disable it unless your SDs require (e.g.) the volume's copy number to locate a detector submodule.Various attributes on the step, track, and pre/post step points may be available depending on the selected options.
track
will leave G4Step::GetTrack
as nullptr
.track
will set the Charge
attribute on the pre-step.GlobalTime
, Position
, KineticEnergy
, and MomentumDirection
will be copied to the Track
when the combination of options is enabled.Material
and MaterialCutsCouple
, and sensitive detector) are always updated. Post-step values for those are not set.UserInformation
and AuxiliaryTrackInformation
are never set.The force_volumes
option can be used for unusual cases (i.e., when using a custom run manager) that do not define SDs on the "master" thread. Similarly, the skip_volumes
option allows optimized GPU-defined SDs to be used in place of a Geant4 callback. For both options, the FindVolumes
helper function can be used to determine LV pointers from the volume names.
For improved granularity in models with duplicate names, we could add a vector of Label
to VariantSetVolume
.
change from unordered_set
to set
for better reproducibility in serialized output
The pre- and post-step attributes can be set with: