9 #ifndef _HybridGeometryFinderWG_HybridGeometryFinder_h_
10 #define _HybridGeometryFinderWG_HybridGeometryFinder_h_
12 #include <fwk/VModule.h>
14 #include <utl/AxialVector.h>
15 #include <utl/NumericalErrorPropagation.h>
16 #include <utl/Point.h>
17 #include <utl/Vector.h>
31 namespace HybridGeometryFinderWG {
288 std::vector<double>
operator() (
const std::vector<double>&)
const;
299 #endif // _HybridGeometryFinderWG_HybridGeometryFinder_h_
double fMaxTimeResidue
The maximal time residual for a pixel to be not removed.
static std::vector< unsigned short int > fgStationList
static double fgSDPError
There error assumed in the SDP fit part.
std::map< int, double > fChiSqAxisPerTel
evt::Event * fEvent
The current event.
void StoreData()
Store everything in the RecData.
static void MinuitFitFuncAxis(int &, double *, double &, double *, int)
The Minuit fit function for the axis fit.
Fluorescence Detector Eye Event.
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
Module to reconstruct the shower axis for virtual eyes.
int fPassThrough
Should the reconstruction continue if no axis is found.
REGISTER_MODULE("HybridGeometryFinderWG", HybridGeometryFinder)
static double fgVerticalCurvature
The curvature assumed for the shower front.
void CalculateGeometryForTels()
Calculate the geometry for all telescopes in this eye.
static double fgCoreHeight
The UTM height used for the core.
int GetDataFromPreviousFit()
Take the data from previous fits as first guess.
std::map< int, unsigned int > fNDofSDPPerTel
class to hold data at Station level
static unsigned int fgNDofAxis
bool ReadmitPixel()
Try to readmit pixels to the time fit.
std::map< int, std::vector< double > > fTelParameters
bool FitAxis()
Fit a hybrid axis.
AxisParameterCalculator(const HybridGeometryFinder *hybridFinder)
The constructor.
double fMaxStationToSDPDist
The maximal distance for the station to the axis.
static sevt::Station * fgFitStation
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
bool SelectHybridStation(const int)
Select the hottest station for the fit.
unsigned int fCurTelId
The current telescope Id.
std::map< int, double > fChiSqTimePerTel
unsigned int fAxisMinPixel
The minimum number of pixels needed for the axis fit.
static int fgVerbosity
The level of verbosity: -1 no, 0 med, 1 full, 2 debug output.
ResultFlag
Flag returned by module methods to the RunController.
int fFdOnly
Should the reconstruction continue if no SD station is found.
int fTimeFitModel
The time fit model used for the axis fit.
void SelectPixels()
Select the pixels for the time fit.
double fMaxSDPDist
Maximum difference in Chi_i for a pixel to be considered in the axis fit.
static int fgHybridFitMode
const HybridGeometryFinder * fHybridFinder
std::map< int, unsigned int > fNDofAxisPerTel
void RecalculateChiSquare()
Calculate the ChiSquare for the fitted parameters.
static std::vector< double > CalculateAxisForTel(const utl::Point, utl::Vector, const double, const int)
Calculate the axis parameters for a given telescope.
std::map< int, unsigned int > fNDofTimePerTel
std::vector< double > operator()(const std::vector< double > &) const
Calculate the axis parameters for the error propagation.
bool RemovePixel()
Remove a pixel from the fit if the time residue is too high.
static fevt::Eye * fgCurEye
The current eye.
static int fgLaserShots
Are laser shots reconstructed?
std::map< int, double > fChiSqSDPPerTel
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
double fCovMatrixAxis[5][5]