diff --git a/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py b/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py index 38cd6ae3541edc145d942463bc3258f738b912d0..66193a60672b137d5af85bae4c301db216d1c6b7 100644 --- a/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py +++ b/AtlasGeometryCommon/SubDetectorEnvelopes/python/SubDetectorEnvelopesConfigNew.py @@ -26,8 +26,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs # setup fallback BeamPipeEnvelope BeamPipe = Volume() - if ConfigFlags.Detector.GeometryHGTD: - BeamPipe.addRZ( 34.3, 3420.0 ) + if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]: BeamPipe.addRZ( 34.3, 3545.0 ) BeamPipe.addRZ( 120.0, 3545.0 ) else: @@ -53,7 +52,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs # setup fallback IDEnvelope InDet = Volume() # InDet should include HGTD when it's turned on - if ConfigFlags.Detector.GeometryHGTD: + if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]: InDet.addRZ( 1148., 3545. ) InDet.addRZ( 34.3, 3545. ) else: @@ -66,7 +65,7 @@ def EnvelopeDefSvcCfg(ConfigFlags, name="AtlasGeometry_EnvelopeDefSvc", **kwargs # setup fallback CaloEnvelope Calo = Volume() - if ConfigFlags.Detector.GeometryHGTD: + if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]: Calo.addRZ( 1148.0, 3545.0 ) Calo.addRZ( 120.0, 3545.0 ) else: diff --git a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py index 5601cdb1aabf4249b969ada84c8ce7825941ad97..8a8990dc3077628d21d498ce94bea485b27087a9 100644 --- a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py +++ b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModel/python/HGTD_GeoModelConfig.py @@ -1,6 +1,6 @@ # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration -def HGTD_GeometryCfg(flags): +def HGTD_GeoModelCfg(flags): from AtlasGeoModel.GeoModelConfig import GeoModelCfg acc = GeoModelCfg(flags) geoModelSvc = acc.getPrimary() @@ -11,12 +11,18 @@ def HGTD_GeometryCfg(flags): hgtdDetectorTool.DetectorName = "HGTD" hgtdDetectorTool.PrintModuleNumberPerRow = False geoModelSvc.DetectorTools += [ hgtdDetectorTool ] - return acc + +def HGTD_SimulationGeometryCfg(flags): + # main GeoModel config + acc = HGTD_GeoModelCfg(flags) + return acc + + def HGTD_ReadoutGeometryCfg(flags): # main GeoModel config - acc = HGTD_GeometryCfg(flags) + acc = HGTD_GeoModelCfg(flags) from HGTD_ConditionsAlgorithms.HGTD_ConditionsAlgorithmsConfig import HGTD_DetectorElementCondAlgCfg acc.merge(HGTD_DetectorElementCondAlgCfg(flags)) return acc diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py index 0c5c994d33378f199cbf8b0db2a8eac885787811..5b1dcb8ce0e2e7537bed975eca0d0a4e0d9a4a25 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4GeometryToolConfig.py @@ -7,7 +7,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon import Logging #the physics region tools -from G4AtlasTools.G4PhysicsRegionConfigNew import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg +from G4AtlasTools.G4PhysicsRegionConfigNew import SX1PhysicsRegionToolCfg, BedrockPhysicsRegionToolCfg, CavernShaftsConcretePhysicsRegionToolCfg, PixelPhysicsRegionToolCfg, SCTPhysicsRegionToolCfg, TRTPhysicsRegionToolCfg, TRT_ArPhysicsRegionToolCfg,ITkPixelPhysicsRegionToolCfg,ITkStripPhysicsRegionToolCfg,HGTDPhysicsRegionToolCfg,BeampipeFwdCutPhysicsRegionToolCfg, FWDBeamLinePhysicsRegionToolCfg, EMBPhysicsRegionToolCfg, EMECPhysicsRegionToolCfg, HECPhysicsRegionToolCfg, FCALPhysicsRegionToolCfg, FCAL2ParaPhysicsRegionToolCfg, EMECParaPhysicsRegionToolCfg, FCALParaPhysicsRegionToolCfg, PreSampLArPhysicsRegionToolCfg, DeadMaterialPhysicsRegionToolCfg from G4AtlasTools.G4PhysicsRegionConfigNew import DriftWallPhysicsRegionToolCfg, DriftWall1PhysicsRegionToolCfg, DriftWall2PhysicsRegionToolCfg, MuonSystemFastPhysicsRegionToolCfg #the field config tools @@ -104,8 +104,8 @@ def ITkStripGeoDetectorToolCfg(ConfigFlags, name='ITkStrip', **kwargs): def HGTDGeoDetectorToolCfg(ConfigFlags, name='HGTD', **kwargs): #set up geometry - from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg - result = HGTD_GeometryCfg(ConfigFlags) + from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg + result = HGTD_SimulationGeometryCfg(ConfigFlags) kwargs.setdefault("DetectorName", "HGTD") #add the GeometryNotifierSvc result.addService(G4GeometryNotifierSvcCfg(ConfigFlags)) @@ -253,8 +253,8 @@ def ITKEnvelopeCfg(ConfigFlags, name="ITK", **kwargs): kwargs.setdefault("DetectorName", "ITK") kwargs.setdefault("InnerRadius", 32.15*mm) kwargs.setdefault("OuterRadius", 1.148*m) - if ConfigFlags.Detector.GeometryHGTD: - # ITk should include the HGTD (3420 mm < |z| < 3545 mm) when turned on + if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]: + # ITk should include the HGTD (3420 mm < |z| < 3545 mm) for now kwargs.setdefault("dZ", 354.5*cm) else: kwargs.setdefault("dZ", 347.5*cm) @@ -269,6 +269,10 @@ def ITKEnvelopeCfg(ConfigFlags, name="ITK", **kwargs): if ConfigFlags.Detector.GeometryPLR: toolPLR = result.popToolsAndMerge(PLRGeoDetectorToolCfg(ConfigFlags)) SubDetectorList += [toolPLR] + # TODO: for now HGTD is also here + if ConfigFlags.Detector.GeometryHGTD: + toolHGTD = result.popToolsAndMerge(HGTDGeoDetectorToolCfg(ConfigFlags)) + SubDetectorList += [toolHGTD] kwargs.setdefault("SubDetectors", SubDetectorList) result.setPrivateTools(CylindricalEnvelope(name, **kwargs)) @@ -310,8 +314,8 @@ def CALOEnvelopeCfg(ConfigFlags, name="CALO", **kwargs): kwargs.setdefault("NSurfaces", 18) kwargs.setdefault("InnerRadii", [41.,41.,41.,41.,41.,41.,120.,120.,1148.,1148.,120.,120.,41.,41.,41.,41.,41.,41.]) #FIXME Units? kwargs.setdefault("OuterRadii", [415.,415.,3795.,3795.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,4251.,3795.,3795.,415.,415.]) #FIXME Units? - if ConfigFlags.Detector.GeometryHGTD: - # Make room for HGTD (3420 mm < |z| < 3545 mm) when turned on + if ConfigFlags.GeoModel.Run not in ["RUN1", "RUN2", "RUN3"]: + # Make room for HGTD (3420 mm < |z| < 3545 mm) kwargs.setdefault("ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3545.,-3545.,3545.,3545.,4587.,4587.,6530.,6530.,6747.,6747.,6781.]) #FIXME Units? else: kwargs.setdefault("ZSurfaces", [-6781.,-6747.,-6747.,-6530.,-6530.,-4587.,-4587.,-3475.,-3475.,3475.,3475.,4587.,4587.,6530.,6530.,6747.,6747.,6781.]) #FIXME Units? @@ -399,12 +403,9 @@ def generateSubDetectorList(ConfigFlags): if ConfigFlags.Detector.GeometryID: toolIDET = result.popToolsAndMerge(IDETEnvelopeCfg(ConfigFlags)) SubDetectorList += [ toolIDET ] - if ConfigFlags.Detector.GeometryITk: + if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD: # TODO: HGTD is also here for now toolITK = result.popToolsAndMerge(ITKEnvelopeCfg(ConfigFlags)) SubDetectorList += [ toolITK ] - if ConfigFlags.Detector.GeometryHGTD: - toolHGTD = result.popToolsAndMerge(HGTDGeoDetectorToolCfg(ConfigFlags)) - SubDetectorList += [ toolHGTD ] if ConfigFlags.Detector.GeometryCalo: toolCALO = result.popToolsAndMerge(CALOEnvelopeCfg(ConfigFlags)) SubDetectorList += [ toolCALO ] @@ -552,9 +553,12 @@ def getATLAS_RegionCreatorList(ConfigFlags): regionCreatorList += [FWDBeamLinePhysicsRegionToolCfg(ConfigFlags)] if ConfigFlags.Detector.GeometryITk: if ConfigFlags.Detector.GeometryITkPixel: - regionCreatorList += [ITkPixelPhysicsRegionToolCfg(ConfigFlags)] #TODO: add dedicated config + regionCreatorList += [ITkPixelPhysicsRegionToolCfg(ConfigFlags)] if ConfigFlags.Detector.GeometryITkStrip: - regionCreatorList += [ITkStripPhysicsRegionToolCfg(ConfigFlags)] #TODO: And here... + regionCreatorList += [ITkStripPhysicsRegionToolCfg(ConfigFlags)] + if ConfigFlags.Detector.GeometryHGTD: + regionCreatorList += [HGTDPhysicsRegionToolCfg(ConfigFlags)] + if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD: # TODO: I do not know why this is only for ITk (and HGTD) # FIXME dislike the ordering here, but try to maintain the same ordering as in the old configuration. if ConfigFlags.Detector.GeometryBpipe: if ConfigFlags.Sim.BeamPipeSimMode != "Normal": @@ -643,7 +647,7 @@ def ATLAS_FieldMgrListCfg(ConfigFlags): acc = InDetFieldManagerToolCfg(ConfigFlags) tool = result.popToolsAndMerge(acc) fieldMgrList += [tool] - if ConfigFlags.Detector.GeometryITk: + if ConfigFlags.Detector.GeometryITk or ConfigFlags.Detector.GeometryHGTD: # TODO: while HGTD is included in the ITK envelope acc = ITkFieldManagerToolCfg(ConfigFlags) tool = result.popToolsAndMerge(acc) fieldMgrList += [tool] diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py index 32ec5769d1f7c46e6a26fa46967151d931310c64..e4f1d209fb60ae4472498ccdda80088701d4c3a2 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4PhysicsRegionConfigNew.py @@ -99,8 +99,18 @@ def ITkPixelPhysicsRegionToolCfg(ConfigFlags, name='ITkPixelPhysicsRegionTool', def ITkStripPhysicsRegionToolCfg(ConfigFlags, name='ITkStripPhysicsRegionTool', **kwargs): kwargs.setdefault("RegionName", 'ITkStrip') volumeList = ['ITkStrip::BRLSensorSS', 'ITkStrip::BRLSensorMS', - 'ITkStrip::ECSensor0', 'ITkStrip::ECSensor1', 'ITkStrip::ECSensor2', - 'ITkStrip::ECSensor3', 'ITkStrip::ECSensor4', 'ITkStrip::ECSensor5'] + 'ITkStrip::ECSensor0', 'ITkStrip::ECSensor1', 'ITkStrip::ECSensor2', + 'ITkStrip::ECSensor3', 'ITkStrip::ECSensor4', 'ITkStrip::ECSensor5'] + kwargs.setdefault("VolumeList", volumeList) + kwargs.setdefault("ElectronCut", 0.05) + kwargs.setdefault("PositronCut", 0.05) + kwargs.setdefault("GammaCut", 0.05) + return RegionCreator(name, **kwargs) + +def HGTDPhysicsRegionToolCfg(ConfigFlags, name='HGTDPhysicsRegionTool', **kwargs): + kwargs.setdefault("RegionName", 'HGTD') + volumeList = ['HGTD::HGTDSiSensor0', 'HGTD::HGTDSiSensor1', + 'HGTD::HGTDSiSensor2', 'HGTD::HGTDSiSensor3'] kwargs.setdefault("VolumeList", volumeList) kwargs.setdefault("ElectronCut", 0.05) kwargs.setdefault("PositronCut", 0.05) diff --git a/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py b/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py index 8e02fc05a91290842863dc5a4d1cf7e0474173df..f11ab1931086ee1e41e58cfba5775c145d64aec5 100644 --- a/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py +++ b/Simulation/SimuJobTransforms/python/RDOMerge_Skeleton.py @@ -80,8 +80,8 @@ def fromRunArgs(runArgs): cfg.merge(ITkStripReadoutGeometryCfg(ConfigFlags)) if ConfigFlags.Detector.EnableHGTD: - from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg - cfg.merge(HGTD_GeometryCfg(ConfigFlags)) + from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg + cfg.merge(HGTD_ReadoutGeometryCfg(ConfigFlags)) if ConfigFlags.Detector.EnableLAr: from LArGeoAlgsNV.LArGMConfig import LArGMCfg diff --git a/Simulation/SimuJobTransforms/python/SimOutputConfig.py b/Simulation/SimuJobTransforms/python/SimOutputConfig.py index 6a2d7e6643a78dbae85d0c54e0d99c3cc9e17512..6da1a3497c6b89b4328356338532b6636a8e80f8 100644 --- a/Simulation/SimuJobTransforms/python/SimOutputConfig.py +++ b/Simulation/SimuJobTransforms/python/SimOutputConfig.py @@ -31,7 +31,8 @@ def getStreamHITS_ItemList(ConfigFlags): "xAOD::TruthParticleAuxContainer#TruthPileupParticlesAux."] if ConfigFlags.Detector.EnablePixel or ConfigFlags.Detector.EnableSCT or \ - ConfigFlags.Detector.EnableITkPixel or ConfigFlags.Detector.EnableITkStrip or ConfigFlags.Detector.EnablePLR: + ConfigFlags.Detector.EnableITkPixel or ConfigFlags.Detector.EnableITkStrip or ConfigFlags.Detector.EnablePLR or \ + ConfigFlags.Detector.EnableHGTD: ItemList += ["SiHitCollection#*"] if ConfigFlags.Detector.EnableTRT: diff --git a/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py b/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py index 59bce4a93f08bd4c8ad0c41f07fda24e66fec5ba..7875998cc3aa72f2ce99f8c6f5fd1fe8454a1bcd 100644 --- a/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py +++ b/Simulation/Tools/HitAnalysis/python/SiHitAnalysis.py @@ -45,8 +45,8 @@ def ITkStripHitAnalysisCfg(flags): def HGTD_HitAnalysisCfg(flags): - from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_GeometryCfg - acc = HGTD_GeometryCfg(flags) + from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_SimulationGeometryCfg + acc = HGTD_SimulationGeometryCfg(flags) alg = CompFactory.SiHitAnalysis('HGTD_HitAnalysis') alg.CollectionName = 'HGTD_Hits'