// $Id$ #ifndef __LDF_H #define __LDF_H #include #include #include #include #include #include class LDF : public TObject { friend class SdRecShower; public: LDF(); virtual ~LDF() { } void SetLDFStatus(const double LDFStatus) { fLDFStatus = LDFStatus; } void SetLDFChi2(const double chi2, const double ndof) { fLDFChi2 = chi2; fLDFNdof = ndof; } void SetLDFLikelihood(const double likely) { fLDFLikelihood = likely; } void SetBeta(const double beta, const double error) { fBeta = beta; fBetaError = error; } void SetBetaSystematics(const double error) { fBetaSys = error; } void SetGamma(const double gamma, const double error) { fGamma = gamma; fGammaError = error; } void SetNKGFermiParameters(const double mu, const double tau) { fNKGFermiMu = mu; fNKGFermiTau = tau; } void SetReferenceDistance(const double r) ///< set reference distance, where LDF(r) = 1 { fReferenceDistance = r; } void SetShowerSizeLabel(const char* const label) ///< set label of shower size estimator (S1000, S450, ...) { fShowerSizeLabel = label; } void SetShowerSize(const double value, const double error) { fS1000 = value; fS1000Error = error; } void SetShowerSizeSystematics(const double sysError) { fS1000BetaSys = sysError; } void SetTabulatedValues(const std::vector& x, const std::vector& y) { fRhos = x; fValues = y; } void SetSizeWeatherCorr(const double value, const double error) { fSizeWeather = value; fSizeWeatherEr = error; } void SetSizeGeomagneticCorr(const double value, const double error) { fSizeGeomagnetic = value; fSizeGeomagneticEr = error; } double GetReferenceDistance() const ///< get reference distance, where LDF(r) = 1 { return fReferenceDistance ? fReferenceDistance : 1000; } const char* GetShowerSizeLabel() const { return fShowerSizeLabel.c_str(); } double GetShowerSize() const { return fS1000; } double GetShowerSizeError() const { return fS1000Error; } double GetShowerSizeSys() const { return fS1000BetaSys; } double GetSizeWeatherCorr() const { return fSizeWeather; } double GetSizeWeatherCorrError() const { return fSizeWeatherEr; } double GetSizeGeomagneticCorr() const { return fSizeGeomagnetic;} double GetSizeGeomagneticCorrError() const { return fSizeGeomagneticEr; } double GetBeta() const { return fBeta; } double GetBetaError() const { return fBetaError; } double GetBetaSys() const { return fBetaSys; } double GetGamma() const { return fGamma; } double GetGammaError() const { return fGammaError; } double GetNKGFermiMu() const { return fNKGFermiMu; } double GetNKGFermiTau() const { return fNKGFermiTau; } double GetLDFChi2() const { return fLDFChi2; } double GetLDFNdof() const { return fLDFNdof; } double GetLDFLikelihood() const{ return fLDFLikelihood; } double GetLDFStatus() const { return fLDFStatus; } double Evaluate(const double r, const ELDFType type) const; double EvaluateInverted(const double signal, const ELDFType type) const; TF1 GetFunction(const ELDFType type) const; void DumpASCII(std::ostream &o = std::cout) const; // BEGIN: deprecated interface void SetS1000(const double s1000, const double error) ///< (deprecated) { fShowerSizeLabel = "S1000"; fS1000 = s1000; fS1000Error = error; } void SetS1000BetaSys(const double error) /// fRhos; std::vector fValues; double fReferenceDistance; std::string fShowerSizeLabel; double fS1000; double fS1000Error; double fS1000BetaSys; double fSizeWeather; double fSizeWeatherEr; double fSizeGeomagnetic; double fSizeGeomagneticEr; double fBeta; double fBetaError; double fBetaSys; double fGamma; double fGammaError; double fNKGFermiMu; double fNKGFermiTau; double fLDFChi2; double fLDFLikelihood; double fLDFNdof; double fLDFStatus; ClassDef(LDF, 12); }; #endif