00001
00002
00003
00004
00005 #include "FastShowerUtils/Samplers/ANEmEcalEc2.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 ANEmEcalEc2::s_nSigma(100.0);
00019
00020
00021 ANEmEcalEc2::ANEmEcalEc2(IUpdatingGaussian* g):
00022 ISampler(), ICellAN(), DebugBase("ANEmEcalEc2"), m_peak(g){}
00024 ANEmEcalEc2::ANEmEcalEc2(const IConfigurer* configurer,
00025 const std::string&):
00026 DebugBase("AN2"), m_peak(0){
00027 m_peak = configurer->findIUG( text()+"Peak" ) ;
00028 cout<<text()<<" finishing construction"<<endl;
00029 }
00030
00031 ISampler* ANEmEcalEc2::clone() const {return new ANEmEcalEc2(*this);}
00032
00033 void ANEmEcalEc2::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 ANEmEcalEc2::lastValue(const CoreSamples& cs) const {
00037 return cs.give(this);
00038 }
00039 void ANEmEcalEc2::components(IDebug::Cpts& v) const{
00040 v.push_back(m_peak);
00041 }
00042 }
00043
00044
00045
00046