PCGFitter.h
Go to the documentation of this file.
1 #ifndef _FdProfileConstrainedGeometryFit_PCGFitter_h_
2 #define _FdProfileConstrainedGeometryFit_PCGFitter_h_
3 
4 #include <utl/Minou.h>
5 
6 #include "ChiZeroRegression.h"
7 #include "ProfileChi2.h"
8 #include "ApertureLight.h"
9 
10 #include <evt/Event.h>
11 
12 #include <fevt/Eye.h>
13 #include <fevt/EyeRecData.h>
14 
15 #include "../FdApertureLightFinderKG/FdApertureLightFinder.h"
16 
17 
18 namespace FdProfileConstrainedGeometryFit {
19 
27  class PCGFitter : public utl::Minou::Base {
28  public:
29  PCGFitter() : Base({{"chi0"}}) { }
30  void Init();
31 
38  double operator()(const std::vector<double>& pars);
39 
41  bool Run(fevt::Eye &eye);
42 
43  public:
48  };
49 
50  protected:
51  fevt::Eye* fEye = nullptr;
54 
58  bool fCheckUnderground = false;
59  bool fPrescan = false;
60  bool fScanOnly = false;
61  double fScanStep = 0;
62  double fScanStart = 0;
63  double fScanStop = 0;
64  bool fUseLightFlux = false;
65  bool fDelZeroFlux = false;
66  bool fRealAtm = false;
67  bool fDeex = false;
68 
69  fevt::Eye& CopyEye(const fevt::Eye& eye, evt::Event& eventCopy) const;
70 
72  bool ScanChi0(fevt::Eye &eye,
73  double step = 1*utl::degree,
74  double from = 10*utl::degree,
75  double to = 170*utl::degree);
76 
77 
78  double CombinedChi2(const double chi0, double &rp, double &t0,
79  const fevt::PCGFData::EPCGFStatus status,
80  const bool verbose = false);
81 
82  bool Prescan(const double step, double &from, double &to);
83 
84  bool Underground(const double chi0, const fevt::Eye &eye);
85 
86  void FillParams(fevt::Eye& eyeCopy,
87  const double chi0, const double chi0Err, const double rp, const double rpErr,
88  const double t0, const double t0Err) const;
89 
90  void FillParams(fevt::Eye& eyeCopy, const double chi0, const double rp, const double t0) const;
91 
92  bool AdjustGeometry(fevt::Eye& eyeCopy) const;
93 
94  private:
95  std::vector<fevt::PCGFData> fPCGFData;
96  };
97 
98 }
99 
100 
101 #endif
fevt::Eye & CopyEye(const fevt::Eye &eye, evt::Event &eventCopy) const
Definition: PCGFitter.cc:580
Fluorescence Detector Eye Event.
Definition: FEvent/Eye.h:29
void FillParams(fevt::Eye &eyeCopy, const double chi0, const double chi0Err, const double rp, const double rpErr, const double t0, const double t0Err) const
Definition: PCGFitter.cc:591
bool AdjustGeometry(fevt::Eye &eyeCopy) const
Definition: PCGFitter.cc:629
void Init()
Initialise the registry.
bool ScanChi0(fevt::Eye &eye, double step=1 *utl::degree, double from=10 *utl::degree, double to=170 *utl::degree)
Definition: PCGFitter.cc:447
bool Underground(const double chi0, const fevt::Eye &eye)
Definition: PCGFitter.cc:97
double operator()(const std::vector< double > &pars)
Definition: PCGFitter.cc:119
constexpr double degree
A simple module to reconstruct the light flux at the apertures.
bool Prescan(const double step, double &from, double &to)
Definition: PCGFitter.cc:405
std::vector< fevt::PCGFData > fPCGFData
Definition: PCGFitter.h:95
double CombinedChi2(const double chi0, double &rp, double &t0, const fevt::PCGFData::EPCGFStatus status, const bool verbose=false)
Definition: PCGFitter.cc:131
FdApertureLightFinderKG::FdApertureLightFinder fApertureLightFinder
Definition: PCGFitter.h:55

, generated on Tue Sep 26 2023.