TopDownSelector.h
Go to the documentation of this file.
1 #ifndef _TopDownSelector_h_
2 #define _TopDownSelector_h_
3 
4 #include <fwk/VModule.h>
5 #include <utl/Vector.h>
6 #include <utl/TimeInterval.h>
7 
8 #include <evt/Event.h>
9 #include <vector>
10 
11 
12 namespace sevt {
13  class Station;
14  class SEvent;
15 };
16 
17 namespace sdet {
18  class Station;
19 };
20 
21 
22 namespace TopDownSelectorNS {
23 
24  // The following is a simple struct so we can add and remove stations easily by just changing the 'candidate' flag.
25  // It also makes it easier to access detector and event data from the same place.
29  bool candidate;
30  };
31 
69  class TopDownSelector : public fwk::VModule {
70 
71  public:
73  virtual ~TopDownSelector() { }
74 
78 
79  private:
80  double fBaryTime;
84 
85  bool Select();
86 
87  std::vector<double> fResiduals;
88  std::vector<StationPairStatus> fStations;
89 
90  // Module config parameters
91  int fVerbose;
93  double kBaryPower;
94  double kTolRes;
95  double kTolResM;
96  double kIsoDist1;
97  double kIsoDist2;
98  double kCurv0;
99  double kAreaMin;
100  double kAreaMax;
101  double kAna3RatMin;
102  double kDistMax;
103  double kIsoTime1;
104  double kIsoTime2;
105 
107  eNone = 0,
109  eCurved = 2,
111  };
112 
113  private:
114  // method to initialize.
115  void InitializeEvent();
116  void RemoveEA();
117  void RemoveDoublets();
118  void RemoveIsolatedStations();
119  bool TryRemovingStations(int);
120  bool EstimateCore();
121  bool IsGoodTimeConfig(TimeCorrectionType correctionType);
122  bool IsGoodSpaceConfig();
123  double CorrectTimeAltitude(int);
124  double CorrectTimeAltitudeCurv(int);
125  bool IsAligned();
126  double fU, fV, fT0;
128  std::vector<unsigned int> fIndexes;
131 
132  bool PatternRecovering();
133  void RemoveRandomStations();
134  bool Recover3Stations();
135 
136  double EstimatedZenith(const std::string& s);
137  double EstimatedAzimuth(const std::string& s);
138 
139  REGISTER_MODULE("TopDownSelector", TopDownSelector);
140 
141  };
142 
143 }
144 
145 
146 #endif
Detector description interface for Station-related data.
std::vector< unsigned int > fIndexes
Interface class to access to the SD part of an event.
Definition: SEvent.h:39
double EstimatedAzimuth(const std::string &s)
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
double EstimatedZenith(const std::string &s)
Module that re-implements top down selection algorithm by Olivier Deligny based on gap 2003-003...
class to hold data at Station level
constexpr double s
Definition: AugerUnits.h:163
bool IsGoodTimeConfig(TimeCorrectionType correctionType)
std::vector< double > fResiduals
Module interface.
Definition: VModule.h:53
REGISTER_MODULE("TopDownSelector", TopDownSelector)
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
Vector object.
Definition: Vector.h:30
std::vector< StationPairStatus > fStations
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
Definition: XbArray.h:7

, generated on Tue Sep 26 2023.