Skip to content
Snippets Groups Projects
Commit 7a581624 authored by John Chapman's avatar John Chapman
Browse files

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: 38915bd5
parent 0ace30c7
No related merge requests found
Showing with 56 additions and 1 deletion
...@@ -205,6 +205,10 @@ def PixelDigitizationTool(name="PixelDigitizationTool", **kwargs): ...@@ -205,6 +205,10 @@ def PixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
conddb.addFolder('PIXEL_OFL','/PIXEL/PixReco') conddb.addFolder('PIXEL_OFL','/PIXEL/PixReco')
return BasicPixelDigitizationTool(name, **kwargs) return BasicPixelDigitizationTool(name, **kwargs)
def PixelGeantinoTruthDigitizationTool(name="PixelGeantinoTruthDigitizationTool", **kwargs):
kwargs.setdefault("ParticleBarcodeVeto", 0)
return PixelDigitizationTool(name, **kwargs)
def PixelDigitizationToolHS(name="PixelDigitizationToolHS", **kwargs): def PixelDigitizationToolHS(name="PixelDigitizationToolHS", **kwargs):
kwargs.setdefault("HardScatterSplittingMode", 1) kwargs.setdefault("HardScatterSplittingMode", 1)
return BasicPixelDigitizationTool(name, **kwargs) return BasicPixelDigitizationTool(name, **kwargs)
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm
addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationTool", "PixelDigitizationTool") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationTool", "PixelDigitizationTool")
addTool("PixelDigitization.PixelDigitizationConfig.PixelGeantinoTruthDigitizationTool", "PixelGeantinoTruthDigitizationTool")
addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolHS", "PixelDigitizationToolHS") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolHS", "PixelDigitizationToolHS")
addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolPU", "PixelDigitizationToolPU") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolPU", "PixelDigitizationToolPU")
addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolSplitNoMergePU", "PixelDigitizationToolSplitNoMergePU") addTool("PixelDigitization.PixelDigitizationConfig.PixelDigitizationToolSplitNoMergePU", "PixelDigitizationToolSplitNoMergePU")
......
...@@ -243,6 +243,12 @@ def SCT_DigitizationTool(name="SCT_DigitizationTool", **kwargs): ...@@ -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): def SCT_DigitizationToolHS(name="SCT_DigitizationToolHS",**kwargs):
kwargs.setdefault("OutputObjectName", "SCT_RDOs") kwargs.setdefault("OutputObjectName", "SCT_RDOs")
kwargs.setdefault("OutputSDOName", "SCT_SDO_Map") kwargs.setdefault("OutputSDOName", "SCT_SDO_Map")
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm from AthenaCommon.CfgGetter import addTool,addService,addAlgorithm
addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationTool" , "SCT_DigitizationTool") 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_DigitizationToolHS" , "SCT_DigitizationToolHS")
addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolPU" , "SCT_DigitizationToolPU") addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolPU" , "SCT_DigitizationToolPU")
addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolSplitNoMergePU", "SCT_DigitizationToolSplitNoMergePU") addTool("SCT_Digitization.SCT_DigitizationConfig.SCT_DigitizationToolSplitNoMergePU", "SCT_DigitizationToolSplitNoMergePU")
......
...@@ -93,6 +93,10 @@ def TRTDigitizationTool(name="TRTDigitizationTool",**kwargs): ...@@ -93,6 +93,10 @@ def TRTDigitizationTool(name="TRTDigitizationTool",**kwargs):
kwargs.setdefault("HardScatterSplittingMode", 0) kwargs.setdefault("HardScatterSplittingMode", 0)
return BasicTRTDigitizationTool(name,**kwargs) return BasicTRTDigitizationTool(name,**kwargs)
def TRTGeantinoTruthDigitizationTool(name="TRTGeantinoTruthDigitizationTool",**kwargs):
kwargs.setdefault("ParticleBarcodeVeto", 0)
return TRTDigitizationTool(name,**kwargs)
def TRTDigitizationToolHS(name="TRTDigitizationToolHS",**kwargs): def TRTDigitizationToolHS(name="TRTDigitizationToolHS",**kwargs):
kwargs.setdefault("OutputObjectName", "TRT_RDOs") kwargs.setdefault("OutputObjectName", "TRT_RDOs")
kwargs.setdefault("OutputSDOName", "TRT_SDO_Map") kwargs.setdefault("OutputSDOName", "TRT_SDO_Map")
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
from AthenaCommon.CfgGetter import addTool, addAlgorithm from AthenaCommon.CfgGetter import addTool, addAlgorithm
addTool("TRT_Digitization.TRT_DigitizationConfig.getTRTRange" , "TRTRange") addTool("TRT_Digitization.TRT_DigitizationConfig.getTRTRange" , "TRTRange")
addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationTool" , "TRTDigitizationTool") 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.TRTDigitizationToolHS" , "TRTDigitizationToolHS")
addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolPU" , "TRTDigitizationToolPU") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolPU" , "TRTDigitizationToolPU")
addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolSplitNoMergePU", "TRTDigitizationToolSplitNoMergePU") addTool("TRT_Digitization.TRT_DigitizationConfig.TRTDigitizationToolSplitNoMergePU", "TRTDigitizationToolSplitNoMergePU")
......
...@@ -99,6 +99,23 @@ def getStandardInDetPileUpTools(): ...@@ -99,6 +99,23 @@ def getStandardInDetPileUpTools():
PileUpToolsList += [ "TRTDigitizationTool" ] PileUpToolsList += [ "TRTDigitizationTool" ]
return PileUpToolsList 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(): def getFastInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = [] PileUpToolsList = []
...@@ -280,6 +297,22 @@ def getStandardInTimeOnlyTruthPileUpToolsList(): ...@@ -280,6 +297,22 @@ def getStandardInTimeOnlyTruthPileUpToolsList():
PileUpToolsList += [ "MergeRecoTimingObjTool" ] PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList 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(): def getFastPileUpToolsList():
PileUpToolsList = [] PileUpToolsList = []
## Truth information ## Truth information
...@@ -400,6 +433,10 @@ def getStandardInTimeOnlyTruthPileUpToolsAlg(name="StandardInTimeOnlyTruthPileUp ...@@ -400,6 +433,10 @@ def getStandardInTimeOnlyTruthPileUpToolsAlg(name="StandardInTimeOnlyTruthPileUp
kwargs.setdefault('PileUpTools', getStandardInTimeOnlyTruthPileUpToolsList() ) kwargs.setdefault('PileUpTools', getStandardInTimeOnlyTruthPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs) return getStandardPileUpToolsAlg(name, **kwargs)
def getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg(name="StandardInTimeOnlyGeantinoTruthPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getStandardInTimeOnlyGeantinoTruthPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitNoMergePileUpToolsAlg(name="SplitNoMergePileUpToolsAlg", **kwargs): def getSplitNoMergePileUpToolsAlg(name="SplitNoMergePileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitNoMergePileUpToolsList() ) kwargs.setdefault('PileUpTools', getSplitNoMergePileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs) return getStandardPileUpToolsAlg(name, **kwargs)
......
...@@ -32,6 +32,7 @@ addAlgorithm("Digitization.DigiAlgConfig.getFastPileUpToolsAlg" , "FastPile ...@@ -32,6 +32,7 @@ addAlgorithm("Digitization.DigiAlgConfig.getFastPileUpToolsAlg" , "FastPile
addAlgorithm("Digitization.DigiAlgConfig.getSplitPileUpToolsAlg" , "SplitPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitPileUpToolsAlg" , "SplitPileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getStandardSignalOnlyTruthPileUpToolsAlg" , "StandardSignalOnlyTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardSignalOnlyTruthPileUpToolsAlg" , "StandardSignalOnlyTruthPileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyTruthPileUpToolsAlg" , "StandardInTimeOnlyTruthPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyTruthPileUpToolsAlg" , "StandardInTimeOnlyTruthPileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getStandardInTimeOnlyGeantinoTruthPileUpToolsAlg" , "StandardInTimeOnlyGeantinoTruthPileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergePileUpToolsAlg" , "SplitNoMergePileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergePileUpToolsAlg" , "SplitNoMergePileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeSFPileUpToolsAlg" , "SplitNoMergeSFPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeSFPileUpToolsAlg" , "SplitNoMergeSFPileUpToolsAlg")
addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeFSPileUpToolsAlg" , "SplitNoMergeFSPileUpToolsAlg") addAlgorithm("Digitization.DigiAlgConfig.getSplitNoMergeFSPileUpToolsAlg" , "SplitNoMergeFSPileUpToolsAlg")
......
...@@ -76,7 +76,7 @@ def writeDigitizationMetadata(): ...@@ -76,7 +76,7 @@ def writeDigitizationMetadata():
"initialBunchCrossing", "finalBunchCrossing", "FixedT0BunchCrossing", "initialBunchCrossing", "finalBunchCrossing", "FixedT0BunchCrossing",
"doLowPtMinimumBias", "doHighPtMinimumBias", "doLowPtMinimumBias", "doHighPtMinimumBias",
"doCavern", "doBeamGas", "doBeamHalo", "doCavern", "doBeamGas", "doBeamHalo",
"rndmSvc", "physicsList", "overrideMetadata","pileupDSID"] "rndmSvc", "physicsList", "overrideMetadata","pileupDSID","digiSteeringConf"]
#"readSeedsFromFile", "rndmSeedInputFile", #"readSeedsFromFile", "rndmSeedInputFile",
from Digitization.DigitizationFlags import digitizationFlags from Digitization.DigitizationFlags import digitizationFlags
if (not ModifyingEventIdBySvc()): if (not ModifyingEventIdBySvc()):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment