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