#include #include gROOT->Reset(); // Setup file including parameters #include "plotMk_3DMC_setup.h" void plotMk_3DMC_ProjY_DchKPiPi() { // Root macro to produce a projection plot of 3D histogram //########################################################### // Change these values to meet your condition //########################################################### TString outPlotName("plot_"+oNameBase+"_"+vary+"_DchKPiPi.eps"); TString histTitle(vary+"_DchKPiPi"); // Set max value of plot int min = ymin; int max = ymax; //setMax = true; //int min = -100; //int max = 40000; //################################################ cout << "start"; // Open input files and get 3D histos TFile *f_V1[nFiles_DchKPiPi]; TH3D * inHist_V1[nFiles_DchKPiPi]; for (int l=0; lls(); inHist_V1[l] = (TH3D *)f_V1[l]->Get("sub;1"); } // Readout 3D histos into arrays cout << "reading histos into arrays" << endl; double num_3D_V1[nFiles_DchKPiPi][nbinsx][nbinsy][nbinsz]; double err_3D_V1[nFiles_DchKPiPi][nbinsx][nbinsy][nbinsz]; for (int l=0; lGetBinContent(i+1,j+1,k+1); err_3D_V1[l][i][j][k] = inHist_V1[l]->GetBinError(i+1,j+1,k+1); } } } } // 1D arrays to be projected cout << "define summed 1D arrays" << endl; double num_1D_V1[nFiles_DchKPiPi][nbinsy]; double var_1D_V1[nFiles_DchKPiPi][nbinsy]; double err_1D_V1[nFiles_DchKPiPi][nbinsy]; for (int l=0; lSetBinContent(j+1,num_1D_V1[l][j]); outHist_V1[l]->SetBinError(j+1,err_1D_V1[l][j]); } } // Open input files and get 3D histos TFile *f_V2[nFiles_DchKPiPi]; TH3D * inHist_V2[nFiles_DchKPiPi]; for (int l=0; lls(); inHist_V2[l] = (TH3D *)f_V2[l]->Get("sub;1"); } // Readout 3D histos into arrays cout << "reading histos into arrays" << endl; double num_3D_V2[nFiles_DchKPiPi][nbinsx][nbinsy][nbinsz]; double err_3D_V2[nFiles_DchKPiPi][nbinsx][nbinsy][nbinsz]; for (int l=0; lGetBinContent(i+1,j+1,k+1); err_3D_V2[l][i][j][k] = inHist_V2[l]->GetBinError(i+1,j+1,k+1); } } } } // 1D arrays to be projected cout << "define summed 1D arrays" << endl; double num_1D_V2[nFiles_DchKPiPi][nbinsy]; double var_1D_V2[nFiles_DchKPiPi][nbinsy]; double err_1D_V2[nFiles_DchKPiPi][nbinsy]; for (int l=0; lSetBinContent(j+1,num_1D_V2[l][j]); outHist_V2[l]->SetBinError(j+1,err_1D_V2[l][j]); } } //############################################################# cout << "plotting\n"; // Create a canvas and plot TCanvas * cx = new TCanvas("cx",histTitle,0,0,700,500); cx->Divide(7,5); gStyle->SetOptStat(000000); for (int l=0; lcd(l+1); outHist_V1[l]->SetLineColor(2); outHist_V2[l]->SetLineColor(3); //outHist_V1[l]->SetMaximum(7000); outHist_V1[l]->Draw("hist"); outHist_V2[l]->Draw("histsames"); } cx->Print(outPlotName); }