From 797e3b280ef0f9aebadef181c8adb8f4681f3931 Mon Sep 17 00:00:00 2001
From: Dmitry Popov <dmitry.popov@cern.ch>
Date: Mon, 15 Jun 2020 12:46:15 +0000
Subject: [PATCH] v104r3p1 release changes

# Conflicts:
#	CMakeLists.txt
---
 CMakeLists.txt                                |  5 +-
 Geant4/G4config/CMakeLists.txt                |  2 +-
 Geant4Sys/cmt/requirements                    | 63 ------------------
 .../src/G4EmStandardPhysics_LHCbTest.cc       |  6 ++
 .../src/G4EmStandardPhysics_option1LHCb.cc    |  6 ++
 .../G4EmStandardPhysics_option1NoApplyCuts.cc | 64 ++++++++++---------
 .../scripts/G4HadronicXSectionsTest.py        |  2 +
 .../scripts/G4MScInThinLayerTest.py           |  2 +-
 .../G4MScInThinLayerTest/src/PhysicsList.cc   |  5 +-
 .../scripts/G4SamplingCaloTest.py             |  2 +-
 .../G4SamplingCaloTest/src/PhysicsList.cc     |  3 +-
 ReleaseNotes/v106r2.md                        | 13 ++++
 12 files changed, 73 insertions(+), 100 deletions(-)
 delete mode 100755 Geant4Sys/cmt/requirements
 create mode 100644 ReleaseNotes/v106r2.md

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 246af8e973..c5bdd41748 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,10 +3,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
 # NO_NINJA : Geant4 build fails with Ninja
 
 set(GEANT4_SRCS_REPOSITORY https://gitlab.cern.ch/lhcb/Geant4-srcs.git CACHE STRING "Repository for Geant4 sources")
+set(GEANT4FILES_VERSION v106r1 CACHE STRING "Version for Geant4Files to match Geant4-src version")
 
 find_package(GaudiProject)
-gaudi_project(Geant4 v106r1
-              DATA Geant4Files VERSION v106r1)
+gaudi_project(Geant4 v106r2
+              DATA Geant4Files VERSION ${GEANT4FILES_VERSION})
 
 # FIXME: hack for compatibility with CMT build
 file(WRITE ${CMAKE_BINARY_DIR}/dummy.cpp "")
diff --git a/Geant4/G4config/CMakeLists.txt b/Geant4/G4config/CMakeLists.txt
index 37a550bdab..dd3b6d73bc 100644
--- a/Geant4/G4config/CMakeLists.txt
+++ b/Geant4/G4config/CMakeLists.txt
@@ -30,7 +30,7 @@ if (NOT GEANT4_TAG)
   elseif(CMAKE_PROJECT_VERSION STREQUAL "HEAD")
     # Special mapping of version HEAD
     # WARNING this must be kept up to date manually
-    set(GEANT4_TAG "lhcb/v10.6.1-branch")
+    set(GEANT4_TAG "lhcb/v10.6.2-branch")
   else()
     set(GEANT4_TAG lhcb/${CMAKE_PROJECT_VERSION})
   endif()
diff --git a/Geant4Sys/cmt/requirements b/Geant4Sys/cmt/requirements
deleted file mode 100755
index 5cad9b85a7..0000000000
--- a/Geant4Sys/cmt/requirements
+++ /dev/null
@@ -1,63 +0,0 @@
-package     Geant4Sys
-version     v96r4p4
-
-branches    cmt doc 
-
-# This package is essential for the cmt build 
-use     G4config              v* Geant4
- 
-# =============================================================================
-# =========== global libraries ================================================
-# =============================================================================
-use	G4event               v* Geant4 
-use	G4intercoms           v* Geant4 
-use	G4particles           v* Geant4 
-use	G4track               v* Geant4 
-use	G4geometry            v* Geant4 
-use 	G4processes	      v* Geant4
-use     G4physics_lists       v* Geant4
-use     G4tracking            v* Geant4
-use     G4global              v* Geant4 
-use     G4materials           v* Geant4 
-use     G4readout             v* Geant4  
-use     G4digits_hits         v* Geant4
-use     G4graphics_reps       v* Geant4 
-use     G4run                 v* Geant4  
-use     G4parmodels           v* Geant4
-use     G4GDML                v* Geant4
- 
-# Visualization
-use     G4useVisUI            v* Geant4
-use     G4Tree                v* Geant4 
-use     G4modeling            v* Geant4 
-use     G4vis_management      v* Geant4 
-use	G4RayTracer           v* Geant4 
-# Will not be built on Windows
-use     G4FR                  v* Geant4
-use     G4VRML                v* Geant4
-# Will not be built on Darwin nor Windows
-use     G4externals           v* Geant4
-use     G4OpenGL              v* Geant4
-
-# User Interface
-# Will not be built on Darwin
-use     G4UIcommon            v* Geant4
-use     G4UIbasic             v* Geant4
-# Will not be built on Darwin nor Windows
-use     G4UIGAG               v* Geant4
-
-# LHCb additional package (eg. for MC11 G4LHCblists)
-use     G4LHCblists           v* Geant4
-
-# G4 examples package - for checks
-use    G4analysis             v* Geant4
-use    G4examples             v* Geant4
-
-#=============================================================================
-# ======== the end ============================================================
-# =============================================================================
-private
-
-
-# Allow the generation of QMTest summary 
-apply_pattern QMTestSummarize
diff --git a/LHCbG4PhysLists/src/G4EmStandardPhysics_LHCbTest.cc b/LHCbG4PhysLists/src/G4EmStandardPhysics_LHCbTest.cc
index a7202a1ef8..2cdfd69c12 100644
--- a/LHCbG4PhysLists/src/G4EmStandardPhysics_LHCbTest.cc
+++ b/LHCbG4PhysLists/src/G4EmStandardPhysics_LHCbTest.cc
@@ -268,6 +268,8 @@ void G4EmStandardPhysics_LHCbTest::ConstructProcess()
 
 		} else if (particleName == "B+" ||
 				particleName == "B-" ||
+				particleName == "Bc+" ||
+				particleName == "Bc-" ||
 				particleName == "D+" ||
 				particleName == "D-" ||
 				particleName == "Ds+" ||
@@ -277,6 +279,7 @@ void G4EmStandardPhysics_LHCbTest::ConstructProcess()
 				particleName == "anti_deuteron" ||
 				particleName == "anti_lambda_c+" ||
 				particleName == "anti_omega-" ||
+				particleName == "anti_omega_b-" ||
 				particleName == "anti_proton" ||
 				particleName == "anti_sigma_c+" ||
 				particleName == "anti_sigma_c++" ||
@@ -285,9 +288,11 @@ void G4EmStandardPhysics_LHCbTest::ConstructProcess()
 				particleName == "anti_triton" ||
 				particleName == "anti_xi_c+" ||
 				particleName == "anti_xi-" ||
+				particleName == "anti_xi_b-" ||
 				particleName == "deuteron" ||
 				particleName == "lambda_c+" ||
 				particleName == "omega-" ||
+				particleName == "omega_b-" ||
 				particleName == "sigma_c+" ||
 				particleName == "sigma_c++" ||
 				particleName == "sigma+" ||
@@ -296,6 +301,7 @@ void G4EmStandardPhysics_LHCbTest::ConstructProcess()
 				particleName == "tau-" ||
 				particleName == "triton" ||
 				particleName == "xi_c+" ||
+				particleName == "xi_b-" ||
 				particleName == "xi-" ) {
 
 					G4MuMultipleScattering* msc = new G4MuMultipleScattering();
diff --git a/LHCbG4PhysLists/src/G4EmStandardPhysics_option1LHCb.cc b/LHCbG4PhysLists/src/G4EmStandardPhysics_option1LHCb.cc
index cbf905ede8..d98831b061 100644
--- a/LHCbG4PhysLists/src/G4EmStandardPhysics_option1LHCb.cc
+++ b/LHCbG4PhysLists/src/G4EmStandardPhysics_option1LHCb.cc
@@ -262,6 +262,8 @@ void G4EmStandardPhysics_option1LHCb::ConstructProcess()
 
     } else if (particleName == "B+" ||
                particleName == "B-" ||
+               particleName == "Bc+" ||
+               particleName == "Bc-" ||
                particleName == "D+" ||
                particleName == "D-" ||
                particleName == "Ds+" ||
@@ -271,6 +273,7 @@ void G4EmStandardPhysics_option1LHCb::ConstructProcess()
                particleName == "anti_deuteron" ||
                particleName == "anti_lambda_c+" ||
                particleName == "anti_omega-" ||
+               particleName == "anti_omega_b-" ||
                particleName == "anti_proton" ||
                particleName == "anti_sigma_c+" ||
                particleName == "anti_sigma_c++" ||
@@ -278,10 +281,12 @@ void G4EmStandardPhysics_option1LHCb::ConstructProcess()
                particleName == "anti_sigma-" ||
                particleName == "anti_triton" ||
                particleName == "anti_xi_c+" ||
+               particleName == "anti_xi_b-" ||
                particleName == "anti_xi-" ||
                particleName == "deuteron" ||
                particleName == "lambda_c+" ||
                particleName == "omega-" ||
+               particleName == "omega_b-" ||
                particleName == "sigma_c+" ||
                particleName == "sigma_c++" ||
                particleName == "sigma+" ||
@@ -290,6 +295,7 @@ void G4EmStandardPhysics_option1LHCb::ConstructProcess()
                particleName == "tau-" ||
                particleName == "triton" ||
                particleName == "xi_c+" ||
+               particleName == "xi_b-" ||
                particleName == "xi-" ) {
 
       G4MuMultipleScattering* msc = new G4MuMultipleScattering();
diff --git a/LHCbG4PhysLists/src/G4EmStandardPhysics_option1NoApplyCuts.cc b/LHCbG4PhysLists/src/G4EmStandardPhysics_option1NoApplyCuts.cc
index 1002e13b8a..3f4739cf8d 100644
--- a/LHCbG4PhysLists/src/G4EmStandardPhysics_option1NoApplyCuts.cc
+++ b/LHCbG4PhysLists/src/G4EmStandardPhysics_option1NoApplyCuts.cc
@@ -330,35 +330,41 @@ void G4EmStandardPhysics_option1NoApplyCuts::ConstructProcess()
       ph->RegisterProcess(new G4CoulombScattering(), particle);
 
     } else if (particleName == "B+" ||
-	       particleName == "B-" ||
-	       particleName == "D+" ||
-	       particleName == "D-" ||
-	       particleName == "Ds+" ||
-	       particleName == "Ds-" ||
-               particleName == "anti_He3" ||
-               particleName == "anti_alpha" ||
-               particleName == "anti_deuteron" ||
-               particleName == "anti_lambda_c+" ||
-               particleName == "anti_omega-" ||
-               particleName == "anti_sigma_c+" ||
-               particleName == "anti_sigma_c++" ||
-               particleName == "anti_sigma+" ||
-               particleName == "anti_sigma-" ||
-               particleName == "anti_triton" ||
-               particleName == "anti_xi_c+" ||
-               particleName == "anti_xi-" ||
-               particleName == "deuteron" ||
-	       particleName == "lambda_c+" ||
-               particleName == "omega-" ||
-               particleName == "sigma_c+" ||
-               particleName == "sigma_c++" ||
-               particleName == "sigma+" ||
-               particleName == "sigma-" ||
-               particleName == "tau+" ||
-               particleName == "tau-" ||
-               particleName == "triton" ||
-               particleName == "xi_c+" ||
-               particleName == "xi-" ) {
+            particleName == "B-" ||
+            particleName == "Bc+" ||
+            particleName == "Bc-" ||
+            particleName == "D+" ||
+            particleName == "D-" ||
+            particleName == "Ds+" ||
+            particleName == "Ds-" ||
+            particleName == "anti_He3" ||
+            particleName == "anti_alpha" ||
+            particleName == "anti_deuteron" ||
+            particleName == "anti_lambda_c+" ||
+            particleName == "anti_omega-" ||
+            particleName == "anti_omega_b-" ||
+            particleName == "anti_sigma_c+" ||
+            particleName == "anti_sigma_c++" ||
+            particleName == "anti_sigma+" ||
+            particleName == "anti_sigma-" ||
+            particleName == "anti_triton" ||
+            particleName == "anti_xi_c+" ||
+            particleName == "anti_xi_b-" ||
+            particleName == "anti_xi-" ||
+            particleName == "deuteron" ||
+            particleName == "lambda_c+" ||
+            particleName == "omega-" ||
+            particleName == "omega_b-" ||
+            particleName == "sigma_c+" ||
+            particleName == "sigma_c++" ||
+            particleName == "sigma+" ||
+            particleName == "sigma-" ||
+            particleName == "tau+" ||
+            particleName == "tau-" ||
+            particleName == "triton" ||
+            particleName == "xi_c+" ||
+            particleName == "xi_b-" ||
+            particleName == "xi-" ) {
 
       ph->RegisterProcess(hmsc, particle);
       ph->RegisterProcess(new G4hIonisation(), particle);
diff --git a/LHCbG4Tests/G4HadronicXSectionsTest/scripts/G4HadronicXSectionsTest.py b/LHCbG4Tests/G4HadronicXSectionsTest/scripts/G4HadronicXSectionsTest.py
index ff0a8e9425..ef81779287 100755
--- a/LHCbG4Tests/G4HadronicXSectionsTest/scripts/G4HadronicXSectionsTest.py
+++ b/LHCbG4Tests/G4HadronicXSectionsTest/scripts/G4HadronicXSectionsTest.py
@@ -18,6 +18,8 @@ from array import array
 from ROOT import *
 from tempfile import NamedTemporaryFile
 
+gROOT.SetBatch(True)
+
 phys_lists = ['FTFP', 'FTFP_BERT', 'QGSP_BERT']
 particles = ['pi+', 'pi-', 'kaon+', 'kaon-', 'proton', 'anti_proton']
 targets = ['Al', 'Be', 'Si']
diff --git a/LHCbG4Tests/G4MScInThinLayerTest/scripts/G4MScInThinLayerTest.py b/LHCbG4Tests/G4MScInThinLayerTest/scripts/G4MScInThinLayerTest.py
index 9ec86d6bd2..f3b4c32f59 100755
--- a/LHCbG4Tests/G4MScInThinLayerTest/scripts/G4MScInThinLayerTest.py
+++ b/LHCbG4Tests/G4MScInThinLayerTest/scripts/G4MScInThinLayerTest.py
@@ -21,7 +21,7 @@ def create_cfg_file(n_runs=1000, name='G4MScInThinLayerTest.mac'):
 									'/testem/det/setAbsMat Silicon\n' +
 									'/testem/det/setAbsThick 300 um\n' +
 									'/testem/det/setAbsYZ    42 mm\n' +
-									'/testem/phys/addPhysics  emstandard_opt1nocuts\n' +
+									'/testem/phys/addPhysics  emstandard_opt2\n' +
 									'/run/setCut 5 mm\n')
 
 		energies = [1, 2, 3, 4, 5, 7, 9, 12, 15, 20, 25, 30, 40]
diff --git a/LHCbG4Tests/G4MScInThinLayerTest/src/PhysicsList.cc b/LHCbG4Tests/G4MScInThinLayerTest/src/PhysicsList.cc
index c6f47b6a32..4b7a742be8 100644
--- a/LHCbG4Tests/G4MScInThinLayerTest/src/PhysicsList.cc
+++ b/LHCbG4Tests/G4MScInThinLayerTest/src/PhysicsList.cc
@@ -208,7 +208,7 @@ void PhysicsList::AddPhysicsList(const G4String& name)
     fEmPhysicsList = new G4EmStandardPhysics_option1();
 
   } else if (name == "emstandard_opt2") {
-
+    std::cout << "Passed 'emstandard_opt2' in Physicslist.cc" << std::endl;
     fEmName = name;
     delete fEmPhysicsList;
     fEmPhysicsList = new G4EmStandardPhysics_option2();
@@ -226,8 +226,9 @@ void PhysicsList::AddPhysicsList(const G4String& name)
     fEmPhysicsList = new G4EmStandardPhysics_option4();
 
   } else if (name == "emstandard_opt1nocuts") {
+
     fEmName = name;
-    std::cout << "Passed if statement in Physicslist.cc" << std::endl;
+    std::cout << "Passed 'emstandard_opt1nocuts' in Physicslist.cc" << std::endl;
     delete fEmPhysicsList;
     fEmPhysicsList = new G4EmStandardPhysics_option1NoApplyCuts();
 
diff --git a/LHCbG4Tests/G4SamplingCaloTest/scripts/G4SamplingCaloTest.py b/LHCbG4Tests/G4SamplingCaloTest/scripts/G4SamplingCaloTest.py
index 78ab9c55b9..d7158f6417 100755
--- a/LHCbG4Tests/G4SamplingCaloTest/scripts/G4SamplingCaloTest.py
+++ b/LHCbG4Tests/G4SamplingCaloTest/scripts/G4SamplingCaloTest.py
@@ -28,7 +28,7 @@ def create_cfg_file(n_evts=10000, name='G4SamplingCaloTest.mac'):
 										 '/testem/det/setAbsor 2 Scintillator 4 mm\n' +
 										 '/testem/det/setSizeYZ 20 cm\n' +
 										 '#\n' +
-										 '/testem/phys/addPhysics emstandard_opt1nocuts\n' +
+										 '/testem/phys/addPhysics emstandard_opt2\n' +
 										 '#\n' +
 										 '#/gun/particle e-\n' +
 										 '#/gun/energy 100 GeV\n' +
diff --git a/LHCbG4Tests/G4SamplingCaloTest/src/PhysicsList.cc b/LHCbG4Tests/G4SamplingCaloTest/src/PhysicsList.cc
index c09e9ca4c7..9ed1579a10 100644
--- a/LHCbG4Tests/G4SamplingCaloTest/src/PhysicsList.cc
+++ b/LHCbG4Tests/G4SamplingCaloTest/src/PhysicsList.cc
@@ -169,6 +169,7 @@ void PhysicsList::AddPhysicsList(const G4String& name)
 
   } else if (name == "emstandard_opt2") {
 
+    std::cout << "Passed 'emstandard_opt2' in Physicslist.cc" << std::endl;
     fEmName = name;
     delete fEmPhysicsList;
     fEmPhysicsList = new G4EmStandardPhysics_option2();
@@ -189,7 +190,7 @@ void PhysicsList::AddPhysicsList(const G4String& name)
   // LHCb
   else if (name == "emstandard_opt1nocuts") {
     fEmName = name;
-    std::cout << "Passed if statement in Physicslist.cc" << std::endl;
+    std::cout << "Passed 'emstandard_opt1nocuts' in Physicslist.cc" << std::endl;
     delete fEmPhysicsList;
     fEmPhysicsList = new G4EmStandardPhysics_option1NoApplyCuts();
   }
diff --git a/ReleaseNotes/v106r2.md b/ReleaseNotes/v106r2.md
new file mode 100644
index 0000000000..750c9d209d
--- /dev/null
+++ b/ReleaseNotes/v106r2.md
@@ -0,0 +1,13 @@
+2020-06-15 Geant4 v106r2
+===
+This release is based on `GEANT4 r10.6.2`, uses `LCG 96b` and `Geant4Files v106r1`.
+
+This version is released on `Sim10` branch.
+
+## Latest Changes
+
+#### LHCb G4 Physics Lists & G4 stock EMStandardOpt2
+**[MR !57] Added more charged b-hadrons as ionising particles
+
+#### LHCb G4 Standalone Tests
+**[MR !58] Switch to G4 stock EMStandardOpt2 physics list
-- 
GitLab