#include "globalesI.h" #include Int_t i=0; Double_t par[8] = {42.5, 25.5, 0.45, 0.565, 2.25, 30.0, 0.10, -130.27}; extern Double_t rhopp(Double_t s , /*const*/ Double_t *par); double func_rhopp(double *x , double * p) { return rhopp(x[0],p); } //READ DATA void leerdata(){ ifstream data; data.open("pp_elastic.reim"); Int_t i = 0; if(!data) { cout<<"no data file found "<> i; data >> plab[i]; data >> plab_min[i]; data >> plab_max[i]; data >> sigma[i]; data >> stat_err1[i]; data >> stat_err2[i]; data >> sys_err1[i]; data >> sys_err2[i]; i++; } } for (i=1; i<117; i++){ elab[i] = sqrt(pow(plab[i],2)+pow(mp,2)); s[i]=2*elab[i]*mp+pow(mp,2)+pow(mp,2); statistical[i]=0.5*(stat_err1[i]+stat_err2[i]); systematic[i]= 0.5*(sys_err1[i]+sys_err2[i])*sigma[i]/100; error_sigma[i]=sqrt(pow(statistical[i],2)+pow(systematic[i],2)); } data.close(); } Double_t f(Double_t u, void * params){ Double_t *par = (Double_t *) params; Double_t A = 1-par[7]*u; Double_t B = par[7]*par[7]*u*u; Double_t C = A*A; Double_t D = 1/(2*par[8])* pow((C-B),0.5); Double_t f = D*(par[0]*pow(u,par[2]))*(2-(2*par[7]/par[9]))/((par[7]*u-1)*(1-2*par[7]*u+par[9]*u)); return f; } Double_t f1(Double_t u, void * params){ Double_t *par = (Double_t *) params; Double_t A = 1-par[7]*u; Double_t B = par[7]*par[7]*u*u; Double_t C = A*A; Double_t D = 1/(2*par[8])*pow((C-B),0.5); Double_t f1 = D*(par[5]*(2-(2*par[7])/par[9]))/((par[7]*u-1)*(1-2*par[7]*u+par[9]*u)); return f1; } Double_t f2(Double_t u, void * params){ Double_t *par = (Double_t *) params; Double_t f2; Double_t A = 1-par[7]*u*u; Double_t B = par[7]*par[7]*u*u*u*u; Double_t C = A*A; Double_t D = pow ((C-B),0.5);//el momentum Double_t E = pow(u,2*par[3]+1);//el primer termino con A2 Double_t F = -2*log(u);//logaritmo natural Double_t G = pow(F,par[4]);//lo elevo a la gamm Double_t H = pow(u,2*par[3]-1);//el segundo termino con A2 if (u!=0.0){ f2 = D*(4.0*par[1]*0.5*par[7]*E+par[6]*u*G*(2*par[9]-2*par[7])-2*par[1]*H)/ ((par[8]*par[9])*(par[7]*u*u-1)*(u+pow(par[9],-0.5))*(1-2*par[7]*u*u+par[9]*u*u)); // cout<s_min){ delta = (sigma[i]-rhopp(s[i],par) )/error_sigma[i]; chisq += delta*delta; } } f = chisq/116; cout<