8 #include "CLHEP/Random/Ranlux64Engine.h"
9 #include "CLHEP/Random/RanecuEngine.h"
10 #include "CLHEP/Random/MTwistEngine.h"
11 #include "CLHEP/Random/RandGauss.h"
12 #include "CLHEP/Random/RandGaussQ.h"
13 #include "CLHEP/Random/RandExponential.h"
14 #include "CLHEP/Random/RandGaussZiggurat.h"
15 #include "CLHEP/Random/RandExpZiggurat.h"
20 #include "GaudiKernel/DataSvc.h"
21 #include "GaudiKernel/Chrono.h"
22 #include "GaudiKernel/ISvcLocator.h"
23 #include "GaudiKernel/MsgStream.h"
24 #include "GaudiKernel/ListItem.h"
39 m_rndmSvc1(
"AtRanluxGenSvc",
name),
41 m_randomEngineName1(
"rnd_AtRanluxGenSvc"),
42 m_rndmSvc2(
"AtDSFMTGenSvc",
name),
44 m_randomEngineName2(
"rnd_AtDSFMTGenSvc")
56 if(!serviceLocator()->service(
"ChronoStatSvc" ,
m_chrono ).isSuccess()){
58 return StatusCode::FAILURE;
68 return StatusCode::FAILURE;
72 return StatusCode::FAILURE;
79 return StatusCode::FAILURE;
84 return StatusCode::FAILURE;
87 if((service(
"THistSvc",
m_histSvc)).isFailure()) {
88 msg(MSG::ERROR) <<
"Cannot allocate THistSvc service" <<
endmsg;
89 return StatusCode::FAILURE;
94 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hflat->GetName() <<
endmsg;
104 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hgauss2->GetName() <<
endmsg;
107 m_hgauss3=
new TH1D(
"RandGaussZigurat",
"RandGaussZigurat",700,-7,7);
109 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hgauss3->GetName() <<
endmsg;
112 m_hexp1=
new TH1D(
"RandExponential",
"RandExponential",900,0,30);
114 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hexp1->GetName() <<
endmsg;
117 m_hexp2=
new TH1D(
"RandExpZiggurat",
"RandExpZiggurat",900,0,30);
119 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hexp2->GetName() <<
endmsg;
122 m_hbin1=
new TH1D(
"RandBinomial",
"RandBinomial",4,-0.5,3.5);
124 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hbin1->GetName() <<
endmsg;
127 m_hbin2=
new TH1D(
"RandBinomialFixedP",
"RandBinomialFixedP",4,-0.5,3.5);
129 msg(MSG::WARNING) <<
"Could not register histogram "<<
m_hbin2->GetName() <<
endmsg;
133 return StatusCode::SUCCESS;
139 return StatusCode::SUCCESS;
151 for(
int i=0;
i<ntest;++
i) {
160 m_chrono -> chronoStart(
"RandGauss");
162 for(
int i=0;
i<ntest;++
i) {
168 m_chrono -> chronoStop(
"RandGauss");
171 m_chrono -> chronoStart(
"RandGaussQ");
173 for(
int i=0;
i<ntest;++
i) {
179 m_chrono -> chronoStop(
"RandGaussQ");
182 m_chrono -> chronoStart(
"RandGaussZiggurat");
184 for(
int i=0;
i<ntest;++
i) {
190 m_chrono -> chronoStop(
"RandGaussZiggurat");
193 m_chrono -> chronoStart(
"RandExponential");
195 for(
int i=0;
i<ntest;++
i) {
201 m_chrono -> chronoStop(
"RandExponential");
204 m_chrono -> chronoStart(
"RandExpZiggurat");
206 for(
int i=0;
i<ntest;++
i) {
212 m_chrono -> chronoStop(
"RandExpZiggurat");
217 for(
int n=1;
n<6;
n+=1) {
220 for(
int i=0;
i<ntest;++
i) {
231 for(
int i=0;
i<ntest;++
i) {
296 return StatusCode::SUCCESS;