16#ifndef _RMG_SCINTILLATOR_OUTPUT_SCHEME_HH_
17#define _RMG_SCINTILLATOR_OUTPUT_SCHEME_HH_
23#include "G4AnalysisManager.hh"
24#include "G4GenericMessenger.hh"
26#include "RMGDetectorHit.hh"
27#include "RMGOutputTools.hh"
28#include "RMGScintillatorDetector.hh"
29#include "RMGVOutputScheme.hh"
47class RMGScintillatorOutputScheme :
public RMGVOutputScheme {
51 RMGScintillatorOutputScheme();
85 fPreClusterPars.cluster_time_threshold = threshold;
90 fPreClusterPars.track_energy_threshold = threshold;
95 [[nodiscard]] std::string GetNtupleNameFlat()
const override {
return "scintillator"; }
99 RMGDetectorHitsCollection* GetHitColl(
const G4Event*);
100 void SetPositionModeString(std::string mode);
102 std::vector<std::unique_ptr<G4GenericMessenger>> fMessengers;
103 void DefineCommands();
105 double fEdepCutLow = -1;
106 double fEdepCutHigh = -1;
107 std::set<int> fEdepCutDetectors;
109 bool fStoreSinglePrecisionEnergy =
false;
110 bool fStoreSinglePrecisionPosition =
false;
111 bool fStoreTrackID =
false;
113 bool fPreClusterHits =
true;
114 bool fDiscardZeroEnergyHits =
true;
117 RMGOutputTools::ClusterPars fPreClusterPars{};
122 bool fStoreVelocity =
false;
void SetPositionMode(RMGOutputTools::PositionMode mode)
Set which position is used for the steps.
Definition RMGScintillatorOutputScheme.hh:78
void StoreEvent(const G4Event *) override
Store the information from the event, invoked in RMGEventAction::EndOfEventAction.
Definition RMGScintillatorOutputScheme.cc:170
void AssignOutputNames(G4AnalysisManager *ana_man) override
Sets the names of the output columns, invoked in RMGRunAction::SetupAnalysisManager.
Definition RMGScintillatorOutputScheme.cc:51
void SetEdepCutLow(double threshold)
Set a lower cut on the energy deposited in the event to store it.
Definition RMGScintillatorOutputScheme.hh:69
void AddEdepCutDetector(int det_uid)
Add a detector uid to the list of detectors to apply the energy cut for.
Definition RMGScintillatorOutputScheme.hh:75
void SetEdepCutHigh(double threshold)
Set a upper cut on the energy deposited in the event to store it.
Definition RMGScintillatorOutputScheme.hh:72
void SetClusterDistance(double threshold)
Set a distance to compute together steps in the bulk.
Definition RMGScintillatorOutputScheme.hh:81
void SetClusterTimeThreshold(double threshold)
Set the time threshold for pre-clustering.
Definition RMGScintillatorOutputScheme.hh:84
void SetElectronTrackEnergyThreshold(double threshold)
Set the energy threshold to merge electron tracks.
Definition RMGScintillatorOutputScheme.hh:89
bool ShouldDiscardEvent(const G4Event *) override
Decide whether to store the event, invoked in RMGEventAction::EndOfEventAction.
Definition RMGScintillatorOutputScheme.cc:138