Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

C0HadEarlyHcalBar2.cxx

Go to the documentation of this file.
00001 // ================================================
00002 // Implementation of C0HadEarlyHcalBar2
00003 // ================================================
00004 
00005 #include "FastShowerUtils/Samplers/C0HadEarlyHcalBar2.h"
00006 
00007 #include "FastShowerUtils/PolyArgs.h"
00008 #include "FastShowerUtils/IFn.h"
00009 #include "FastShowerUtils/CoreSamples.h"
00010 #include "FastShowerUtils/IProcessedDist.h"
00011 #include "FastShowerUtils/IConfigurer.h"
00012 #include "FastShowerUtils/LinearProcessor.h"
00013 #include "FastShowerUtils/ProcessedNormal.h"
00014 #include "FastShowerUtils/IInTail.h"
00015 #include "CLHEP/Random/RandFlat.h"
00016 #include <cmath>
00017 #include <iostream>
00018 
00019 namespace FastShower{
00020 
00021   using std::pair;
00022 
00023   C0HadEarlyHcalBar2::C0HadEarlyHcalBar2(IUpdatingGaussian* g, 
00024                                          IProcessedDist* tail,
00025                                          IInTail* it):
00026     ISampler(), ICell0(), DebugBase("C0HadEarlyHcalBar2"), 
00027     m_peak(g), m_tail(tail), m_inTail(it){}
00029   C0HadEarlyHcalBar2::C0HadEarlyHcalBar2(const IConfigurer* c,
00030                                          const std::string& s):
00031     DebugBase(s), m_peak(0), m_tail(0), m_inTail(0){
00032     m_peak           = c->findIUG( text()+"Peak" ) ;
00033     m_tail           = c->makeProcessedFlat( text() );
00034     m_inTail         = c->makeIInTail( text() );
00035     cout<<text()<<" finishing construction"<<endl;
00036   }
00038   ISampler* C0HadEarlyHcalBar2::clone() const {
00039     return new C0HadEarlyHcalBar2(*this);
00040   }
00042   void C0HadEarlyHcalBar2::sample(const PolyArgs& pa, 
00043                                   CoreSamples& cs)const{
00044 
00045     if( m_inTail->operator()(pa) ){
00046       cs.fill(this, evalTail(pa) );
00047     }else{
00048       cs.fill(this, evalPeak(pa) );
00049     }
00050   }
00052   double C0HadEarlyHcalBar2::evalTail(const PolyArgs&) const {
00053     LinearProcessor lp(0.1, 0.0);
00054     return  m_tail->sample(&lp);
00055   }
00057   double C0HadEarlyHcalBar2::evalPeak(const PolyArgs& pa)const{
00058     return m_peak->sample(0.1, 100, 1.0, 100, pa);
00059   }
00061   double C0HadEarlyHcalBar2::lastValue(const CoreSamples& cs) const {
00062     return cs.give(this);
00063   }
00065   void C0HadEarlyHcalBar2::components(IDebug::Cpts& v) const{
00066     v.push_back(m_peak);
00067     v.push_back(m_tail);
00068     v.push_back(m_inTail);
00069   }
00070   
00071 }//namespace
00072 
00073 
00074 
00075 
00076 
00077 
00078 

Generated on Tue Mar 18 11:49:55 2003 for FastShowerUtils by doxygen1.3-rc1