00001 #ifndef FASTSHOWER_ANEMECALEC2_H 00002 #define FASTSHOWER_ANEMECALEC2_H 00003 00004 #ifndef FASTSHOWER_ISAMPLER_H 00005 #include "FastShowerUtils/ISampler.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_ICELLAN_H 00009 #include "FastShowerUtils/ICellAN.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_IUPDATINGGAUSSIAN_H 00013 #include "FastShowerUtils/IUpdatingGaussian.h" 00014 #endif 00015 00016 #ifndef FASTSHOWER_DEBUGBASE_H 00017 #include "FastShowerUtils/DebugBase.h" 00018 #endif 00019 00020 #ifndef FASTSHOWER_SP_H 00021 #include "FastShowerUtils/SP.h" 00022 #endif 00023 00024 #include <string> 00025 namespace FastShower{ 00044 class CoreSamples; 00045 class IConfigurer; 00046 class PolyArgs; 00047 00048 class ANEmEcalEc2: 00049 virtual public ISampler, 00050 public ICellAN, private DebugBase{ 00051 public: 00052 // 00053 ANEmEcalEc2(IUpdatingGaussian*); 00054 ANEmEcalEc2(const IConfigurer*, const std::string&); 00055 00057 virtual ISampler* clone() const; 00058 00059 virtual void sample(const PolyArgs&, CoreSamples&) const; 00060 virtual double lastValue(const CoreSamples& ) const; 00061 virtual void components(IDebug::Cpts& ) const; 00062 00063 private: 00064 // 00065 SP<IUpdatingGaussian> m_peak; 00066 static const double s_nSigma; 00067 }; 00068 }//namespace 00069 #endif 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081