00001 #ifndef FASTSHOWER_IPROCESSEDDIST_H 00002 #define FASTSHOWER_IPROCESSEDDIST_H 00003 00004 #ifndef FASTSHOWER_IDEBUG_H 00005 #include "FastShowerUtils/IDebug.h" 00006 #endif 00007 00008 namespace FastShower{ 00015 class IDistProcessor; 00016 class IProcessedDist: public virtual IDebug{ 00017 public: 00018 virtual ~IProcessedDist() =0; 00019 //underlying dist 00020 virtual double sample() const =0; 00021 //process the underlying dist 00022 virtual double sample(const IDistProcessor*) const = 0; 00024 virtual double sample(double lowLim, 00025 double upLim, 00026 const IDistProcessor*) const = 0; 00028 virtual IProcessedDist* clone() const = 0; 00029 }; 00030 } 00031 #endif