LDMX Software
EcalDarkBremFilter.h
Go to the documentation of this file.
1
10#ifndef BIASING_ECALDARKBREMFILTER_H_
11#define BIASING_ECALDARKBREMFILTER_H_
12
13//------------//
14// Geant4 //
15//------------//
16#include "G4RunManager.hh"
17
18/*~~~~~~~~~~~~*/
19/* SimCore */
20/*~~~~~~~~~~~~*/
21
23
24namespace biasing {
25
43 public:
49 EcalDarkBremFilter(const std::string& name,
51
56
62 std::vector<simcore::TYPE> getTypes() override {
63 return {simcore::TYPE::STACKING, simcore::TYPE::EVENT,
64 simcore::TYPE::TRACKING};
65 }
66
72 void beginOfEventAction(const G4Event* event) override;
73
87 G4ClassificationOfNewTrack classifyNewTrack(
88 const G4Track* aTrack,
89 const G4ClassificationOfNewTrack& currentTrackClass) override;
90
101 void newStage() override;
102
113 void postUserTrackingAction(const G4Track* track) override;
114
115 private:
122 bool inDesiredVolume(const G4Track*) const;
123
124 private:
134
138 std::vector<G4LogicalVolume*> volumes_;
139
146
147}; // EcalDarkBremFilter
148} // namespace biasing
149
150#endif // BIASING_ECALDARKBREMFILTER_H__
File holding UserAction prototype and supporting macro.
This class is meant to filter for events that produce a dark brem occuring within the ECal and produc...
void newStage() override
When using the PartialEnergySorter, the first time that a new stage begins is when all particles are ...
~EcalDarkBremFilter()
Class destructor.
void postUserTrackingAction(const G4Track *track) override
Make sure A' is saved.
bool found_ap_
Have we found the A' yet?
double threshold_
Minimum energy [MeV] that the A' should have to keep the event.
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 beginOfEventAction(const G4Event *event) override
Reset flag on if A' has been found.
G4ClassificationOfNewTrack classifyNewTrack(const G4Track *aTrack, const G4ClassificationOfNewTrack &currentTrackClass) override
We return the classification of the track done by the PartialEnergySorter, but we can check here if t...
std::vector< simcore::TYPE > getTypes() override
Get the types of actions this class can do.
EcalDarkBremFilter(const std::string &name, framework::config::Parameters &parameters)
Class constructor.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Interface that defines a user action.
Definition UserAction.h:46