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

FastShower::C0HadEarlyEcalBar1 Class Reference

#include <C0HadEarlyEcalBar1.h>

Inheritance diagram for FastShower::C0HadEarlyEcalBar1:

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

Collaboration graph
[legend]
List of all members.

Public Methods

 C0HadEarlyEcalBar1 (IUpdatingGaussian *, IProcessedDist *, IInTail *)
 C0HadEarlyEcalBar1 (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
const double s_nSigma3

Constructor & Destructor Documentation

FastShower::C0HadEarlyEcalBar1::C0HadEarlyEcalBar1 IUpdatingGaussian  ,
IProcessedDist  ,
IInTail  
 

Definition at line 27 of file C0HadEarlyEcalBar1.cxx.

Referenced by clone().

00029                                                      :
00030     ISampler(), ICell0(), DebugBase("C0HadEarlyEcalBar1"), 
00031     m_peak(g), m_tail(t), m_inTail(it){}

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

Definition at line 33 of file C0HadEarlyEcalBar1.cxx.

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

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

Member Function Documentation

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

ISampler Interface.

Implements FastShower::ISampler.

Definition at line 42 of file C0HadEarlyEcalBar1.cxx.

References C0HadEarlyEcalBar1().

00042                                             {
00043     return new C0HadEarlyEcalBar1(*this);
00044   }

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

sample and fill CoreSamples.

Implements FastShower::ISampler.

Definition at line 47 of file C0HadEarlyEcalBar1.cxx.

References FastShower::ParticleParameters::delPhi(), FastShower::ParticleParameters::energy(), evalPeak(), evalTail(), FastShower::CoreSamples::fill(), m_inTail, and FastShower::PolyArgs::pp().

00048                                                          {
00049 
00050     //
00051     double energy = pa.pp()->energy();
00052     double aDelPhi = fabs(pa.pp()->delPhi());
00053     //
00054     if ( energy<30.0  &&  aDelPhi>0.035 ){
00055       cs.fill(this, evalPeak(pa));
00056     }else{
00057       if( m_inTail->operator()(pa) ){
00058         cs.fill(this, evalTail(pa));
00059       }else{
00060         cs.fill(this, evalPeak(pa));
00061       }
00062     }
00063   }

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

read back last deposit - used by monitoring code.

Implements FastShower::ISampler.

Definition at line 102 of file C0HadEarlyEcalBar1.cxx.

References FastShower::CoreSamples::give().

00102                                                                   {
00103     return cs.give(this);
00104   }

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

Reimplemented from FastShower::DebugBase.

Definition at line 106 of file C0HadEarlyEcalBar1.cxx.

References m_inTail, m_peak, and m_tail.

00106                                                         {
00107     v.push_back(m_peak);
00108     v.push_back(m_tail);
00109     v.push_back(m_inTail);
00110   }

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

Definition at line 65 of file C0HadEarlyEcalBar1.cxx.

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

Referenced by sample().

00065                                                               {
00066 
00067     pair<double, double>  peakParams = m_peak->parameters(pa);
00068     double peakMean  = peakParams.first;
00069     double peakSigma = peakParams.second;
00070 
00071     //calculate ther upper and lower limits of the tails
00072     //
00073     // tail
00074     double energy = pa.pp()->energy();
00075     double uLimit = peakMean - s_nSigma1*peakSigma;
00076     uLimit = min(uLimit,1.0);
00077     uLimit = max(uLimit,0.0);
00078     //
00079     double lLimit;
00080     if (energy<30.0) {
00081       lLimit = 0.0;
00082     }else if (energy<70.0) {
00083       lLimit = peakMean - s_nSigma2*peakSigma;
00084     }else {
00085       lLimit = peakMean - s_nSigma3*peakSigma;
00086     }
00087     lLimit = max(lLimit,0.0);
00088     if(lLimit>uLimit){lLimit=0.0;}
00089     //
00090     if (!(uLimit-lLimit)>0.0) {
00091       lLimit = 0.0;
00092       uLimit = 1.0;
00093     }
00094     LinearProcessor lp( (uLimit-lLimit),lLimit );
00095     return m_tail->sample(&lp);
00096   }

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

Definition at line 98 of file C0HadEarlyEcalBar1.cxx.

Referenced by sample().

00098                                                             {
00099     return m_peak->sample(0.0, 100, 1.0, 100, pa);
00100   }

Member Data Documentation

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

Definition at line 80 of file C0HadEarlyEcalBar1.h.

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

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

Definition at line 81 of file C0HadEarlyEcalBar1.h.

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

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

Definition at line 82 of file C0HadEarlyEcalBar1.h.

Referenced by C0HadEarlyEcalBar1(), components(), and sample().

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

Referenced by evalTail().

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

Referenced by evalTail().

const double FastShower::C0HadEarlyEcalBar1::s_nSigma3 [static, private]
 

Referenced by evalTail().


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