10#ifndef BIASING_ECALDARKBREMFILTER_H_
11#define BIASING_ECALDARKBREMFILTER_H_
21#include "G4RunManager.hh"
26#include "SimCore/UserAction.h"
66 std::vector<simcore::TYPE>
getTypes()
override {
67 return {simcore::TYPE::STACKING, simcore::TYPE::EVENT,
68 simcore::TYPE::TRACKING};
92 const G4Track* aTrack,
93 const G4ClassificationOfNewTrack& currentTrackClass)
override;
136 void AbortEvent(
const std::string& reason)
const;
This class is meant to filter for events that produce a dark brem occuring within the ECal and produc...
~EcalDarkBremFilter()
Class destructor.
void BeginOfEventAction(const G4Event *event) override
Reset flag on if A' has been found.
void NewStage() override
When using the PartialEnergySorter, the first time that a new stage begins is when all particles are ...
double threshold_
Minimum energy [MeV] that the A' should have to keep the event.
void PostUserTrackingAction(const G4Track *track) override
Make sure A' is saved.
bool foundAp_
Have we found the A' yet?
bool inDesiredVolume(const G4Track *) const
Check if input volume is in the desired volume name.
std::vector< G4LogicalVolume * > volumes_
The volumes that the filter will be applied to.
void AbortEvent(const std::string &reason) const
Helper to abort an event with a message.
std::vector< simcore::TYPE > getTypes() override
Get the types of actions this class can do.
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *aTrack, const G4ClassificationOfNewTrack ¤tTrackClass) override
We return the classification of the track done by the PartialEnergySorter, but we can check here if t...
Class encapsulating parameters for configuring a processor.
Interface that defines a user action.