From e8a20e4996ce5f147bae7e9693d43f2cc0581c2d Mon Sep 17 00:00:00 2001 From: Alex Machtay Date: Wed, 25 Mar 2026 15:27:06 -0500 Subject: [PATCH 1/2] Adding a lock to change the GetTemplateMap() to a pointer. --- .../make_timing_tables/makeRTArrivalTimeTables.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp b/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp index 7e9b2a5..f092008 100644 --- a/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp +++ b/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp @@ -69,7 +69,13 @@ void CalculateTables(RayTraceCorrelator *theCorrelator, int solNum, int iceModel int numPhiBins = theCorrelator->GetNumPhiBins(); int numAnts = theCorrelator->GetNumAntennas(); double radius = theCorrelator->GetRadius(); - auto templateMap = theCorrelator->GetTemplateMap(); + auto templateMapWeak = theCorrelator->GetTemplateMap(); + auto templateMap = templateMapWeak.lock(); + + if (!templateMap) { + std::cerr << "Error: template map expired or was not initialized.\n"; + return; + } // need ice model IceModel *iceModel = new IceModel(0 + 1*10, 0, 0); From 05be1d413e92deb88ee8cf00f163b6ffb573359e Mon Sep 17 00:00:00 2001 From: Alex Machtay Date: Wed, 25 Mar 2026 15:35:58 -0500 Subject: [PATCH 2/2] Add a comment to explain compiler issue. --- .../make_timing_tables/makeRTArrivalTimeTables.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp b/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp index f092008..667072f 100644 --- a/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp +++ b/AraCorrelator/RayTraceCorrelator_support/make_timing_tables/makeRTArrivalTimeTables.cpp @@ -69,6 +69,9 @@ void CalculateTables(RayTraceCorrelator *theCorrelator, int solNum, int iceModel int numPhiBins = theCorrelator->GetNumPhiBins(); int numAnts = theCorrelator->GetNumAntennas(); double radius = theCorrelator->GetRadius(); + // We need to do some gymnastics here with GetTemplateMap() + // The compiler complains that GetTemplateMap() is not a raw TH2D, it's a std::weak_ptr + // To resolve this, we need to lock the weak pointer into a shared_ptr auto templateMapWeak = theCorrelator->GetTemplateMap(); auto templateMap = templateMapWeak.lock();