#ifndef _TCDFRECONSTRUCT_H_ #define _TCDFRECONSTRUCT_H_ #include #include #include #include "TReconstruct.h" #include "ToolsLib.h" #include "TFitting.h" #include "Ec.h" #include "Er.h" /** @file TCdFReconstruct.h */ class TCdFReconstruct : public TReconstruct, public TFitting { public: TCdFReconstruct(); ~TCdFReconstruct(); //static TCdFReconstruct * instance; void InitReconstruct(); ///< sets to 0 all the attributes of the class void InitTCS(); void SetDataToFit(); TDataToFit GetDataToFit(); bool _Reconstruct(); ///< manage reconstruction void Print(ostream&) const; ///< allows to do cout << TReconstruct << endl; void RestoreData(); void SetLDF(string ldf) { fLDFType = ldf; TFitting::fLDFType = ldf; } void SetVerbosity(int verb) { fVerbosity = verb; } void SetEstimated(const TShowerParams& sp) { fEs = sp; } void UseEstimate(string="barycenter");// can be "Es" void UseBetaFree(bool free=true) { fBetaFree = free; } void CorrectTimeAltitude(); void CorrectTimeAltitudeCurvature(); double GetS1000Estimate(); double GetEnergyEstimate(); void SetPrimary(int primary) { fPrimary = primary; } void IterativeReconstruction(); ///< ALL parameters fit bool Step0(); bool Step1(double*step); bool Step2(double*step); bool Step3(double*step); bool Step4(double*step); bool Step5(double*step); void HorizontalReconstruction (); void RecordFitSteps(); void RecordFitResults(); void FillCovarianceMatrix(); static TDataToFit * gDataBackUp; string fLDFType; string fUseEstimate; bool fBetaFree; bool fHorizontal; bool fCorrectAltitude; int fVerbosity; int fNoReconstruction; ///< if the reconstruction is possible or not 0 = ok, 1 = no, 2 = default value // what we get from the fit vector fFitStep; vector fTimeCorrection; vector fListTimesSave; int fNFit; void SetFluctuationStartTime(double trms); void SetListTime(int percent); TShowerParams fEs; }; //TCdFReconstruct *recCdF(); //TCdFReconstruct * TCdFReconstruct::instance = 0; inline ostream& operator<<(ostream& s, const TCdFReconstruct& trec) { trec.Print(s); return s; } #endif