//   generation of exponential distribution by the transfomation method
//
//         jtmn, Ago, 2003


void exp()
{

 gROOT->Reset();
 gROOT->SetStyle("Plain"); 

TRandom *r3 = new TRandom3();

 const Int_t nPoints = 20000;
 Float_t  x[nPoints];

 const Double_t tau = 2.0;
 //generate x  dist
 Int_t iseed = 300;
 for (Int_t i=0;i<nPoints;i++) {
   x[i] = -tau*TMath::Log(r3->Rndm());
  }

 // display distrib
 TCanvas *c1 = new TCanvas("c1"," Points ", 600,600);
 hexp  = new TH1F("hexp"," ", 50,0.0,15.0);
 for (Int_t i=0;i<nPoints;i++){
   hexp->Fill(x[i]);
  }
 hexp->GetXaxis()->SetTitle("x");
 hexp.Draw();
 c1->Update();
}
