From 92ef2f71c953b3a60ca52aecc9810e74e2b3eb57 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Thu, 8 Feb 2024 08:53:14 +0100
Subject: [PATCH] Implement CONST properties to optical sufaces. (Requires new
 release of ROOT)

---
 DDG4/src/Geant4Converter.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/DDG4/src/Geant4Converter.cpp b/DDG4/src/Geant4Converter.cpp
index 294d21343..edb4402ac 100644
--- a/DDG4/src/Geant4Converter.cpp
+++ b/DDG4/src/Geant4Converter.cpp
@@ -1435,7 +1435,8 @@ void* Geant4Converter::handleOpticalSurface(TObject* surface) const    {
              TGeoOpticalSurface::ModelToString(optSurf->GetModel()),
              TGeoOpticalSurface::FinishToString(optSurf->GetFinish()),
              optSurf->GetSigmaAlpha(), optSurf->GetPolish());
-
+    ///
+    /// Convert non-scalar properties from GDML tables
     G4MaterialPropertiesTable* tab = nullptr;
     TListIter itp(&optSurf->GetProperties());
     for(TObject* obj = itp.Next(); obj; obj = itp.Next())  {
@@ -1488,6 +1489,9 @@ void* Geant4Converter::handleOpticalSurface(TObject* surface) const    {
                  "  Geant4: %8.3g [MeV]  TGeo: %8.3g [GeV] Conversion: %8.3g",
                  bins[i], v->bins[i], conv.first);
     }
+    ///
+    /// Convert scalar properties
+#if ROOT_VERSION_CODE >= ROOT_VERSION(6,31,1)
     TListIter itc(&optSurf->GetConstProperties());
     for(TObject* obj = itc.Next(); obj; obj = itc.Next())  {
       string  exc_str;
@@ -1536,6 +1540,7 @@ void* Geant4Converter::handleOpticalSurface(TObject* surface) const    {
                named->GetName(), value, conv, value * conv);
       tab->AddConstProperty(named->GetName(), value * conv);
     }
+#endif  // ROOT_VERSION >= 6.31.1
     info.g4OpticalSurfaces[optSurf] = g4;
   }
   return g4;
-- 
GitLab