{ h=new TH1D("h","rapidity",500,-500,500); Double_t m,px,py,pz,pt,p,E m=200.45626; for(Int_t i=0;i<10000;i++) { gRandom->Rannor(px,py); gRandom->Rannor(pz,pt); p=-(px*px+py*py+pz*pz)+(pt*pt); E=sqrt((p*p)+(m*m)); y=.5*log((E+pz)/(E-pz)); h->Fill(y); } h->Draw(); }