Skip to content
Snippets Groups Projects
Commit 17e77529 authored by John Derek Chapman's avatar John Derek Chapman Committed by Graeme Stewart
Browse files

python/DigiOutput.py (getStreamRDO_ItemList): further tidying to ensure that...

python/DigiOutput.py (getStreamRDO_ItemList): further tidying to ensure that the correct containsers are in the output file. ATLASSIM-2158, ATLPHYSVAL-395. Tagging Digitization-02-00-01 (Digitization-02-00-01)
parent 20557801
No related branches found
No related tags found
No related merge requests found
......@@ -77,19 +77,6 @@ def getStandardForwardPileUpTools():
return PileUpToolsList
def getStandardInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelDigitizationTool" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_DigitizationTool" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTDigitizationTool" ]
return PileUpToolsList
def getFastInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags
from Digitization.DigitizationFlags import digitizationFlags
PileUpToolsList = []
......@@ -112,6 +99,19 @@ def getFastInDetPileUpTools():
PileUpToolsList += [ "TRTDigitizationTool" ]
return PileUpToolsList
def getFastInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelFastDigitizationTool" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_FastDigitizationTool" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTFastDigitizationTool" ]
return PileUpToolsList
def getSplitInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
......
......@@ -5,6 +5,56 @@
def getStreamRDO_ItemList(log):
def standardDigiConfig():
from Digitization.DigitizationFlags import digitizationFlags
return not ('Split' in digitizationFlags.digiSteeringConf.get_Value() or 'Fast' in digitizationFlags.digiSteeringConf.get_Value())
def standardDigiOutputExpected(keys=['doFastPixelDigi', 'doFastSCT_Digi', 'doFastTRT_Digi']):
noStandardDigi=True
from Digitization.DigitizationFlags import digitizationFlags
if standardDigiConfig():
for key in keys:
noStandardDigi = noStandardDigi and key in digitizationFlags.experimentalDigi()
else:
noStandardDigi = not set(['SplitNoMergeFFPileUpToolsAlg', 'FastPileUpToolsAlg']).isdisjoint(set([digitizationFlags.digiSteeringConf.get_Value()]))
return not noStandardDigi
def standardPixelDigiOutputExpected():
return standardDigiOutputExpected(['doFastPixelDigi'])
def standardSCT_DigiOutputExpected():
return standardDigiOutputExpected(['doFastSCT_Digi'])
def standardTRT_DigiOutputExpected():
return standardDigiOutputExpected(['doFastTRT_Digi'])
def fastDigiOutputExpected(keys=['doFastPixelDigi', 'doFastSCT_Digi', 'doFastTRT_Digi']):
noFastDigi = False
from Digitization.DigitizationFlags import digitizationFlags
if standardDigiConfig():
noFastDigi = set(keys).isdisjoint(set(digitizationFlags.experimentalDigi()))
else:
noFastDigi = set(['SplitNoMergeFFPileUpToolsAlg', 'SplitNoMergeSFPileUpToolsAlg', 'SplitNoMergeFSPileUpToolsAlg', 'FastPileUpToolsAlg']).isdisjoint(set([digitizationFlags.digiSteeringConf.get_Value()]))
return not noFastDigi
def fastPixelDigiOutputExpected():
return fastDigiOutputExpected(['doFastPixelDigi'])
def fastSCT_DigiOutputExpected():
return fastDigiOutputExpected(['doFastSCT_Digi'])
def fastTRT_DigiOutputExpected():
return fastDigiOutputExpected(['doFastTRT_Digi'])
## print "XXXXXXXXXXXXXXX Expect standard digi output: ", standardDigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect Pixel standard digi output: ", standardPixelDigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect SCT standard digi output: ", standardSCT_DigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect TRT standard digi output: ", standardTRT_DigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect fast digi output: ", fastDigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect Pixel fast digi output: ", fastPixelDigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect SCT fast digi output: ", fastSCT_DigiOutputExpected()
## print "XXXXXXXXXXXXXXX Expect TRT fast digi output: ", fastTRT_DigiOutputExpected()
from Digitization.DigitizationFlags import digitizationFlags
from AthenaCommon.DetFlags import DetFlags
if not(DetFlags.writeRDOPool.any_on()):
......@@ -33,8 +83,9 @@ def getStreamRDO_ItemList(log):
# Temporary for debugging MBTSHits
StreamRDO_ItemList+=["TileHitVector#MBTSHits"]
if DetFlags.writeRDOPool.ID_on():
StreamRDO_ItemList+=["InDetSimDataCollection#*"]
if not set(['doFastPixelDigi', 'doFastSCT_Digi', 'doFastTRT_Digi']).isdisjoint(set(digitizationFlags.experimentalDigi())):
if standardDigiOutputExpected() or DetFlags.writeRDOPool.BCM_on():
StreamRDO_ItemList+=["InDetSimDataCollection#*"]
if fastDigiOutputExpected():
StreamRDO_ItemList+=["PRD_MultiTruthCollection#*"]
if DetFlags.writeRDOPool.Muon_on():
StreamRDO_ItemList+=["CscSimDataCollection#CSC_SDO"]
......@@ -60,22 +111,22 @@ def getStreamRDO_ItemList(log):
StreamRDO_ItemList+=["BCM_RDO_Container#*"]
if DetFlags.digitize.pixel_on():
if DetFlags.writeRDOPool.pixel_on():
if 'doFastPixelDigi' in digitizationFlags.experimentalDigi():
StreamRDO_ItemList+=["InDet::SiClusterContainer#PixelClusters"]
StreamRDO_ItemList+=["InDet::PixelGangedClusterAmbiguities#PixelClusterAmbiguitiesMap"]
else:
if fastPixelDigiOutputExpected():
StreamRDO_ItemList+=["InDet::SiClusterContainer#*"]
StreamRDO_ItemList+=["InDet::PixelGangedClusterAmbiguities#*"]
if standardPixelDigiOutputExpected():
StreamRDO_ItemList+=["PixelRDO_Container#*"]
if DetFlags.digitize.SCT_on():
if DetFlags.writeRDOPool.SCT_on():
if 'doFastSCT_Digi' in digitizationFlags.experimentalDigi():
StreamRDO_ItemList+=["InDet::SiClusterContainer#SCT_Clusters"]
else:
if fastSCT_DigiOutputExpected():
StreamRDO_ItemList+=["InDet::SiClusterContainer#*"]
if standardSCT_DigiOutputExpected():
StreamRDO_ItemList+=["SCT_RDO_Container#*"]
if DetFlags.digitize.TRT_on():
if DetFlags.writeRDOPool.TRT_on():
if 'doFastTRT_Digi' in digitizationFlags.experimentalDigi():
StreamRDO_ItemList += ["InDet::TRT_DriftCircleContainer#TRT_DriftCircles"]
else:
if fastTRT_DigiOutputExpected():
StreamRDO_ItemList += ["InDet::TRT_DriftCircleContainer#*"]
if standardTRT_DigiOutputExpected():
StreamRDO_ItemList+=["TRT_RDO_Container#*"]
# Calorimeter Output
if DetFlags.digitize.LAr_on():
......
......@@ -172,6 +172,14 @@ class doFwdNoise(JobProperty):
allowedTypes=['bool']
StoredValue=True
#
class doRadiationDamage(JobProperty):
""" Include radiation damage simulation where possible?
"""
statusOn=True
allowedTypes=['bool']
StoredValue=False
#
class overrideMetadata(JobProperty):
""" If digi config differs from that stored in sim metadata use digi values.
......@@ -771,7 +779,7 @@ jobproperties.add_Container(Digitization)
# We want always the following flags in the container
list_jobproperties=[doInDetNoise,doCaloNoise,doMuonNoise,doFwdNoise,\
list_jobproperties=[doInDetNoise,doCaloNoise,doMuonNoise,doFwdNoise,doRadiationDamage,\
rndmSvc,rndmSeedList,rndmSeedOffset1,rndmSeedOffset2,readSeedsFromFile,\
rndmSeedInputFile,physicsList,overrideMetadata,IOVDbGlobalTag,SimG4VersionUsed,\
numberOfCollisions,\
......
......@@ -33,12 +33,11 @@ if jobproperties.Beam.beamType == "cosmics" :
from AthenaCommon.AlgSequence import AlgSequence
job = AlgSequence()
from Digitization.DigitizationFlags import digitizationFlags
job += CfgGetter.getAlgorithm(digitizationFlags.digiSteeringConf.get_Value(), tryDefaultConfigurable=True)
if 'doFastPixelDigi' in digitizationFlags.experimentalDigi() or 'doFastSCT_Digi' in digitizationFlags.experimentalDigi() or 'doFastTRT_Digi' in digitizationFlags.experimentalDigi():
job += CfgGetter.getAlgorithm("FastPileUpToolsAlg", tryDefaultConfigurable=True)
print "WARNING Setting doFastPixelDigi ,doFastSCT_Digi or doFastTRT_Digi in digitizationFlags.experimentalDigi no longer overrides digitizationFlags.digiSteeringConf."
elif 'doSplitDigi' in digitizationFlags.experimentalDigi():
job += CfgGetter.getAlgorithm("SplitPileUpToolsAlg", tryDefaultConfigurable=True)
else: ## The above two options are just there for back-compatibility
job += CfgGetter.getAlgorithm(digitizationFlags.digiSteeringConf.get_Value(), tryDefaultConfigurable=True)
print "WARNING Setting doSplitDigi in digitizationFlags.experimentalDigi no longer overrides digitizationFlags.digiSteeringConf. Use --digiSteeringConf 'Split' on the command-line instead."
# MC Truth info
......
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