CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/FastSimulation/Utilities/interface/LandauFluctuationGenerator.h

Go to the documentation of this file.
00001 #ifndef FastSimulation_Utilities_LandauFluctuationGenerator_H
00002 #define FastSimulation_Utilities_LandauFluctuationGenerator_H
00003 
00004 #include "FastSimulation/Utilities/interface/BaseNumericalRandomGenerator.h"
00005 
00006 #include <cmath>
00007 
00018 class RandomEngine;
00019 
00020 class LandauFluctuationGenerator : public BaseNumericalRandomGenerator
00021 {
00022  public:
00023 
00025   LandauFluctuationGenerator(const RandomEngine* engine) : 
00026     BaseNumericalRandomGenerator(engine,-3.5,25.) {
00027     initialize();
00028   }
00029 
00031   virtual ~LandauFluctuationGenerator() {}
00032 
00034   double landau() const { return generate(); }
00035   
00037   virtual double function(double x) { return ersatzt(x); }
00038 
00039  private:
00040 
00042   double ersatzt(double x) { 
00043     return  std::exp(-0.5 * ( x + std::exp(-x) )) / std::sqrt (2. *M_PI); 
00044   }
00045 };
00046 #endif