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