00001 #include "FastShowerUtils/Samplers/PeakSigmaC0HadEarlyEcalBar11.h"
00002 #include "FastShowerUtils/PolyArgs.h"
00003
00004 #include <cmath>
00005 namespace FastShower{
00006
00007 double PeakSigmaC0HadEarlyEcalBar11::value(const PolyArgs& pa) const {
00008
00009 double energy = pa.pp()->energy();
00010 double aDelPhi = fabs(pa.pp()->delPhi());
00011
00012 if ((energy<30.) && (aDelPhi>0.035)) {
00013 double p1 = 13.75*std::exp(-0.1502*energy) - 0.003367;
00014 double p2 = -410.5*std::exp(-0.1905*energy) + 0.01559;
00015
00016 return p1 + p2*aDelPhi;
00017 }else {
00018 double p1 = 0.05486 - 0.0009121*energy;
00019 double p2 = -0.002363 + 0.000900*energy;
00020 double p3 = 0.3462;
00021
00022 return p3/(1. + std::exp((aDelPhi-p1)/p2));
00023 }
00024 }
00025
00026 IFn* PeakSigmaC0HadEarlyEcalBar11::clone() const {
00027 return new PeakSigmaC0HadEarlyEcalBar11();
00028 }
00029 }
00030
00031