MdEventSelector.h
Go to the documentation of this file.
1 #ifndef _MdEventSelectorAG_MdEventSelector_h_
2 #define _MdEventSelectorAG_MdEventSelector_h_
3 
4 #include <fwk/VModule.h>
5 //
6 #include <mevt/MEvent.h>
7 #include <mevt/Counter.h>
8 #include <mevt/Module.h>
9 #include <sevt/SEvent.h>
10 
11 #include <mdet/MDetector.h>
12 #include <mdet/Counter.h>
13 
14 
15 namespace evt {
16  class Event;
17 }
18 
19 namespace MdEventSelectorAG {
20 
30  class MdEventSelector : public fwk::VModule {
31 
32  public:
34  virtual ~MdEventSelector();
35 
39 
40  private:
41  const mdet::MDetector* theMDetector = nullptr;
42 
43  unsigned int fMinNumberOfCounters = 0;
44  double fSilentRange = 0;
45  bool fSelectEventByTheta = false;
46  double fMaxTheta = 0;
47 
48  bool fRejectNonT5Events = false;
50 
51  bool fRejectSaturatedEvents = false;
52  bool fRejectDenseStations = false;
53 
54  // parameters to filter time outliers
59  double fTimeOutlierSlope = 0;
60 
61  // selection parameters
64 
71  bool HasEnoughDetectors(const mevt::MEvent& me) const;
72 
73  void RejectFarSilents(mevt::MEvent& me) const;
74 
82  const mevt::Counter* FindHottestCounter(const mevt::MEvent& me) const;
85 
91  bool IsHighTheta(const evt::Event& e) const;
92 
98  void RejectCloseSimDetectors(mevt::MEvent& me) const;
99 
100  void RejectDenseDetectors(mevt::MEvent& me) const;
101 
102  void RejectTimeOutliers(mevt::MEvent& me , const sevt::SEvent& se) const;
103 
104  bool IsMEventT5(const mevt::MEvent& me) const;
105 
106  void SetT5(evt::Event& e, const bool t5) const;
107 
108  // Check if the counter t50 is out of time with the SD start time
109  bool IsTimeOutlier(const double md2sdTimeInterval, const double distance) const;
110 
111  REGISTER_MODULE("MdEventSelectorAG", MdEventSelector);
112 
113  };
114 
115 }
116 
117 
118 #endif
void RejectDenseDetectors(mevt::MEvent &me) const
const mevt::Counter * FindHottestCounterSaturated(const mevt::MEvent &me) const
Counter level event data.
Interface class to access to the SD part of an event.
Definition: SEvent.h:39
bool HasEnoughDetectors(const mevt::MEvent &me) const
Checks if the number of detector is enough to reconstruct the event Counts detectors with at least on...
REGISTER_MODULE("MdEventSelectorAG", MdEventSelector)
bool IsTimeOutlier(const double md2sdTimeInterval, const double distance) const
Detector associated to muon detector hierarchy.
Definition: MDetector.h:32
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
const mevt::Counter * FindHottestCounter(const mevt::MEvent &me) const
Find the hottest counter Two different algorithms are used to find the hottest counter depending if t...
void SetT5(evt::Event &e, const bool t5) const
Module interface.
Definition: VModule.h:53
bool IsHighTheta(const evt::Event &e) const
Check if the zenith angle reconstructed by the Sd is higher than the fMAxTheta set in the configurati...
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
void RejectFarSilents(mevt::MEvent &me) const
const mdet::MDetector * theMDetector
void RejectTimeOutliers(mevt::MEvent &me, const sevt::SEvent &se) const
void RejectCloseSimDetectors(mevt::MEvent &me) const
Reject all modules of a detector if it is classified as inside a minimal distance in the simulations...
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
bool IsMEventT5(const mevt::MEvent &me) const
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
const mevt::Counter * FindHottestCounterUnsaturated(const mevt::MEvent &me) const
Root of the Muon event hierarchy.
Definition: MEvent.h:25
Selects events and detectors for the MD reconstruction.

, generated on Tue Sep 26 2023.