Hi Gerco, What you propose has nothing to do with TH1::FillRandom. You want a TH1:Fluctuate or like. I agree that this would be an interesting function to include in the package. Any volunteer? Concerning the Binomial distribution, we already have TRandom::Binomial See TRandom doc for the list of generators. Rene Brun Gerco Onderwater wrote: > > Hi All, > > Recently I have been using the TH1::FillRandom method extensively, and > although very straightforward, it is also time consuming for generating > large numbers of random events. My solution to this was the following: > > 1) create a (normalized) function: TH1F* F > 2) create an "experiment": TRandom2* EXP > 3) for each bin in the histogram to be filled, evaluate the average > number of events expected in that bin: MU = f->Eval(XBIN)*BINWIDTH (or > area or volume). More sophisticated: calculate the integral of f within > the bin. > 4) multiply this number with the required number of events for the total > histogram: MU *= TOTAL > 5) calculate COUNTS = EXP->Poisson(MU) and store this in the histogram > > In this way, you will get TOTAL+-sqrt(TOTAL) events in your histogram > (i.e. not exactly TOTAL!). The time needed to generate the histogram is > proportional to the number of bins of the histogram, not the number of > events. The statistics of the data is correct for all those cases where > the Poisson distribution is applicable. > > Perhaps this could be used to make Root even more powerful (and fast)? For > completeness, a Binomial random generator would be handy. > > Anyhow, it saved me a lot of time, > > -- Gerco > > Dr. C.J.G. Onderwater > Nuclear Physics Laboratory > 312 Loomis Laboratory of Physics > University of Illinois at Urbana-Champaign > 1110 West Green Street > Urbana, IL 61801-3080 > Phone : (217) 244-7363 > Fax : (217) 333-1215 > E-mail: onderwat@uiuc.edu
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:33 MET