LDMX Software
TargetBremFilter.h
1#ifndef BIASING_TARGETBREMFILTER_H
2#define BIASING_TARGETBREMFILTER_H
3
4/*~~~~~~~~~~~~~*/
5/* SimCore */
6/*~~~~~~~~~~~~~*/
8
9/*~~~~~~~~~~~~~~~*/
10/* Framework */
11/*~~~~~~~~~~~~~~~*/
12#include "Framework/Configure/Parameters.h"
13#include "Framework/Logger.h"
14
15namespace biasing {
16
22 public:
24 TargetBremFilter(const std::string& name,
26
29
34 void stepping(const G4Step* step) override;
35
41 void endOfEventAction(const G4Event*) override;
42
49 G4ClassificationOfNewTrack classifyNewTrack(
50 const G4Track* aTrack,
51 const G4ClassificationOfNewTrack& currentTrackClass) override;
52
54 std::vector<simcore::TYPE> getTypes() override {
55 return {simcore::TYPE::EVENT, simcore::TYPE::STACKING,
56 simcore::TYPE::STEPPING};
57 }
58
59 private:
61 double recoil_max_p_threshold_{1500}; // MeV
62
65
68 double brem_theta_max_;
69
71 double dral_min_;
72 double dral_max_;
73
75 bool kill_recoil_{false};
76
77}; // TargetBremFilter
78} // namespace biasing
79
80#endif // BIASING_TARGETBREMFILTER_H
File holding UserAction prototype and supporting macro.
User action that allows a user to filter out events that don't result in a brem within the target.
double brem_theta_min_
Maximum and Minimum brem gamma angle relative to beam axis [rad].
std::vector< simcore::TYPE > getTypes() override
Retrieve the type of actions this class defines.
TargetBremFilter(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 kill_recoil_
Flag indicating if the recoil electron track should be killed.
double dral_min_
Maximum and Minimum electron-photon separation in eta-phi space.
double brem_energy_threshold_
Brem gamma energy treshold.
void endOfEventAction(const G4Event *) override
Method called at the end of every event.
double recoil_max_p_threshold_
Recoil electron threshold.
G4ClassificationOfNewTrack classifyNewTrack(const G4Track *aTrack, const G4ClassificationOfNewTrack &currentTrackClass) override
Classify a new track which postpones track processing.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Interface that defines a user action.
Definition UserAction.h:46