import ROOT import math ROOT.gROOT.SetStyle("Plain") rndm = ROOT.TRandom3() rndm.SetSeed(123456) expo = ROOT.TH1D("expo", "Exponential", 100, 0, 20) for i in range(1, 10000): r = rndm.Uniform() x = - 3.5 * math.log(r) expo.Fill(x) twoPi = 2*math.pi sin2 = ROOT.TH1D("sin2", "Sine-squared", 100, 0, twoPi) for i in range (1, 10000): while True: x = rndm.Uniform(0, twoPi) r = rndm.Uniform() if(r <= pow(math.sin(x),2)): break sin2.Fill(x) sinexp = ROOT.TH1D("sinexp", "Exp times sine-squared", 100, 0, 20) for i in range(1, 10000): while True: r = rndm.Uniform() x = - 3.5 * math.log(r) r = rndm.Uniform() if(r <= pow(math.sin(x),2)): break sinexp.Fill(x) ROOT.gStyle.SetOptLogy(0) c1 = ROOT.TCanvas() expo.Draw() c1.SaveAs("03-expo.pdf") sin2.Draw() c1.SaveAs("03-sin2.pdf") sinexp.Draw() c1.SaveAs("03-sinexp.pdf") ROOT.gStyle.SetOptLogy(1) c2 = ROOT.TCanvas() expo.SetLineColor(ROOT.kBlue) expo.SetLineWidth(2) expo.Draw() c2.SaveAs("03-expo-logy.pdf") sinexp.Draw() c2.SaveAs("03-sinexp-logy.pdf")