diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py index 7dca8ed764f072fef5950c60df8ffca214291fce..b4ffda3505ece725b83140c67cf028cbf1322e6e 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 ea47b1caa44a8694963986fc24a6dc0b274784b5..0855d849d2d6da8ae96e531ac43525981a96501f 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 565f012d89613e152bb12afe07202159f8830d5f..5ccf108e8cf19e65e5f6533ef33f3bcb0c00b207 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 5f12118948aba630f160b2e6239392b68711efd2..72c8ba01ac6fb9c02a5ed57e79d4ea849ff7bd64 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 af1410e7061c405852e6e4e84576b979711bd555..4ae69e455bb4b3379c4b1bbab33ef6e8fc62d9ea 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 3667cd72f069cc13dd55d9a7c0fb780eca7d98c3..a1300473ef91d3278d1fcf9962c716fe78bde872 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 71c978f8787661180a0f6f5a794cd2bfa7401bb2..80b16aff41d98c91cf8741e3af7b027a20e49ac4 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 0ebd5274a8156eb640406c73be95e5d2e60a8978..a791db8ec48534ca9d14fde3238da646dd2ac514 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 7a398acc7aeecc6172e53fd9e0485de761b80805..513b038d87d3ecafb753b10f433bb616bc2ec79d 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()):