#ifndef _utl_AnalyticWindow_h_ #define _utl_AnalyticWindow_h_ /** \file Abstract base class for analytic windows. \author Tim Huege \ingroup radio */ #include namespace utl { /** \class AnalyticWindow AnalyticWindow.h "utl/AnalyticWindow.h" \brief Abstract base class for analytic windows. \author Tim Huege */ class AnalyticWindow { public: AnalyticWindow(double relativeWidthOnEachSide, long traceLength = 0); virtual ~AnalyticWindow(); virtual double GetWeightAtBin(long parBin) const = 0; virtual double GetRelativeWidth() const { return fRelativeWidthOnEachSide; } virtual long GetTraceLength() const { return fTraceLength; } virtual void SetTraceLength(long parTraceLength) = 0; virtual double GetRenormalizationFactor(); protected: double fRelativeWidthOnEachSide; double fRenormalizationFactor; long fTraceLength; }; } // utl #endif