From f1f7c7bdf6b95e8dea1ab9a2af843e29c39aa145 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Val=C3=A9rian=20Alcindor?= <valerian.alcindor@hotmail.fr>
Date: Mon, 15 Aug 2022 09:46:23 +0200
Subject: [PATCH] Adding a three body decay process for sequential emission
 from resonant states

---
 NPSimulation/CMakeLists.txt         | 1 +
 NPSimulation/Core/Target.cc         | 4 ++++
 NPSimulation/Process/CMakeLists.txt | 6 +++---
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/NPSimulation/CMakeLists.txt b/NPSimulation/CMakeLists.txt
index 4c27d1532..161a1a8d4 100644
--- a/NPSimulation/CMakeLists.txt
+++ b/NPSimulation/CMakeLists.txt
@@ -55,6 +55,7 @@ if(rdet)
 endif()
 
 # Add root to the link and include directories
+set(CMAKE_CXX_STANDARD 17)
 
 if(Geant4_gdml_FOUND)  
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNPS_GDML")     
diff --git a/NPSimulation/Core/Target.cc b/NPSimulation/Core/Target.cc
index 60f33d60c..6264f354e 100644
--- a/NPSimulation/Core/Target.cc
+++ b/NPSimulation/Core/Target.cc
@@ -52,6 +52,7 @@ using namespace CLHEP ;
 #include "MaterialManager.hh"
 #include "Decay.hh"
 #include "FissionDecay.hh"
+#include "ThreeBody.hh"
 // NPL
 #include "NPOptionManager.h"
 #include "NPInputParser.h"
@@ -469,6 +470,9 @@ void Target::SetReactionRegion(){
   m_ReactionModel.push_back(fsm); 
   fsm = new NPS::FissionDecay("FissionDecay",m_ReactionRegion);
   m_ReactionModel.push_back(fsm); 
+  fsm = new NPS::ThreeBody("ThreeBody",m_ReactionRegion);
+  ((NPS::ThreeBody*) fsm)->SetStepSize(m_TargetThickness/100.);
+  m_ReactionModel.push_back(fsm); 
 
 }
 
diff --git a/NPSimulation/Process/CMakeLists.txt b/NPSimulation/Process/CMakeLists.txt
index e1a126cd0..23f0d109d 100644
--- a/NPSimulation/Process/CMakeLists.txt
+++ b/NPSimulation/Process/CMakeLists.txt
@@ -1,17 +1,17 @@
 if(Geant4_VERSION_MAJOR GREATER 10)
   message("Compiling without IonIonElastic")
-  add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc )
+  add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc )
     add_definitions(-DGEANT4_11)
 else()
   if(Geant4_VERSION_MAJOR GREATER 9)
     if(Geant4_VERSION_MINOR GREATER 4)
     message("Compiling with NeutronHPphysics")
-    add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc NeutronHPphysics.cc NeutronHPMessenger.cc)
+    add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc NeutronHPphysics.cc NeutronHPMessenger.cc)
       add_definitions(-DUSE_NEUTRONHP)
     else ()
     
     message("Compiling WITHOUT NeutronHPphysics, install geant4 10.5 or greater for this physics list")
-    add_library(NPSProcess OBJECT FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc)
+    add_library(NPSProcess OBJECT ThreeBody.cc FissionDecay.cc Decay.cc BeamReaction.cc FastDriftElectron.cc NPIonIonInelasticPhysic.cc PhysicsList.cc G4DriftElectron.cc G4IonizationWithDE.cc G4DriftElectronPhysics.cc G4DEAbsorption.cc G4DEAmplification.cc G4DETransport.cc menate_R.cc)
     endif()
    endif()
 endif()
-- 
GitLab