00001 #ifndef FASTSHOWER_DEPOSITORPTR_H 00002 #define FASTSHOWER_DEPOSITORPTR_H 00003 00004 #ifndef FASTSHOWER_SP_H 00005 #include "FastShowerUtils/SP.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_CORESAMPLES_H 00009 #include "FastShowerUtils/CoreSamples.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_DEPOSITS_H 00013 #include "FastShowerUtils/Deposits.h" 00014 #endif 00015 00016 #ifndef FASTSHOWER_IDEPOSITOR_H 00017 #include "FastShowerUtils/IDepositor.h" 00018 #endif 00019 00020 00021 #ifndef FASTSHOWER_SP_H 00022 #include "FastShowerUtils/SP.h" 00023 #endif 00024 00025 #ifndef FASTSHOWER_DebugBASE_BASE_H 00026 #include "FastShowerUtils/DebugBase.h" 00027 #endif 00028 00029 00030 namespace FastShower{ 00039 class IPinger; 00040 class ParticleParameters; 00041 class Normalisations; 00042 00043 class DepositorPtr: 00044 virtual public IDepositor, private DebugBase{ 00045 public: 00046 DepositorPtr(IDepositor*, std::string s=""); 00047 DepositorPtr(const DepositorPtr &); 00048 DepositorPtr& operator=(const DepositorPtr& s); 00049 00053 virtual void deposit(const ParticleParameters&, 00054 const Normalisations&, IDeposits&); 00055 // virtual void acceptNormalisations(const Normalisations&); 00057 virtual IDepositor* clone() const; 00058 00063 virtual void ping(IPinger&) const; 00064 virtual std::string name() const; 00065 virtual void components(std::vector<const IDebug*>&)const; 00066 private: 00067 SP<IDepositor> m_pointee; 00068 }; 00069 } 00070 #endif 00071 00072 00073