I have a two-dimensional histogram (TH2D* h). I fitted that 2D histogram with a two-dimensional function (TF2* Fun). Here my 2D function is basically a summation of two 2D functions. Like,
(TF2*) Fun = (TF2*) Fun_1 + (TF2*) Fun_2.
Consider Fun_1 as the Signal and Fun_2 as the Background.
I have a few queries here to execute some processes. Like,
(1) I want to take projections from the 2D fitted histograms to 1D, which must include the data points and as well as fitted function in both x and y 1D projections.
(2) I want to subtract the background, say (TF2*)Fun_2, from 2D fitted histograms and want to plot only the 2D fitted signal and its x and y projections which also must include the data points and as well as the signal fitted function.
Subtract a 1-D or 2-D function from a histogram (set c1 = -1.) → TH1::Add
Project a 2-D histogram into a 1-D histogram along X → TH2::ProjectionX
Project a 2-D histogram into a 1-D histogram along Y → TH2::ProjectionY
A projection of a TF2 along X or Y → TF12
But When I am taking projections from fitted 2D histograms (TH2D*) to 1D histograms (TH1D*), I can see only the data points. There is no fit function available in that canvas.
Do I have to fit 1D histograms again after taking the Projections?
I tried with TF12, but it is also not working.
TCanvas *canvas_1 = new TCanvas();
canvas_1 → cd();
TH2D * hist2D_data_plus_fit;
TH1D * hist1D_Y_data_plus_fit = hist2D_data_plus_fit ->ProjectionY(“Y_Projection”,X_Min,X_Max);
hist1D_Y_data_plus_fit->Draw(“E1”);
//When I am plotting this. only data points are visible, there is no fit function in the canvas. I thought with the projection fit function would automatically be projected.
//Now I tried to fit “hist1D_Y_data_plus_fit” using TF12 function.
//Consider “TF2 * Fun_2D (x,y)” is a 2-dimensional function that I am using to fit TH2D* hist2D_data_plus_fit.
TCanvas *canvas_2 = new TCanvas();
canvas_2 → cd();
TF12 *Fun_12 = new TF12(“Fub_12”, Fun_2D, 0.1, “y”);
hist1D_Y_data_plus_fit → Fit(Fun_12);
hist1D_Y_data_plus_fit->Draw(“E1”);
//Here also when I am plotting this. only data points are visible, there is no fit function in the canvas.
The TF12 computes the values of the referenced TF2 for a fix value of X or Y.
It seems to me that you want a 1-D function that is an integral of the 2-D one (from “X_Min” to “X_Max”).
If you cannot calculate this integral analytically (and create a simple 1-D function for it), you may need to create (you would then need to calculate the integral numerically inside), e.g.: “A general C function with parameters” “A general C++ function object (functor) with parameters”