From 7a58162403656c6cc3088f342d67a1a2113b8eff Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Tue, 11 Apr 2017 13:40:15 +0200 Subject: [PATCH] Creating new StandardInTimeOnlyGeantinoTruth configuration for digitization A new digiSteeringConf is required to configure digitization to write out SDOs linked to Geantinos when in-time Geantino pile-up truth is saved. Fixes ATLASSIM-3193 Former-commit-id: 38915bd5ea8678d9d361db09c0c35b4bdc07ed79 --- .../python/PixelDigitizationConfig.py | 4 ++ .../python/PixelDigitizationConfigDb.py | 1 + .../python/SCT_DigitizationConfig.py | 6 +++ .../python/SCT_DigitizationConfigDb.py | 1 + .../python/TRT_DigitizationConfig.py | 4 ++ .../python/TRT_DigitizationConfigDb.py | 1 + .../Digitization/python/DigiAlgConfig.py | 37 +++++++++++++++++++ .../python/DigitizationConfigDb.py | 1 + .../python/DigitizationWriteMetaData.py | 2 +- 9 files changed, 56 insertions(+), 1 deletion(-) diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py index 7dca8ed764f..b4ffda3505e 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py +++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py @@ -205,6 +205,10 @@ def PixelDigitizationTool(name="PixelDigitizationTool", **kwargs): conddb.addFolder('PIXEL_OFL','/PIXEL/PixReco') return BasicPixelDigitizationTool(name, **kwargs) +def PixelGeantinoTruthDigitizationTool(name="PixelGeantinoTruthDigitizationTool", **kwargs): + kwargs.setdefault("ParticleBarcodeVeto", 0) + return PixelDigitizationTool(name, **kwargs) + def PixelDigitizationToolHS(name="PixelDigitizationToolHS", **kwargs): kwargs.setdefault("HardScatterSplittingMode", 1) return BasicPixelDigitizationTool(name, **kwargs) diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py index ea47b1caa44..0855d849d2d 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py +++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigDb.py @@ -3,6 +3,7 @@ from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationTool", "PixelDigitizationTool") +addTool("PixelDigitization.PixelDigitizationConfig.PixelGeantinoTruthDigitizationTool", "PixelGeantinoTruthDigitizationTool") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolHS", "PixelDigitizationToolHS") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolPU", "PixelDigitizationToolPU") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolSplitNoMergePU", "PixelDigitizationToolSplitNoMergePU") diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py index 565f012d896..5ccf108e8cf 100644 --- a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py +++ b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfig.py @@ -243,6 +243,12 @@ def SCT_DigitizationTool(name="SCT_DigitizationTool", **kwargs): ###################################################################################### +def SCT_GeantinoTruthDigitizationTool(name="SCT_GeantinoTruthDigitizationTool", **kwargs): + kwargs.setdefault("ParticleBarcodeVeto", 0) + return SCT_DigitizationTool(name,**kwargs) + +###################################################################################### + def SCT_DigitizationToolHS(name="SCT_DigitizationToolHS",**kwargs): kwargs.setdefault("OutputObjectName", "SCT_RDOs") kwargs.setdefault("OutputSDOName", "SCT_SDO_Map") diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py index 5f12118948a..72c8ba01ac6 100644 --- a/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py +++ b/InnerDetector/InDetDigitization/SCT_Digitization/python/SCT_DigitizationConfigDb.py @@ -2,6 +2,7 @@ from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationTool" , "SCT_DigitizationTool") +addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_GeantinoTruthDigitizationTool" , "SCT_GeantinoTruthDigitizationTool") addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolHS" , "SCT_DigitizationToolHS") addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolPU" , "SCT_DigitizationToolPU") addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolSplitNoMergePU", "SCT_DigitizationToolSplitNoMergePU") diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py index af1410e7061..4ae69e455bb 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py +++ b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py @@ -93,6 +93,10 @@ def TRTDigitizationTool(name="TRTDigitizationTool",**kwargs): kwargs.setdefault("HardScatterSplittingMode", 0) return BasicTRTDigitizationTool(name,**kwargs) +def TRTGeantinoTruthDigitizationTool(name="TRTGeantinoTruthDigitizationTool",**kwargs): + kwargs.setdefault("ParticleBarcodeVeto", 0) + return TRTDigitizationTool(name,**kwargs) + def TRTDigitizationToolHS(name="TRTDigitizationToolHS",**kwargs): kwargs.setdefault("OutputObjectName", "TRT_RDOs") kwargs.setdefault("OutputSDOName", "TRT_SDO_Map") diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py index 3667cd72f06..a1300473ef9 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py +++ b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfigDb.py @@ -3,6 +3,7 @@ from AthenaCommon.CfgGetter import addTool, addAlgorithm addTool("TRT_Digitization.TRT_DigitizationConfig.getTRTRange" , "TRTRange") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationTool" , "TRTDigitizationTool") +addTool("TRT_Digitization.TRT_DigitizationConfig.TRTGeantinoTruthDigitizationTool" , "TRTGeantinoTruthDigitizationTool") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolHS" , "TRTDigitizationToolHS") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolPU" , "TRTDigitizationToolPU") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolSplitNoMergePU", "TRTDigitizationToolSplitNoMergePU") diff --git a/Simulation/Digitization/python/DigiAlgConfig.py b/Simulation/Digitization/python/DigiAlgConfig.py index 71c978f8787..80b16aff41d 100644 --- a/Simulation/Digitization/python/DigiAlgConfig.py +++ b/Simulation/Digitization/python/DigiAlgConfig.py @@ -99,6 +99,23 @@ def getStandardInDetPileUpTools(): PileUpToolsList += [ "TRTDigitizationTool" ] return PileUpToolsList +def getGeantinoTruthInDetPileUpTools(): + from AthenaCommon.DetFlags import DetFlags + from Digitization.DigitizationFlags import digitizationFlags + PileUpToolsList = [] + unsupportedKeys = ['doFastPixelDigi', 'doLightPixelDigi', 'doSmearedPixelDigi', 'doFastSCT_Digi', 'doFastTRT_Digi'] + if not set(unsupportedKeys).isdisjoint(set(digitizationFlags.experimentalDigi())): + print "DigiAlgConfig.py ERROR The following digitizationFlags.experimentalDigi settings are not supported when digiSteeringConf is set to", digitizationFlags.digitSteeringConf.get_Value(), ": ", str(unsupportedKeys), " and will be ignored." + if DetFlags.digitize.BCM_on(): + PileUpToolsList += [ "BCM_DigitizationTool" ] + if DetFlags.digitize.pixel_on(): + PileUpToolsList += [ "PixelGeantinoTruthDigitizationTool" ] + if DetFlags.digitize.SCT_on(): + PileUpToolsList += [ "SCT_GeantinoTruthDigitizationTool" ] + if DetFlags.digitize.TRT_on(): + PileUpToolsList += [ "TRTGeantinoTruthDigitizationTool" ] + return PileUpToolsList + def getFastInDetPileUpTools(): from AthenaCommon.DetFlags import DetFlags PileUpToolsList = [] @@ -280,6 +297,22 @@ def getStandardInTimeOnlyTruthPileUpToolsList(): PileUpToolsList += [ "MergeRecoTimingObjTool" ] return PileUpToolsList +def getStandardInTimeOnlyGeantinoTruthPileUpToolsList(): + PileUpToolsList = [] + ## Truth information + PileUpToolsList += getStandardInTimeOnlyTruthPileUpTools() + ## Forward Detector Digitization + PileUpToolsList += getStandardForwardPileUpTools() + ## Inner Detector Digitization + PileUpToolsList += getGeantinoTruthInDetPileUpTools() + ## Calo Digitization + PileUpToolsList += getStandardCaloPileUpTools() + ## Muon System Digitization + PileUpToolsList += getStandardMuonPileUpTools() + ## RecoTimingObj + PileUpToolsList += [ "MergeRecoTimingObjTool" ] + return PileUpToolsList + def getFastPileUpToolsList(): PileUpToolsList = [] ## Truth information @@ -400,6 +433,10 @@ def getStandardInTimeOnlyTruthPileUpToolsAlg(name="StandardInTimeOnlyTruthPileUp kwargs.setdefault('PileUpTools', getStandardInTimeOnlyTruthPileUpToolsList() ) return getStandardPileUpToolsAlg(name, **kwargs) +def getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg(name="StandardInTimeOnlyGeantinoTruthPileUpToolsAlg", **kwargs): + kwargs.setdefault('PileUpTools', getStandardInTimeOnlyGeantinoTruthPileUpToolsList() ) + return getStandardPileUpToolsAlg(name, **kwargs) + def getSplitNoMergePileUpToolsAlg(name="SplitNoMergePileUpToolsAlg", **kwargs): kwargs.setdefault('PileUpTools', getSplitNoMergePileUpToolsList() ) return getStandardPileUpToolsAlg(name, **kwargs) diff --git a/Simulation/Digitization/python/DigitizationConfigDb.py b/Simulation/Digitization/python/DigitizationConfigDb.py index 0ebd5274a81..a791db8ec48 100644 --- a/Simulation/Digitization/python/DigitizationConfigDb.py +++ b/Simulation/Digitization/python/DigitizationConfigDb.py @@ -32,6 +32,7 @@ addAlgorithm("Digitization.DigiAlgConfig.getFastPileUpToolsAlg" , "FastPile addAlgorithm("Digitization.DigiAlgConfig.getSplitPileUpToolsAlg" , "SplitPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardSignalOnlyTruthPileUpToolsAlg" , "StandardSignalOnlyTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyTruthPileUpToolsAlg" , "StandardInTimeOnlyTruthPileUpToolsAlg") +addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg" , "StandardInTimeOnlyGeantinoTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergePileUpToolsAlg" , "SplitNoMergePileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeSFPileUpToolsAlg" , "SplitNoMergeSFPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeFSPileUpToolsAlg" , "SplitNoMergeFSPileUpToolsAlg") diff --git a/Simulation/Digitization/python/DigitizationWriteMetaData.py b/Simulation/Digitization/python/DigitizationWriteMetaData.py index 7a398acc7ae..513b038d87d 100644 --- a/Simulation/Digitization/python/DigitizationWriteMetaData.py +++ b/Simulation/Digitization/python/DigitizationWriteMetaData.py @@ -76,7 +76,7 @@ def writeDigitizationMetadata(): "initialBunchCrossing", "finalBunchCrossing", "FixedT0BunchCrossing", "doLowPtMinimumBias", "doHighPtMinimumBias", "doCavern", "doBeamGas", "doBeamHalo", - "rndmSvc", "physicsList", "overrideMetadata","pileupDSID"] + "rndmSvc", "physicsList", "overrideMetadata","pileupDSID","digiSteeringConf"] #"readSeedsFromFile", "rndmSeedInputFile", from Digitization.DigitizationFlags import digitizationFlags if (not ModifyingEventIdBySvc()): -- GitLab