#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 OverlayGraph() { // 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_graph.ROOT"); inp->ls(); TGraph *grdisk118 = (TGraph*)inp->Get("Disk118_graph"); TCanvas *cdisk118=new TCanvas("cdisk118","cExcitation Energy Spectrum 118"); cdisk118->cd(); //cdisk118->SetLogy(); grdisk118 -> Draw("apl"); TFile* inp1 = TFile::Open("Disk126_graph.ROOT"); inp1->ls(); TGraph *grdisk126 = (TGraph*)inp1->Get("Disk126_graph"); TCanvas *cdisk126=new TCanvas("cdisk126","cExcitation Energy Spectrum 126"); cdisk126->cd(); //cdisk126->SetLogy(); grdisk126 -> Draw("apl"); TFile* inp2 = TFile::Open("Disk179_graph.ROOT"); inp2->ls(); TGraph *grdisk179 = (TGraph*)inp2->Get("Disk179_graph"); TCanvas *cdisk179=new TCanvas("cdisk179","cExcitation Energy Spectrum 179"); cdisk179->cd(); //cdisk179->SetLogy(); grdisk179 -> Draw("apl"); TFile* inp3 = TFile::Open("Disk186_graph.ROOT"); inp3->ls(); TGraph *grdisk186 = (TGraph*)inp3->Get("Disk186_graph"); TCanvas *cdisk186=new TCanvas("cdisk186","cExcitation Energy Spectrum 186"); cdisk186->cd(); //cdisk186->SetLogy(); grdisk186 -> Draw("apl"); TFile* inp4 = TFile::Open("Disk192_graph.ROOT"); inp4->ls(); TGraph *grdisk192 = (TGraph*)inp4->Get("Disk192_graph"); TCanvas *cdisk192=new TCanvas("cdisk192","cExcitation Energy Spectrum 192"); cdisk192->cd(); //cdisk192->SetLogy(); grdisk192 -> Draw("apl"); TFile* inp5 = TFile::Open("Disk211_graph.ROOT"); inp5->ls(); TGraph *grdisk211 = (TGraph*)inp5->Get("Disk211_graph"); TCanvas *cdisk211=new TCanvas("cdisk211","cExcitation Energy Spectrum 211"); cdisk211->cd(); //cdisk211->SetLogy(); grdisk211 -> Draw("apl"); TFile* inp6 = TFile::Open("Disk215_graph.ROOT"); inp6->ls(); TGraph *grdisk215 = (TGraph*)inp6->Get("Disk215_graph"); TCanvas *cdisk215=new TCanvas("cdisk215","cExcitation Energy Spectrum 215"); cdisk215->cd(); //cdisk215->SetLogy(); grdisk215 -> Draw("apl"); // Now plotting all these graphs in a TGraph in a single plot with an offset TMultiGraph *mg = new TMultiGraph(); TCanvas *cmg=new TCanvas("cmg"," Excitation Energy Spectrum all data stacked"); TGraph *gr2 = new TGraph (); TCanvas *cgr2=new TCanvas("cgr2","cExcitation Energy Spectrum 126"); Int_t n = grdisk126->GetN(); Double_t dy = 1000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk126->GetY() [i]; //cout << "x = " << x << " y = " << y << endl; Double_t ny = y+dy; gr2->SetPoint(i,x,ny); } gr2->SetLineColor(kRed); cgr2->cd(); gr2->Draw(); //.................................................................................... TGraph *gr3 = new TGraph (); TCanvas *cgr3=new TCanvas("cgr3","cExcitation Energy Spectrum 179"); Int_t n1 = grdisk179->GetN(); Double_t dy1 = 2000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk179->GetY() [i]; Double_t ny1 = y+dy1; gr3->SetPoint(i,x,ny1); } gr3->SetLineColor(kBlue); cgr3->SetLogy(); cgr3->cd(); gr3->Draw(); //.................................................................................... TGraph *gr4 = new TGraph (); TCanvas *cgr4=new TCanvas("cgr4","cExcitation Energy Spectrum 186"); Int_t n2 = grdisk186->GetN(); Double_t dy2 = 3000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk186->GetY() [i]; Double_t ny2 = y+dy2; gr4->SetPoint(i,x,ny2); } gr4->SetLineColor(11); cgr4->SetLogy(); cgr4->cd(); gr4->Draw(); //.................................................................................... TGraph *gr5 = new TGraph (); TCanvas *cgr5=new TCanvas("cgr5","cExcitation Energy Spectrum 192"); Int_t n3 = grdisk192->GetN(); Double_t dy3 = 4000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk192->GetY() [i]; Double_t ny3 = y+dy3; gr5->SetPoint(i,x,ny3); } gr5->SetLineColor(kGreen); cgr5->SetLogy(); cgr5->cd(); gr5->Draw(); //.................................................................................... TGraph *gr6 = new TGraph (); TCanvas *cgr6=new TCanvas("cgr6","cExcitation Energy Spectrum 211"); Int_t n4 = grdisk211->GetN(); Double_t dy4 = 5000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk211->GetY() [i]; Double_t ny4 = y+dy4; gr6->SetPoint(i,x,ny4); } gr6->SetLineColor(7); cgr6->SetLogy(); cgr6->cd(); gr6->Draw(); //.................................................................................... TGraph *gr7 = new TGraph (); TCanvas *cgr7=new TCanvas("cgr7","cExcitation Energy Spectrum 215"); Int_t n5 = grdisk215->GetN(); Double_t dy5 = 6000; for (Int_t i=0;iGetX() [i]; Double_t y = grdisk215->GetY() [i]; Double_t ny5 = y+dy5; gr7->SetPoint(i,x,ny5); } gr7->SetLineColor(5); cgr7->SetLogy(); cgr7->cd(); gr7->Draw(); cdisk118->SetLogy(); mg->Add(grdisk118); mg->Add(gr2); mg->Add(gr3); mg->Add(gr4); mg->Add(gr5); mg->Add(gr6); mg->Add(gr7); cmg->cd(); mg->Draw("A"); mg->SetTitle("Excitation Energy Spectrum; Excitation Energy (MeV); Counts"); TAxis *axis = mg->GetXaxis(); axis->SetLimits(10.,18.); mg->Draw(); mg->GetXaxis()->CenterTitle(); cmg->SaveAs("Excitation Energy Spectrum All data stacked_offset 1000 counts.pdf"); TLine *line = new TLine(11,8000,11,0); line->Draw(); return 0; }