Skip to content

Remove ATLAS physics lists supplied by Geant4

Benjamin Morgan requested to merge bmorgan/athena:simplify-g4physicslists into master

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 with ATLAS_ to prevent symbol clashes with Geant4
    • A later MR will address use/modernisation of the classes themselves
  • Addition INFO level log output in G4PhysicsLists and PhysicsListSvc 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!

Edited by Benjamin Morgan

Merge request reports