From 8c480e1d9f42c8a0cdcb69e77bdf050066d0de3a Mon Sep 17 00:00:00 2001 From: Chris Malena Delitzsch <chris.malena.delitzsch@cern.ch> Date: Wed, 25 Nov 2020 15:16:33 +0000 Subject: [PATCH] Small-R truth jets in DAOD_PHYS --- .../python/ExtendedJetCommon.py | 37 ++- .../python/MCTruthCommon.py | 274 ++++++++---------- .../DerivationFrameworkPhys/share/PHYS.py | 6 +- .../JetMomentTools/JetForwardJvtTool.h | 2 +- 4 files changed, 141 insertions(+), 178 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py index 082f7414d39..b255d5cc77d 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py @@ -529,15 +529,21 @@ def addQGTaggerTool(jetalg, sequence, algname, truthjetalg=None ): ################################################################## def applyOverlapRemoval(sequence=DerivationFrameworkJob): + + from DerivationFrameworkTau.TauCommon import AddTauAugmentation + AddTauAugmentation(sequence,doLoose=True) + from AssociationUtils.config import recommended_tools from AssociationUtils.AssociationUtilsConf import OverlapRemovalGenUseAlg outputLabel = 'DFCommonJets_passOR' bJetLabel = '' #default + tauLabel = 'DFTauLoose' orTool = recommended_tools(outputLabel=outputLabel,bJetLabel=bJetLabel) algOR = OverlapRemovalGenUseAlg('OverlapRemovalGenUseAlg', - OverlapLabel=outputLabel, - OverlapRemovalTool=orTool, - BJetLabel=bJetLabel) + OverlapLabel=outputLabel, + OverlapRemovalTool=orTool, + TauLabel=tauLabel, + BJetLabel=bJetLabel) sequence += algOR from DerivationFrameworkMuons.DerivationFrameworkMuonsConf import DerivationFramework__MuonJetDrTool @@ -576,9 +582,9 @@ def eventCleanLoose_xAODColl(jetalg='AntiKt4EMTopo',sequence=DerivationFramework ecToolLoose.JetCleanPrefix = prefix ecToolLoose.JetCleaningTool = getJetCleaningTool("LooseBad") algCleanLoose = EventCleaningTestAlg('EventCleaningTestAlg_Loose', - EventCleaningTool=ecToolLoose, - JetCollectionName="AntiKt4EMTopoJets", - EventCleanPrefix=prefix) + EventCleaningTool=ecToolLoose, + JetCollectionName="AntiKt4EMTopoJets", + EventCleanPrefix=prefix) sequence += algCleanLoose ################################################################## @@ -591,11 +597,11 @@ def eventCleanTight_xAODColl(jetalg='AntiKt4EMTopo',sequence=DerivationFramework ecToolTight.JetCleanPrefix = prefix ecToolTight.JetCleaningTool = getJetCleaningTool("TightBad") algCleanTight = EventCleaningTestAlg('EventCleaningTestAlg_Tight', - EventCleaningTool=ecToolTight, - JetCollectionName="AntiKt4EMTopoJets", - EventCleanPrefix=prefix, - CleaningLevel="TightBad", - doEvent=False) + EventCleaningTool=ecToolTight, + JetCollectionName="AntiKt4EMTopoJets", + EventCleanPrefix=prefix, + CleaningLevel="TightBad", + doEvent=False) sequence += algCleanTight ################################################################## @@ -782,10 +788,9 @@ def addCHSPFlowObjects(): applyJetCalibration_xAODColl("AntiKt4EMTopo") updateJVT_xAODColl("AntiKt4EMTopo") -# Need DFCommonElectronsLHLoose for these to work -#applyOverlapRemoval() -#eventCleanLoose_xAODColl("AntiKt4EMTopo") -#eventCleanTight_xAODColl("AntiKt4EMTopo") -#eventCleanLooseLLP_xAODColl("AntiKt4EMTopo") +applyOverlapRemoval() +eventCleanLoose_xAODColl("AntiKt4EMTopo") +eventCleanTight_xAODColl("AntiKt4EMTopo") +eventCleanLooseLLP_xAODColl("AntiKt4EMTopo") #eventCleanSuperLooseLLP_xAODColl("AntiKt4EMTopo") #eventCleanVeryLooseLLP_xAODColl("AntiKt4EMTopo") diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/python/MCTruthCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/python/MCTruthCommon.py index db96f6c2c1c..0d512dd82ae 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/python/MCTruthCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/python/MCTruthCommon.py @@ -59,165 +59,122 @@ def simplePJGetter(Label, InputContainer): # Helper for adding truth jet collections def addTruthJets(kernel=None, decorationDressing=None): - if not dfInputIsEVNT: - return - # Ensure that we are adding it to something, and that we haven't run it already if kernel is None: from DerivationFrameworkCore.DerivationFrameworkMaster import DerivationFrameworkJob kernel = DerivationFrameworkJob - - if not hasattr(kernel,'MCTruthCommonJetTruthCopyAlg'): - from AthenaCommon.AppMgr import ToolSvc - - # Check where we get the barcode offset from - barCodeFromMetadata=2 - if objKeyStore.isInInput( "McEventCollection", "GEN_EVENT" ): - barCodeFromMetadata=0 - - # Set up the copy truth jet particle algorithms + # make sure if we are using EVNT that we don't try to check sim metadata + barCodeFromMetadata=2 + if objKeyStore.isInInput( "McEventCollection", "GEN_EVENT" ): + barCodeFromMetadata=0 + from JetRec.JetRecStandardToolManager import jtm + if decorationDressing is not None and not hasattr(jtm,'truthpartdressedwz'): from ParticleJetTools.ParticleJetToolsConf import CopyTruthJetParticles - ToolSvc += CopyTruthJetParticles("TruthPartCopy", - OutputName="JetInputTruthParticles", - MCTruthClassifier=ToolSvc.DFCommonTruthClassifier,BarCodeFromMetadata=barCodeFromMetadata) - ToolSvc += CopyTruthJetParticles("TruthPartCopyWZ", - OutputName="JetInputTruthParticlesNoWZ", - MCTruthClassifier=ToolSvc.DFCommonTruthClassifier,BarCodeFromMetadata=barCodeFromMetadata, - IncludePromptLeptons=False) - ToolSvc += CopyTruthJetParticles("TruthPartCopyDressedWZ", - OutputName="JetInputTruthParticlesDressedWZ", - MCTruthClassifier=ToolSvc.DFCommonTruthClassifier, - IncludePromptLeptons=False,IncludePromptPhotons=False, - IncludeMuons=True,IncludeNeutrinos=True,BarCodeFromMetadata=barCodeFromMetadata, - FSRPhotonCone=-1., DressingDecorationName=decorationDressing) - ToolSvc += CopyTruthJetParticles("TruthPartCopyCharged", OutputName="JetInputTruthParticlesCharged", - MCTruthClassifier=ToolSvc.DFCommonTruthClassifier, + if 'truthpartdressedwz' not in jtm.tools: + jtm += CopyTruthJetParticles("truthpartdressedwz", OutputName="JetInputTruthParticlesDressedWZ", + MCTruthClassifier=jtm.JetMCTruthClassifier, + IncludePromptLeptons=False,IncludePromptPhotons=False, + IncludeMuons=True,IncludeNeutrinos=True,BarCodeFromMetadata=barCodeFromMetadata, + FSRPhotonCone=-1., DressingDecorationName=decorationDressing + ) + # Add a jet tool runner for this thing + from JetRec.JetRecConf import JetToolRunner,JetAlgorithm,PseudoJetAlgorithm + from JetRec.JetRecFlags import jetFlags + jtm += JetToolRunner("jetdressedwzrun", EventShapeTools=[], Tools=[jtm.truthpartdressedwz], Timer=jetFlags.timeJetToolRunner() ) + # And an algorithm to run in + kernel += JetAlgorithm("jetdressedwzalg") + jetdressedwzalg = kernel.jetdressedwzalg + jetdressedwzalg.Tools = [ jtm.jetdressedwzrun ] + if 'truthdressedwzget' not in jtm.tools: + jtm += PseudoJetAlgorithm("truthdressedwzget", + Label = "TruthDressedWZ", + InputContainer = jtm.truthpartdressedwz.OutputName, + OutputContainer = "PseudoJetTruthDressedWZ", + SkipNegativeEnergy = True + ) + jtm.gettersMap['truthdressedwz'] = list(jtm.gettersMap['truth']) + jtm.gettersMap['truthdressedwz'][0] = jtm.truthdressedwzget + if not hasattr(jtm,'truthpartcharged'): + from ParticleJetTools.ParticleJetToolsConf import CopyTruthJetParticles + if 'truthpartcharged' not in jtm.tools: + jtm += CopyTruthJetParticles("truthpartcharged", OutputName="JetInputTruthParticlesCharged", + MCTruthClassifier=jtm.JetMCTruthClassifier, ChargedParticlesOnly=True, - BarCodeFromMetadata=barCodeFromMetadata) - from JetRec import JetRecConf - kernel += JetRecConf.JetAlgorithm("MCTruthCommonJetTruthCopyAlg", - Tools=[ToolSvc.TruthPartCopy,ToolSvc.TruthPartCopyWZ, - ToolSvc.TruthPartCopyDressedWZ,ToolSvc.TruthPartCopyCharged]) - - # Set up pseudo-jet getters - from JetRec import JetRecConf - kernel += simplePJGetter( Label = "Truth", InputContainer = ToolSvc.TruthPartCopy.OutputName ) - kernel += simplePJGetter( Label = "TruthWZ", InputContainer = ToolSvc.TruthPartCopyWZ.OutputName ) - kernel += simplePJGetter( Label = "TruthDressedWZ", InputContainer = ToolSvc.TruthPartCopyDressedWZ.OutputName ) - kernel += simplePJGetter( Label = "TruthCharged", InputContainer = ToolSvc.TruthPartCopyCharged.OutputName ) - - # Set up the jet builder (no area moments) - from AthenaCommon import CfgMgr - DFCommon_jbld = CfgMgr.JetFromPseudojet("DFCommon_jbld") - - # Tool for parton labeling - from ParticleJetTools import ParticleJetToolsConf - ToolSvc += ParticleJetToolsConf.Analysis__JetPartonTruthLabel("partontruthlabel") - - # Set up the jet finder, tool using the finder, and algorithm using the tool - threshold = 15000. if dfInputIsEVNT else 5000. - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthJets") and not hasattr(kernel,'AntiKt4TruthJetsAlg'): - AntiKt4TruthJetsFinder = CfgMgr.JetFinder("AntiKt4TruthJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 0.4, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = threshold - ) - #Now we setup a JetRecTool which will use the above JetFinder - AntiKt4TruthJetsRec = CfgMgr.JetRecTool("AntiKt4TruthJetsRec", - JetFinder = AntiKt4TruthJetsFinder, - InputPseudoJets = [kernel.TruthGet.OutputContainer], - OutputContainer = "AntiKt4TruthJets", - JetModifiers = [ToolSvc.partontruthlabel] - ) - kernel += CfgMgr.JetAlgorithm("AntiKt4TruthJetsAlg", Tools=[AntiKt4TruthJetsRec]) - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthWZJets") and not hasattr(kernel,'jetalgAntiKt4TruthWZ'): - AntiKt4TruthWZJetsFinder = CfgMgr.JetFinder("AntiKt4TruthWZJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 0.4, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = threshold - ) - AntiKt4TruthWZJetsRec = CfgMgr.JetRecTool("AntiKt4TruthWZJetsRec", - JetFinder = AntiKt4TruthWZJetsFinder, - InputPseudoJets = [kernel.TruthWZGet.OutputContainer], - OutputContainer = "AntiKt4TruthWZJets", - JetModifiers = [ToolSvc.partontruthlabel] - ) - kernel += CfgMgr.JetAlgorithm("AntiKt4TruthWZJetsAlg", Tools=[AntiKt4TruthWZJetsRec]) - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthDressedWZJets") and decorationDressing is not None: - AntiKt4TruthDressedWZJetsFinder = CfgMgr.JetFinder("AntiKt4TruthDressedWZJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 0.4, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = threshold - ) - AntiKt4TruthDressedWZJetsRec = CfgMgr.JetRecTool("AntiKt4TruthDressedWZJetsRec", - JetFinder = AntiKt4TruthDressedWZJetsFinder, - InputPseudoJets = [kernel.TruthDressedWZGet.OutputContainer], - OutputContainer = "AntiKt4TruthDressedWZJets", - JetModifiers = [ToolSvc.partontruthlabel] - ) - kernel += CfgMgr.JetAlgorithm("AntiKt4TruthDressedWZJetsAlg", Tools=[AntiKt4TruthDressedWZJetsRec]) - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt2TruthChargedJets"): - AntiKt2TruthChargedJetsFinder = CfgMgr.JetFinder("AntiKt2TruthChargedJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 0.2, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = 5000. - ) - AntiKt2TruthChargedJetsRec = CfgMgr.JetRecTool("AntiKt2TruthChargedJetsRec", - JetFinder = AntiKt2TruthChargedJetsFinder, - InputPseudoJets = [kernel.TruthChargedGet.OutputContainer], - OutputContainer = "AntiKt2TruthChargedJets", - JetModifiers = [ToolSvc.partontruthlabel] - ) - kernel += CfgMgr.JetAlgorithm("AntiKt2TruthChargedJetsAlg", Tools=[AntiKt2TruthChargedJetsRec]) - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthJets") and not hasattr(kernel,'AntiKt10TruthJetsAlg'): - AntiKt10TruthJetsFinder = CfgMgr.JetFinder("AntiKt10TruthJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 1.0, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = 50000. - ) - #Now we setup a JetRecTool which will use the above JetFinder - AntiKt10TruthJetsRec = CfgMgr.JetRecTool("AntiKt10TruthJetsRec", - JetFinder = AntiKt10TruthJetsFinder, - InputPseudoJets = [kernel.TruthGet.OutputContainer], - OutputContainer = "AntiKt10TruthJets", - JetModifiers = [ToolSvc.partontruthlabel] - ) - kernel += CfgMgr.JetAlgorithm("AntiKt10TruthJetsAlg", Tools=[AntiKt10TruthJetsRec]) - if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthSoftDropBeta100Zcut10Jets") and not hasattr(kernel,'AntiKt10TruthSoftDropBeta100Zcut10JetsAlg'): - from JetRec.JetRecConf import JetSoftDrop - groomer = JetSoftDrop("AntiKt10TruthSoftDropBeta100Zcut10JetsGroomer", - ZCut = 0.1, - Beta = 1.0, - R0 = 1.0, - JetBuilder = DFCommon_jbld) - - AntiKt10TruthSoftDropBeta100Zcut10JetsFinder = CfgMgr.JetFinder("AntiKt10TruthJetsFinder", - JetAlgorithm = "AntiKt", - JetRadius = 1.0, - JetBuilder = DFCommon_jbld, - GhostArea = 0.01, - PtMin = 50000. - ) - from JetSubStructureMomentTools.JetSubStructureMomentToolsConf import EnergyCorrelatorTool - DFCommon_EnCorr = EnergyCorrelatorTool("DFCommon_EnCorr", Beta = 1.0) - from JetSubStructureMomentTools.JetSubStructureMomentToolsConf import NSubjettinessTool - DFCommon_NSubjettiness = NSubjettinessTool("DFCommon_NSubjettiness",Alpha = 1.0) - AntiKt10TruthSoftDropBeta100Zcut10JetsRec = CfgMgr.JetRecTool("AntiKt10TruthSoftDropBeta100Zcut10JetsRec", - JetGroomer = groomer, - InputPseudoJets = [kernel.TruthGet.OutputContainer], - OutputContainer = "AntiKt10TruthSoftDropBeta100Zcut10Jets", - JetModifiers = [ToolSvc.partontruthlabel,DFCommon_EnCorr,DFCommon_NSubjettiness], - JetFinder = AntiKt10TruthSoftDropBeta100Zcut10JetsFinder) - kernel += CfgMgr.JetAlgorithm("AntiKt10TruthSoftDropBeta100Zcut10JetsAlg",Tools=[AntiKt10TruthSoftDropBeta100Zcut10JetsRec]) + BarCodeFromMetadata=barCodeFromMetadata + ) + # Add a jet tool runner for this thing + from JetRec.JetRecConf import JetToolRunner,JetAlgorithm,PseudoJetAlgorithm + jtm += JetToolRunner("jetchargedrun", EventShapeTools=[], Tools=[jtm.truthpartcharged], Timer=jetFlags.timeJetToolRunner() ) + # And an algorithm to run in + kernel += JetAlgorithm("jetchargedalg") + jetchargedalg = kernel.jetchargedalg + jetchargedalg.Tools = [ jtm.jetchargedrun ] + if 'truthchargedget' not in jtm.tools: + jtm += PseudoJetAlgorithm("truthchargedget", + Label = "TruthCharged", + InputContainer = jtm.truthpartcharged.OutputName, + OutputContainer = "PseudoJetTruthCharged", + SkipNegativeEnergy = True + ) + jtm.gettersMap['truthcharged'] = [jtm.truthchargedget] + + # Add jet algorithms if they aren't there + from JetRec.JetRecStandard import jtm + from JetRec.JetRecConf import JetAlgorithm + truth_modifiers = [jtm.truthpartondr, jtm.partontruthlabel, jtm.jetdrlabeler, jtm.trackjetdrlabeler] + threshold = 15000. if dfInputIsEVNT else 5000. + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthJets") and not hasattr(kernel,'jetalgAntiKt4Truth'): + # Standard truth jets + # To remove jet constituents add the modifier jtm.removeconstit + from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets + addStandardJets("AntiKt", 0.4, "Truth", threshold, mods=truth_modifiers, algseq=kernel, outputGroup="DFCommonMCTruthJets") + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthWZJets") and not hasattr(kernel,'jetalgAntiKt4TruthWZ'): + # WZ Truth Jets - handle non-dressed case + from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets + addStandardJets("AntiKt", 0.4, "TruthWZ", threshold, mods=truth_modifiers, algseq=kernel, outputGroup="DFCommonMCTruthJets") + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt4TruthDressedWZJets") and decorationDressing is not None: + # WZ Dressed Truth Jets - handle dressed case + from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets + addStandardJets("AntiKt", 0.4, "TruthDressedWZ", ptmin=threshold, mods="truth_ungroomed", algseq=kernel, outputGroup="DFCommonMCTruthJets") + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt2TruthChargedJets"): + # R=0.2 truth charged jets + from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets + addStandardJets("AntiKt", 0.2, "TruthCharged", 5000, mods=truth_modifiers, algseq=kernel, outputGroup="DFCommonMCTruthJets") + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthJets") and not hasattr(kernel,'jetalgAntiKt10Truth'): + # AntiKt2 truth charged jets ghost association + from JetRec.JetRecConf import PseudoJetAlgorithm + if 'gakt2truthchargedget' not in jtm.tools: + jtm += PseudoJetAlgorithm("gakt2truthchargedget", # give a unique name + InputContainer = "AntiKt2TruthChargedJets", # SG key + Label = "GhostAntiKt2TruthChargedJets", # this is the name you'll use to retrieve associated ghosts + OutputContainer = "PseudoJetGhostAntiKt2TruthChargedJet", + SkipNegativeEnergy = True, + ) + trackjetgetters = [] + trackjetgetters += [jtm.gakt2truthchargedget] + truthgetters = [jtm.truthget] + truthgetters += trackjetgetters + flavorgetters = [] + for ptype in jetFlags.truthFlavorTags(): + flavorgetters += [getattr(jtm, "gtruthget_" + ptype)] + truthgetters += flavorgetters + jtm.gettersMap["truth"] = list(truthgetters) + + # NB! This line works together with the next block. Some care is required here! + # If we build groomed jets, the jet code will automatically build ungroomed jets, so no need to add them separately + #Large R ungroomed jets + if objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthTrimmedPtFrac5SmallR20Jets") or objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthSoftDropBeta100Zcut10Jets"): + from DerivationFrameworkJetEtMiss.JetCommon import addStandardJets + addStandardJets('AntiKt', 1.0, 'Truth', ptmin=50000, mods=truth_modifiers, algseq=kernel, outputGroup="DFCommonMCTruthJets") + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthTrimmedPtFrac5SmallR20Jets") and not hasattr(kernel,'jetalgAntiKt10TruthTrimmedPtFrac5SmallR20'): + #Large R jets + from DerivationFrameworkJetEtMiss.JetCommon import addTrimmedJets + addTrimmedJets('AntiKt', 1.0, 'Truth', rclus=0.2, ptfrac=0.05, mods="truth_groomed", + algseq=kernel, outputGroup="Trimmed", writeUngroomed=False) + if not objKeyStore.isInInput( "xAOD::JetContainer","AntiKt10TruthSoftDropBeta100Zcut10Jets") and not hasattr(kernel,'jetalgAntiKt10TruthSoftDropBeta100Zcut10'): + from DerivationFrameworkJetEtMiss.JetCommon import addSoftDropJets + addSoftDropJets('AntiKt', 1.0, 'Truth', beta=1.0, zcut=0.1, mods="truth_groomed", + algseq=kernel, outputGroup="SoftDrop", writeUngroomed=False) + # Helper for scheduling the truth MET collection @@ -576,28 +533,29 @@ def addTruthEnergyDensity(kernel=None): # Truth energy density tools from EventShapeTools.EventDensityConfig import configEventDensityTool,EventDensityAthAlg from AthenaCommon.AppMgr import ToolSvc + from JetRec.JetRecStandard import jtm # Algorithms for the energy density - needed only if e/gamma hasn't set things up already if not hasattr(ToolSvc,'EDTruthCentralTool'): DFCommonTruthCentralEDTool = configEventDensityTool("DFCommonTruthCentralEDTool", - kernel.TruthGet.OutputContainer.replace('PseudoJet',''), + jtm.truthget.Label, 0.5, AbsRapidityMax = 1.5, OutputContainer = "TruthIsoCentralEventShape", ) # Note the helper function mangles the naming in a specific way that is not sufficiently general - DFCommonTruthCentralEDTool.InputContainer = kernel.TruthGet.OutputContainer + DFCommonTruthCentralEDTool.InputContainer = jtm.truthget.OutputContainer ToolSvc += DFCommonTruthCentralEDTool kernel += EventDensityAthAlg("DFCommonTruthCentralEDAlg", EventDensityTool = DFCommonTruthCentralEDTool ) if not hasattr(ToolSvc,'EDTruthForwardTool'): DFCommonTruthForwardEDTool = configEventDensityTool("DFCommonTruthForwardEDTool", - kernel.TruthGet.OutputContainer.replace('PseudoJet',''), + jtm.truthget.Label, 0.5, AbsRapidityMin = 1.5, AbsRapidityMax = 3.0, OutputContainer = "TruthIsoForwardEventShape", ) # Note the helper function mangles the naming in a specific way that is not sufficiently general - DFCommonTruthForwardEDTool.InputContainer = kernel.TruthGet.OutputContainer + DFCommonTruthForwardEDTool.InputContainer = jtm.truthget.OutputContainer ToolSvc += DFCommonTruthForwardEDTool kernel += EventDensityAthAlg("DFCommonTruthForwardEDAlg", EventDensityTool = DFCommonTruthForwardEDTool ) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py index a2a1d00220d..e9e483b64cb 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py @@ -10,12 +10,12 @@ from DerivationFrameworkCore.DerivationFrameworkMaster import buildFileName, DerivationFrameworkIsMonteCarlo, DerivationFrameworkJob from DerivationFrameworkInDet import InDetCommon -from DerivationFrameworkJetEtMiss.JetCommon import OutputJets -from DerivationFrameworkJetEtMiss.ExtendedJetCommon import replaceAODReducedJets, addDefaultTrimmedJets, addJetTruthLabel, addQGTaggerTool -from DerivationFrameworkJetEtMiss import METCommon from DerivationFrameworkEGamma import EGammaCommon from DerivationFrameworkEGamma import ElectronsCPDetailedContent from DerivationFrameworkMuons import MuonsCommon +from DerivationFrameworkJetEtMiss.JetCommon import OutputJets +from DerivationFrameworkJetEtMiss.ExtendedJetCommon import replaceAODReducedJets, addDefaultTrimmedJets, addJetTruthLabel, addQGTaggerTool +from DerivationFrameworkJetEtMiss import METCommon from TriggerMenu.api.TriggerAPI import TriggerAPI from TriggerMenu.api.TriggerEnums import TriggerPeriod, TriggerType from DerivationFrameworkTrigger.TriggerMatchingHelper import TriggerMatchingHelper diff --git a/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetForwardJvtTool.h b/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetForwardJvtTool.h index 6982167a924..cf9407b7383 100644 --- a/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetForwardJvtTool.h +++ b/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetForwardJvtTool.h @@ -97,7 +97,7 @@ SG::WriteDecorHandleKey<xAOD::JetContainer> m_fjvtDecKey{this, "FJVTName", "fJvt", "Decoration key for fJvt"}; SG::ReadHandleKey<xAOD::VertexContainer> m_vertexContainerName{this, "VertexContainerName", "PrimaryVertices", "SG key for vertex container"}; - SG::ReadHandleKey<xAOD::MissingETContainer> m_trkMETName{this, "Met_TrackName", "Met_Track", "SG key for MET track container"}; + SG::ReadHandleKey<xAOD::MissingETContainer> m_trkMETName{this, "Met_TrackName", "MET_Track", "SG key for MET track container"}; SG::ReadDecorHandleKey<xAOD::JetContainer> m_widthKey{this, "WidthName", "Width", "SG key for jet width"}; SG::ReadDecorHandleKey<xAOD::JetContainer> m_jvtMomentKey{this, "JvtMomentName", "Jvt", "JVT moment name"}; -- GitLab