RdPreWaveFitter.h
Go to the documentation of this file.
1 #ifndef _RdPreWaveFitter_RdPreWaveFitter_h_
2 #define _RdPreWaveFitter_RdPreWaveFitter_h_
3 
4 
5 #include <fwk/VModule.h>
6 
7 #include <revt/REvent.h>
8 
9 #include <utl/Point.h>
10 #include <utl/CoordinateSystem.h>
11 
12 #include "Chi2ForPlaneWaveFit.h"
13 
14 
15 namespace RdPreWaveFitter {
16 
26  struct FitParameters {
27  // !!! all angles in rad !!!
28  double r = 1;
29  double theta = 0;
30  double thetaError = 0;
31  double phi = 0;
32  double phiError = 0;
33 
34  double c00 = 0;
35  double c11 = 0;
36  double c22 = 0;
37  double c01 = 0;
38  double c02 = 0;
39  double c12 = 0;
40 
41  bool corrected = false;
42  double chiSquareNDF = 0;
43  int status = 0;
44  int nCalls = 0;
45  double minChi = 0;
46  int NDF = 0;
47  int nStations = 0;
48  double recStage = 0; // RecStage defined in trunk/Framework/Shower/ShowerRRecData.cc
49 
50  // type defines which minimization mode is used: 0=migrad, 1=simplex, 2=combined, 3=scan
51  // see Minuit2 Documentation for further information
52  int type = 0;
53  };
54 
55  class RdPreWaveFitter: public fwk::VModule {
56 
57  public:
58  fwk::VModule::ResultFlag Init() override;
59  fwk::VModule::ResultFlag Run(evt::Event& event) override;
61 
62  private:
63  fwk::VModule::ResultFlag ComputeSignalPosition(revt::REvent& rEvent, bool hilbert = false);
64 
66 
68 
73  fwk::VModule::ResultFlag PlaneWaveFit(const revt::REvent& rEvent, FitParameters& fit, int type) const;
74 
79  fwk::VModule::ResultFlag ScanPWF(const revt::REvent& rEvent, FitParameters& sFitResults) const;
80 
86  bool reuseFit = false) const;
87 
88  // xml settings
91 
92  double fThetaMax = 0;
93  int fNInitsTheta = 0;
94  int fNInitsPhi = 0;
95 
96  bool fMaxOnComboTrace = false;
97  bool fRMSonBestTrace = false;
99 
100  bool fComputeRMS = false;
101  double fSNRCut = 0;
102 
103  int fNFails = 0; // number of times where the prewavefit fails but returns eSuccess anyway
104 
107 
108  unsigned int nSNRCut = 0; // number of stations that are rejected due to bad SNR ratio
109 
111 
112  REGISTER_MODULE("RdPreWaveFitter", RdPreWaveFitter);
113  };
114 
115 }
116 
117 #endif
Point object.
Definition: Point.h:32
fwk::VModule::ResultFlag Finish() override
Finish: invoked at end of the run (NOT end of the event)
Interface class to access to the Radio part of an event.
Definition: REvent.h:42
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
fwk::VModule::ResultFlag ComputeSignalPosition(revt::REvent &rEvent, bool hilbert=false)
fwk::VModule::ResultFlag ComputeRMS(revt::REvent &rEvent)
fwk::VModule::ResultFlag PlaneWaveFit(const revt::REvent &rEvent, FitParameters &fit, int type) const
Module interface.
Definition: VModule.h:53
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
fwk::VModule::ResultFlag Run(evt::Event &event) override
Run: invoked once per event.
fwk::VModule::ResultFlag ComputeBaryCenter(const revt::REvent &rEvent, utl::Point &baryCenter)
fwk::VModule::ResultFlag Init() override
Initialize: invoked at beginning of run (NOT beginning of event)
fwk::VModule::ResultFlag ScanPWF(const revt::REvent &rEvent, FitParameters &sFitResults) const
REGISTER_MODULE("RdPreWaveFitter", RdPreWaveFitter)
fwk::VModule::ResultFlag CallPlaneWaveFit(const revt::REvent &rEvent, FitParameters &sFitResults, bool reuseFit=false) const
utl::CoordinateSystemPtr fLocalCS

, generated on Tue Sep 26 2023.