00001 // @(#)root/minuit2:$Id: FlatRandomGen.h 20880 2007-11-19 11:23:41Z rdm $ 00002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005 00003 00004 /********************************************************************** 00005 * * 00006 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT * 00007 * * 00008 **********************************************************************/ 00009 00010 #ifndef MN_FlatRandomGen_H_ 00011 #define MN_FlatRandomGen_H_ 00012 00013 #include <cmath> 00014 00015 namespace ROOT { 00016 00017 namespace Minuit2 { 00018 00019 00020 class FlatRandomGen { 00021 00022 public: 00023 00024 FlatRandomGen() : fMean(0.5), fDelta(0.5) {} 00025 00026 FlatRandomGen(double mean, double delta) : fMean(mean), fDelta(delta) {} 00027 00028 ~FlatRandomGen() {} 00029 00030 double Mean() const {return fMean;} 00031 00032 double Delta() const {return fDelta;} 00033 00034 double operator()() const { 00035 return 2.*Delta()*(std::rand()/double(RAND_MAX) - 0.5) + Mean(); 00036 } 00037 00038 private: 00039 00040 double fMean; 00041 double fDelta; 00042 }; 00043 00044 } // namespace Minuit2 00045 00046 } // namespace ROOT 00047 00048 #endif //MN_FlatRandomGen_H_