From 5c3b494f047ee025b2e32303c16ad854bfbb342d Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Sun, 30 Oct 2022 11:11:41 +0100
Subject: [PATCH] Temporarily fix compile errors of DDDigi for older compilers

---
 DDCore/src/plugins/DetectorCheck.cpp | 6 +++---
 DDDigi/ddg4/DigiDDG4Input.cpp        | 4 ++--
 DDDigi/include/DDDigi/DigiData.h     | 6 +++---
 DDDigi/src/DigiData.cpp              | 4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/DDCore/src/plugins/DetectorCheck.cpp b/DDCore/src/plugins/DetectorCheck.cpp
index d277cf735..21421a8a1 100644
--- a/DDCore/src/plugins/DetectorCheck.cpp
+++ b/DDCore/src/plugins/DetectorCheck.cpp
@@ -151,7 +151,7 @@ SensitiveDetector DetectorCheck::get_current_sensitive_detector()  {
 void DetectorCheck::execute(DetElement sdet, size_t depth)   {
   const char* line = "============================";
   struct counters count_volmgr_sens, count_volmgr_place;
-  struct counters total, count_sens, count_struct;
+  struct counters total, count_struct;
   struct counters count_geo, count_geo_sens;
 
   if ( !sdet.isValid() )   {
@@ -316,8 +316,8 @@ bool DetectorCheck::checkDetElement(const std::string& path, DetElement detector
     ++m_struct_counters.errors;
   }
   if ( ideal.isValid() )    {
-    const TGeoHMatrix& m = ideal.worldTransformation();
-    if ( m.IsIdentity() )  {
+    const TGeoHMatrix& matrix = ideal.worldTransformation();
+    if ( matrix.IsIdentity() )  {
     }
   }
   printout(nerrs != m_struct_counters.errors ? ERROR : INFO, m_name, 
diff --git a/DDDigi/ddg4/DigiDDG4Input.cpp b/DDDigi/ddg4/DigiDDG4Input.cpp
index 6efa7a77d..a1ba1dd67 100644
--- a/DDDigi/ddg4/DigiDDG4Input.cpp
+++ b/DDDigi/ddg4/DigiDDG4Input.cpp
@@ -94,7 +94,7 @@ static void* convert_sim_geant4particles()     {
       std::any res = std::make_any<ParticleMapping>(name, mask);
       ParticleMapping* out = std::any_cast<ParticleMapping>(&res);
       if ( ptr )   {
-	using wrap_t = std::shared_ptr<sim::Geant4Particle>;
+	//using wrap_t = std::shared_ptr<sim::Geant4Particle>;
 	auto* items = (std::vector<sim::Geant4Particle*>*)ptr;
 	for( auto* p : *items )   {
 	  Key key;
@@ -106,7 +106,7 @@ static void* convert_sim_geant4particles()     {
 	  part.momentum       = Direction(p->psx, p->psy, p->psz);
 	  part.charge         = p->charge;
 	  part.mass           = p->mass;
-	  part.history        = std::make_any<wrap_t>(p);
+	  part.history        = key;// std::make_any<wrap_t>(p);
 	  out->push(key, std::move(part));
 	}
 	items->clear();
diff --git a/DDDigi/include/DDDigi/DigiData.h b/DDDigi/include/DDDigi/DigiData.h
index 936028d79..8ea9ced76 100644
--- a/DDDigi/include/DDDigi/DigiData.h
+++ b/DDDigi/include/DDDigi/DigiData.h
@@ -242,11 +242,11 @@ namespace dd4hep {
       double    mass           { 0e0 };
       char      charge         { 0 };
       /// Source contributing
-      std::any  history;
+      Key       history;
 
     public:
       /// Initializing constructor
-      Particle(std::any&& history);
+      Particle(Key history);
       /// Default constructor
       Particle() = default;
       /// Disable move constructor
@@ -262,7 +262,7 @@ namespace dd4hep {
     };
 
     /// Initializing constructor
-    inline Particle::Particle(std::any&& h)
+    inline Particle::Particle(Key h)
       : history(h)
     {
     }
diff --git a/DDDigi/src/DigiData.cpp b/DDDigi/src/DigiData.cpp
index 5e3d02587..5c4f18343 100644
--- a/DDDigi/src/DigiData.cpp
+++ b/DDDigi/src/DigiData.cpp
@@ -222,7 +222,7 @@ void ParticleMapping::push(Key particle_key, Particle&& particle_data)  {
 #endif
   if ( !ret )   {
     except("ParticleMapping","Error in particle map. Duplicate ID: mask:%04X Number:%d History:%s",
-	   particle_key.mask(), particle_key.item(), yes_no(particle_data.history.has_value()));
+	   particle_key.mask(), particle_key.item(), yes_no(1/*particle_data.history.has_value()*/));
   }
 }
 
@@ -234,7 +234,7 @@ void ParticleMapping::insert(Key particle_key, const Particle& particle_data)  {
 #endif
   if ( !ret )   {
     except("ParticleMapping","Error in particle map. Duplicate ID: mask:%04X Number:%d History:%s",
-	   particle_key.mask(), particle_key.item(), yes_no(particle_data.history.has_value()));
+	   particle_key.mask(), particle_key.item(), yes_no(1/*particle_data.history.has_value()*/));
   }
 }
 
-- 
GitLab