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};
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 end of every event.
bool hasDeepEcalProcess_
member used to help tag events that have a deep-ecal process ocurr
DeepEcalProcessFilter(const std::string &name, framework::config::Parameters ¶meters)
Constructor.
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.
bool photonFromTarget_
member used to help tag events where the photon comes from the target
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.