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// C++ StdLib //
15//----------------//
16#include <algorithm>
17
18/*~~~~~~~~~~~~~*/
19/* SimCore */
20/*~~~~~~~~~~~~~*/
21#include "SimCore/UserAction.h"
22
23/*~~~~~~~~~~~~~~~*/
24/* Framework */
25/*~~~~~~~~~~~~~~~*/
26#include "Framework/Configure/Parameters.h"
28
29namespace biasing {
30
36 public:
38 DeepEcalProcessFilter(const std::string& name,
40
42 virtual ~DeepEcalProcessFilter() = default;
43
45 void BeginOfEventAction(const G4Event* event) override;
46
51 void stepping(const G4Step* step) override;
52
53 // /**
54 // * Method called at the end of every event.
55 // * @param event Geant4 event object.
56 // */
57 // void EndOfEventAction(const G4Event*) override;
58
59 void NewStage() override;
60
62 std::vector<simcore::TYPE> getTypes() override {
63 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING,
64 simcore::TYPE::EVENT};
65 }
66
67 private:
69 double bias_threshold_{1500.};
72 std::vector<std::string> processes_{"conv", "phot"};
74 double ecal_min_Z_{400.};
78 enableLogging("DeepEcalProcessFilter")
80 bool photonFromTarget_{false};
83}; // DeepEcalProcessFilter
84} // namespace biasing
85
86#endif // BIASING_DEEPECALFILTER_H
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.
Definition Parameters.h:27
Interface that defines a user action.
Definition UserAction.h:42