--- /dev/null
+static TF1* f_wdsx_z;
+static TF1* f_ta;
+static TF2* f_ta_rfi;
+
+void glauber()
+{
+//
+// Calculates some geometrical properties of PbPb collisions
+// in the Glauber Model
+//
+// Wood-Saxon nuclear density function
+//
+ TCanvas *c1 = new TCanvas("c1","Wood Saxon",400,10,600,700);
+ TF1* f_wdsx = new TF1("f_wdsx", wdsx, 0, 15., 4);
+ f_wdsx->SetParameter(0,6.624);
+ f_wdsx->SetParameter(1,0.549);
+ f_wdsx->SetParameter(2,0.000);
+ f_wdsx->SetParameter(3,7.69e-4);
+ f_wdsx->Draw();
+//
+// Wood Saxon-nuclear density (b-z)
+//
+ TCanvas *c2 = new TCanvas("c2","Wood Saxon",400,10,600,700);
+ TF2* f_wdsx_bz = new TF2("f_wdsx_bz", wdsx_bz, 0, 15., 0., 15., 4);
+ f_wdsx_bz->SetParameter(0,6.624);
+ f_wdsx_bz->SetParameter(1,0.549);
+ f_wdsx_bz->SetParameter(2,0.000);
+ f_wdsx_bz->SetParameter(3,7.69e-4);
+ f_wdsx_bz->Draw();
+//
+// Wood Saxon-nuclear density (z, for fixed b)
+//
+ TCanvas *c3 = new TCanvas("c3","Wood Saxon",400,10,600,700);
+ f_wdsx_z = new TF1("f_wdsx_z", wdsx_z, 0, 15., 5);
+ f_wdsx_z->SetParameter(0,6.624);
+ f_wdsx_z->SetParameter(1,0.549);
+ f_wdsx_z->SetParameter(2,0.000);
+ f_wdsx_z->SetParameter(3,7.69e-4);
+ f_wdsx_z->SetParameter(4,0.);
+ f_wdsx_z->Draw();
+//
+// Thickness function
+//
+ TCanvas *c4 = new TCanvas("c4","T_A",400,10,600,700);
+ f_ta = new TF1("f_ta", ta, 0, 15., 0);
+ f_ta->Draw();
+//
+// Kernel of overlap function
+//
+
+ TCanvas *c5 = new TCanvas("c5","T_A",400,10,600,700);
+ f_ta_rfi = new TF2("f_ta_rfi", ta_rfi, 0, 15., 0., TMath::Pi(), 1);
+ f_ta_rfi->SetParameter(0,0.);
+ f_ta_rfi->Draw();
+//
+// Overlap Function
+//
+ TCanvas *c6 = new TCanvas("c6","T_AA",400,10,600,700);
+ TF1* f_taa = new TF1("f_taa", taa,0.,15., 0);
+ f_taa->Draw();
+
+}
+
+
+
+Double_t taa(Double_t* x, Double_t* dum)
+{
+ printf("taa %f\n", x[0]);
+
+ Double_t b = x[0];
+ Double_t y = 10./(208*208)*hijing->Profile((Float_t)b);
+ return y;
+}
+
+
+Double_t wdsx(Double_t* x, Double_t* par)
+{
+//
+// Wood Saxon Parameterisation
+// as a function of radius
+//
+ Double_t xx = x[0];
+ Double_t r0 = par[0];
+ Double_t d = par[1];
+ Double_t w = par[2];
+ Double_t n = par[3];
+
+ Double_t y = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
+ return y;
+}
+
+Double_t wdsx_bz(Double_t* x, Double_t* par)
+{
+//
+// Wood Saxon Parameterisation
+// as a function of z and b
+//
+ Double_t bb = x[0];
+ Double_t zz = x[1];
+ Double_t r0 = par[0];
+ Double_t d = par[1];
+ Double_t w = par[2];
+ Double_t n = par[3];
+ Double_t xx = TMath::Sqrt(bb*bb+zz*zz);
+ Double_t y = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
+ return y;
+}
+
+Double_t wdsx_z(Double_t* x, Double_t* par)
+{
+//
+// Wood Saxon Parameterisation
+// as a function of z for fixed b
+//
+ Double_t bb = par[4];
+ Double_t zz = x[0];
+ Double_t r0 = par[0];
+ Double_t d = par[1];
+ Double_t w = par[2];
+ Double_t n = par[3];
+ Double_t xx = TMath::Sqrt(bb*bb+zz*zz);
+ Double_t y = n * (1.+w*(xx/r0)*(xx/r0))/(1.+TMath::Exp((xx-r0)/d));
+ return y;
+}
+
+Double_t ta(Double_t* x, Double_t* par)
+{
+//
+// Thickness function
+//
+ Double_t b = x[0];
+ f_wdsx_z->SetParameter(4,b);
+ Double_t y = 2.*f_wdsx_z->Integral(0.,15.);
+ return y;
+}
+
+Double_t ta_rfi(Double_t* x, Double_t* par)
+{
+//
+// Kernel for overlap function
+//
+ Double_t b = par[0];
+ Double_t r1 = x[0];
+ Double_t phi = x[1];
+ Double_t r2 = TMath::Sqrt(r1*r1+b*b-2.*r1*b*TMath::Cos(phi));
+ Double_t y = r1*f_ta->Eval(r1)*f_ta->Eval(r2);
+// Double_t y = r1*f_ta->Eval(r1);
+ return y;
+}
+
+
+Double_t taa(Double_t* x, Double_t* par)
+{
+//
+// Overlap function
+//
+
+
+ Double_t b = x[0];
+ f_ta_rfi->SetParameter(0,b);
+ f_ta_rfi->Update();
+
+ Double_t y = 2.*
+ f_ta_rfi->Integral(0.,15., 0., TMath::Pi(), 0.001);
+ printf("taa %f %f\n", x[0], y);
+ return y;
+}
+
+
+
+
+
+
+
+
+
+