From 5870d400fd27cabb131807287ec0784f605d3e29 Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Fri, 6 Aug 2021 23:47:32 -0500
Subject: [PATCH] Fixed crashing analysis script.

- When using GetYaxis() on a histogram, it has to be first drawn.
- In this case DrawClone was replace by DrawCopy.
- DrawCopy is used to draw and get the histogram from the lazy pointer.

	modified:   scripts/emcal_barrel_pi0_analysis.cxx
---
 .../scripts/emcal_barrel_pi0_analysis.cxx     | 58 +++++++++----------
 1 file changed, 29 insertions(+), 29 deletions(-)

diff --git a/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx b/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
index 7c367b78..c56b5c66 100644
--- a/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
+++ b/benchmarks/barrel_ecal/scripts/emcal_barrel_pi0_analysis.cxx
@@ -126,58 +126,58 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
   // Draw Histograms
   TCanvas *c1 = new TCanvas("c1", "c1", 700, 500);
   c1->SetLogy(1);
-  hEthr->GetYaxis()->SetTitleOffset(1.4);
-  hEthr->SetLineWidth(2);
-  hEthr->SetLineColor(kBlue);
-  hEthr->DrawClone();
+  auto h1 = hEthr->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
   c1->SaveAs("results/emcal_barrel_pi0_Ethr.png");
   c1->SaveAs("results/emcal_barrel_pi0_Ethr.pdf");
 
   TCanvas *c2 = new TCanvas("c2", "c2", 700, 500);
   c2->SetLogy(1);
-  hNhits->GetYaxis()->SetTitleOffset(1.4);
-  hNhits->SetLineWidth(2);
-  hNhits->SetLineColor(kBlue);
-  hNhits->DrawClone();
+  h1 = hNhits->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
   c2->SaveAs("results/emcal_barrel_pi0_nhits.png");
   c2->SaveAs("results/emcal_barrel_pi0_nhits.pdf");
 
   TCanvas *c3 = new TCanvas("c3", "c3", 700, 500);
   c3->SetLogy(1);
-  hEsim->GetYaxis()->SetTitleOffset(1.4);
-  hEsim->SetLineWidth(2);
-  hEsim->SetLineColor(kBlue);
-  hEsim->DrawClone();
+  h1 = hEsim->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
   c3->SaveAs("results/emcal_barrel_pi0_Esim.png"); 
   c3->SaveAs("results/emcal_barrel_pi0_Esim.pdf");
 
   TCanvas *c4 = new TCanvas("c4", "c4", 700, 500);
   c4->SetLogy(1);
-  hfsam->GetYaxis()->SetTitleOffset(1.4);
-  hfsam->SetLineWidth(2);
-  hfsam->SetLineColor(kBlue);
-  hfsam->Fit("gaus","","",0.005,0.1);
-  hfsam->GetFunction("gaus")->SetLineWidth(2);
-  hfsam->GetFunction("gaus")->SetLineColor(kRed);
-  hfsam->DrawClone();
+  h1 = hfsam->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
+  h1->Fit("gaus","","",0.005,0.1);
+  h1->GetFunction("gaus")->SetLineWidth(2);
+  h1->GetFunction("gaus")->SetLineColor(kRed);
   c4->SaveAs("results/emcal_barrel_pi0_fsam.png");
   c4->SaveAs("results/emcal_barrel_pi0_fsam.pdf");
 
   TCanvas *c5 = new TCanvas("c5", "c5", 700, 500);
   c5->SetLogy(1);
-  hpid->GetYaxis()->SetTitleOffset(1.4);
-  hpid->SetLineWidth(2);
-  hpid->SetLineColor(kBlue);
-  hpid->DrawClone();
+  h1 = hpid->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
   c5->SaveAs("results/emcal_barrel_pi0_pid.png");
   c5->SaveAs("results/emcal_barrel_pi0_pid.pdf");
 
   TCanvas *c6 = new TCanvas("c6", "c6", 700, 500);
   c5->SetLogy(1);
-  hdau->GetYaxis()->SetTitleOffset(1.4);
-  hdau->SetLineWidth(2);
-  hdau->SetLineColor(kBlue);
-  hdau->DrawClone();
+  h1 = hdau->DrawCopy();
+  h1->GetYaxis()->SetTitleOffset(1.4);
+  h1->SetLineWidth(2);
+  h1->SetLineColor(kBlue);
   c6->SaveAs("results/emcal_barrel_pi0_dau.png");
   c6->SaveAs("results/emcal_barrel_pi0_dau.pdf");
 
@@ -216,20 +216,20 @@ void emcal_barrel_pi0_analysis(const char* input_fname = "sim_output/sim_emcal_b
   // Energy Resolution Histogram Plotting
   auto *cdE = new TCanvas("cdE", "cdE", 700, 500);
   cdE->SetLogy(1);
+  h1 = hdEcopy->DrawCopy();
   hdEcopy->GetYaxis()->SetTitleOffset(1.4);
   hdEcopy->SetLineWidth(2);
   hdEcopy->SetLineColor(kBlue);
   hdEcopy->GetFunction("gaus")->SetLineWidth(2);
   hdEcopy->GetFunction("gaus")->SetLineColor(kRed);
-  hdEcopy->DrawClone();
   cdE->SaveAs("results/emcal_barrel_pi0_dE.png");
   cdE->SaveAs("results/emcal_barrel_pi0_dE.pdf");
 
   auto *cdE_rel = new TCanvas("cdE_rel", "cdE_rel", 700, 500);
+  h1 = hdE_rel->DrawCopy();
   hdE_rel->GetYaxis()->SetTitleOffset(1.4);
   hdE_rel->SetLineWidth(2);
   hdE_rel->SetLineColor(kBlue);
-  hdE_rel->DrawClone();
   cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.png");
   cdE_rel->SaveAs("results/emcal_barrel_pi0_dE_rel.pdf");
 
-- 
GitLab