Hi everyone! I have a TNtuple tree with two variables (say, X and Y). I can draw a histogram of X versus Y using the command:
(t is the name of the tree variable).
I would like to save it in the TH1F format (therefore I could fit it, etc.,etc.) How can I do this?
A TH1 histogram is a “one-dimensional” object in the sense that it only needs one variable. You can get one for X by doing t.Draw(“X”) as you know. Making a “histogram of X versus Y” would be a two-dimensional TH2, which you can get by doing t.Draw(“X:Y”) (or Y:X). Actually the type of object made by t.Draw(“X:Y”) depends on whether you add " >> myhist" type of commands in the string, so it’s a bit confusing. Sometimes it’s a TGraph, sometimes a TH2. See this thread: TGraph saved to file shows up as TH2F
Merci, I’ve already solved the problem
I now have a different problem: I need to read from a ROOT file, where I’ve saved the histogram, and then fit it.
It works OK like this:
But then, when I add the line
or something like that, it just gives me an “Unhandled exception ”. The Fit Panel works perfectly fine, but I would like to do it in the code.
Already tried that, result is the same. I even tried doing this in an older version of ROOT and on a different PC.
And if you define a TF1 like that
TF1 *f = new TF1("f","gaus",-5,5);
Does it work?
No result. It seems to have a problem with the “h->Fit(…)” no matter what sort of function I place in the brackets. Here is my file, perhaps the problem is with the file?
900V.root (14.8 KB)
Ah ok, the problem is that “c1” is not a TH1D but a TCanvas
So, you have to write something like
TFile *f = new TFile("900V.root");
TCanvas *c1 = (TCanvas*)f->Get("c1");
TH1D *h1 = (TH1D*)c1->FindObject("htemp");
Thanks a lot, it worked! Spent a couple of days trying to fix this…