double myfunction(double *x) { double x1 = generator->Uniform(0,1); double y1 = generator->Uniform(0,1); double w1 = x1 + y1; if (w1>=0.&w1<=1.){return w1;}; else if (w1>1.&w1<=2.){return (2.-w1);}; else {return 0.;}; } void ex5n(){ auto c1 = new TCanvas("canvas","Example",200,10,600,400); TRandom3 * generator = new TRandom3(); auto f1 = new TF1("f1",myfunction,0,2,1); // tried doing auto f1 = new TF1("f1",myfunction,0,2,0); & double myfunction() auto h1= new TH1F("h1","test",100,0,2); h1->FillRandom("f1",1000000); h1->Draw(); }