00001
00002
00003
00004
00005 #include "FastShowerUtils/Samplers/ANEmEcalEc1.h"
00006
00007 #include "FastShowerUtils/PolyArgs.h"
00008 #include "FastShowerUtils/CoreSamples.h"
00009 #include "FastShowerUtils/IConfigurer.h"
00010 #include "FastShowerUtils/ProcessedNormal.h"
00011 #include <cmath>
00012 #include <iostream>
00013
00014 namespace FastShower{
00015
00016 using std::pair;
00017
00018 const double ANEmEcalEc1::s_nSigma(100.0);
00019
00020
00021 ANEmEcalEc1::ANEmEcalEc1(IUpdatingGaussian* g):
00022 ISampler(), ICellAN(), DebugBase("ANEmEcalEc1"), m_peak(g){}
00024 ANEmEcalEc1::ANEmEcalEc1(const IConfigurer* configurer,
00025 const std::string&):
00026 DebugBase("AN1"), m_peak(0){
00027 m_peak = configurer->findIUG( text()+"Peak" ) ;
00028 cout<<text()<<" finishing construction"<<endl;
00029 }
00030
00031 ISampler* ANEmEcalEc1::clone() const {return new ANEmEcalEc1(*this);}
00032
00033 void ANEmEcalEc1::sample(const PolyArgs& pa, CoreSamples& cs) const{
00034 cs.fill(this,m_peak->sample(0.0,s_nSigma,1.0,s_nSigma, pa));
00035 }
00036 double ANEmEcalEc1::lastValue(const CoreSamples& cs) const {
00037 return cs.give(this);
00038 }
00039 void ANEmEcalEc1::components(IDebug::Cpts& v) const{
00040 v.push_back(m_peak);
00041 }
00042 }
00043
00044
00045
00046