const int NFoils = 2; const Double_t z0 = -15.32e-3, dz = 75e-3; const Double_t targetfoils[NFoils]={ z0 - dz, z0 + dz }; void FitVertex(void){ TH1F * react_z = new TH1F("react_z","react_z",600,-0.2,0.2); T->Draw("rpl.z>>react_z","abs(rpl.z)<0.2"); TLine *z_ideal[NFoils]; TF1 *gr[NFoils]; char name[NFoils][300] = {"m1","m2"}; for(int i=0;iSetLineColor(3); z_ideal[i]->Draw("same"); gr[i] = new TF1(name[i],"gaus",targetfoils[i]-dz/2.,targetfoils[i]+dz/2.); } TF1 *total = new TF1("mtotal","gaus(0)+gaus(3)",targetfoils[0]-dz/2.0,targetfoils[NFoils-1]+dz/2.0); Double_t par[3*NFoils]; react_z->Fit(gr[0],"R"); react_z->Fit(gr[1],"R+"); gr[0]->GetParameters(&par[0]); gr[1]->GetParameters(&par[3]); total->SetParameters(par); react_z->Fit(total,"R+"); }