Forked from
atlas / athena
135130 commits behind the upstream repository.
-
John Chapman authored
import * can only be called at the module level, otherwise it generates a syntax error. Former-commit-id: e6d0720e
John Chapman authoredimport * can only be called at the module level, otherwise it generates a syntax error. Former-commit-id: e6d0720e
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
DigiAlgConfig.py 17.95 KiB
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
from AthenaCommon import CfgMgr
#####################################
## Test PileUpTool methods ##
#####################################
def getTestPileUpTool(name="TestPileUpTool", **kwargs):
from AthenaCommon.Constants import VERBOSE
kwargs.setdefault('OutputLevel', VERBOSE )
kwargs.setdefault('FirstXing', -300 )
kwargs.setdefault('LastXing', +300 )
return CfgMgr.TestPileUpTool(name, **kwargs)
def getTestFilterPileUpTool(name="TestFilterPileUpTool", **kwargs):
from AthenaCommon.Constants import INFO
kwargs.setdefault('OutputLevel', INFO )
kwargs.setdefault('DoFiltering', True )
return getTestPileUpTool(name, **kwargs)
#####################################
## PileUpToolsList filling methods ##
#####################################
def getStandardTruthPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.pileup.Truth_on():
PileUpToolsList += [ "MergeMcEventCollTool" ]
PileUpToolsList += [ "MergeTruthJetsTool" ]
if DetFlags.writeRDOPool.Muon_on(): #possibly this should be digitize.Muon_on()
PileUpToolsList += [ "MergeTrackRecordCollTool" ]
if DetFlags.writeRDOPool.Calo_on(): #possibly this should be digitize.Calo_on()
PileUpToolsList += [ "MergeCalibHitsTool" ]
return PileUpToolsList
def getStandardSignalOnlyTruthPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.pileup.Truth_on():
PileUpToolsList += [ "SignalOnlyMcEventCollTool" ]
PileUpToolsList += [ "MergeTruthJetsTool" ]
if DetFlags.writeRDOPool.Muon_on(): #possibly this should be digitize.Muon_on()
PileUpToolsList += [ "MergeTrackRecordCollTool" ]
if DetFlags.writeRDOPool.Calo_on(): #possibly this should be digitize.Calo_on()
PileUpToolsList += [ "MergeCalibHitsTool" ]
return PileUpToolsList
def getStandardInTimeOnlyTruthPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.pileup.Truth_on():
PileUpToolsList += [ "InTimeOnlyMcEventCollTool" ]
PileUpToolsList += [ "MergeTruthJetsTool" ]
if DetFlags.writeRDOPool.Muon_on(): #possibly this should be digitize.Muon_on()
PileUpToolsList += [ "MergeTrackRecordCollTool" ]
if DetFlags.writeRDOPool.Calo_on(): #possibly this should be digitize.Calo_on()
PileUpToolsList += [ "MergeCalibHitsTool" ]
return PileUpToolsList
def getStandardForwardPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.Lucid_on():
PileUpToolsList += [ "LUCID_PileUpTool" ]
if DetFlags.digitize.ZDC_on():
PileUpToolsList += [ "ZDC_PileUpTool" ]
if DetFlags.digitize.ALFA_on():
PileUpToolsList += [ "ALFA_PileUpTool" ]
if hasattr(DetFlags.digitize, 'AFP_on') and DetFlags.digitize.AFP_on():
PileUpToolsList += [ "AFP_PileUpTool" ]
return PileUpToolsList
def getStandardInDetPileUpTools():
from AthenaCommon.DetFlags import DetFlags
from Digitization.DigitizationFlags import digitizationFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
if 'doFastPixelDigi' in digitizationFlags.experimentalDigi():
PileUpToolsList += [ "PixelFastDigitizationTool" ]
elif 'doLightPixelDigi' in digitizationFlags.experimentalDigi():
PileUpToolsList += [ "PixelLightDigitizationTool" ]
elif 'doSmearedPixelDigi' in digitizationFlags.experimentalDigi():
PileUpToolsList += [ "PixelSmearedDigitizationTool" ]
else:
PileUpToolsList += [ "PixelDigitizationTool" ]
if DetFlags.digitize.SCT_on():
if 'doFastSCT_Digi' in digitizationFlags.experimentalDigi():
PileUpToolsList += [ "SCT_FastDigitizationTool" ]
else:
PileUpToolsList += [ "SCT_DigitizationTool" ]
if DetFlags.digitize.TRT_on():
if 'doFastTRT_Digi' in digitizationFlags.experimentalDigi():
PileUpToolsList += [ "TRTFastDigitizationTool" ]
else:
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 = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelDigitizationToolHS" ]
PileUpToolsList += [ "PixelDigitizationToolPU" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_DigitizationToolHS" ]
PileUpToolsList += [ "SCT_DigitizationToolPU" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTDigitizationToolHS" ]
PileUpToolsList += [ "TRTDigitizationToolPU" ]
return PileUpToolsList
def getSplitNoMergeInDetPileUpTools():
""" This is for testing the fast chain with full digitization in split PU mode without
merging pileup
"""
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelDigitizationTool" ]
PileUpToolsList += [ "PixelDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_DigitizationTool" ]
PileUpToolsList += [ "SCT_DigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTDigitizationTool" ]
PileUpToolsList += [ "TRTDigitizationToolSplitNoMergePU" ]
return PileUpToolsList
def getSplitNoMergeSFInDetPileUpTools():
""" This is for testing the fast chain with full digitization in split PU mode without
merging pileup
"""
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelDigitizationTool" ]
PileUpToolsList += [ "PixelFastDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_DigitizationTool" ]
PileUpToolsList += [ "SCT_FastDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTDigitizationTool" ]
PileUpToolsList += [ "TRTFastDigitizationToolSplitNoMergePU" ]
return PileUpToolsList
def getSplitNoMergeFSInDetPileUpTools():
""" This is for testing the fast chain with full digitization in split PU mode without
merging pileup
"""
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelFastDigitizationTool" ]
PileUpToolsList += [ "PixelDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_FastDigitizationTool" ]
PileUpToolsList += [ "SCT_DigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTFastDigitizationTool" ]
PileUpToolsList += [ "TRTDigitizationToolSplitNoMergePU" ]
return PileUpToolsList
def getSplitNoMergeFFInDetPileUpTools():
""" This is for testing the fast chain with full digitization in split PU mode without
merging pileup
"""
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.BCM_on():
PileUpToolsList += [ "BCM_DigitizationTool" ]
if DetFlags.digitize.pixel_on():
PileUpToolsList += [ "PixelFastDigitizationTool" ]
PileUpToolsList += [ "PixelFastDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.SCT_on():
PileUpToolsList += [ "SCT_FastDigitizationTool" ]
PileUpToolsList += [ "SCT_FastDigitizationToolSplitNoMergePU" ]
if DetFlags.digitize.TRT_on():
PileUpToolsList += [ "TRTFastDigitizationTool" ]
PileUpToolsList += [ "TRTFastDigitizationToolSplitNoMergePU" ]
return PileUpToolsList
def getStandardCaloPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.LAr_on():
PileUpToolsList += [ "LArPileUpTool" ]
if hasattr(DetFlags.digitize, 'HGTD_on') and DetFlags.digitize.HGTD_on():
PileUpToolsList += [ "HGTDPileUpTool" ]
if DetFlags.digitize.Tile_on():
PileUpToolsList += [ "TileHitVecToCntTool" ]
return PileUpToolsList
def getStandardMuonPileUpTools():
from AthenaCommon.DetFlags import DetFlags
PileUpToolsList = []
if DetFlags.digitize.CSC_on():
PileUpToolsList += [ "CscDigitizationTool" ]
if DetFlags.digitize.MDT_on():
PileUpToolsList += [ "MdtDigitizationTool" ]
if DetFlags.digitize.RPC_on():
PileUpToolsList += [ "RpcDigitizationTool" ]
if DetFlags.digitize.TGC_on():
PileUpToolsList += [ "TgcDigitizationTool" ]
if DetFlags.digitize.sTGC_on():
PileUpToolsList += [ "sTgcDigitizationTool" ]
if DetFlags.digitize.Micromegas_on():
PileUpToolsList += [ "MmDigitizationTool" ]
return PileUpToolsList
def getStandardPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization
PileUpToolsList += getStandardInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getStandardSignalOnlyTruthPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardSignalOnlyTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization
PileUpToolsList += getStandardInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getStandardInTimeOnlyTruthPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardInTimeOnlyTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization
PileUpToolsList += getStandardInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getFastPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization
PileUpToolsList += getFastInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getSplitPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization - non-standard
PileUpToolsList += getSplitInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getSplitNoMergePileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization - non-standard
PileUpToolsList += getSplitNoMergeInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getSplitNoMergeSFPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization - non-standard
PileUpToolsList += getSplitNoMergeSFInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getSplitNoMergeFSPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization - non-standard
PileUpToolsList += getSplitNoMergeFSInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getSplitNoMergeFFPileUpToolsList():
PileUpToolsList = []
## Truth information
PileUpToolsList += getStandardTruthPileUpTools()
## Forward Detector Digitization
PileUpToolsList += getStandardForwardPileUpTools()
## Inner Detector Digitization - non-standard
PileUpToolsList += getSplitNoMergeFFInDetPileUpTools()
## Calo Digitization
PileUpToolsList += getStandardCaloPileUpTools()
## Muon System Digitization
PileUpToolsList += getStandardMuonPileUpTools()
## RecoTimingObj
PileUpToolsList += [ "MergeRecoTimingObjTool" ]
return PileUpToolsList
def getStandardPileUpToolsAlg(name="StandardPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getStandardPileUpToolsList() )
from Digitization.DigitizationFlags import digitizationFlags
if digitizationFlags.doXingByXingPileUp():
return CfgMgr.PileUpToolsAlg(name, **kwargs)
else:
return CfgMgr.DigitizationAlg(name, **kwargs)
def getFastPileUpToolsAlg(name="FastPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getFastPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitPileUpToolsAlg(name="SplitPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getStandardSignalOnlyTruthPileUpToolsAlg(name="StandardSignalOnlyTruthPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getStandardSignalOnlyTruthPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getStandardInTimeOnlyTruthPileUpToolsAlg(name="StandardInTimeOnlyTruthPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getStandardInTimeOnlyTruthPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitNoMergePileUpToolsAlg(name="SplitNoMergePileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitNoMergePileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitNoMergeSFPileUpToolsAlg(name="SplitNoMergeSFPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitNoMergeSFPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitNoMergeFSPileUpToolsAlg(name="SplitNoMergeFSPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitNoMergeFSPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getSplitNoMergeFFPileUpToolsAlg(name="SplitNoMergeFFPileUpToolsAlg", **kwargs):
kwargs.setdefault('PileUpTools', getSplitNoMergeFFPileUpToolsList() )
return getStandardPileUpToolsAlg(name, **kwargs)
def getTestPileUpToolsAlg(name="TestPileUpToolsAlg", **kwargs):
PileUpToolsList = [ "TestPileUpTool" ]
kwargs.setdefault('PileUpTools', PileUpToolsList )
from AthenaCommon.Constants import DEBUG
kwargs.setdefault('OutputLevel', DEBUG )
return getStandardPileUpToolsAlg(name, **kwargs)
def getTestFilterPileUpToolsAlg(name="TestFilterPileUpToolsAlg", **kwargs):
PileUpToolsList = [ "TestFilterPileUpTool" ]
kwargs.setdefault('PileUpTools', PileUpToolsList )
from AthenaCommon.Constants import DEBUG
kwargs.setdefault('OutputLevel', DEBUG )
return getStandardPileUpToolsAlg(name, **kwargs)
def getTestTruthJetFilterPileUpToolsAlg(name="TestTruthJetFilterPileUpToolsAlg", **kwargs):
PileUpToolsList = [ "MergeTruthJetsFilterTool" ]
kwargs.setdefault('PileUpTools', PileUpToolsList )
from AthenaCommon.Constants import DEBUG
kwargs.setdefault('OutputLevel', DEBUG )
return getStandardPileUpToolsAlg(name, **kwargs)