#include #include #include #include #include #include "TFile.h" #include #include #include "TAxis.h" #include "TH1.h" #include "TH1F.h" #include "TArrayD.h" #include "TSpectrum.h" #include #include "Riostream.h" #include //Generic functions used void read_in_data(string path_to_file, TH1F* histo); // reads the data from a .txt file and plots it void graph(TCanvas* canvas, TH1F* histo, const char* xTitle, const char* yTitle); // Graphs the data and creates a histogram using namespace std; // MAIN PROGRAM STARTS HERE - void Overlay() { // This part opens the .ROOT file and plots them separately. The plots are saved as .ROOT files in the original DataAnalysis.Diskno.cc programs //This program will only work for previously saved .root files. TFile* inp = TFile::Open("Disk118.ROOT"); inp->ls(); TH1F* hdisk118 = (TH1F*)inp->Get("Disk118"); TCanvas *cdisk118 = new TCanvas("cdisk118","cdisk118"); cdisk118->cd(); cdisk118->SetLogy(); hdisk118 -> Draw("hist"); TFile* inp1 = TFile::Open("Disk126.ROOT"); inp1->ls(); TH1F* hdisk126 = (TH1F*)inp1->Get("Disk126"); TCanvas *cdisk126 = new TCanvas("cdisk126","cdisk126"); cdisk126->cd(); cdisk126->SetLogy(); hdisk126 -> Draw("hist"); TFile* inp2 = TFile::Open("Disk179.ROOT"); inp2->ls(); TH1F* hdisk179 = (TH1F*)inp2->Get("Disk179"); TCanvas *cdisk179 = new TCanvas("cdisk179","cdisk179"); cdisk179->cd(); cdisk179->SetLogy(); hdisk179 -> Draw("hist"); TFile* inp3 = TFile::Open("Disk186.ROOT"); inp3->ls(); TH1F* hdisk186 = (TH1F*)inp3->Get("Disk186"); TCanvas *cdisk186 = new TCanvas("cdisk186","cdisk186"); cdisk186->cd(); cdisk186->SetLogy(); hdisk186 -> Draw("hist"); TFile* inp4 = TFile::Open("Disk192.ROOT"); inp4->ls(); TH1F* hdisk192 = (TH1F*)inp4->Get("Disk192"); TCanvas *cdisk192 = new TCanvas("cdisk192","cdisk192"); cdisk192->cd(); cdisk192->SetLogy(); hdisk192 -> Draw("hist"); TFile* inp5 = TFile::Open("Disk211.ROOT"); inp5->ls(); TH1F* hdisk211 = (TH1F*)inp5->Get("Disk211"); TCanvas *cdisk211 = new TCanvas("cdisk211","cdisk211"); cdisk211->cd(); cdisk211->SetLogy(); hdisk211 -> Draw("hist"); TFile* inp6 = TFile::Open("Disk215.ROOT"); inp6->ls(); TH1F* hdisk215 = (TH1F*)inp6->Get("Disk215"); TCanvas *cdisk215 = new TCanvas("cdisk215","cdisk215"); cdisk215->cd(); cdisk215->SetLogy(); hdisk215 -> Draw("hist"); // Now plotting all these graphs in a TGraph in a single plot with an offset THStack *hs = new THStack("hs","Excitation Energy vs Counts Spectrum_All data stacked"); hs->Add(hdisk118); for(Int_t i=0; i< 801; i++){ double ex = hdisk126->GetBinCenter(i); double Counts = hdisk126->GetBinContent(i); Int_t shift = Counts + 1000; //CHECK DATA hdisk126->SetBinContent(ex, shift); cout << "ex = " << ex << " counts = " << Counts << endl; } hdisk126->SetLineColor(kRed); hs->Add(hdisk126); for(Int_t i=0; i< 801; i++){ double ex = hdisk179->GetBinCenter(i); double Counts = hdisk179->GetBinContent(i); Int_t shift = Counts + 2000; //CHECK DATA hdisk179->SetBinContent(ex, shift); } hdisk179->SetLineColor(kGreen); hs->Add(hdisk179); for(Int_t i=0; i< 801; i++){ double ex = hdisk186->GetBinCenter(i); double Counts = hdisk186->GetBinContent(i); Int_t shift = Counts + 3000; //CHECK DATA hdisk186->SetBinContent(ex, shift); } hdisk186->SetLineColor(kBlack); hs->Add(hdisk186); for(Int_t i=0; i< 801; i++){ double ex = hdisk192->GetBinCenter(i); double Counts = hdisk192->GetBinContent(i); Int_t shift = Counts + 4000; //CHECK DATA hdisk192->SetBinContent(ex, shift); } hdisk192->SetLineColor(kPink); hs->Add(hdisk192); for(Int_t i=0; i< 801; i++){ double ex = hdisk211->GetBinCenter(i); double Counts = hdisk211->GetBinContent(i); Int_t shift = Counts + 5000; //CHECK DATA hdisk211->SetBinContent(ex, shift); } hdisk211->SetLineColor(9); // This is purple hs->Add(hdisk211); for(Int_t i=0; i< 801; i++){ double ex = hdisk215->GetBinCenter(i); double Counts = hdisk215->GetBinContent(i); Int_t shift = Counts + 6000; //CHECK DATA hdisk215->SetBinContent(ex, shift); } hdisk215->SetLineColor(kYellow); hs->Add(hdisk215); TCanvas *cst = new TCanvas("cst","stacked hists"); // cst->Divide(2,2); cst->cd(); hs->Draw("histo"); hs->GetXaxis()->SetTitle("Excitation Energy (MeV)"); hs->GetYaxis()->SetTitle("Counts"); hs->GetXaxis()->SetRangeUser(10,18); hs->SaveAs("Excitation Energy vs Counts Spectrum_All data stacked.pdf"); TLine *line = new TLine(11,50000,11,0); line->Draw(); return 0; }