00001 #ifndef FASTSHOWER_IPROCESSEDDISTPTR_H 00002 #define FASTSHOWER_IPROCESSEDDISTPTR_H 00003 00004 #ifndef FASTSHOWER_DEBUGBASE_H 00005 #include "FastShowerUtils/DebugBase.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_IPROCESSEDDIST_H 00009 #include "FastShowerUtils/IProcessedDist.h" 00010 #endif 00011 00012 00013 #ifndef FASTSHOWER_PARTICLEPARAMETERS_H 00014 #include "FastShowerUtils/ParticleParameters.h" 00015 #endif 00016 00017 #ifndef FASTSHOWER_SP_H 00018 #include "FastShowerUtils/SP.h" 00019 #endif 00020 00021 #ifndef STD_STRING_H 00022 #define STD_STRING_H 00023 #include <string> 00024 #endif 00025 00026 #include <algorithm> 00027 00028 namespace FastShower{ 00033 class IPinger; 00034 class IDistProcessor; 00035 // 00036 class IProcessedDistPtr: 00037 public IProcessedDist, private DebugBase{ 00038 public: 00039 // 00040 IProcessedDistPtr(IProcessedDist*, std::string s=""); 00041 IProcessedDistPtr(const IProcessedDistPtr &); 00042 IProcessedDistPtr& operator=(const IProcessedDistPtr& s); 00043 ~IProcessedDistPtr(){}; 00044 00048 virtual double sample() const; 00049 //process the underlying dist 00050 virtual double sample(const IDistProcessor*) const; 00052 virtual double sample(double lowLim, 00053 double upLim, 00054 const IDistProcessor*) const; 00055 virtual IProcessedDist* clone() const; 00059 virtual void ping(IPinger&) const; 00060 virtual std::string name() const; 00061 virtual void components(IDebug::Cpts& ) const; 00062 private: 00063 SP<IProcessedDist> m_pointee; 00064 }; 00065 } 00066 #endif 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079