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

EmHcalLeakageEc.cxx

Go to the documentation of this file.
00001 #include "FastShowerUtils/Normalisers/EmHcalLeakageEc.h"
00002 
00003 #include "FastShowerUtils/ParticleParameters.h"
00004 
00005 #include "CLHEP/Random/RandFlat.h"
00006 
00007 #include <algorithm>
00008 #include <cmath>
00009 
00010 namespace FastShower{
00011 
00012   std::pair<double, double> 
00013   EmHcalLeakageEc::value(const ParticleParameters& pp) const{
00014   
00015     double energy = pp.energy();
00016 
00017     double p1 = 0.1582*std::exp(0.009531*energy) - 0.1939;
00018     double p2 = (energy>55.0) ?  0.0425 : 0.043987 - 0.0001719*energy;
00019     double p3 = 0.4690 - 0.002518*energy;
00020 
00021     if (energy>15.0) p1= max(p1,0.0);
00022     
00023     double base = p1 - p2*std::log(1.0/RandFlat::shoot() - 1.0);
00024     double leakage = (base>0.) ? std::pow(base,(1.0/p3)) : 0.;
00025 
00026     std::pair<double, double> ehFracs;
00027     ehFracs.first = 1.0 - leakage;
00028     ehFracs.second = leakage;
00029 
00030     return ehFracs;
00031   }
00032   //
00033   IFnOfParticleParameters2* EmHcalLeakageEc::clone() const {
00034     return new EmHcalLeakageEc(*this);
00035   }
00036 }//namespace

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