void fit_gain(int run){ cout << endl; cout << "Run number =" << run << endl; cout << endl; char file_name[20]; sprintf(file_name,"%d.root",run); TFile *file = new TFile(file_name); TH1F *int_led1 = (TH1F *)file->Get("int_led1"); TH1F *int_alpha1 = (TH1F *)file->Get("int_alpha1"); TH1F *ccal_int[144]; for(Int_t ii = 0; ii < 144; ii++){ char title[30]; sprintf(title,"Int_%d",ii); ccal_int[ii] = (TH1F *)file->Get(title); } // 1st histogram TCanvas *c1 = new TCanvas("c1","New Canvas",200,10,400,300); c1->cd(); int peak_bin = 0; double peak_max = 0; int bin_min = 1; int bin_max = 500; for(int bin = bin_min; bin < bin_max; bin++){ double peak_val = int_led1->GetBinContent(bin); if(peak_val > peak_max){ peak_max = peak_val; peak_bin = bin; } } Double_t peak_x = int_led1->GetXaxis()->GetBinCenter(peak_bin); cout << "Peak X = " << peak_x << endl; fit_func = new TF1("fit_func","gaus"); fit_func->SetParameters(1,peak_x); int_led1->GetXaxis()->SetRangeUser(0,peak_x*2); int_led1->Fit("fit_func","S","",peak_x*0.8 ,peak_x*1.3); double fit_amp_led = fit_func->GetParameter(1); double efit_amp_led = fit_func->GetParError(1); int_alpha1->Fit("fit_func","S",""); double fit_amp_alpha = fit_func->GetParameter(1); double efit_amp_alpha = fit_func->GetParError(1); // ccal_int[2]->Draw(); double fit_cell[150]; double efit_cell[150]; for(Int_t ii = 0; ii < 144; ii++){ int entries=ccal_int[ii]->GetEntries(); if(entries == 0){ cout << " No enetries " << ii << endl; // getchar(); continue; } int binmax = ccal_int[ii]->GetMaximumBin(); double x = ccal_int[ii]->GetXaxis()->GetBinCenter(binmax); fit_func->SetParameter(1,x); fit_func->SetParameter(2,0.01*x); double x_min = x*0.94; double x_max = x*1.06; cout << " X = " << x << " X_MIN = " << x_min << " X_MAX = " << x_max << endl; fit_cell[ii] = 0; efit_cell[ii] = 0; ccal_int[ii]->Fit("fit_func","S","",x_min, x_max); fit_cell[ii] = fit_func->GetParameter(1); efit_cell[ii] = fit_func->GetParError(1); cout << " II = " << ii << " X = " << x << " X_MIN = " << x_min << " X_MAX = " << x_max << " " << fit_cell[ii] << endl; } FILE *out_file= fopen("my_test.txt","a+"); fprintf(out_file,"%d %f %f %f %f ", run, fit_amp_led, efit_amp_led,fit_amp_alpha,efit_amp_alpha); for(Int_t ii = 0; ii < 144; ii++) fprintf(out_file, " %f %f ", fit_cell[ii], efit_cell[ii]); fprintf(out_file,"\n"); fclose(out_file); }