I have converted your program into a script which can be run interactively in root.
// TGraph to TF1
TGraph *g1;
double myfunc(double *xx, double *)
{
return g1->Eval(xx[0]);
}
// Main function
void diego()
{
// Opening data. Here energy and PAI cross section relative to Rutherford cross section is provided
TTree *MyTree = new TTree("MyTree","MyTree");
Double_t energy, crossSection;
MyTree->ReadFile("data-Bichsel.txt","energy/D:crossSection/D");
MyTree->SetBranchAddress("energy",&energy);
MyTree->SetBranchAddress("crossSection",&crossSection);
// Probability of energy deposition
Int_t nn = MyTree->GetEntries(); // number of entries on .txt file
const Int_t n = nn;
TVectorD ene(n), Pn1(n), sigma(n), Sigma(n), SSigma(n);
TVectorD dSigma_dE(n), dSigmaRuth_dE(n), dSigmaRuth(n);
const Double_t beta_lorentz = 0.97;
const Double_t betagamma = beta_lorentz/sqrt(1 - pow(beta_lorentz,2));
const Double_t mc2 = 0.510998928*pow(10,6);
const Double_t Emax = 2*mc2*pow(betagamma,2);
const Double_t kr = 2.54955*pow(10,-19); // constant used in Rutherford cross-section (eV.cm2)
for (int i=0; i<n; i++) {
MyTree->GetEntry(i);
ene(i) = energy;
sigma(i) = crossSection;
// Rutherford cross-section
dSigmaRuth_dE(i) = kr/pow(beta_lorentz*ene(i),2)*(1 - pow(beta_lorentz,2)*ene(i)/Emax);
// Converting inital cross section
Sigma(i) = sigma(i)*dSigmaRuth_dE(i);
}
TCanvas *c1 = new TCanvas("c1","c1",800,600);
c1->cd();
g1 = new TGraph(ene,Sigma);
TSpline3 *s1 = new TSpline3("interpolation1",g1);
s1->Draw();
Double_t emin = 9.203623;
Double_t emax = 94867.336;
gPad->SetLogx();gPad->SetLogy();
TF1 *f1 = new TF1("f1",myfunc,emin,emax);
Double_t area = f1->Integral(emin,emax);
cout << " Area: " << area << endl;
}
it gives:
$ root diego.C
-----------------------------------------------------------------
| Welcome to ROOT 6.09/01 http://root.cern.ch |
| (c) 1995-2016, The ROOT Team |
| Built for macosx64 |
| From heads/master@v6-09-01-1076-g95ad22c, Jan 19 2017, 10:27:10 |
| Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
-----------------------------------------------------------------
root [0]
Processing diego.C...
Area: 1.84579e-20
root [1]
and the attached plot