Skip to content
Snippets Groups Projects
Commit e55a2026 authored by Matthew Thomas Anthony's avatar Matthew Thomas Anthony :speech_balloon: Committed by Frank Winklmeier
Browse files

Add Flow Elements to Run 3 PFlow configuration

parent 44d55d74
No related branches found
No related tags found
No related merge requests found
...@@ -2,23 +2,23 @@ ...@@ -2,23 +2,23 @@
from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.ComponentFactory import CompFactory
def PFTrackSelectorAlgCfg(inputFlags,algName,useCaching=True): def PFTrackSelectorAlgCfg(inputFlags,algName,useCaching=True):
PFTrackSelector=CompFactory.PFTrackSelector PFTrackSelectorFactory=CompFactory.PFTrackSelector
PFTrackSelector=PFTrackSelector(algName) PFTrackSelector=PFTrackSelectorFactory(algName)
from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
Trk__ParticleCaloExtensionTool=CompFactory.Trk.ParticleCaloExtensionTool Trk__ParticleCaloExtensionToolFactory=CompFactory.Trk.ParticleCaloExtensionTool
result = AtlasExtrapolatorCfg(inputFlags) result = AtlasExtrapolatorCfg(inputFlags)
pcExtensionTool = Trk__ParticleCaloExtensionTool(Extrapolator = result.popPrivateTools()) pcExtensionTool = Trk__ParticleCaloExtensionToolFactory(Extrapolator = result.popPrivateTools())
eflowTrackCaloExtensionTool=CompFactory.eflowTrackCaloExtensionTool eflowTrackCaloExtensionTool=CompFactory.eflowTrackCaloExtensionTool
TrackCaloExtensionTool=eflowTrackCaloExtensionTool(TrackCaloExtensionTool=pcExtensionTool) TrackCaloExtensionTool=eflowTrackCaloExtensionTool(TrackCaloExtensionTool=pcExtensionTool)
if False is useCaching: if (not useCaching):
TrackCaloExtensionTool.PFParticleCache = "" TrackCaloExtensionTool.PFParticleCache = ""
PFTrackSelector.trackExtrapolatorTool = TrackCaloExtensionTool PFTrackSelector.trackExtrapolatorTool = TrackCaloExtensionTool
InDet__InDetTrackSelectionTool=CompFactory.InDet.InDetTrackSelectionTool InDet__InDetTrackSelectionToolFactory=CompFactory.InDet.InDetTrackSelectionTool
TrackSelectionTool = InDet__InDetTrackSelectionTool("PFTrackSelectionTool") TrackSelectionTool = InDet__InDetTrackSelectionToolFactory("PFTrackSelectionTool")
TrackSelectionTool.CutLevel = "TightPrimary" TrackSelectionTool.CutLevel = "TightPrimary"
TrackSelectionTool.minPt = 500.0 TrackSelectionTool.minPt = 500.0
...@@ -31,8 +31,8 @@ def PFTrackSelectorAlgCfg(inputFlags,algName,useCaching=True): ...@@ -31,8 +31,8 @@ def PFTrackSelectorAlgCfg(inputFlags,algName,useCaching=True):
def getPFClusterSelectorTool(clustersin,calclustersin,algName): def getPFClusterSelectorTool(clustersin,calclustersin,algName):
PFClusterSelectorTool = CompFactory.PFClusterSelectorTool PFClusterSelectorToolFactory = CompFactory.PFClusterSelectorTool
PFClusterSelectorTool = PFClusterSelectorTool(algName) PFClusterSelectorTool = PFClusterSelectorToolFactory(algName)
if clustersin: if clustersin:
PFClusterSelectorTool.clustersName = clustersin PFClusterSelectorTool.clustersName = clustersin
if calclustersin: if calclustersin:
...@@ -50,19 +50,19 @@ def getPFTrackClusterMatchingTool(inputFlags,matchCut,distanceType,clusterPositi ...@@ -50,19 +50,19 @@ def getPFTrackClusterMatchingTool(inputFlags,matchCut,distanceType,clusterPositi
def getPFCellLevelSubtractionTool(inputFlags,toolName): def getPFCellLevelSubtractionTool(inputFlags,toolName):
PFCellLevelSubtractionTool = CompFactory.PFCellLevelSubtractionTool PFCellLevelSubtractionToolFactory = CompFactory.PFCellLevelSubtractionTool
PFCellLevelSubtractionTool = PFCellLevelSubtractionTool(toolName) PFCellLevelSubtractionTool = PFCellLevelSubtractionToolFactory(toolName)
eflowCellEOverPTool_mc12_JetETMiss = CompFactory.eflowCellEOverPTool_mc12_JetETMiss eflowCellEOverPTool_mc12_JetETMiss = CompFactory.eflowCellEOverPTool_mc12_JetETMiss
PFCellLevelSubtractionTool.eflowCellEOverPTool = eflowCellEOverPTool_mc12_JetETMiss() PFCellLevelSubtractionTool.eflowCellEOverPTool = eflowCellEOverPTool_mc12_JetETMiss()
if(True is inputFlags.PF.EOverPMode): if(inputFlags.PF.EOverPMode):
PFCellLevelSubtractionTool.CalcEOverP = True PFCellLevelSubtractionTool.CalcEOverP = True
PFCellLevelSubtractionTool.nMatchesInCellLevelSubtraction = -1 PFCellLevelSubtractionTool.nMatchesInCellLevelSubtraction = -1
else: else:
PFCellLevelSubtractionTool.nMatchesInCellLevelSubtraction = 1 PFCellLevelSubtractionTool.nMatchesInCellLevelSubtraction = 1
if(True is inputFlags.PF.EOverPMode): if(inputFlags.PF.EOverPMode):
PFCellLevelSubtractionTool.PFTrackClusterMatchingTool = getPFTrackClusterMatchingTool(inputFlags,0.2,"EtaPhiSquareDistance","PlainEtaPhi","CalObjBldMatchingTool") PFCellLevelSubtractionTool.PFTrackClusterMatchingTool = getPFTrackClusterMatchingTool(inputFlags,0.2,"EtaPhiSquareDistance","PlainEtaPhi","CalObjBldMatchingTool")
else: else:
PFCellLevelSubtractionTool.PFTrackClusterMatchingTool = getPFTrackClusterMatchingTool(inputFlags,1.64,"EtaPhiSquareSignificance","GeomCenterEtaPhi","CalObjBldMatchingTool") PFCellLevelSubtractionTool.PFTrackClusterMatchingTool = getPFTrackClusterMatchingTool(inputFlags,1.64,"EtaPhiSquareSignificance","GeomCenterEtaPhi","CalObjBldMatchingTool")
...@@ -72,8 +72,8 @@ def getPFCellLevelSubtractionTool(inputFlags,toolName): ...@@ -72,8 +72,8 @@ def getPFCellLevelSubtractionTool(inputFlags,toolName):
return PFCellLevelSubtractionTool return PFCellLevelSubtractionTool
def getPFRecoverSplitShowersTool(inputFlags,toolName): def getPFRecoverSplitShowersTool(inputFlags,toolName):
PFRecoverSplitShowersTool = CompFactory.PFRecoverSplitShowersTool PFRecoverSplitShowersToolFactory = CompFactory.PFRecoverSplitShowersTool
PFRecoverSplitShowersTool = PFRecoverSplitShowersTool(toolName) PFRecoverSplitShowersTool = PFRecoverSplitShowersToolFactory(toolName)
eflowCellEOverPTool_mc12_JetETMiss = CompFactory.eflowCellEOverPTool_mc12_JetETMiss eflowCellEOverPTool_mc12_JetETMiss = CompFactory.eflowCellEOverPTool_mc12_JetETMiss
PFRecoverSplitShowersTool.eflowCellEOverPTool = eflowCellEOverPTool_mc12_JetETMiss("eflowCellEOverPTool_mc12_JetETMiss_Recover") PFRecoverSplitShowersTool.eflowCellEOverPTool = eflowCellEOverPTool_mc12_JetETMiss("eflowCellEOverPTool_mc12_JetETMiss_Recover")
...@@ -85,8 +85,8 @@ def getPFRecoverSplitShowersTool(inputFlags,toolName): ...@@ -85,8 +85,8 @@ def getPFRecoverSplitShowersTool(inputFlags,toolName):
return PFRecoverSplitShowersTool return PFRecoverSplitShowersTool
def getPFMomentCalculatorTool(inputFlags, momentsToCalculateList): def getPFMomentCalculatorTool(inputFlags, momentsToCalculateList):
PFMomentCalculatorTool = CompFactory.PFMomentCalculatorTool PFMomentCalculatorToolFactory = CompFactory.PFMomentCalculatorTool
PFMomentCalculatorTool = PFMomentCalculatorTool("PFMomentCalculatorTool") PFMomentCalculatorTool = PFMomentCalculatorToolFactory("PFMomentCalculatorTool")
from CaloRec.CaloTopoClusterConfig import getTopoMoments from CaloRec.CaloTopoClusterConfig import getTopoMoments
PFClusterMomentsMaker = getTopoMoments(inputFlags) PFClusterMomentsMaker = getTopoMoments(inputFlags)
...@@ -97,7 +97,7 @@ def getPFMomentCalculatorTool(inputFlags, momentsToCalculateList): ...@@ -97,7 +97,7 @@ def getPFMomentCalculatorTool(inputFlags, momentsToCalculateList):
PFClusterCollectionTool = CompFactory.PFClusterCollectionTool PFClusterCollectionTool = CompFactory.PFClusterCollectionTool
PFMomentCalculatorTool.PFClusterCollectionTool = PFClusterCollectionTool("PFClusterCollectionTool") PFMomentCalculatorTool.PFClusterCollectionTool = PFClusterCollectionTool("PFClusterCollectionTool")
if(True is inputFlags.PF.useCalibHitTruthClusterMoments): if(inputFlags.PF.useCalibHitTruthClusterMoments):
PFMomentCalculatorTool.UseCalibHitTruth=True PFMomentCalculatorTool.UseCalibHitTruth=True
from CaloRec.CaloTopoClusterConfig import getTopoCalibMoments from CaloRec.CaloTopoClusterConfig import getTopoCalibMoments
PFMomentCalculatorTool.CaloCalibClusterMomentsMaker2 = getTopoCalibMoments(inputFlags) PFMomentCalculatorTool.CaloCalibClusterMomentsMaker2 = getTopoCalibMoments(inputFlags)
...@@ -123,26 +123,49 @@ def getPFLCCalibTool(inputFlags): ...@@ -123,26 +123,49 @@ def getPFLCCalibTool(inputFlags):
return PFLCCalibTool return PFLCCalibTool
def getChargedPFOCreatorAlgorithm(inputFlags,chargedPFOOutputName): def getChargedPFOCreatorAlgorithm(inputFlags,chargedPFOOutputName):
PFOChargedCreatorAlgorithm = CompFactory.PFOChargedCreatorAlgorithm PFOChargedCreatorAlgorithmFactory = CompFactory.PFOChargedCreatorAlgorithm
PFOChargedCreatorAlgorithm = PFOChargedCreatorAlgorithm("PFOChargedCreatorAlgorithm") PFOChargedCreatorAlgorithm = PFOChargedCreatorAlgorithmFactory("PFOChargedCreatorAlgorithm")
if chargedPFOOutputName: if chargedPFOOutputName:
PFOChargedCreatorAlgorithm.PFOOutputName = chargedPFOOutputName PFOChargedCreatorAlgorithm.PFOOutputName = chargedPFOOutputName
if(True is inputFlags.PF.EOverPMode): if(inputFlags.PF.EOverPMode):
PFOChargedCreatorAlgorithm.PFOOutputName="EOverPChargedParticleFlowObjects" PFOChargedCreatorAlgorithm.PFOOutputName="EOverPChargedParticleFlowObjects"
return PFOChargedCreatorAlgorithm return PFOChargedCreatorAlgorithm
def getNeutralPFOCreatorAlgorithm(inputFlags,neutralPFOOutputName): def getNeutralPFOCreatorAlgorithm(inputFlags,neutralPFOOutputName):
PFONeutralCreatorAlgorithmFactory = CompFactory.PFONeutralCreatorAlgorithm
PFONeutralCreatorAlgorithm = CompFactory.PFONeutralCreatorAlgorithm PFONeutralCreatorAlgorithm = PFONeutralCreatorAlgorithmFactory("PFONeutralCreatorAlgorithm")
PFONeutralCreatorAlgorithm = PFONeutralCreatorAlgorithm("PFONeutralCreatorAlgorithm")
if neutralPFOOutputName: if neutralPFOOutputName:
PFONeutralCreatorAlgorithm.PFOOutputName = neutralPFOOutputName PFONeutralCreatorAlgorithm.PFOOutputName = neutralPFOOutputName
if(True is inputFlags.PF.EOverPMode): if(inputFlags.PF.EOverPMode):
PFONeutralCreatorAlgorithm.PFOOutputName="EOverPNeutralParticleFlowObjects" PFONeutralCreatorAlgorithm.PFOOutputName="EOverPNeutralParticleFlowObjects"
if(True is inputFlags.PF.useCalibHitTruthClusterMoments and True is inputFlags.PF.addClusterMoments): if(inputFlags.PF.useCalibHitTruthClusterMoments and inputFlags.PF.addClusterMoments):
PFONeutralCreatorAlgorithm.UseCalibHitTruth=True PFONeutralCreatorAlgorithm.UseCalibHitTruth=True
PFONeutralCreatorAlgorithm.DoClusterMoments=inputFlags.PF.addClusterMoments PFONeutralCreatorAlgorithm.DoClusterMoments=inputFlags.PF.addClusterMoments
return PFONeutralCreatorAlgorithm return PFONeutralCreatorAlgorithm
def getChargedFlowElementCreatorAlgorithm(inputFlags,chargedFlowElementOutputName):
FlowElementChargedCreatorAlgorithmFactory = CompFactory.PFChargedFlowElementCreatorAlgorithm
FlowElementChargedCreatorAlgorithm = FlowElementChargedCreatorAlgorithmFactory("PFChargedFlowElementCreatorAlgorithm")
if chargedFlowElementOutputName:
FlowElementChargedCreatorAlgorithm.FlowElementOutputName=chargedFlowElementOutputName
if(inputFlags.PF.EOverPMode):
FlowElementChargedCreatorAlgorithm.FlowElementOutputName="EOverPChargedFlowElements"
return FlowElementChargedCreatorAlgorithm
def getNeutralFlowElementCreatorAlgorithm(inputFlags,neutralFlowElementOutputName):
FlowElementNeutralCreatorAlgorithmFactory = CompFactory.PFNeutralFlowElementCreatorAlgorithm
FlowElementNeutralCreatorAlgorithm = FlowElementNeutralCreatorAlgorithmFactory("PFNeutralFlowElementCreatorAlgorithm")
if neutralFlowElementOutputName:
FlowElementNeutralCreatorAlgorithm.FlowElementOutputName=neutralFlowElementOutputName
if(inputFlags.PF.EOverPMode):
FlowElementNeutralCreatorAlgorithm.FlowElementOutputName="EOverPNeutralFlowElements"
if(inputFlags.PF.useCalibHitTruthClusterMoments and inputFlags.PF.addClusterMoments):
FlowElementNeutralCreatorAlgorithm.useCalibHitTruth=True
return FlowElementNeutralCreatorAlgorithm
...@@ -128,6 +128,10 @@ def PFCfg(inputFlags,**kwargs): ...@@ -128,6 +128,10 @@ def PFCfg(inputFlags,**kwargs):
result.addEventAlgo(getChargedPFOCreatorAlgorithm(inputFlags,"")) result.addEventAlgo(getChargedPFOCreatorAlgorithm(inputFlags,""))
result.addEventAlgo(getNeutralPFOCreatorAlgorithm(inputFlags,"")) result.addEventAlgo(getNeutralPFOCreatorAlgorithm(inputFlags,""))
from eflowRec.PFCfg import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm
result.addEventAlgo(getChargedFlowElementCreatorAlgorithm(inputFlags,""))
result.addEventAlgo(getNeutralFlowElementCreatorAlgorithm(inputFlags,""))
return result return result
if __name__=="__main__": if __name__=="__main__":
......
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