00001 #include "FastShowerUtils/IProcessedDistPtr.h" 00002 namespace FastShower{ 00003 IProcessedDistPtr::IProcessedDistPtr(IProcessedDist* ip, std::string str): 00004 DebugBase(str), m_pointee(ip){} 00005 // 00006 IProcessedDistPtr::IProcessedDistPtr(const IProcessedDistPtr& rhs): 00007 IProcessedDist(), DebugBase(rhs){ m_pointee = rhs.m_pointee;} 00008 // 00009 IProcessedDistPtr& 00010 IProcessedDistPtr::operator=(const IProcessedDistPtr& rhs){ 00011 00012 if (this == &rhs ) return *this; 00013 00014 IProcessedDist::operator=(rhs); 00015 DebugBase::operator=(rhs); 00016 m_pointee = rhs.m_pointee; 00017 00018 return *this; 00019 } 00020 // 00021 00025 double IProcessedDistPtr::sample() const { 00026 double result = m_pointee->sample(); 00027 bumpStats(result); 00028 return result; 00029 } 00030 //process the underlying dist 00031 double IProcessedDistPtr::sample(const IDistProcessor* d) const { 00032 double result = m_pointee->sample(d); 00033 bumpStats(result); 00034 return result; 00035 } 00037 double IProcessedDistPtr::sample(double lowLim, 00038 double upLim, 00039 const IDistProcessor* d) const { 00040 double result = m_pointee->sample(lowLim, upLim, d); 00041 bumpStats(result); 00042 return result; 00043 } 00044 IProcessedDist* IProcessedDistPtr::clone() const { 00045 IProcessedDistPtr* ptr = new IProcessedDistPtr(*this); 00046 return ptr; 00047 } 00051 void IProcessedDistPtr::ping(IPinger& p) const {DebugBase::ping(p);} 00052 std::string IProcessedDistPtr::name() const {return DebugBase::name();} 00053 void IProcessedDistPtr::components(IDebug::Cpts& v) const { 00054 m_pointee->components(v); 00055 } 00056 }//namespace