00001 #ifndef FASTSHOWER_NORMALISERPTR_H 00002 #define FASTSHOWER_NORMALISERPTR_H 00003 00004 #ifndef FASTSHOWER_DEBUGBASE_H 00005 #include "FastShowerUtils/DebugBase.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_INORMALISER_H 00009 #include "FastShowerUtils/INormaliser.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_SP_H 00013 #include "FastShowerUtils/SP.h" 00014 #endif 00015 00016 #ifndef STD_STRING_H 00017 #define STD_STRING_H 00018 #include <string> 00019 #endif 00020 00021 #include <algorithm> 00022 00023 namespace FastShower{ 00029 class IPinger; 00030 class Normalisations; 00031 class ParticleParameters; 00032 00033 class NormaliserPtr: public INormaliser, private DebugBase{ 00034 public: 00035 // 00036 NormaliserPtr(INormaliser* s, std::string s=""); 00037 NormaliserPtr(const NormaliserPtr &); 00038 NormaliserPtr& operator=(const NormaliserPtr& s); 00039 ~NormaliserPtr(){}; 00040 00044 virtual INormaliser* clone() const; 00045 virtual void scale(Normalisations&, const ParticleParameters&) const; 00046 00050 virtual void ping(IPinger&) const; 00051 virtual std::string name() const; 00052 virtual void components(IDebug::Cpts& ) const; 00053 private: 00054 SP<INormaliser> m_pointee; 00055 }; 00056 } 00057 #endif 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070