LDMX Software
MidShowerDiMuonBkgdFilter.h
1#ifndef BIASING_MIDSHOWERDIMUONBKGDFILTER_H_
2#define BIASING_MIDSHOWERDIMUONBKGDFILTER_H_
3
4/*~~~~~~~~~~~~*/
5/* SimCore */
6/*~~~~~~~~~~~~*/
8
10class G4VProcess;
11
12namespace biasing {
13
28 public:
34 MidShowerDiMuonBkgdFilter(const std::string& name,
36
41
47 std::vector<simcore::TYPE> getTypes() override {
48 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING,
49 simcore::TYPE::EVENT};
50 }
51
57 void BeginOfEventAction(const G4Event* event) override;
58
75 void stepping(const G4Step* step) override;
76
89 void NewStage() override;
90
91 private:
98 bool isOutsideCalorimeterRegion(const G4Step* step) const;
99
108 void save(const G4Track* track) const;
109
118 void AbortEvent(const std::string& reason) const;
119
120 private:
131
138
139}; // MidShowerDiMuonBkgdFilter
140} // namespace biasing
141
142#endif // BIASING_MIDSHOWERDIMUONBKGDFILTER_H__
File holding UserAction prototype and supporting macro.
The basic premis of this filter is to add up all of the energy "lost" to muons created within the cal...
bool isOutsideCalorimeterRegion(const G4Step *step) const
Checks if the passed step is outside of the CalorimeterRegion.
double total_process_energy_
Total energy gone to the process in the current event.
MidShowerDiMuonBkgdFilter(const std::string &name, framework::config::Parameters &parameters)
Class constructor.
void AbortEvent(const std::string &reason) const
Helper to abort an event with a message.
void save(const G4Track *track) const
Helper to save the passed track.
std::vector< simcore::TYPE > getTypes() override
Get the types of actions this class can do.
double threshold_
Minimum energy [MeV] that the process products need to have to keep the event.
void NewStage() override
When using the PartialEnergySorter, the first time that a new stage begins is when all particles are ...
void BeginOfEventAction(const G4Event *event) override
Reset the total energy going to the muons.
void stepping(const G4Step *step) override
We follow the simulation along each step and check if any secondaries of the input process were creat...
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
Interface that defines a user action.
Definition UserAction.h:47