Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:12:56

0001 int
0002 FitSlices( TString fname )
0003 {
0004 
0005   /* Get input 3D histogram */
0006   TFile *fin = new TFile( fname, "OPEN");
0007   TH3F *hin3D = (TH3F*)fin->Get("MomMagMap");
0008 
0009   /* Get bin counts for each axis */
0010   cout << "X axis = " << hin3D->GetXaxis()->GetTitle() << endl;
0011   cout << "Y axis = " << hin3D->GetYaxis()->GetTitle() << endl;
0012   cout << "Z axis = " << hin3D->GetZaxis()->GetTitle() << endl;
0013 
0014   unsigned nbins_ptrue = hin3D->GetXaxis()->GetNbins();
0015   unsigned nbins_eta = hin3D->GetYaxis()->GetNbins();
0016   unsigned nbins_pdiff = hin3D->GetZaxis()->GetNbins();
0017 
0018   /* Fit all slices in eta-ptrue */
0019   hin3D->FitSlicesZ();
0020 
0021   /* Open ofstream for output to csv file */
0022   ofstream ofs("fitslices_out.csv");
0023 
0024   /* Loop over eta bins & slice */
0025   TH2D* HistMomMagMap_0 = (TH2D*)gDirectory->Get("HistMomMagMap_0");
0026   TH2D* HistMomMagMap_1 = (TH2D*)gDirectory->Get("HistMomMagMap_1");
0027   TH2D* HistMomMagMap_2 = (TH2D*)gDirectory->Get("HistMomMagMap_2");
0028 
0029   for ( unsigned bin_eta = 1; bin_eta <= nbins_eta; bin_eta++ )
0030     {
0031 
0032       for ( unsigned bin_ptrue = 1; bin_ptrue <= nbins_ptrue; bin_ptrue++ )
0033     {
0034 
0035       double eta_i = HistMomMagMap_1->GetYaxis()->GetBinCenter(bin_eta);
0036       double ptrue_i = HistMomMagMap_1->GetXaxis()->GetBinCenter(bin_ptrue);
0037 
0038       /* Access fit parameters */
0039       double norm_i = HistMomMagMap_0->GetBinContent(bin_ptrue,bin_eta);
0040       double mean_i = HistMomMagMap_1->GetBinContent(bin_ptrue,bin_eta);
0041       double sigm_i = HistMomMagMap_2->GetBinContent(bin_ptrue,bin_eta);
0042 
0043       double mean_err_i = HistMomMagMap_1->GetBinError(bin_ptrue,bin_eta);
0044       double sigm_err_i = HistMomMagMap_2->GetBinError(bin_ptrue,bin_eta);
0045 
0046       cout << eta_i << " " << ptrue_i << " " << norm_i << " " << mean_i << " " << sigm_i << " " << mean_err_i << " " << sigm_err_i << endl;
0047 
0048 
0049       /* For Giorgian */
0050       ofs << ptrue_i << "," << eta_i << "," << sigm_i << "," << sigm_err_i << "," << mean_i << "," << mean_err_i << "," << norm_i << endl;
0051 
0052     }
0053 
0054     }
0055 
0056   /* Close ofstream */
0057   ofs.close();
0058 
0059   /* Loop over momentum bins & slice */
0060 
0061   /* Fit gaussian to 1D histogram */
0062 
0063   /* Store fit parameters */
0064 
0065   return 0;
0066 }