Remove ATLAS physics lists supplied by Geant4
Geant4 Physics Lists for Athena are constructed via the PhysicsListSvc
in G4AtlasServices
. This first tries to construct the requested list from Geant4's own Physics List factory, falling back to
AtlasPhysListFactory
from Athena's G4PhysicsList
package if the list is not known to Geant4.
Athena's G4PhysicsList
supplies several lists that are now in upstream Geant4 (as of the currently used 10.6 minimum) and so are redundant. They are never even constructed because the first call to Geant4's
Physics List factory will find and construct them. This is the correct, expected behaviour.
In addition, work on ATLASSIM-3150 found that Athena duplicated symbols from Geant4 this package, as its "build"big library" structure resulted in a different symbol ordering/load sequence of libraries. This was primarily caused by
Athena's G4HadronPhysicsFTFP_BERT_ATL
physics constructor class, which is also present in Geant4 and used by the FTFP_BERT_ATL
physics list.
This MR attempts a basic simplification of G4PhysicsLists
to address these issues via:
- Removal of redundant or Geant4 supplied lists:
- ExN01PhysicsList (never used!)
- FTFP_BERT_ATL
- FTFP_BERT_ATL_EMY
- QGSP_BIC_HP
- Name scoping of
G4PhysicsLists
hadronic constructor headers/class names withATLAS_
to prevent symbol clashes with Geant4- A later MR will address use/modernisation of the classes themselves
- Addition
INFO
level log output inG4PhysicsLists
andPhysicsListSvc
to report whether the constructed physics list came from Geant4 or Athena
Some small C++11 simplifications have been made in AtlasPhysListFactory
.
FYI @jchapman, @mbandier if you're not added by the bot automatically!