10#ifndef BIASING_DEEPECALFILTER_H
11#define BIASING_DEEPECALFILTER_H
21#include "SimCore/UserAction.h"
26#include "Framework/Configure/Parameters.h"
51 void stepping(
const G4Step* step)
override;
62 std::vector<simcore::TYPE>
getTypes()
override {
63 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING,
64 simcore::TYPE::EVENT};
80 bool photonFromTarget_{
false};
Base classes for all user event processing components to extend.
User action that allows a user to filter out events where the interaction happened deep in the ECAL.
void NewStage() override
Method called at the beginning of a new stage.
bool hasDeepEcalProcess_
member used to help tag events that have a deep-ecal process ocurr
void stepping(const G4Step *step) override
Implement the stepping action which performs the target volume biasing.
double bias_threshold_
Minimal energy the products should have.
std::vector< std::string > processes_
The allowed processes that can happen deep inside the ECAL, default is conversion (conv) and photoele...
virtual ~DeepEcalProcessFilter()=default
Destructor.
std::vector< simcore::TYPE > getTypes() override
Retrieve the type of actions this class defines.
void BeginOfEventAction(const G4Event *event) override
Method to set flags in the beginning of the event.
enableLogging("DeepEcalProcessFilter") bool photonFromTarget_
Enable logging.
double ecal_min_Z_
Minimum Z location where the deep process should happen.
bool require_photon_fromTarget_
Require that the hard brem photon originates from the target.
Class encapsulating parameters for configuring a processor.
Interface that defines a user action.