Sensitivity
In GEMC, a volume becomes sensitive when its digitization field is set. The value is the name
of the digitization routine that will receive Geant4 steps from that volume and turn them into
digitized output.
gvolume.digitization = "flux"
gvolume.set_identifier("sector", 1)
gvolume.set_identifier("layer", 2)
The identifier fields define the detector element address written to output. Use enough identifiers to distinguish the sensitive elements you want to analyze, such as sector, layer, paddle, or channel.
Built-in digitizations
| Digitization | Collection | Main use |
|---|---|---|
flux |
event | Track passage and hit-level observables |
dosimeter |
run | Integrated deposited energy and dose |
particle_counter |
event | Per-pid counting |
gPhotonDetector |
event | Optical-photon detectors |
| Custom plugin | any | User-defined electronics model via .gplugin |
Output behavior
Event-level digitizations write one output file per thread for ASCII and CSV streamers. Run-level digitizations write one integrated output file.
The recordZeroEdep option controls whether ordinary zero-energy steps are recorded. Optical photons
usually deposit zero energy in detector volumes; gPhotonDetector handles this case directly and does
not require recordZeroEdep.
Choosing a sensitivity
Use flux when you want one hit per track in each sensitive element.
Use dosimeter when the detector should accumulate energy deposition and dose across the run.
Use particle_counter when hits in the same sensitive element should be grouped by pid rather than by track id.
Use gPhotonDetector for Cherenkov and other optical examples where only optical photons should be
recorded.
Write a custom plugin when you need a detector-specific electronics model such as time-to-distance conversion, charge sharing, TDC jitter, or calibration corrections loaded from a database.