From a9a3cca9f34e4e27c3ca882b14d55ddbb994732b Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Fri, 12 Nov 2021 15:24:25 +0100
Subject: [PATCH] Fix compatibility issues with Geant4 11. See issue in githib:
 https://github.com/AIDASoft/DD4hep/issues/881

---
 DDG4/plugins/Geant4Processes.cpp            | 40 +++++++++++++++++++--
 DDG4/plugins/Geant4ScintillationPhysics.cpp |  9 +++++
 examples/CMakeLists.txt                     |  2 +-
 3 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/DDG4/plugins/Geant4Processes.cpp b/DDG4/plugins/Geant4Processes.cpp
index fbe5f3f22..678c8c5d9 100644
--- a/DDG4/plugins/Geant4Processes.cpp
+++ b/DDG4/plugins/Geant4Processes.cpp
@@ -103,8 +103,10 @@ DECLARE_GEANT4_PROCESS(G4CoulombScattering)
 DECLARE_GEANT4_PROCESS(G4PolarizedCompton)
 #include "G4PolarizedGammaConversion.hh"
 DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversion)
+
+#if G4VERSION_NUMBER < 1100
 #include "G4PolarizedPhotoElectricEffect.hh"
-DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectricEffect)
+DECLARE_GEANT4_PROCESS(G4ePolarizedPhotoElectricEffect)
 #include "G4ePolarizedBremsstrahlung.hh"
 DECLARE_GEANT4_PROCESS(G4ePolarizedBremsstrahlung)
 #include "G4ePolarizedIonisation.hh"
@@ -112,6 +114,33 @@ DECLARE_GEANT4_PROCESS(G4ePolarizedIonisation)
 #include "G4eplusPolarizedAnnihilation.hh"
 DECLARE_GEANT4_PROCESS(G4eplusPolarizedAnnihilation)
 
+#else
+#include "G4PolarizedAnnihilation.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedAnnihilation)
+#include "G4PolarizedAnnihilationXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedAnnihilationXS)
+#include "G4PolarizedBremsstrahlung.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedBremsstrahlung)
+#include "G4PolarizedCompton.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedCompton)
+#include "G4PolarizedComptonXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedComptonXS)
+#include "G4PolarizedGammaConversion.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversion)
+#include "G4PolarizedGammaConversionXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedGammaConversionXS)
+#include "G4PolarizedIonisation.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedIonisation)
+#include "G4PolarizedIonisationBhabhaXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedIonisationBhabhaXS)
+#include "G4PolarizedIonisationMollerXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedIonisationMollerXS)
+#include "G4PolarizedPhotoElectric.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectric)
+#include "G4PolarizedPhotoElectricXS.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedPhotoElectricXS)
+#endif
+
 // Processes for simulation of X-rays and optical protons production by charged particles
 #include "G4SynchrotronRadiation.hh"
 DECLARE_GEANT4_PROCESS(G4SynchrotronRadiation)
@@ -184,6 +213,7 @@ DECLARE_GEANT4_PROCESS(G4BraggNoDeltaModel)
 DECLARE_GEANT4_PROCESS(G4ChipsElasticModel)
 #include "G4DNABornExcitationModel.hh"
 DECLARE_GEANT4_PROCESS(G4DNABornExcitationModel)
+
 #include "G4eBremParametrizedModel.hh"
 DECLARE_GEANT4_PROCESS(G4eBremParametrizedModel)
 #include "G4eBremsstrahlungRelModel.hh"
@@ -208,8 +238,15 @@ DECLARE_GEANT4_PROCESS(G4ecpssrFormFactorLixsModel)
 DECLARE_GEANT4_PROCESS(G4ecpssrFormFactorMixsModel)
 #include "G4EmMultiModel.hh"
 DECLARE_GEANT4_PROCESS(G4EmMultiModel)
+
+#if G4VERSION_NUMBER < 1100
 #include "G4ePolarizedBremsstrahlungModel.hh"
 DECLARE_GEANT4_PROCESS(G4ePolarizedBremsstrahlungModel)
+#else
+#include "G4PolarizedBremsstrahlungModel.hh"
+DECLARE_GEANT4_PROCESS(G4PolarizedBremsstrahlungModel)
+#endif
+
 #include "G4FTFModel.hh"
 DECLARE_GEANT4_PROCESS(G4FTFModel)
 #include "G4GoudsmitSaundersonMscModel.hh"
@@ -241,7 +278,6 @@ DECLARE_GEANT4_PROCESS(G4ICRU73QOModel)
 
 #endif
 
-
 #if 0
 #include ".hh"
 DECLARE_GEANT4_PROCESS()
diff --git a/DDG4/plugins/Geant4ScintillationPhysics.cpp b/DDG4/plugins/Geant4ScintillationPhysics.cpp
index d28c597c6..fe31b8378 100644
--- a/DDG4/plugins/Geant4ScintillationPhysics.cpp
+++ b/DDG4/plugins/Geant4ScintillationPhysics.cpp
@@ -40,6 +40,15 @@
 
 #if G4VERSION_NUMBER >= 1070
 #include "G4OpticalParameters.hh"
+
+/// This is a beta release problem:
+#if G4VERSION_NUMBER == 1100
+#include "G4OpticalParameters.hh"
+#pragma message("Geant4 version 11 beta: temporary fix to be removed!")
+void G4OpticalParameters::SetScintExcitationRatio(double) {}
+void G4OpticalParameters::SetScintYieldFactor(double) {}
+#endif
+
 #endif
 
 #include "G4Scintillation.hh"
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index c50637a1e..23b87c2a6 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -41,7 +41,7 @@ dd4hep_configure_output()
 
 #==========================================================================
 
-SET(DD4HEP_EXAMPLES "AlignDet CLICSiD ClientTests Conditions DDCMS DDCodex DDDigi DDG4 DDG4_MySensDet LHeD OpticalSurfaces Persistency DDCAD SimpleDetector DDHMB"
+SET(DD4HEP_EXAMPLES "AlignDet CLICSiD ClientTests Conditions DDCMS DDCodex DDDigi DDG4 DDG4_MySensDet LHeD OpticalSurfaces Persistency DDCAD SimpleDetector"
   CACHE STRING "List of DD4hep Examples to build")
 SEPARATE_ARGUMENTS(DD4HEP_EXAMPLES)
 
-- 
GitLab