{ // example to generate gaussian MC events using trasformation method // first, solve the trasformation equation: // (Integral of Gaus(x', mean, sigma)dx' from -inf to x ) = r // one get x = mean - sqrt(2)*sigma*Erf^{-1}(1-2r) // define randome number with randome seed 1234 (can be any number) TRandom3 rnd(1234); // define a histogram from 0 to 1.5 TH1D* h1 = new TH1D("h1", "h1", 100,-10,20); // define the values of mean and sigma double mean = 5; double sigma = 3; // generate random number for( int i=0; i<10000; i++) { //generate random r from 0 to 1 double r = rnd.Rndm(); // calculate random variable x double x = mean - sqrt(2.0)*sigma*TMath::ErfInverse(1.0-2.0*r); // fill it into histogram h1->Fill(x); } // draw h1 h1->Draw(); }