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

FastShower::Showerer Class Reference

#include <Showerer.h>

Inheritance diagram for FastShower::Showerer:

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

Collaboration graph
[legend]
List of all members.

Public Methods

 Showerer (IConfigurer *)
 Showerer (vector< IDepositor * >, vector< IDepositor * >, INormaliser *, INormaliser *)
 Showerer (const IConfigurer *, const std::string &)
 Showerer (const Showerer &)
Showerer & operator= (const Showerer &)
 ~Showerer ()
virtual void shower (ParticleParameters &, Gridlet *, Normalisations &, Normalisations &) const
virtual void normalise (const ParticleParameters &, Normalisations &, Normalisations &) const
virtual void components (IDebug::Cpts &) const
 overide the DebugBase components:


Private Attributes

std::vector< IDepositor * > m_eDepositors
 dont need the copy constructor Ecal Depositor container (core, halo, pencil .....depositors)

std::vector< IDepositor * > m_hDepositors
 Hcal Depositor container.

SP< INormaliserm_eNormaliser
 Combination of all noramilisation Functions.

SP< INormaliserm_hNormaliser
SP< EnergyLimiterm_eLimiter
 To be passed to ParicleParameters to giev limited energy range.


Constructor & Destructor Documentation

FastShower::Showerer::Showerer IConfigurer  
 

FastShower::Showerer::Showerer vector< IDepositor * >   ,
vector< IDepositor * >   ,
INormaliser  ,
INormaliser  
 

Definition at line 33 of file Showerer.cxx.

00034                                                       :
00035     IShowerer(), DebugBase("Showerer"), 
00036     m_eDepositors(e), m_hDepositors(h), 
00037     m_eNormaliser(eN), m_hNormaliser(hN),
00038     m_eLimiter(new EnergyLimiter(10., 100.)){}

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

Definition at line 20 of file Showerer.cxx.

References FastShower::IConfigurer::eDepositors(), FastShower::IConfigurer::energyLimiter(), FastShower::IConfigurer::findNormaliser(), FastShower::IConfigurer::hDepositors(), m_eDepositors, m_eLimiter, m_eNormaliser, m_hDepositors, and m_hNormaliser.

00020                                                                      :
00021     IShowerer(), DebugBase(s), m_eDepositors(), m_hDepositors(), 
00022     m_eNormaliser(0), m_hNormaliser(0), m_eLimiter(0){
00023     
00024     configurer->eDepositors(m_eDepositors);
00025     configurer->hDepositors(m_hDepositors);
00026     m_eNormaliser = configurer->findNormaliser("EcalNormaliser");
00027     m_hNormaliser = configurer->findNormaliser("HcalNormaliser");
00028     m_eLimiter    = configurer->energyLimiter();
00029 
00030   }

FastShower::Showerer::Showerer const Showerer &   
 

Definition at line 41 of file Showerer.cxx.

References m_eDepositors, m_eLimiter, m_eNormaliser, m_hDepositors, and m_hNormaliser.

00041                                      : IShowerer(), DebugBase(s){
00042 
00043     std::vector<IDepositor*>::const_iterator iter;
00044     std::vector<IDepositor*>::const_iterator end;
00045     
00046     iter =s.m_eDepositors.begin();
00047     end =s.m_eDepositors.end();
00048     for(;iter!=end;++iter){m_eDepositors.push_back((*iter)->clone());}
00049     
00050     iter =s.m_hDepositors.begin();
00051     end =s.m_hDepositors.end();
00052     for(;iter!=end;++iter){m_hDepositors.push_back((*iter)->clone());}
00053 
00054     m_eNormaliser = s.m_eNormaliser;
00055     m_hNormaliser = s.m_hNormaliser;
00056 
00057     m_eLimiter    = s.m_eLimiter;
00058   }

FastShower::Showerer::~Showerer  
 

Definition at line 88 of file Showerer.cxx.

References m_eDepositors, m_eNormaliser, m_hDepositors, and m_hNormaliser.

00088                      {
00089 
00090     vector<IDepositor*>::iterator it;
00091     vector<IDepositor*>::iterator end;
00092 
00093     it  = m_eDepositors.begin();
00094     end = m_eDepositors.end();
00095     for(; it!= end; ++it){delete (*it);}
00096 
00097     it  = m_hDepositors.begin();
00098     end = m_hDepositors.end();
00099     for(; it!= end; ++it){delete (*it);}
00100 
00101     delete m_eNormaliser;
00102     delete m_hNormaliser;
00103   }

Member Function Documentation

Showerer & FastShower::Showerer::operator= const Showerer &   
 

Definition at line 60 of file Showerer.cxx.

References m_eDepositors, m_eNormaliser, m_hDepositors, and m_hNormaliser.

00060                                                 {
00061 
00062     // update if not copyin to self
00063     if (&s != this){
00064       
00065       DebugBase::operator=(s);
00066       //erase the old depositors
00067       m_eDepositors.clear();
00068       m_hDepositors.clear();
00069 
00070       std::vector<IDepositor*>::const_iterator iter, end;
00071 
00072       //copy the new depositors
00073       iter =s.m_eDepositors.begin();
00074       end =s.m_eDepositors.end();
00075       for(;iter!=end;++iter){m_eDepositors.push_back((*iter)->clone());}
00076 
00077       iter =s.m_hDepositors.begin();
00078       end =s.m_hDepositors.end();
00079       for(;iter!=end;++iter){m_hDepositors.push_back((*iter)->clone());}
00080 
00081       m_eNormaliser = s.m_eNormaliser->clone();
00082       m_hNormaliser = s.m_hNormaliser->clone();
00083     }
00084 
00085     return *this;
00086   }

void FastShower::Showerer::shower ParticleParameters   pp,
Gridlet   g,
Normalisations   eNorms,
Normalisations   hNorms
const [virtual]
 

calo dependent normalisations (scale input eNorms/hNorms)

set this the energy limiter in ParticleParamerters to the one appropriate to the Samplers of this showerer.

Implements FastShower::IShowerer.

Definition at line 105 of file Showerer.cxx.

References FastShower::Gridlet::emDeposits(), FastShower::Gridlet::hadDeposits(), m_eDepositors, m_eLimiter, m_hDepositors, normalise(), and FastShower::ParticleParameters::setEnergyLimiter().

00108                                                       {
00111     pp.setEnergyLimiter(m_eLimiter);
00112 
00114     this->normalise(pp, eNorms, hNorms);
00115     //
00116     vector<IDepositor*>::const_iterator it;
00117     //Loop through Deposits. Give a reference to the em Dposits in
00118     //Gridlet, fill these deposits, and normalise them;
00119     it  = m_eDepositors.begin();
00120     for(; it!= m_eDepositors.end(); ++it){
00121       (*it)->deposit(pp, eNorms, g->emDeposits());
00122     }
00123     //
00124     // repeat for hadron cal deposits.
00125     it  = m_hDepositors.begin();
00126     for(; it!= m_hDepositors.end(); ++it){
00127       (*it)->deposit(pp, hNorms, g->hadDeposits());
00128     }
00129   }

void FastShower::Showerer::normalise const ParticleParameters  ,
Normalisations  ,
Normalisations  
const [virtual]
 

Implements FastShower::IShowerer.

Definition at line 131 of file Showerer.cxx.

References m_eNormaliser, and m_hNormaliser.

Referenced by shower().

00133                                                         {
00134     //
00135     //normalise Gridlet deposits
00136     m_eNormaliser->scale(eNorms,pp);
00137     m_hNormaliser->scale(hNorms,pp);
00138   }

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

overide the DebugBase components:

Reimplemented from FastShower::DebugBase.

Definition at line 140 of file Showerer.cxx.

References m_eDepositors, m_eNormaliser, m_hDepositors, and m_hNormaliser.

00140                                               {
00141     c.push_back(m_eNormaliser);
00142     c.push_back(m_hNormaliser);
00143     std::copy(m_eDepositors.begin(), m_eDepositors.end(), back_inserter(c));
00144     std::copy(m_hDepositors.begin(), m_hDepositors.end(), back_inserter(c));
00145   }

Member Data Documentation

std::vector<IDepositor*> FastShower::Showerer::m_eDepositors [private]
 

dont need the copy constructor Ecal Depositor container (core, halo, pencil .....depositors)

Definition at line 64 of file Showerer.h.

Referenced by components(), operator=(), shower(), Showerer(), and ~Showerer().

std::vector<IDepositor*> FastShower::Showerer::m_hDepositors [private]
 

Hcal Depositor container.

Definition at line 66 of file Showerer.h.

Referenced by components(), operator=(), shower(), Showerer(), and ~Showerer().

SP<INormaliser> FastShower::Showerer::m_eNormaliser [private]
 

Combination of all noramilisation Functions.

Definition at line 68 of file Showerer.h.

Referenced by components(), normalise(), operator=(), Showerer(), and ~Showerer().

SP<INormaliser> FastShower::Showerer::m_hNormaliser [private]
 

Definition at line 69 of file Showerer.h.

Referenced by components(), normalise(), operator=(), Showerer(), and ~Showerer().

SP<EnergyLimiter> FastShower::Showerer::m_eLimiter [private]
 

To be passed to ParicleParameters to giev limited energy range.

Definition at line 71 of file Showerer.h.

Referenced by shower(), and Showerer().


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