LDMX Software
EcalProcessFilter.h
1#ifndef BIASING_ECALPROCESSFILTER_H
2#define BIASING_ECALPROCESSFILTER_H
3
4/*~~~~~~~~~~~~~*/
5/* SimCore */
6/*~~~~~~~~~~~~~*/
8
9/*~~~~~~~~~~~~~~~*/
10/* Framework */
11/*~~~~~~~~~~~~~~~*/
12#include "Framework/Configure/Parameters.h"
13
14// Forward declaration
15class G4Step;
16class G4Track;
17
18namespace biasing {
19
25 public:
29 EcalProcessFilter(const std::string& name,
31
33 virtual ~EcalProcessFilter() = default;
34
35 void stepping(const G4Step* step) override;
36
37 // void postUserTrackingAction(const G4Track*) override;
38
45 G4ClassificationOfNewTrack classifyNewTrack(
46 const G4Track* aTrack,
47 const G4ClassificationOfNewTrack& currentTrackClass) override;
48
50 std::vector<simcore::TYPE> getTypes() override {
51 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING};
52 }
53
54 private:
56 G4Track* current_track_{nullptr};
57
59 std::string process_{""};
60
61}; // EcalProcessFilter
62} // namespace biasing
63
64#endif // BIASING_ECALPROCESSFILTER_H
File holding UserAction prototype and supporting macro.
User action plugin that filters events that don't see a hard brem from the target undergo a photo-nuc...
std::vector< simcore::TYPE > getTypes() override
Retrieve the type of actions this class defines.
G4ClassificationOfNewTrack classifyNewTrack(const G4Track *aTrack, const G4ClassificationOfNewTrack &currentTrackClass) override
Classify a new track which postpones track processing.
virtual ~EcalProcessFilter()=default
Destructor.
void stepping(const G4Step *step) override
Method called after each simulation step.
G4Track * current_track_
Pointer to the current track being processed.
std::string process_
Process to filter.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
Interface that defines a user action.
Definition UserAction.h:46