From 73f43bd8936b9de4cb0c84dcde2d48b7d55b2226 Mon Sep 17 00:00:00 2001
From: Daniel Noel <daniel.louis.noel@cern.ch>
Date: Wed, 22 May 2019 12:06:25 +0100
Subject: [PATCH] Add the newly configured tools to G4AtlasServicesConfigNew

---
 .../python/G4AtlasServicesConfigNew.py        | 139 +++++++++++-------
 1 file changed, 83 insertions(+), 56 deletions(-)

diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfigNew.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfigNew.py
index 2f677cc0985e..59455fdfd275 100644
--- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfigNew.py
+++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfigNew.py
@@ -6,7 +6,25 @@ from AthenaCommon import CfgGetter
 #from AthenaCommon.BeamFlags import jobproperties
 
 from G4AtlasServices.G4AtlasServicesConf import DetectorGeometrySvc, StandardFieldSvc, G4AtlasSvc, G4GeometryNotifierSvc
-
+#the physics region tools
+from G4AtlasTools.G4PhysicsRegionConfigNew import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg, BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, DriftWallPhysicsRegionToolCfg, DriftWall1PhysicsRegionToolCfg, DriftWall2PhysicsRegionToolCfg, MuonSystemFastPhysicsRegionToolCfg
+
+"""FwdRegionPhysicsRegionToolCfg,  
+ TRT_KrPhysicsRegionToolCfg,  
+ EMECParaPhysicsRegionToolCfg, 
+ FCALParaPhysicsRegionToolCfg, 
+ FCAL2ParaPhysicsRegionToolCfg, 
+ PreSampLArPhysicsRegionToolCfg, 
+ DeadMaterialPhysicsRegionToolCfg, 
+ MuonPhysicsRegionToolCfg, 
+ SX1PhysicsRegionToolCfg,  
+ SCTSiliconPhysicsRegionToolCfg"""
+
+from G4AtlasTools.G4GeometryToolConfig import MaterialDescriptionToolCfg
+from G4AtlasTools.G4FieldConfigNew import ATLASFieldManagerToolCfg, TightMuonsATLASFieldManagerToolCfg, BeamPipeFieldManagerToolCfg, InDetFieldManagerToolCfg, MuonsOnlyInCaloFieldManagerToolCfg, MuonFieldManagerToolCfg, Q1FwdFieldMangerToolCfg, Q2FwdFieldMangerToolCfg, Q3FwdFieldMangerToolCfg, D1FwdFieldMangerToolCfg, D2FwdFieldMangerToolCfg, Q4FwdFieldMangerToolCfg, Q5FwdFieldMangerToolCfg, Q6FwdFieldMangerToolCfg, Q7FwdFieldMangerToolCfg, Q1HKickFwdFieldMangerToolCfg, Q1VKickFwdFieldMangerToolCfg, Q2HKickFwdFieldMangerToolCfg, Q2VKickFwdFieldMangerToolCfg, Q3HKickFwdFieldMangerToolCfg, Q3VKickFwdFieldMangerToolCfg, Q4VKickAFwdFieldMangerToolCfg, Q4HKickFwdFieldMangerToolCfg, Q4VKickBFwdFieldMangerToolCfg, Q5HKickFwdFieldMangerToolCfg,  Q6VKickFwdFieldMangerToolCfg, FwdRegionFieldMangerToolCfg
+"""ClassicFieldManagerToolCfg
+BasicDetectorFieldManagerToolCfg
+BasicFwdFieldMangerToolCfg"""
 
 def getATLAS_RegionCreatorList(ConfigFlags):
     regionCreatorList = []
@@ -21,23 +39,25 @@ def getATLAS_RegionCreatorList(ConfigFlags):
     from AthenaCommon.DetFlags import DetFlags
     from AthenaCommon.BeamFlags import jobproperties
     if ConfigFlags.Beam.Type == 'cosmics' or ConfigFlags.Sim.CavernBG != 'Signal':
-        regionCreatorList += ['SX1PhysicsRegionTool', 'BedrockPhysicsRegionTool', 'CavernShaftsConcretePhysicsRegionTool']
+        regionCreatorList += [SX1PhysicsRegionToolCfg(ConfigFlags), BedrockPhysicsRegionToolCfg(ConfigFlags), CavernShaftsConcretePhysicsRegionToolCfg(ConfigFlags)]
         #regionCreatorList += ['CavernShaftsAirPhysicsRegionTool'] # Not used currently
     if ConfigFlags.Detector.SimulateID:
         if ConfigFlags.Detector.SimulatePixel:
-            regionCreatorList += ['PixelPhysicsRegionTool']
+            regionCreatorList += [PixelPhysicsRegionToolCfg(ConfigFlags)]
         if ConfigFlags.Detector.SimulateSCT:
-            regionCreatorList += ['SCTPhysicsRegionTool']
+            regionCreatorList += [SCTPhysicsRegionToolCfg(ConfigFlags)]
         if ConfigFlags.Detector.SimulateTRT and not isUpgrade:
-            regionCreatorList += ['TRTPhysicsRegionTool']
+            regionCreatorList += [TRTPhysicsRegionToolCfg(ConfigFlags)]
             if isRUN2:
-                regionCreatorList += ['TRT_ArPhysicsRegionTool'] #'TRT_KrPhysicsRegionTool'
+                regionCreatorList += [TRT_ArPhysicsRegionToolCfg(ConfigFlags)] #'TRT_KrPhysicsRegionTool'
         # FIXME dislike the ordering here, but try to maintain the same ordering as in the old configuration.
         if ConfigFlags.Detector.SimulateBpipe:
-            if simFlags.BeamPipeSimMode.statusOn and simFlags.BeamPipeSimMode() != "Normal":
-                regionCreatorList += ['BeampipeFwdCutPhysicsRegionTool']
-            if simFlags.ForwardDetectors.statusOn and simFlags.ForwardDetectors() == 2:
-                regionCreatorList += ['FWDBeamLinePhysicsRegionTool']
+            #if simFlags.BeamPipeSimMode.statusOn and simFlags.BeamPipeSimMode() != "Normal":
+            if True:
+                regionCreatorList += [BeampipeFwdCutPhysicsRegionToolCfg(ConfigFlags)]
+            #if simFlags.ForwardDetectors.statusOn and simFlags.ForwardDetectors() == 2:
+            if True:
+                regionCreatorList += [FWDBeamLinePhysicsRegionToolCfg(ConfigFlags)]
     if ConfigFlags.Detector.SimulateCalo:
         if ConfigFlags.Detector.GeometryLAr:
             ## Shower parameterization overrides the calibration hit flag
@@ -48,24 +68,24 @@ def getATLAS_RegionCreatorList(ConfigFlags):
                 print '  Please try again with a different value of either simFlags.LArParameterization (' + str(simFlags.LArParameterization()) + ') or simFlags.CalibrationRun ('+str(ConfigFlags.Sim.CalibrationRun)+')'
                 raise RuntimeError('Configuration not allowed')
             if simFlags.LArParameterization() > 0:
-                regionCreatorList += ['EMBPhysicsRegionTool', 'EMECPhysicsRegionTool',
-                                      'HECPhysicsRegionTool', 'FCALPhysicsRegionTool']
+                regionCreatorList += [EMBPhysicsRegionTool(ConfigFlags), EMECPhysicsRegionTool(ConfigFlags),
+                                      HECPhysicsRegionTool(ConfigFlags), FCALPhysicsRegionTool(ConfigFlags)]
                 # FIXME 'EMBPhysicsRegionTool' used for parametrization also - do we need a second instance??
-                regionCreatorList += ['EMECParaPhysicsRegionTool',
-                                      'FCALParaPhysicsRegionTool', 'FCAL2ParaPhysicsRegionTool']
+                regionCreatorList += [EMECParaPhysicsRegionTool(ConfigFlags),
+                                      FCALParaPhysicsRegionTool(ConfigFlags), FCAL2ParaPhysicsRegionTool(ConfigFlags)]
                 if simFlags.LArParameterization.get_Value() > 1:
-                    regionCreatorList += ['PreSampLArPhysicsRegionTool', 'DeadMaterialPhysicsRegionTool']
+                    regionCreatorList += [PreSampLArPhysicsRegionTool(ConfigFlags), DeadMaterialPhysicsRegionTool(ConfigFlags)]
             elif simFlags.LArParameterization() is None or simFlags.LArParameterization() == 0:
-                regionCreatorList += ['EMBPhysicsRegionTool', 'EMECPhysicsRegionTool',
-                                      'HECPhysicsRegionTool', 'FCALPhysicsRegionTool']
+                regionCreatorList += [EMBPhysicsRegionTool(ConfigFlags), EMECPhysicsRegionTool(ConfigFlags),
+                                      HECPhysicsRegionTool(ConfigFlags), FCALPhysicsRegionTool(ConfigFlags)]
     ## FIXME _initPR never called for FwdRegion??
     #if simFlags.ForwardDetectors.statusOn:
     #    if DetFlags.geometry.FwdRegion_on():
     #        regionCreatorList += ['FwdRegionPhysicsRegionTool']
     if ConfigFlags.Detector.GeometryMuon:
-        regionCreatorList += ['DriftWallPhysicsRegionTool', 'DriftWall1PhysicsRegionTool', 'DriftWall2PhysicsRegionTool']
+        regionCreatorList += [DriftWallPhysicsRegionTool(ConfigFlags), DriftWall1PhysicsRegionTool(ConfigFlags), DriftWall2PhysicsRegionTool(ConfigFlags)]
         if ConfigFlags.Sim.CavernBG != 'Read' and not (simFlags.RecordFlux.statusOn and simFlags.RecordFlux()):
-            regionCreatorList += ['MuonSystemFastPhysicsRegionTool']
+            regionCreatorList += [MuonSystemFastPhysicsRegionTool(ConfigFlags)]
     return regionCreatorList
 
 #not called anywhere?
@@ -80,9 +100,9 @@ def getCTB_RegionCreatorList(ConfigFlags):
         eta=simFlags.Eta.get_Value()
         if eta>=0 and eta<1.201:
             if ConfigFlags.Detector.SimulateLAr:
-                regionCreatorList += ['EMBPhysicsRegionTool']
+                regionCreatorList += [EMBPhysicsRegionTool(ConfigFlags)]
     if ConfigFlags.Detector.SimulateMuon:
-        regionCreatorList += ['DriftWallPhysicsRegionTool', 'DriftWall1PhysicsRegionTool', 'DriftWall2PhysicsRegionTool']
+        regionCreatorList += [DriftWallPhysicsRegionTool(ConfigFlags), DriftWall1PhysicsRegionTool(ConfigFlags), DriftWall2PhysicsRegionTool(ConfigFlags)]
     return regionCreatorList
 
 def getTB_RegionCreatorList(ConfigFlags):
@@ -91,20 +111,20 @@ def getTB_RegionCreatorList(ConfigFlags):
 
     if (ConfigFlags.GeoModel.AtlasVersion=="tb_LArH6_2003"):
         if (ConfigFlags.Detector.SimulateLAr):
-            regionCreatorList += ['FCALPhysicsRegionTool']
+            regionCreatorList += [FCALPhysicsRegionTool(ConfigFlags)]
     elif (ConfigFlags.GeoModel.AtlasVersion=="tb_LArH6_2002"):
         if (ConfigFlags.Detector.SimulateLAr):
-            regionCreatorList += ['HECPhysicsRegionTool']
+            regionCreatorList += [HECPhysicsRegionTool(ConfigFlags)]
     elif (ConfigFlags.GeoModel.AtlasVersion=="tb_LArH6EC_2002"):
         if (ConfigFlags.Detector.SimulateLAr):
-            regionCreatorList += ['EMECPhysicsRegionTool']
+            regionCreatorList += [EMECPhysicsRegionTool(ConfigFlags)]
     elif (ConfigFlags.GeoModel.AtlasVersion=="tb_LArH6_2004"):
         if (simFlags.LArTB_H6Hec.get_Value()):
-            regionCreatorList += ['HECPhysicsRegionTool']
+            regionCreatorList += [HECPhysicsRegionTool(ConfigFlags)]
         if (simFlags.LArTB_H6Emec.get_Value()):
-            regionCreatorList += ['EMECPhysicsRegionTool']
+            regionCreatorList += [EMECPhysicsRegionTool(ConfigFlags)]
         if (simFlags.LArTB_H6Fcal.get_Value()):
-            regionCreatorList += ['FCALPhysicsRegionTool']
+            regionCreatorList += [FCALPhysicsRegionTool(ConfigFlags)]
     return regionCreatorList
 
 #########################################################################
@@ -186,42 +206,42 @@ def getATLAS_FieldMgrList(ConfigFlags):
     from G4AtlasApps.SimFlags import simFlags
     if not simFlags.TightMuonStepping.statusOn or\
        not simFlags.TightMuonStepping():
-        fieldMgrList += ['ATLASFieldManager']
+        fieldMgrList += [ATLASFieldManagerToolCfg(ConfigFlags)]
     else:
-        fieldMgrList += ['TightMuonsATLASFieldManager']
+        fieldMgrList += [TightMuonsATLASFieldManagerToolCfg(ConfigFlags)]
 
     from AthenaCommon.DetFlags import DetFlags
     if ConfigFlags.Detector.SimulateBpipe:
-        fieldMgrList += ['BeamPipeFieldManager']
+        fieldMgrList += [BeamPipeFieldManagerToolCfg(ConfigFlags)]
     if ConfigFlags.Detector.SimulateID:
-        fieldMgrList += ['InDetFieldManager']
+        fieldMgrList += [InDetFieldManagerToolCfg(ConfigFlags)]
     if ConfigFlags.Detector.SimulateCalo and simFlags.MuonFieldOnlyInCalo.statusOn and simFlags.MuonFieldOnlyInCalo():
-        fieldMgrList += ['MuonsOnlyInCaloFieldManager']
+        fieldMgrList += [MuonsOnlyInCaloFieldManager(ConfigFlags)]
     if ConfigFlags.Detector.SimulateMuon:
-        fieldMgrList += ['MuonFieldManager']
+        fieldMgrList += [MuonFieldManager(ConfigFlags)]
     if ConfigFlags.Detector.SimulateForward: #needed?
         if ConfigFlags.Detector.GeometryFwdRegion: #or forward?
-            fieldMgrList += ['Q1FwdFieldManager',
-                             'Q2FwdFieldManager',
-                             'Q3FwdFieldManager',
-                             'D1FwdFieldManager',
-                             'D2FwdFieldManager',
-                             'Q4FwdFieldManager',
-                             'Q5FwdFieldManager',
-                             'Q6FwdFieldManager',
-                             'Q7FwdFieldManager',
-                             'Q1HKickFwdFieldManager',
-                             'Q1VKickFwdFieldManager',
-                             'Q2HKickFwdFieldManager',
-                             'Q2VKickFwdFieldManager',
-                             'Q3HKickFwdFieldManager',
-                             'Q3VKickFwdFieldManager',
-                             'Q4VKickAFwdFieldManager',
-                             'Q4HKickFwdFieldManager',
-                             'Q4VKickBFwdFieldManager',
-                             'Q5HKickFwdFieldManager',
-                             'Q6VKickFwdFieldManager',
-                             'FwdRegionFieldManager']
+            fieldMgrList += [Q1FwdFieldManager(ConfigFlags),
+                             Q2FwdFieldManager(ConfigFlags),
+                             Q3FwdFieldManager(ConfigFlags),
+                             D1FwdFieldManager(ConfigFlags),
+                             D2FwdFieldManager(ConfigFlags),
+                             Q4FwdFieldManager(ConfigFlags),
+                             Q5FwdFieldManager(ConfigFlags),
+                             Q6FwdFieldManager(ConfigFlags),
+                             Q7FwdFieldManager(ConfigFlags),
+                             Q1HKickFwdFieldManager(ConfigFlags),
+                             Q1VKickFwdFieldManager(ConfigFlags),
+                             Q2HKickFwdFieldManager(ConfigFlags),
+                             Q2VKickFwdFieldManager(ConfigFlags),
+                             Q3HKickFwdFieldManager(ConfigFlags),
+                             Q3VKickFwdFieldManager(ConfigFlags),
+                             Q4VKickAFwdFieldManager(ConfigFlags),
+                             Q4HKickFwdFieldManager(ConfigFlags),
+                             Q4VKickBFwdFieldManager(ConfigFlags),
+                             Q5HKickFwdFieldManager(ConfigFlags),
+                             Q6VKickFwdFieldManager(ConfigFlags),
+                             FwdRegionFieldManager(ConfigFlags)]
     return fieldMgrList
 
 #called?
@@ -235,9 +255,9 @@ def getTB_FieldMgrList(ConfigFlags):
 
 def getGeometryConfigurationTools(ConfigFlags):
     geoConfigToolList = []
-    # CfgGetter methods for these tools should be defined in the
+    # The methods for these tools should be defined in the
     # package containing each tool, so G4AtlasTools in this case
-    geoConfigToolList += ["MaterialDescriptionTool"]
+    geoConfigToolList += [MaterialDescriptionToolCfg(ConfigFlags)]
     return geoConfigToolList
 
 def DetectorGeometrySvcCfg(ConfigFlags, name="DetectorGeometrySvc", **kwargs):
@@ -302,6 +322,13 @@ if __name__ == '__main__':
   inputDir = defaultTestFiles.d
   ConfigFlags.Input.Files = defaultTestFiles.EVNT
 
+
+  ConfigFlags.Detector.SimulateBpipe = True
+  ConfigFlags.Detector.SimulateID = True
+  ConfigFlags.Detector.SimulateCalo = True 
+  ConfigFlags.Detector.SimulateMuon = True
+  ConfigFlags.Detector.SimulateForward = True
+  ConfigFlags.Detector.GeometryFwdRegion = True
   # Finalize 
   ConfigFlags.lock()
 
-- 
GitLab