Class RMGGermaniumOutputScheme

Inheritance Relationships

Base Type

Class Documentation

class RMGGermaniumOutputScheme : public RMGVOutputScheme

Output scheme for Germanium detectors.

This output scheme records the hits in the Germanium detectors. The properties of each RMGDetectorHit are recorded:

  • event index,

  • particle type,

  • time,

  • position,

  • energy deposition,

  • distance to detector surface,

  • velocity of the particle (optional).

Optionally, the track ID and parent track ID can be stored as well as the detector ID for the single table output mode.

In addition, this class can be used for stacking tracks associated with optical photons when no energy was deposited in Germanium.

Public Functions

RMGGermaniumOutputScheme()
virtual void AssignOutputNames(G4AnalysisManager *ana_man) override

Sets the names of the output columns, invoked in RMGRunAction::SetupAnalysisManager.

virtual void StoreEvent(const G4Event *event) override

Store the information from the event, invoked in RMGEventAction::EndOfEventAction.

Only steps with non-zero energy are stored, unless fDiscardZeroEnergyHits is false.

virtual bool ShouldDiscardEvent(const G4Event *event) override

Decide whether to store the event, invoked in RMGEventAction::EndOfEventAction.

true if the event should be discarded, else false . The event is discarded if there is no hit in Germanium or the energy range condition is not met.

virtual std::optional<bool> StackingActionNewStage(int) override

Wraps G4UserStackingAction::StackingActionNewStage.

discard all waiting events, if ShouldDiscardEvent() is true.

virtual std::optional<G4ClassificationOfNewTrack> StackingActionClassify(const G4Track*, int) override

Wraps G4UserStackingAction::StackingActionClassify.

This is used to classify all optical photon tracks as fWaiting if fDiscardPhotonsIfNoGermaniumEdep is true.

inline void SetEdepCutLow(double threshold)

Set a lower cut on the energy deposited in the event to store it.

inline void SetEdepCutHigh(double threshold)

Set a lower cut on the energy deposited in the event to store it.

inline void AddEdepCutDetector(int det_uid)

Add a detector uid to the list of detectors to apply the energy cut for.

inline void SetPositionMode(RMGOutputTools::PositionMode mode)

Set which position is used for the steps.

inline void SetClusterDistance(double threshold)

Set a distance to compute together steps in the bulk.

inline void SetClusterDistanceSurface(double threshold)

Set a distance to compute together steps in the surface.

inline void SetSurfaceThickness(double thickness)

Set the thickness of the surface region.

inline void SetClusterTimeThreshold(double threshold)

Set the time threshold for pre-clustering.

inline void SetElectronTrackEnergyThreshold(double threshold)

Set the energy threshold to merge electron tracks.

virtual void EndOfRunAction(const G4Run*) override

Perform final actions at the end of a run.

This function can be used by derived output schemes to finalize or write remaining data.

Protected Functions

inline virtual std::string GetNtupleNameFlat() const override