The difference between htemp got by TTree::Draw() and TH1F object

hi everyone,
I ran into a problem with TTree::Draw() and TH1F.
I got two different mean when using TTree::Draw() and TH1F
The code is following:

TH1F *hist1;
TH1F *hist2;
tree->SetBranchAddress("weight", &weight);
for (int j = 0; j < tree->GetEntries(); j++)
{
  tree->GetEntry(j);
  hist1->Fill(weight);
}
tree->Draw("weight>>hist2");
hist1->GetMean();
hist2->GetMean();

I wonder what’s the difference between them, thank you all.


Please read tips for efficient and successful posting and posting code

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


Make sure you use something like this:

int nbins = 100; // set a reasonable value
double xmin = 0., xmax = 100.; // set reasonable values
gROOT->cd(); // newly created histograms should go here
TH1F *hist1 = new TH1F("hist1", "my hist 1;my x;my y", nbins, xmin, xmax);
TH1F *hist2 = new TH1F("hist2", "my hist 2;my x;my y", nbins, xmin, xmax);

Yes,I created the hist just like you did.

TH1F* hist1=new TH1F("hist1","", 100, 0, 100);
TH1F* hist2=new TH1F("hist2","", 100, 0, 100);

Hi @YULianzhou ,

could this be a precision issue in TH1F? Do you still see the problem if you switch to TH1D (with double precision bins)?

Cheers,
Enrico

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.