|
Celeritas 0.7.0-dev.169+develop.bdc0041f6
|
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: