00001 #include "BesBdkRc/BesBdkRcRandom.h" 00002 00003 #include "CLHEP/Random/RanluxEngine.h" 00004 #include <iostream> 00005 using namespace std; 00006 using namespace CLHEP; 00007 00008 HepRandomEngine* BesBdkRcRandom::_randomEngine=0; 00009 00010 void BesBdkRcRandom::setRandomEngine(CLHEP::HepRandomEngine* randomEngine){ 00011 _randomEngine=randomEngine; 00012 } 00013 00014 double BesBdkRcRandom::random(){ 00015 00016 if (_randomEngine==0){ 00017 cerr <<"No random engine available in " 00018 <<"BesBdkRcRandom::random()."<<endl; 00019 } 00020 return _randomEngine->flat(); 00021 } 00022 00023 00024 00025 double BesBdkRcRandom::Flat( double min, double max){ 00026 00027 if ( min > max ) { 00028 cerr<< "min>max in BesBdkRcRandom::Flat(" << min << "," << max << ")" <<endl; 00029 } 00030 00031 return BesBdkRcRandom::random()*( max - min )+min; 00032 00033 } 00034 00035 double BesBdkRcRandom::Flat(double max){ 00036 00037 return max*BesBdkRcRandom::random(); 00038 00039 } 00040 00041 double BesBdkRcRandom::Flat(){ 00042 00043 return BesBdkRcRandom::random(); 00044 00045 } 00046 00047 void BesBdkRcRandom::FlatArray(double* vect, const int size){ 00048 if(_randomEngine == 0) cout<<"Can not get randomEngine pointer in BesBdkRcRandom::FlatArray"<<endl; 00049 else _randomEngine->flatArray(size,vect); 00050 } 00051 00052 00053