00001 #ifndef FASTSHOWER_SHOWERERPTR_H 00002 #define FASTSHOWER_SHOWERERPTR_H 00003 00004 #ifndef ATLAS_ISHOWERER_H 00005 #include "FastShowerUtils/IShowerer.h" 00006 #endif 00007 00008 #ifndef ATLAS_DEBUGBASE_H 00009 #include "FastShowerUtils/DebugBase.h" 00010 #endif 00011 00012 #ifndef ATLAS_SP_H 00013 #include "FastShowerUtils/SP.h" 00014 #endif 00015 00016 namespace FastShower{ 00021 class IPinger; 00022 class Gridlet; 00023 class Normalisations; 00024 class ParticleParameters; 00025 00026 class ShowererPtr: virtual public IShowerer, private DebugBase{ 00027 public: 00028 ShowererPtr(IShowerer*, std::string s=""); 00029 ~ShowererPtr(); 00033 virtual void shower(ParticleParameters&, Gridlet*, 00034 Normalisations&, Normalisations&) const; 00035 virtual void normalise(const ParticleParameters&, 00036 Normalisations&, Normalisations&) const; 00041 virtual void ping(IPinger&) const; 00042 virtual std::string name() const; 00043 virtual void components(IDebug::Cpts&)const; 00044 private: 00045 SP<IShowerer> m_pointee; 00046 DebugBase m_esums; 00047 DebugBase m_hsums; 00048 }; 00049 00050 }//namespace 00051 #endif 00052 00053 00054 00055 00056 00057