Project

General

Profile

Hadr01

Setup

Using a base build of v4_10_3_ref05 (what I had handy), but Hadr01 from trunk (of 2017-09-25).

Configured build to use global libraries (set appropriate $G4INSTALL, $G4SYSTEM, $G4INCLUDE, etc).

Build/Run Unmodified Code

# make a copy of the example
cp -va ../geant4-trunk-2017-09-25/examples/extended/hadronic/Hadr01 Hadr01_unmodified
cd Hadr01_unmodified

gmake

$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in PhysicsList > hadr01.out.myrun.PhysicsList
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in FTFP_BERT > hadr01.out.myrun.FTFP_BERT

export PHYSLIST=PhysicsList
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun.PhysicsListenv
unset PHYLIST

export PHYSLIST=ShieldingM
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun.ShieldingMenv
unset PHYLIST

Code Modifications

# make a second copy of the example
cp -va ../geant4-trunk-2017-09-25/examples/extended/hadronic/Hadr01 Hadr01_altfactory
cd Hadr01_altfactory

A trivial modification was made to the PhysicsList class to add the optional verbosity flag found on all standard physics lists (and a ctor signature requirement of the g4alt factory).

$ svn diff
Index: include/PhysicsList.hh
===================================================================
--- include/PhysicsList.hh    (revision 106242)
+++ include/PhysicsList.hh    (working copy)
@@ -56,7 +56,7 @@
 {
 public:

-  PhysicsList();
+  PhysicsList(G4int ver = 1);
   virtual ~PhysicsList();

   virtual void ConstructParticle();
Index: src/PhysicsList.cc
===================================================================
--- src/PhysicsList.cc    (revision 106242)
+++ src/PhysicsList.cc    (working copy)
@@ -92,11 +92,11 @@

 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....

-PhysicsList::PhysicsList() : G4VModularPhysicsList()
+PhysicsList::PhysicsList(G4int ver) : G4VModularPhysicsList()
 {
   SetDefaultCutValue(0.7*CLHEP::mm);

-  verboseLevel = 1;
+  verboseLevel = ver;

   fMessenger = new PhysicsListMessenger(this);

The main routine was modified to include the alternative header and drop the g4alt namespace. The default physics list to use was defined to be PhysicsList; short extension names were added for the cases of G4OpticalPhysics and G4RadioactiveDecayPhysics.

The logic was then changed so that if a name was supplied as a command line argument, the factory method GetReferencePhysList(physName) is called. If no name was supplied, then the method ReferencePhysList() attempts to look for an environment variable $PHYSLIST to use. Failing that, it falls back to the user define default (if set), or the system default (currently FTFP_BERT).

The original code explicitly constructs a PhysicsListMessenger in all cases except where the PhysicsList list is used. This presumably so that the UI doesn't complain about calls to UI commands that only exist when PhysicsListMessenger is built. I do the same by checking the type that was constructed.

Index: Hadr01.cc
===================================================================
--- Hadr01.cc    (revision 106242)
+++ Hadr01.cc    (working copy)
@@ -51,8 +51,12 @@
 #include "Randomize.hh" 

 #include "DetectorConstruction.hh" 
-#include "PhysicsList.hh" 
-#include "G4PhysListFactory.hh" 
+#include "G4PhysListFactoryAlt.hh" 
+using namespace g4alt;
+#include "G4PhysListStamper.hh" 
+#include "PhysicsList.hh"  // this is a Hadr01 specific list
+G4_DECLARE_PHYSLIST_FACTORY(PhysicsList); // register it w/ factory
+#include "G4PhysListRegistry.hh" 
 #include "G4VModularPhysicsList.hh" 
 #include "PrimaryGeneratorAction.hh" 
 #include "PhysicsListMessenger.hh" 
@@ -83,30 +87,34 @@
   runManager->SetUserInitialization(new DetectorConstruction());

   G4PhysListFactory factory;
-  G4VModularPhysicsList* phys = nullptr;
   PhysicsListMessenger* mess = nullptr;
   G4String physName = "";

   // Physics List name defined via 3nd argument
   if (argc==3) { physName = argv[2]; }

-   // Physics List name defined via environment variable
-   if("" == physName) {
-     char* path = getenv("PHYSLIST");
-     if (path) { physName = G4String(path); }
-   }
- 
-   // reference PhysicsList via its name
-   if("" != physName && factory.IsReferencePhysList(physName)) {
-     phys = factory.GetReferencePhysList(physName);
- 
-     // instantiated messenger
-     mess = new PhysicsListMessenger();
-   } 
- 
-   // local Physics List
-   if(!phys) { phys = new PhysicsList(); }

+   // set a default in case command line arg and $PHYSLIST aren't set
+   factory.SetDefaultReferencePhysList("PhysicsList");
+ 
+   // add some short modifier names
+   G4PhysListRegistry* g4plr = G4PhysListRegistry::Instance();
+   g4plr->AddPhysicsExtension("OPTICAL","G4OpticalPhysics");
+   g4plr->AddPhysicsExtension("RACTIVE","G4RadioactiveDecayPhysics");
+ 
+   // use the name given by command line arg
+   // or $PHYSLIST or fall through to the default set above
+   // using current interfaces (based on old factory design)
+   G4VModularPhysicsList* phys = nullptr;
+   if ( physName != "" ) phys = factory.GetReferencePhysList(physName);
+   else                  phys = factory.ReferencePhysList();
+ 
+   // One apparently needs a PhysicsListManager built explicitly in all
+   // cases where "PhysicsList" is _not_ the chosen physics list
+   if ( ! dynamic_cast<PhysicsList*>(phys) ) {
+     // instantiated messenger
+     mess = new PhysicsListMessenger();
+    };

  // define physics
  runManager->SetUserInitialization(phys);
  runManager->SetUserAction(new PrimaryGeneratorAction());

Build/Run Modified Code

For the modified case I ran:

gmake
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in PhysicsList > hadr01.out.myrun.PhysicsList
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in FTFP_BERT > hadr01.out.myrun.FTFP_BERT

export PHYLIST=PhysicsList
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun.PhysicsListenv
unset PHYLIST

export PHYLIST=ShieldingM
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in > hadr01.out.myrun.ShieldingMenv
unset PHYLIST

$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in FTFP_BERT+OPTICAL+RACTIVE > hadr01.out.myrun.FTFP_BERTOPTICALRACTIVE
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in PhysicsList+OPTICAL+RACTIVE > hadr01.out.myrun.PhysicsListOPTICALRACTIVE
$G4INSTALL/bin/$G4SYSTEM/Hadr01 hadr01.in PhysicsList+G4OpticalPhysics+G4RadioactiveDecayPhysics > hadr01.out.myrun.PhysicsListOPTICALRACTIVElongnames

Comparing Runs of Unmodified Code

check that supplying PhysicsList is same as no 2nd arg

$ diff -u hadr01.out.myrun hadr01.out.myrun.PhysicsList 
--- hadr01.out.myrun    2017-09-26 10:47:10.374392237 -0500
+++ hadr01.out.myrun.PhysicsList    2017-09-26 10:46:58.231577736 -0500
@@ -795,7 +795,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.66s Real=1.68s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.62s Real=1.68s Sys=0.02s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -810,7 +810,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.23s Real=0.24s Sys=0s
+  User=0.21s Real=0.22s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

check that 2nd arg of PhysicsList is same as $PHYSLIST="PhysicsList"

$ diff -u hadr01.out.myrun.PhysicsList*
--- hadr01.out.myrun.PhysicsList    2017-09-26 10:46:58.231577736 -0500
+++ hadr01.out.myrun.PhysicsListenv    2017-09-26 12:06:39.040686547 -0500
@@ -795,7 +795,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.62s Real=1.68s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.66s Real=1.72s Sys=0.02s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -810,7 +810,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.21s Real=0.22s Sys=0s
+  User=0.2s Real=0.21s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

check that PhysicsList is different from FTFP_BERT

$ diff -u hadr01.out.myrun.PhysicsList hadr01.out.myrun.FTFP_BERT | more
--- hadr01.out.myrun.PhysicsList    2017-09-26 10:46:58.231577736 -0500
+++ hadr01.out.myrun.FTFP_BERT    2017-09-26 10:47:46.849253300 -0500
@@ -6,6 +6,11 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

+G4PhysListFactory::GetReferencePhysList <FTFP_BERT>  EMoption= 0
+<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
+
+<<< Reference Physics List FTFP_BERT is built
+
 /run/verbose 2
 /tracking/verbose 0
 #
@@ -18,8 +23,7 @@
 #
 /run/setCut 1 mm
 /testhadr/Physics QBBC
-PhysicsList::AddPhysicsList: <QBBC>
-PhysicsList::AddPhysicsList: <emstandard_opt0>
+### PhysicsListMessenger WARNING:  /testhadr/Physics UI command is not available for reference Physics List
 #
 /run/initialize
 userDetector->Construct() start.
@@ -47,6 +51,13 @@

 World is registered to the default region.
 physicsList->Construct() start.
+
+ FTFP_BERT : new threshold between BERT and FTFP is over the interval 
+ for pions :   3 to 12 GeV
+ for kaons :   3 to 12 GeV
+ for proton :  3 to 12 GeV
+ for neutron : 3 to 12 GeV
+
 ### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
 physicsList->CheckParticleList() start.
 physicsList->setCut() start.
@@ -430,14 +441,13 @@
   Process: hadElastic
         Model:             hElasticCHIPS: 0 eV  ---> 100 TeV
      Cr_sctns:        G4NeutronElasticXS: 0 eV  ---> 100 TeV
-     Cr_sctns:        G4NeutronElasticXS: 0 eV  ---> 100 TeV
      Cr_sctns:            GheishaElastic: 0 eV  ---> 100 TeV

   Process: neutronInelastic
         Model:                      FTFP: 3 GeV ---> 100 TeV
-        Model:            BertiniCascade: 1 GeV ---> 5 GeV
-        Model:            Binary Cascade: 0 eV  ---> 1.5 GeV
+        Model:            BertiniCascade: 0 eV  ---> 12 GeV
      Cr_sctns:      G4NeutronInelasticXS: 0 eV  ---> 100 TeV
+     Cr_sctns:       Barashenkov-Glauber: 0 eV  ---> 100 TeV
      Cr_sctns:          GheishaInelastic: 0 eV  ---> 100 TeV

   Process: nCapture
@@ -622,8 +632,9 @@

   Process: kaon+Inelastic
         Model:                      FTFP: 3 GeV ---> 100 TeV
-        Model:            BertiniCascade: 0 eV  ---> 5 GeV
+        Model:            BertiniCascade: 0 eV  ---> 12 GeV
      Cr_sctns:            Glauber-Gribov: 0 eV  ---> 2.88022e+295 J  
+     Cr_sctns:  ChipsKaonPlusInelasticXS: 0 eV  ---> 100 TeV
      Cr_sctns:          GheishaInelastic: 0 eV  ---> 100 TeV
...

check that $PHYSLIST="PhysicsList" is different from $PHYSLIST="ShieldingM"

$ diff -u  *env
--- hadr01.out.myrun.PhysicsListenv    2017-09-26 12:06:39.040686547 -0500
+++ hadr01.out.myrun.ShieldingMenv    2017-09-26 12:06:44.451036014 -0500
@@ -6,6 +6,11 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

+G4PhysListFactory::GetReferencePhysList <ShieldingM>  EMoption= 0
+<<< Geant4 Physics List simulation engine: ShieldingM 2.1
+
+<<< Reference Physics List ShieldingM is built
+
 /run/verbose 2
 /tracking/verbose 0
 #
@@ -18,8 +23,7 @@
 #
 /run/setCut 1 mm
 /testhadr/Physics QBBC
-PhysicsList::AddPhysicsList: <QBBC>
-PhysicsList::AddPhysicsList: <emstandard_opt0>
+### PhysicsListMessenger WARNING:  /testhadr/Physics UI command is not available for reference Physics List
 #
 /run/initialize
 userDetector->Construct() start.
@@ -47,7 +51,11 @@

 World is registered to the default region.
 physicsList->Construct() start.
-### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
+/geant4/app/rhatcher/externals/g4neutron/v4_5/NULL/G4NDL4.5
+@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /geant4/app/rhatcher/externals/g4neutron/v4_5/NULL/G4NDL4.5/Inelastic
+@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /geant4/app/rhatcher/externals/g4neutron/v4_5/NULL/G4NDL4.5
+@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /geant4/app/rhatcher/externals/g4neutron/v4_5/NULL/G4NDL4.5
+Number of de-excitation channels is changed to      68
 physicsList->CheckParticleList() start.
 physicsList->setCut() start.
 #
@@ -55,6 +63,11 @@
 /gun/energy 3. GeV
 /run/beamOn 100

+### ===  Deexcitation model UAtomDeexcitation is activated for 1 region:
+          DefaultRegionForTheWorld  1  1  0
+### ===  Auger cascade flag: 1
+### ===  Ignore cuts flag:   1
+
 phot:   for  gamma    SubType= 12  BuildTable= 0
       LambdaPrime table from 200 keV to 100 TeV in 61 bins 
       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
@@ -356,6 +369,7 @@
       180 < Theta(degree) < 180; pLimit(GeV^1)= 0.139531
       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
   eCoulombScattering :  Emin=        0 eV    Emax=      100 TeV
+@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /geant4/app/rhatcher/externals/g4neutron/v4_5/NULL/G4NDL4.5/Inelastic

 msc:   for pi+    SubType= 10
       RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
@@ -425,37 +439,20 @@
                   HADRONIC PROCESSES SUMMARY (verbose level 1)

 ---------------------------------------------------
-                           Hadronic Processes for neutron
-
-  Process: hadElastic
-        Model:             hElasticCHIPS: 0 eV  ---> 100 TeV
-     Cr_sctns:        G4NeutronElasticXS: 0 eV  ---> 100 TeV
-     Cr_sctns:        G4NeutronElasticXS: 0 eV  ---> 100 TeV
-     Cr_sctns:            GheishaElastic: 0 eV  ---> 100 TeV
-
-  Process: neutronInelastic
-        Model:                      FTFP: 3 GeV ---> 100 TeV
-        Model:            BertiniCascade: 1 GeV ---> 5 GeV
-        Model:            Binary Cascade: 0 eV  ---> 1.5 GeV
-     Cr_sctns:      G4NeutronInelasticXS: 0 eV  ---> 100 TeV
-     Cr_sctns:          GheishaInelastic: 0 eV  ---> 100 TeV
-
-  Process: nCapture
-        Model:               nRadCapture: 0 eV  ---> 100 TeV
-     Cr_sctns:        G4NeutronCaptureXS: 0 eV  ---> 100 TeV
-     Cr_sctns:          GheishaCaptureXS: 0 eV  ---> 100 TeV
-
-  Process: nKiller
...

Compare Use of g4alt Factory to the Unmodified Case

For this block of comparisons there should be no physics differences, only minor changes of reporting when the physics list is constructed, and run-to-run CPU time differences.

compare when no 2nd arg is supplied

$ diff -u */hadr01.out.myrun
--- Hadr01_altfactory/hadr01.out.myrun    2017-09-26 11:03:19.448886122 -0500
+++ Hadr01_unchanged/hadr01.out.myrun    2017-09-26 10:47:10.374392237 -0500
@@ -6,11 +6,6 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-### G4PhysListRegistry WARNING:  environment variable PHYSLIST is not defined
-    Default Physics Lists PhysicsList is instantiated
-G4PhysListRegistry::GetModularPhysicsList <PhysicsList>, as "PhysicsList" with extensions "" 
-<<< Reference Physics List PhysicsList is built
-
 /run/verbose 2
 /tracking/verbose 0
 #
@@ -800,7 +795,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.65s Real=1.7s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.66s Real=1.68s Sys=0.02s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -815,7 +810,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.19s Real=0.2s Sys=0s
+  User=0.23s Real=0.24s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

compare when PhysicsList is supplied

$ diff -u */hadr01.out.myrun.PhysicsList
--- Hadr01_altfactory/hadr01.out.myrun.PhysicsList    2017-09-26 11:03:17.208524632 -0500
+++ Hadr01_unchanged/hadr01.out.myrun.PhysicsList    2017-09-26 10:46:58.231577736 -0500
@@ -6,9 +6,6 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <PhysicsList>, as "PhysicsList" with extensions "" 
-<<< Reference Physics List PhysicsList is built
-
 /run/verbose 2
 /tracking/verbose 0
 #
@@ -798,7 +795,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.63s Real=1.67s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.62s Real=1.68s Sys=0.02s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -813,7 +810,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.21s Real=0.2s Sys=0s
+  User=0.21s Real=0.22s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

compare when FTFP_BERT is supplied

$ diff -u */hadr01.out.myrun.FTFP_BERT
--- Hadr01_altfactory/hadr01.out.myrun.FTFP_BERT    2017-09-26 11:03:21.563531672 -0500
+++ Hadr01_unchanged/hadr01.out.myrun.FTFP_BERT    2017-09-26 10:47:46.849253300 -0500
@@ -6,7 +6,7 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <FTFP_BERT>, as "FTFP_BERT" with extensions "" 
+G4PhysListFactory::GetReferencePhysList <FTFP_BERT>  EMoption= 0
 <<< Geant4 Physics List simulation engine: FTFP_BERT 2.0

 <<< Reference Physics List FTFP_BERT is built
@@ -809,7 +809,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.59s Real=1.62s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.65s Real=1.88s Sys=0.03s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -824,7 +824,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.16s Real=0.17s Sys=0.01s
+  User=0.14s Real=0.17s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

compare when $PHYSLIST="PhysicsList"

 diff -u */hadr01.out.myrun.PhysicsListenv
--- Hadr01_altfactory/hadr01.out.myrun.PhysicsListenv    2017-09-26 12:13:00.658538296 -0500
+++ Hadr01_unchanged/hadr01.out.myrun.PhysicsListenv    2017-09-26 12:06:39.040686547 -0500
@@ -6,9 +6,6 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <PhysicsList>, as "PhysicsList" with extensions "" 
-<<< Reference Physics List PhysicsList is built
-
 /run/verbose 2
 /tracking/verbose 0
 #
@@ -798,7 +795,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.58s Real=1.64s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.66s Real=1.72s Sys=0.02s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -813,7 +810,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.2s Real=0.2s Sys=0s
+  User=0.2s Real=0.21s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

Compare when $PHYSLIST="ShieldingM"

$ diff -u */hadr01.out.myrun.ShieldingMenv
--- Hadr01_altfactory/hadr01.out.myrun.ShieldingMenv    2017-09-26 12:13:03.739472128 -0500
+++ Hadr01_unchanged/hadr01.out.myrun.ShieldingMenv    2017-09-26 12:06:44.451036014 -0500
@@ -6,7 +6,7 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <ShieldingM>, as "ShieldingM" with extensions "" 
+G4PhysListFactory::GetReferencePhysList <ShieldingM>  EMoption= 0
 <<< Geant4 Physics List simulation engine: ShieldingM 2.1

 <<< Reference Physics List ShieldingM is built
@@ -833,7 +833,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=2.22s Real=2.47s Sys=0.07s
+RunAction::BeginOfRunAction:  User=2.03s Real=4.77s Sys=0.09s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 =======================================================================
@@ -862,7 +862,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.23s Real=0.24s Sys=0s
+  User=0.22s Real=0.3s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

Differences When G4OpticalPhysics and/or G4RadioactiveDecayPhysics are Invoked

Effect of enabling G4OpticalPhysics and G4RadioactiveDecayPhysics using PhysicsList

$ diff -u hadr01.out.myrun.PhysicsList hadr01.out.myrun.PhysicsListOPTICALRACTIVE
--- hadr01.out.myrun.PhysicsList    2017-09-26 11:03:17.208524632 -0500
+++ hadr01.out.myrun.PhysicsListOPTICALRACTIVE    2017-09-26 11:03:29.904855362 -0500
@@ -6,8 +6,10 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <PhysicsList>, as "PhysicsList" with extensions "" 
-<<< Reference Physics List PhysicsList is built
+G4PhysListRegistry::GetModularPhysicsList <PhysicsList+OPTICAL+RACTIVE>, as "PhysicsList" with extensions "+OPTICAL+RACTIVE" 
+<<< RegisterPhysics with G4OpticalPhysics "OPTICAL" 
+<<< RegisterPhysics with G4RadioactiveDecayPhysics "RACTIVE" 
+<<< Reference Physics List PhysicsList+OPTICAL+RACTIVE is built

 /run/verbose 2
 /tracking/verbose 0
@@ -58,6 +60,11 @@
 /gun/energy 3. GeV
 /run/beamOn 100

+### ===  Deexcitation model UAtomDeexcitation is activated for 1 region:
+          DefaultRegionForTheWorld  1  1  0
+### ===  Auger cascade flag: 1
+### ===  Ignore cuts flag:   1
+
 phot:   for  gamma    SubType= 12  BuildTable= 0
       LambdaPrime table from 200 keV to 100 TeV in 61 bins 
       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
@@ -742,11 +749,11 @@
 Type of de-excitation inverse x-section             3
 Min excitation energy (keV)                         0.01
 Level density (1/MeV)                               0.1
-Time limit for long lived isomeres (ns)             1e+12
+Time limit for long lived isomeres (ns)             1442.7
 Use new data files                                  1
-Use complete data files                             0
+Use complete data files                             1
 Correlated gamma emission flag                      0
-Electron internal conversion ID                     2
+Electron internal conversion ID                     0
 =======================================================================
 Number of de-excitation channels                    8

@@ -798,7 +805,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.63s Real=1.67s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.92s Real=2.02s Sys=0.03s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -813,33 +820,33 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.21s Real=0.2s Sys=0s
+  User=0.2s Real=0.36s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================
 Beam particle                        proton
 Beam Energy(MeV)                     3000
 Number of events                     100
-Average energy deposit (MeV)         70.39   RMS(MeV) 78.21
-Average number of steps              208.2
-Average number of gamma              1.63
-Average number of e-                 3.84
-Average number of e+                 0.05
-Average number of neutrons           0.83
-Average number of protons            0.9
+Average energy deposit (MeV)         66.51   RMS(MeV) 60.74
+Average number of steps              206.5
+Average number of gamma              1.69
+Average number of e-                 4.84
+Average number of e+                 0.03
+Average number of neutrons           1.15
+Average number of protons            1.17
 Average number of antiprotons        0
-Average number of pi+ & pi-          0.24
-Average number of pi0                0.15
+Average number of pi+ & pi-          0.32
+Average number of pi0                0.12
 Average number of kaons              0.01
-Average number of muons              0.01
-Average number of deuterons+tritons  0.29
-Average number of He3+alpha          0.19
-Average number of ions               0.39
-Average number of forward neutrons   0.05
-Average number of reflected neutrons 0.74
-Average number of leaked neutrons    0.01
-Average number of proton leak        0.38
-Average number of pion leak          0.22
+Average number of muons              0
+Average number of deuterons+tritons  0.26
+Average number of He3+alpha          0.29
+Average number of ions               0.48
+Average number of forward neutrons   0.12
+Average number of reflected neutrons 0.95
+Average number of leaked neutrons    0.02
+Average number of proton leak        0.48
+Average number of pion leak          0.27
 ========================================================

 #
@@ -853,9 +860,9 @@
 EventManager deleted.
 Units table cleared.
 TransportationManager deleted.
-Total navigation history collections cleaned: 20
+Total navigation history collections cleaned: 14
 ================== Deleting memory pools ===================
-Pool ID '20G4NavigationLevelRep', size : 0.0288 MB
+Pool ID '20G4NavigationLevelRep', size : 0.0192 MB
 Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
 Pool ID '17G4DynamicParticle', size : 0.00577 MB
 Pool ID '7G4Event', size : 0.000961 MB
@@ -863,12 +870,12 @@
 Pool ID '17G4PrimaryParticle', size : 0.000961 MB
 Pool ID '15G4HCofThisEvent', size : 0.000961 MB
 Pool ID '7G4Track', size : 0.0115 MB
-Pool ID '18G4TouchableHistory', size : 0.00288 MB
+Pool ID '18G4TouchableHistory', size : 0.00192 MB
 Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
 Pool ID '10G4Fragment', size : 0.00192 MB
-Pool ID '17G4ReactionProduct', size : 0.00192 MB
+Pool ID '17G4ReactionProduct', size : 0.00288 MB
 Number of memory pools allocated: 12; of which, static: 0
-Dynamic pools deleted: 12 / Total memory freed: 0.059 MB
+Dynamic pools deleted: 12 / Total memory freed: 0.049 MB
 ============================================================
 G4Allocator objects are deleted.
 UImanager deleted.

Verify using full names is same as short extension names

$ diff -u hadr01.out.myrun.PhysicsListOPTICALRACTIVE hadr01.out.myrun.PhysicsListOPTICALRACTIVElongnames
--- hadr01.out.myrun.PhysicsListOPTICALRACTIVE    2017-09-26 11:03:29.904855362 -0500
+++ hadr01.out.myrun.PhysicsListOPTICALRACTIVElongnames    2017-09-26 11:25:26.476766805 -0500
@@ -6,10 +6,10 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <PhysicsList+OPTICAL+RACTIVE>, as "PhysicsList" with extensions "+OPTICAL+RACTIVE" 
-<<< RegisterPhysics with G4OpticalPhysics "OPTICAL" 
-<<< RegisterPhysics with G4RadioactiveDecayPhysics "RACTIVE" 
-<<< Reference Physics List PhysicsList+OPTICAL+RACTIVE is built
+G4PhysListRegistry::GetModularPhysicsList <PhysicsList+G4OpticalPhysics+G4RadioactiveDecayPhysics>, as "PhysicsList" with extensions "+G4OpticalPhysics+G4RadioactiveDecayPhysics" 
+<<< RegisterPhysics with G4OpticalPhysics "G4OpticalPhysics" 
+<<< RegisterPhysics with G4RadioactiveDecayPhysics "G4RadioactiveDecayPhysics" 
+<<< Reference Physics List PhysicsList+G4OpticalPhysics+G4RadioactiveDecayPhysics is built

 /run/verbose 2
 /tracking/verbose 0
@@ -805,7 +805,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.92s Real=2.02s Sys=0.03s
+RunAction::BeginOfRunAction:  User=1.78s Real=1.94s Sys=0.04s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -820,7 +820,7 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.2s Real=0.36s Sys=0s
+  User=0.2s Real=0.2s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================

Add G4OpticalPhysics and G4RadioactiveDecayPhysics to FTFP_BERT

$ diff -u hadr01.out.myrun.FTFP_BERT*
--- hadr01.out.myrun.FTFP_BERT    2017-09-26 11:03:21.563531672 -0500
+++ hadr01.out.myrun.FTFP_BERTOPTICALRACTIVE    2017-09-26 11:03:27.177765309 -0500
@@ -6,10 +6,12 @@
                             WWW : http://cern.ch/geant4
 *************************************************************

-G4PhysListRegistry::GetModularPhysicsList <FTFP_BERT>, as "FTFP_BERT" with extensions "" 
+G4PhysListRegistry::GetModularPhysicsList <FTFP_BERT+OPTICAL+RACTIVE>, as "FTFP_BERT" with extensions "+OPTICAL+RACTIVE" 
 <<< Geant4 Physics List simulation engine: FTFP_BERT 2.0

-<<< Reference Physics List FTFP_BERT is built
+<<< RegisterPhysics with G4OpticalPhysics "OPTICAL" 
+<<< RegisterPhysics with G4RadioactiveDecayPhysics "RACTIVE" 
+<<< Reference Physics List FTFP_BERT+OPTICAL+RACTIVE is built

 /run/verbose 2
 /tracking/verbose 0
@@ -59,6 +61,9 @@
  for neutron : 3 to 12 GeV

 ### Adding tracking cuts for neutron  TimeCut(ns)= 10000  KinEnergyCut(MeV)= 0
+G4OpticalPhysics:: Add Optical Physics Processes
+### Birks coefficients used in run time
+### Optical physics constructed.
 physicsList->CheckParticleList() start.
 physicsList->setCut() start.
 #
@@ -66,6 +71,11 @@
 /gun/energy 3. GeV
 /run/beamOn 100

+### ===  Deexcitation model UAtomDeexcitation is activated for 1 region:
+          DefaultRegionForTheWorld  1  1  0
+### ===  Auger cascade flag: 1
+### ===  Ignore cuts flag:   1
+
 phot:   for  gamma    SubType= 12  BuildTable= 0
       LambdaPrime table from 200 keV to 100 TeV in 61 bins 
       ===== EM models for the G4Region  DefaultRegionForTheWorld ======
@@ -753,11 +763,11 @@
 Type of de-excitation inverse x-section             3
 Min excitation energy (keV)                         0.01
 Level density (1/MeV)                               0.1
-Time limit for long lived isomeres (ns)             1e+12
+Time limit for long lived isomeres (ns)             1442.7
 Use new data files                                  1
-Use complete data files                             0
+Use complete data files                             1
 Correlated gamma emission flag                      0
-Electron internal conversion ID                     2
+Electron internal conversion ID                     0
 =======================================================================
 Number of de-excitation channels                    8

@@ -809,7 +819,7 @@
      100.00         10k         1      197        200         0.00    Check
 ### Run 0 starts.
 ### Run 0 start
-RunAction::BeginOfRunAction:  User=1.59s Real=1.62s Sys=0.02s
+RunAction::BeginOfRunAction:  User=1.96s Real=4.87s Sys=0.07s
 NuclearData:  User=0s Real=0s Sys=0s
 EventAction: Event # 0 started
 EventAction: Event # 10 started
@@ -824,33 +834,33 @@
  Run terminated.
 Run Summary
   Number of events processed : 100
-  User=0.16s Real=0.17s Sys=0.01s
+  User=0.22s Real=0.43s Sys=0s
 RunAction: End of run actions are started
 HistoManager: End of run actions are started
 ========================================================
 Beam particle                        proton
 Beam Energy(MeV)                     3000
 Number of events                     100
-Average energy deposit (MeV)         59.93   RMS(MeV) 44.33
-Average number of steps              194.5
-Average number of gamma              1.4
-Average number of e-                 3.47
-Average number of e+                 0.01
-Average number of neutrons           1.03
-Average number of protons            0.91
+Average energy deposit (MeV)         66.34   RMS(MeV) 52.78
+Average number of steps              226.5
+Average number of gamma              2.23
+Average number of e-                 5.76
+Average number of e+                 0.09
+Average number of neutrons           1.06
+Average number of protons            1.23
 Average number of antiprotons        0
-Average number of pi+ & pi-          0.2
-Average number of pi0                0.13
+Average number of pi+ & pi-          0.29
+Average number of pi0                0.15
 Average number of kaons              0
-Average number of muons              0
-Average number of deuterons+tritons  0.18
-Average number of He3+alpha          0.11
-Average number of ions               0.39
-Average number of forward neutrons   0.05
-Average number of reflected neutrons 0.93
+Average number of muons              0.01
+Average number of deuterons+tritons  0.13
+Average number of He3+alpha          0.15
+Average number of ions               0.54
+Average number of forward neutrons   0.1
+Average number of reflected neutrons 0.87
 Average number of leaked neutrons    0.03
-Average number of proton leak        0.39
-Average number of pion leak          0.19
+Average number of proton leak        0.53
+Average number of pion leak          0.28
 ========================================================

 #
@@ -864,22 +874,21 @@
 EventManager deleted.
 Units table cleared.
 TransportationManager deleted.
-Total navigation history collections cleaned: 13
+Total navigation history collections cleaned: 16
 ================== Deleting memory pools ===================
-Pool ID '20G4NavigationLevelRep', size : 0.0183 MB
+Pool ID '20G4NavigationLevelRep', size : 0.0231 MB
 Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
-Pool ID '17G4DynamicParticle', size : 0.00673 MB
+Pool ID '17G4DynamicParticle', size : 0.00481 MB
 Pool ID '7G4Event', size : 0.000961 MB
 Pool ID '15G4PrimaryVertex', size : 0.000961 MB
 Pool ID '17G4PrimaryParticle', size : 0.000961 MB
 Pool ID '15G4HCofThisEvent', size : 0.000961 MB
-Pool ID '7G4Track', size : 0.0125 MB
+Pool ID '7G4Track', size : 0.00961 MB
 Pool ID '18G4TouchableHistory', size : 0.00192 MB
 Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
-Pool ID '17G4ReactionProduct', size : 0.000961 MB
 Pool ID '10G4Fragment', size : 0.000961 MB
-Number of memory pools allocated: 12; of which, static: 0
-Dynamic pools deleted: 12 / Total memory freed: 0.047 MB
+Number of memory pools allocated: 11; of which, static: 0
+Dynamic pools deleted: 11 / Total memory freed: 0.046 MB
 ============================================================
 G4Allocator objects are deleted.
 UImanager deleted.