00001 #ifndef FASTSHOWER_SINGLESHOWERERSELECTOR_H 00002 #define FASTSHOWER_SINGLESHOWERERSELECTOR_H 00003 00004 #ifndef FASTSHOWER_ISHOWERERSELECTOR_H 00005 #include "FastShowerUtils/IShowererSelector.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_DEBUGBASE_H 00009 #include "FastShowerUtils/DebugBase.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_SP_H 00013 #include "FastShowerUtils/SP.h" 00014 #endif 00015 00016 #ifndef FASTSHOWER_IACCEPTOR_H 00017 #include "FastShowerUtils/IAcceptor.h" 00018 #endif 00019 00020 #ifndef FASTSHOWER_ISHOWERER_H 00021 #include "FastShowerUtils/IShowerer.h" 00022 #endif 00023 00024 #ifndef FASTSHOWER_IFNOFPARTICLEPARAMETERS_H 00025 #include "FastShowerUtils/IFnOfParticleParameters.h" 00026 #endif 00027 00028 #ifndef FASTSHOWER_IFNOFPARTICLEPARAMETERS2_H 00029 #include "FastShowerUtils/IFnOfParticleParameters2.h" 00030 #endif 00031 00032 00033 #include <iostream> 00034 namespace FastShower{ 00042 class Gridlet; 00043 class IConfigurer; 00044 class ISingleShowererSelectorConfig; 00045 00046 class SingleShowererSelector: virtual public IShowererSelector, 00047 private DebugBase{ 00048 public: 00049 SingleShowererSelector(const ISingleShowererSelectorConfig&); 00050 ~SingleShowererSelector(){}; 00051 00053 virtual bool accept(ParticleParameters&, Gridlet*) const; 00054 00056 virtual void components(IDebug::Cpts&) const; 00057 00058 private: 00059 SP<IAcceptor> m_acceptor; 00060 SP<IFnOfParticleParameters2> m_ehSharer; 00061 SP<IFnOfParticleParameters> m_resolution; 00062 SP<IShowerer> m_showerer; 00063 }; 00064 }//namespace 00065 #endif 00066