23 Double_t sqr(Double_t x){
27 Double_t Camel2(Int_t nDim, Double_t *Xarg){
31 Double_t GamSq= sqr(0.100e0);
33 Dist +=exp(-(sqr(x-1./3) +sqr(y-1./3))/GamSq)/GamSq/TMath::Pi();
34 Dist +=exp(-(sqr(x-2./3) +sqr(y-2./3))/GamSq)/GamSq/TMath::Pi();
40 cout<<
"--- kanwa started ---"<<endl;
41 TH2D *hst_xy =
new TH2D(
"hst_xy" ,
"x-y plot", 50,0,1.0, 50,0,1.0);
42 Double_t *MCvect =
new Double_t[2];
44 TRandom *PseRan =
new TRandom3();
45 PseRan->SetSeed(4357);
46 TFoam *FoamX =
new TFoam(
"FoamX");
48 FoamX->SetnCells(500);
49 FoamX->SetRhoInt(Camel2);
50 FoamX->SetPseRan(PseRan);
54 TCanvas *cKanwa =
new TCanvas(
"cKanwa",
"Canvas for plotting",600,600);
58 for(
long loop=0; loop<100000; loop++){
60 FoamX->GetMCvect( MCvect);
63 if(loop<10) cout<<
"(x,y) = ( "<< x <<
", "<< y <<
" )"<<endl;
68 hst_xy->Draw(
"lego2");
73 hst_xy->Draw(
"lego2");
76 Double_t MCresult, MCerror;
77 FoamX->GetIntegMC( MCresult, MCerror);
78 cout <<
" MCresult= " << MCresult <<
" +- " << MCerror <<endl;
79 cout<<
"--- kanwa ended ---"<<endl;