#include "TCanvas.h" #include "TEllipse.h" #include "TF1.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TH2F.h" #include "TH1F.h" #include "TLine.h" #include "TH1F.h" #include "TH3F.h" #include "TLegend.h" #include "TMath.h" #include "TMatrix.h" #include "TROOT.h" #include "TSpectrum.h" #include "TPolyMarker.h" #include "TStyle.h" #include "TPrincipal.h" #include "TText.h" #include "TVector.h" #include "TVectorD.h" #include "TVectorT.h" #include "TVirtualFitter.h" #include "TStopwatch.h" //---combined2 #include "Fit/Fitter.h" #include "Fit/BinData.h" #include "Fit/Chi2FCN.h" #include "Math/WrappedMultiTF1.h" #include "Math/Interpolator.h" #include "HFitInterface.h" #include "TList.h" #include #include const int LUNGHEZZA = 2000; int macro (); void fitting(double *x, double *y); int macro (){ double x[LUNGHEZZA]; double y[LUNGHEZZA]; int i; for(i=0; iGaus(0,50); } fitting(x, y); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void fitting(double *x, double *y){ int i; //--introduces implicit multithreading ROOT::EnableImplicitMT(); //--set fitter to Minuit2 for multithreading ROOT::Math::MinimizerOptions::SetDefaultMinimizer("Minuit2"); TGraph* FF = new TGraph(); for(i=0; i SetPoint(i,x[i],y[i]); } TF1* f = new TF1("f", "pol3", 0, LUNGHEZZA/2); FF->Fit("f","MULTITHREAD"); FF->Draw("AP"); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////