# Ambiguous results when extracting 1D from 2D

Dear All
I need an help to crosscheck my code when extracting 1D plot from 2D histogram (attached picture).
The results from depth 10mm is higher than 130mm which if refer to 2D histogram the depth at 130mm must be higher.
here the code which I use:

``````TH1D* total10 = Lattotaldoseproton->ProjectionX("total10", Lattotaldoseproton->GetYaxis()->FindBin(10), Lattotaldoseproton->GetNbinsX());

TH1D* total130 = Lattotaldoseproton->ProjectionX("total130", Lattotaldoseproton->GetYaxis()->FindBin(130), Lattotaldoseproton->GetNbinsX());

total10->Draw();
total10->SetLineWidth(1);
total10->SetLineColor(1);

total130->Draw("same");
total130->SetLineWidth(1);
total130->SetLineColor(2);

//legend
TLegend *leg = new TLegend();
leg->Draw("same");
``````

I have try the code in that discussion
TH1D* total10 = Lattotaldoseproton->ProjectionX(“total10”, 10, 10);
TH1D* total130 = Lattotaldoseproton->ProjectionX(“total130”, 130, 130);
but it still not give the true result, as we can see in 2D plot at depth130 the value is much higher than depth10

The `130` in `ProjectionX` is the bin number, not the axis value. What is the Y-axis of `Lattotaldoseproton`?

Could you please suggest how to take the Y axis value instead of bin number?
Y-axis is the depth, and X-axis is lateral, its actually lateral dose profile in 30x30x30 phantom.

That’s `TAxis::FindFixBin`:

``````auto yaxis = Lattotaldoseproton->GetYaxis();
auto bin130 = yaxis->FindFixBin(130);
TH1D* total130 = Lattotaldoseproton->ProjectionX(“total130”, bin130, bin130);
``````

Dear Axel,
Thank you so much for your helps, it work well and solved my problem/
Cheers

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