LDMX Software
DeepEcalProcessFilter.h
Go to the documentation of this file.
1
10#ifndef BIASING_DEEPECALFILTER_H
11#define BIASING_DEEPECALFILTER_H
12
13/*~~~~~~~~~~~~~*/
14/* SimCore */
15/*~~~~~~~~~~~~~*/
17
18/*~~~~~~~~~~~~~~~*/
19/* Framework */
20/*~~~~~~~~~~~~~~~*/
21#include "Framework/Configure/Parameters.h"
22
23namespace biasing {
24
30 public:
32 DeepEcalProcessFilter(const std::string& name,
34
36 virtual ~DeepEcalProcessFilter() = default;
37
39 void beginOfEventAction(const G4Event* event) override;
40
45 void stepping(const G4Step* step) override;
46
47 // /**
48 // * Method called at the end of every event.
49 // * @param event Geant4 event object.
50 // */
51 // void endOfEventAction(const G4Event*) override;
52
53 void newStage() override;
54
56 std::vector<simcore::TYPE> getTypes() override {
57 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING,
58 simcore::TYPE::EVENT};
59 }
60
61 private:
63 double bias_threshold_{1500.};
66 std::vector<std::string> processes_{"conv", "phot"};
68 double ecal_min_z_{400.};
75}; // DeepEcalProcessFilter
76} // namespace biasing
77
78#endif // BIASING_DEEPECALFILTER_H
File holding UserAction prototype and supporting macro.
User action that allows a user to filter out events where the interaction happened deep in the ECAL.
bool require_photon_from_target_
Require that the hard brem photon originates from the target.
double ecal_min_z_
Minimum Z location where the deep process should happen.
DeepEcalProcessFilter(const std::string &name, framework::config::Parameters &parameters)
Constructor.
void stepping(const G4Step *step) override
Implement the stepping action which performs the target volume biasing.
bool has_deep_ecal_process_
member used to help tag events that have a deep-ecal process ocurr
double bias_threshold_
Minimal energy the products should have.
void beginOfEventAction(const G4Event *event) override
Method to set flags in the beginning of the event.
bool photon_from_target_
member used to help tag events where the photon comes from the target
std::vector< std::string > processes_
The allowed processes that can happen deep inside the ECAL, default is conversion (conv) and photoele...
void newStage() override
Method called at the end of every event.
virtual ~DeepEcalProcessFilter()=default
Destructor.
std::vector< simcore::TYPE > getTypes() override
Retrieve the type of actions this class defines.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Interface that defines a user action.
Definition UserAction.h:46