#include #include #include #include #include #include #include "TFile.h" #include "TH1.h" #include "TTree.h" #include "TH2.h" #include "TTreeReader.h" #include "TTreeReaderValue.h" #include "TF1.h" #include "TMath.h" #include "TText.h" void plot_for_ROOT_forum(){ //open file TString flux("pinched_0_noOsc"); TString filename("graphs_"+flux+"_argon_ar40kt.root"); TFile *fin = new TFile(filename); //grab TGraph objects std::vector stackednames; std::vector legNames; stackednames.emplace_back(flux+"_nue_Ar40_ar40kt_smeared;1"); legNames.emplace_back("#nu_{e} ^{40}Ar"); stackednames.emplace_back(flux+"_nuebar_Ar40_ar40kt_smeared;1"); legNames.emplace_back("#bar{#nu}_{e} ^{40}Ar"); stackednames.emplace_back(flux+"_es_ar40kt_smeared;1"); legNames.emplace_back("ES"); THStack *hs = new THStack("hs", "SNOwGLoBES Smeared Rates in 40 kton LAr;Observed energy (MeV);Events per 0.5 MeV"); TLegend *legStacked = new TLegend(0.65, 0.6, 0.88, 0.88); legStacked->SetFillColor(10); legStacked->SetTextFont( (Font_t) 62); legStacked->SetTextSize(0.045); legStacked->SetBorderSize(0); for(int i = 0; i < stackednames.size(); ++i){ TH1D *h = new TH1D(stackednames[i], ";Observed energy (MeV);Events per 0.5 MeV",200,0,100); TGraph *g = (TGraph*)fin->Get(stackednames[i]); for(size_t iG = 0; iG < g->GetN(); ++iG){ h->Fill(g->GetX()[iG], g->GetY()[iG]); } if(i==0) h->SetFillColor(kGreen); else if(i==1) h->SetFillColor(kBlue); else h->SetFillColor(kRed); h->SetLineWidth(0); hs->Add(h); legStacked->AddEntry(h, legNames[i], "f"); } TCanvas *c = new TCanvas("c","c",800,700); gStyle->SetOptStat(0); hs->Draw("bar"); //make the plot look "nice" hs->GetXaxis()->CenterTitle(); hs->GetYaxis()->CenterTitle(); hs->GetXaxis()->SetRangeUser(4.5, 40.0); //draw legend legStacked->Draw("same"); gPad->RedrawAxis(); //this helps but doesn't solve the problem c->Modified(); //this also doesn't solve the problem }//end of code