00001 #ifndef FASTSHOWER_S0HADEARLYHCALBAR1_H 00002 #define FASTSHOWER_S0HADEARLYHCALBAR1_H 00003 00004 #ifndef FASTSHOWER_ISAMPLER_H 00005 #include "FastShowerUtils/ISampler.h" 00006 #endif 00007 00008 #ifndef FASTSHOWER_DEBUGBASE_H 00009 #include "FastShowerUtils/DebugBase.h" 00010 #endif 00011 00012 #ifndef FASTSHOWER_ISLICE0_H 00013 #include "FastShowerUtils/ISlice0.h" 00014 #endif 00015 00016 #ifndef FASTSHOWER_SP_H 00017 #include "FastShowerUtils/SP.h" 00018 #endif 00019 00020 #ifndef STD_VECTOR_H 00021 #define STD_VECTOR_H 00022 #include <vector> 00023 #endif 00024 00025 #ifndef STD_STRING_H 00026 #define STD_STRING_H 00027 #include <string> 00028 #endif 00029 00030 namespace FastShower{ 00049 class IInTail; 00050 class CoreSamples; 00051 class IConfigurer; 00052 class IProcessedDist; 00053 class PolyArgs; 00054 00055 class S0HadEarlyHcalBar1: 00056 virtual public ISampler, 00057 public ISlice0, private DebugBase{ 00058 public: 00059 // 00060 S0HadEarlyHcalBar1(IProcessedDist*, 00061 IProcessedDist*, 00062 IInTail*); 00063 00064 S0HadEarlyHcalBar1(const IConfigurer*, const std::string&); 00065 00067 virtual ISampler* clone() const; 00068 00069 virtual void sample(const PolyArgs&, CoreSamples&) const; 00070 virtual double lastValue(const CoreSamples&) const; 00071 virtual void components(IDebug::Cpts& ) const; 00072 00073 private: 00074 // 00075 double evalTail(const PolyArgs&) const; 00076 double evalPeak(const PolyArgs&) const; 00077 // 00078 SP<IProcessedDist> m_peak; 00079 SP<IProcessedDist> m_tail; 00080 SP<IInTail> m_inTail; 00081 }; 00082 }//namespace 00083 #endif