Rene, thanks for your fast reply. If i understand correctly, you claim that changing TH1F* histo(TH1F("histo","Histogram of Gluino Condensate", 300,10,12)); to TH1F* histo = new TH1F("histo","Histogram of Gluino Condensate", 300,10,12); resolves the problem. Well, i tested it myself and found the same wrong output: [theol03] ~/results/root $ mist.exe ******************************************* * * * W E L C O M E to R O O T * * * * Version 2.00/12 9 October 1998 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* CINT/ROOT C/C++ Interpreter version 5.13.75, Sep 23 1998 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. using data in range 28104 1.04858e+06 28104.000000 1048576.000000 root [0] printf("%f\n", histo->GetRMS()); 0.099994 root [1] It may be necessary to COMPILE the program, not to use it as a macro, since the RMS is given correctly in interactive mode (see above!) ! BTW: as far as i know C++ the original line TH1F* histo(new TH1F(...)); is a perfectly valid way of initializing a variable, in fact, it appears to me as the standard way in C++ programming. On 20 Oct, Rene Brun wrote: > Joerg, > In your example below, you have an error when creating the TH1F *histo. > I have tested with the variant macro that Root behaves correctly with > your example. > > Rene Brun > > { > #include <iostream.h> > // estimate range for plot > TF1 *func = new TF1("func","exp(-0.5*((x-11.0)/0.1)^2)"); > TH1F* histo = new TH1F("histo","Histogram of Gluino Condensate", > 300,10,12); > histo->FillRandom("func",1024*1024); > cout << "using data in range " << " " > << histo->GetMean() << " " > << histo->GetRMS()<< endl; > printf("%f\n", histo->GetMean()); > printf("%f\n", histo->GetRMS()); > } >
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:38 MET