From cb7ab0b458aef3ccf655b2fce600a1a476654f96 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Wed, 20 Jun 2018 14:30:30 +0200 Subject: [PATCH] Fix SplitPileUpToolsAlg and add SplitSFPileUpToolsAlg Adding the missing conditions folder configuration to the `PixelDigitizationToolHS` `CfgGetter` method. This fixes running digitization with the `SplitPileUpToolsAlg`. This runs full digitization for both pile-up and hard-scatter. Then added a new configuration called `SplitSFPileUpToolsAlg` which runs full digitization for hard-scatter and fast digitization for pile-up. These changes are part of the work for ATLASSIM-3737. Former-commit-id: 86cde12241b0399c48762844a0a86dde93e6b5be --- .../Digitization/python/DigiAlgConfig.py | 36 +++++++++++++++++++ Simulation/Digitization/python/DigiOutput.py | 2 +- .../python/DigitizationConfigDb.py | 1 + 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Simulation/Digitization/python/DigiAlgConfig.py b/Simulation/Digitization/python/DigiAlgConfig.py index ae61ae9f968..cbac1ef3a7f 100644 --- a/Simulation/Digitization/python/DigiAlgConfig.py +++ b/Simulation/Digitization/python/DigiAlgConfig.py @@ -179,6 +179,22 @@ def getSplitInDetPileUpTools(): PileUpToolsList += [ "TRTDigitizationToolPU" ] return PileUpToolsList +def getSplitSFInDetPileUpTools(): + from AthenaCommon.DetFlags import DetFlags + PileUpToolsList = [] + if DetFlags.digitize.BCM_on(): + PileUpToolsList += [ "BCM_DigitizationTool" ] + if DetFlags.digitize.pixel_on(): + PileUpToolsList += [ "PixelDigitizationToolHS" ] + PileUpToolsList += [ "PixelFastDigitizationToolPU" ] + if DetFlags.digitize.SCT_on(): + PileUpToolsList += [ "SCT_DigitizationToolHS" ] + PileUpToolsList += [ "SCT_FastDigitizationToolPU" ] + if DetFlags.digitize.TRT_on(): + PileUpToolsList += [ "TRTDigitizationToolHS" ] + PileUpToolsList += [ "TRTFastDigitizationToolPU" ] + return PileUpToolsList + def getSplitNoMergeInDetPileUpTools(): """ This is for testing the fast chain with full digitization in split PU mode without merging pileup @@ -379,6 +395,22 @@ def getSplitPileUpToolsList(): PileUpToolsList += [ "MergeRecoTimingObjTool" ] return PileUpToolsList +def getSplitSFPileUpToolsList(): + PileUpToolsList = [] + ## Truth information + PileUpToolsList += getStandardTruthPileUpTools() + ## Forward Detector Digitization + PileUpToolsList += getStandardForwardPileUpTools() + ## Inner Detector Digitization - non-standard + PileUpToolsList += getSplitSFInDetPileUpTools() + ## Calo Digitization + PileUpToolsList += getStandardCaloPileUpTools() + ## Muon System Digitization + PileUpToolsList += getStandardMuonPileUpTools() + ## RecoTimingObj + PileUpToolsList += [ "MergeRecoTimingObjTool" ] + return PileUpToolsList + def getSplitNoMergePileUpToolsList(): PileUpToolsList = [] ## Truth information @@ -459,6 +491,10 @@ def getSplitPileUpToolsAlg(name="SplitPileUpToolsAlg", **kwargs): kwargs.setdefault('PileUpTools', getSplitPileUpToolsList() ) return getStandardPileUpToolsAlg(name, **kwargs) +def getSplitSFPileUpToolsAlg(name="SplitSFPileUpToolsAlg", **kwargs): + kwargs.setdefault('PileUpTools', getSplitSFPileUpToolsList() ) + return getStandardPileUpToolsAlg(name, **kwargs) + def getStandardSignalOnlyTruthPileUpToolsAlg(name="StandardSignalOnlyTruthPileUpToolsAlg", **kwargs): kwargs.setdefault('PileUpTools', getStandardSignalOnlyTruthPileUpToolsList() ) return getStandardPileUpToolsAlg(name, **kwargs) diff --git a/Simulation/Digitization/python/DigiOutput.py b/Simulation/Digitization/python/DigiOutput.py index 0b4f1521e7f..08e7afa1766 100644 --- a/Simulation/Digitization/python/DigiOutput.py +++ b/Simulation/Digitization/python/DigiOutput.py @@ -34,7 +34,7 @@ def getStreamRDO_ItemList(log): if standardDigiConfig(): noFastDigi = set(keys).isdisjoint(set(digitizationFlags.experimentalDigi())) else: - noFastDigi = set(['SplitNoMergeFFPileUpToolsAlg', 'SplitNoMergeSFPileUpToolsAlg', 'SplitNoMergeFSPileUpToolsAlg', 'FastPileUpToolsAlg']).isdisjoint(set([digitizationFlags.digiSteeringConf.get_Value()])) + noFastDigi = set(['SplitNoMergeFFPileUpToolsAlg', 'SplitNoMergeSFPileUpToolsAlg', 'SplitNoMergeFSPileUpToolsAlg', 'FastPileUpToolsAlg', 'SplitSFPileUpToolsAlg']).isdisjoint(set([digitizationFlags.digiSteeringConf.get_Value()])) return not noFastDigi def fastPixelDigiOutputExpected(): diff --git a/Simulation/Digitization/python/DigitizationConfigDb.py b/Simulation/Digitization/python/DigitizationConfigDb.py index a791db8ec48..e95e5364e89 100644 --- a/Simulation/Digitization/python/DigitizationConfigDb.py +++ b/Simulation/Digitization/python/DigitizationConfigDb.py @@ -30,6 +30,7 @@ addService("Digitization.PileUpConfig.getPileUpEventLoopMgr" , "PileUpEv addAlgorithm("Digitization.DigiAlgConfig.getStandardPileUpToolsAlg" , "StandardPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getFastPileUpToolsAlg" , "FastPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitPileUpToolsAlg" , "SplitPileUpToolsAlg") +addAlgorithm("Digitization.DigiAlgConfig.getSplitSFPileUpToolsAlg" , "SplitSFPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardSignalOnlyTruthPileUpToolsAlg" , "StandardSignalOnlyTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyTruthPileUpToolsAlg" , "StandardInTimeOnlyTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg" , "StandardInTimeOnlyGeantinoTruthPileUpToolsAlg") -- GitLab