#include #include #include #include #include #include #include #include void Gaus1(){ gStyle->SetOptFit(0); std::vector Nvals ={1000,10000,100000}; std::vectorBins ={20,50,100}; TCanvas *c1 = new TCanvas("c1","Gauss",1920,1080); c1->Divide(3,3); TRandom3 rand(0); int pad =1; for(int N : Nvals) {for(int bin :Bins) { c1->cd(pad); TH1F *h = new TH1F( Form("h_N%d_B%d",N,bin), Form("N =%d,bin =%d;x;Entries",N,bin), bin,10,90); h->SetStats(0); for(int i=0;iFill(rand.Gaus(50.0,10.0)); h->Fit("gaus","Q"); h->Draw(); pad++;} } std::cout << std::left << std::setw(10) << "N" << std::setw(8) << "Bins" << std::setw(14) << "Mean " << std::setw(14) << "Sigma " << std::endl; std::cout << std::string(48, '-') << std::endl; for (int N : Nvals) { for (int bin : Bins) { TH1F *h = (TH1F*)gDirectory->Get(Form("h_N%d_B%d", N, bin)); if (!h) continue; TF1 *fit = h->GetFunction("gaus"); if (!fit) continue; double meanFit = fit->GetParameter(1); double sigmaFit = fit->GetParameter(2); std::cout << std::left << std::setw(10) << N << std::setw(8) << bin << std::setw(12) << std::fixed << std::setprecision(3) << meanFit << std::setw(12) << sigmaFit << std::endl; } } }