LDMX Software
EcalProcessFilter.h
1#ifndef BIASING_ECALPROCESSFILTER_H
2#define BIASING_ECALPROCESSFILTER_H
3
4/*~~~~~~~~~~~~~~~~*/
5/* C++ StdLib */
6/*~~~~~~~~~~~~~~~~*/
7#include <algorithm>
8
9/*~~~~~~~~~~~~~*/
10/* SimCore */
11/*~~~~~~~~~~~~~*/
12#include "SimCore/UserAction.h"
13
14/*~~~~~~~~~~~~~~~*/
15/* Framework */
16/*~~~~~~~~~~~~~~~*/
17#include "Framework/Configure/Parameters.h"
19
20// Forward declaration
21class G4Step;
22class G4Track;
23
24namespace biasing {
25
31 public:
35 EcalProcessFilter(const std::string& name,
37
40
41 void stepping(const G4Step* step) override;
42
43 // void PostUserTrackingAction(const G4Track*) override;
44
51 G4ClassificationOfNewTrack ClassifyNewTrack(
52 const G4Track* aTrack,
53 const G4ClassificationOfNewTrack& currentTrackClass) override;
54
56 std::vector<simcore::TYPE> getTypes() override {
57 return {simcore::TYPE::STACKING, simcore::TYPE::STEPPING};
58 }
59
60 private:
62 G4Track* currentTrack_{nullptr};
63
65 std::string process_{""};
66
68 enableLogging("EcalProcessFilter")
69
70}; // EcalProcessFilter
71} // namespace biasing
72
73#endif // BIASING_ECALPROCESSFILTER_H
Base classes for all user event processing components to extend.
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.
void stepping(const G4Step *step) override
Method called after each simulation step.
std::string process_
Process to filter.
G4Track * currentTrack_
Pointer to the current track being processed.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
Interface that defines a user action.
Definition UserAction.h:42