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

DoubleShowererSelector.cxx

Go to the documentation of this file.
00001 #include "FastShowerUtils/DoubleShowererSelector.h"
00002 
00003 #include "FastShowerUtils/Gridlet.h"
00004 #include "FastShowerUtils/IConfigurer.h"
00005 #include "FastShowerUtils/Normalisations.h"
00006 #include "FastShowerUtils/ParticleParameters.h"
00007 #include "FastShowerUtils/IFnOfParticleParameters.h"
00008 #include "FastShowerUtils/IDoubleShowererSelectorConfig.h"
00009 
00010 #include <assert.h>
00011 #include <iostream>
00012 namespace FastShower{
00013   //
00014   DoubleShowererSelector::DoubleShowererSelector
00015   (const IDoubleShowererSelectorConfig& conf):
00016     DebugBase("DoubleShowererSelector"){
00017     m_acceptor      = conf.acceptor();
00018     m_ehSharer      = conf.ehSharer();
00019     m_earlyShowerer = conf.earlyShowerer();
00020     m_lateShowerer  = conf.lateShowerer();
00021   }
00022   //
00023   bool DoubleShowererSelector::accept(ParticleParameters& pp, 
00024                                       Gridlet* g) const{
00025     if (m_acceptor->accept(pp)){
00026       std::pair<double, double> ehFracs = m_ehSharer->value(pp);
00027       double energy = pp.rawEnergy();
00028       Normalisations eNs(ehFracs.first * energy);
00029       Normalisations hNs(ehFracs.second * energy);
00030       // based on ECal fraction decide which Showerer to activate
00031       // if ECAL deposit less/greater than 700MeV  -->  late/early shower
00032       if (ehFracs.first*energy < 0.700) {
00033         m_lateShowerer->shower(pp,g,eNs,hNs);
00034       } else {
00035         m_earlyShowerer->shower(pp,g,eNs,hNs);
00036       }
00037       return true;
00038     }
00039     return false;
00040   }
00041   //
00042   void DoubleShowererSelector::components(IDebug::Cpts& c) const{
00043     c.push_back(m_acceptor);
00044     c.push_back(m_ehSharer);
00045     c.push_back(m_lateShowerer);
00046     c.push_back(m_earlyShowerer);
00047   }
00048 
00049 }//namespace
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 

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