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

FastShower::S0HadEarlyHcalBar3 Class Reference

#include <S0HadEarlyHcalBar3.h>

Inheritance diagram for FastShower::S0HadEarlyHcalBar3:

Inheritance graph
[legend]
Collaboration diagram for FastShower::S0HadEarlyHcalBar3:

Collaboration graph
[legend]
List of all members.

Public Methods

 S0HadEarlyHcalBar3 (IUpdatingGaussian *, IProcessedDist *, IInTail *)
 S0HadEarlyHcalBar3 (const IConfigurer *, const std::string &)
virtual ISamplerclone () const
 ISampler Interface.

virtual void sample (const PolyArgs &, CoreSamples &) const
 sample and fill CoreSamples.

virtual double lastValue (const CoreSamples &) const
 read back last deposit - used by monitoring code.

virtual void components (IDebug::Cpts &) const

Private Methods

double evalTail (const PolyArgs &) const
double evalPeak (const PolyArgs &) const

Private Attributes

SP< IUpdatingGaussianm_peak
SP< IProcessedDistm_tail
SP< IInTailm_inTail

Static Private Attributes

const double s_nSigma1
const double s_nSigma2

Constructor & Destructor Documentation

FastShower::S0HadEarlyHcalBar3::S0HadEarlyHcalBar3 IUpdatingGaussian  ,
IProcessedDist  ,
IInTail  
 

Definition at line 26 of file S0HadEarlyHcalBar3.cxx.

Referenced by clone().

00028                                                      :
00029     ISampler(), ISlice0(), DebugBase("S0HadEarlyHcalBar3"), 
00030     m_peak(g), m_tail(tail), m_inTail(it){}

FastShower::S0HadEarlyHcalBar3::S0HadEarlyHcalBar3 const IConfigurer  ,
const std::string &   
 

Definition at line 32 of file S0HadEarlyHcalBar3.cxx.

References FastShower::IConfigurer::findIUG(), m_inTail, m_peak, m_tail, FastShower::IConfigurer::makeIInTail(), FastShower::IConfigurer::makeProcessedFlat(), and FastShower::DebugBase::text().

00033                                                             :
00034     DebugBase(s), m_peak(0), m_tail(0), m_inTail(0){
00035     m_peak           = c->findIUG( text()+"Peak" ) ;
00036     m_tail           = c->makeProcessedFlat( text() );
00037     m_inTail         = c->makeIInTail( text() );
00038     cout<<text()<<" finishing construction"<<endl;
00039   }

Member Function Documentation

ISampler * FastShower::S0HadEarlyHcalBar3::clone   const [virtual]
 

ISampler Interface.

Implements FastShower::ISampler.

Definition at line 41 of file S0HadEarlyHcalBar3.cxx.

References S0HadEarlyHcalBar3().

00041                                             {
00042     return new S0HadEarlyHcalBar3(*this);
00043   }

void FastShower::S0HadEarlyHcalBar3::sample const PolyArgs  ,
CoreSamples  
const [virtual]
 

sample and fill CoreSamples.

Implements FastShower::ISampler.

Definition at line 45 of file S0HadEarlyHcalBar3.cxx.

00046                                                        {
00047 
00048     if( m_inTail->operator()(pa) ){
00049       cs.fill(this, evalTail(pa) );
00050     }else{
00051       cs.fill(this, evalPeak(pa) );
00052     }
00053   }

double FastShower::S0HadEarlyHcalBar3::lastValue const CoreSamples   const [virtual]
 

read back last deposit - used by monitoring code.

Implements FastShower::ISampler.

Definition at line 82 of file S0HadEarlyHcalBar3.cxx.

References FastShower::CoreSamples::give().

00082                                                                   {
00083     return cs.give(this);
00084   }

void FastShower::S0HadEarlyHcalBar3::components IDebug::Cpts   const [virtual]
 

Reimplemented from FastShower::DebugBase.

Definition at line 86 of file S0HadEarlyHcalBar3.cxx.

References m_inTail, m_peak, and m_tail.

00086                                                         {
00087     v.push_back(m_peak);
00088     v.push_back(m_tail);
00089     v.push_back(m_inTail);
00090   }

double FastShower::S0HadEarlyHcalBar3::evalTail const PolyArgs   const [private]
 

Definition at line 55 of file S0HadEarlyHcalBar3.cxx.

References FastShower::ParticleParameters::energy(), m_peak, m_tail, FastShower::PolyArgs::pp(), s_nSigma1, and s_nSigma2.

00055                                                               {
00056     
00057     pair<double, double>  peakParams = m_peak->parameters(pa);
00058     double peakMean  = peakParams.first;
00059     double peakSigma = peakParams.second;
00060 
00061     double energy = pa.pp()->energy();
00062     
00063     //calculate ther upper and lower limits of the tail
00064     double uLimit = peakMean - s_nSigma1*peakSigma;
00065     uLimit = max(uLimit, 0.0);
00066     uLimit = min(uLimit, 1.0);
00067     //
00068     double lLimit = (energy<30.0)? 0.0 : peakMean - s_nSigma2*peakSigma;
00069     lLimit = max(lLimit, 0.0);
00070     if (lLimit>uLimit) lLimit=0.0;
00071 
00072     // Sample
00073     if (!(uLimit>0.0)) uLimit = 1.0;
00074     LinearProcessor lp((uLimit-lLimit), lLimit);
00075     return m_tail->sample(&lp);
00076   }

double FastShower::S0HadEarlyHcalBar3::evalPeak const PolyArgs   const [private]
 

Definition at line 78 of file S0HadEarlyHcalBar3.cxx.

00078                                                             {
00079     return m_peak->sample(0.0, 100, 1.0, 100, pa);
00080   }

Member Data Documentation

SP<IUpdatingGaussian> FastShower::S0HadEarlyHcalBar3::m_peak [private]
 

Definition at line 82 of file S0HadEarlyHcalBar3.h.

Referenced by components(), evalTail(), and S0HadEarlyHcalBar3().

SP<IProcessedDist> FastShower::S0HadEarlyHcalBar3::m_tail [private]
 

Definition at line 83 of file S0HadEarlyHcalBar3.h.

Referenced by components(), evalTail(), and S0HadEarlyHcalBar3().

SP<IInTail> FastShower::S0HadEarlyHcalBar3::m_inTail [private]
 

Definition at line 84 of file S0HadEarlyHcalBar3.h.

Referenced by components(), and S0HadEarlyHcalBar3().

const double FastShower::S0HadEarlyHcalBar3::s_nSigma1 [static, private]
 

Referenced by evalTail().

const double FastShower::S0HadEarlyHcalBar3::s_nSigma2 [static, private]
 

Referenced by evalTail().


The documentation for this class was generated from the following files:
Generated on Tue Mar 18 11:57:58 2003 for FastShowerUtils by doxygen1.3-rc1