22 """Configure the derivation framework driving algorithm (kernel) for JETM5"""
23 acc = ComponentAccumulator()
26 if not flags.Input.isMC:
30 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
31 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs[
'TriggerListsHelper']))
34 from DerivationFrameworkInDet.InDetToolsConfig
import MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg
37 JETM5MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
39 name =
"JETM5MuonTPThinningTool",
40 StreamName = kwargs[
'StreamName'],
42 InDetTrackParticlesKey =
"InDetTrackParticles"))
45 JETM5ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
47 name =
"JETM5ElectronTPThinningTool",
48 StreamName = kwargs[
'StreamName'],
50 InDetTrackParticlesKey =
"InDetTrackParticles"))
53 JETM5PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
55 name =
"JETM5PhotonTPThinningTool",
56 StreamName = kwargs[
'StreamName'],
58 InDetTrackParticlesKey =
"InDetTrackParticles",
59 GSFConversionVerticesKey =
"GSFConversionVertices"))
62 thinningTools = [JETM5MuonTPThinningTool,
63 JETM5ElectronTPThinningTool,
64 JETM5PhotonTPThinningTool]
68 truth_cond_WZH =
"((abs(TruthParticles.pdgId) >= 23) && (abs(TruthParticles.pdgId) <= 25))"
69 truth_cond_Lepton =
"((abs(TruthParticles.pdgId) >= 11) && (abs(TruthParticles.pdgId) <= 16) && !(TruthParticles.isSimulationParticle))"
70 truth_cond_Quark =
"((abs(TruthParticles.pdgId) <= 5 && (TruthParticles.pt > 10000.)) || (abs(TruthParticles.pdgId) == 6))"
71 truth_cond_Gluon =
"((abs(TruthParticles.pdgId) == 21) && (TruthParticles.pt > 10000.))"
72 truth_cond_Photon =
"((abs(TruthParticles.pdgId) == 22) && (TruthParticles.pt > 10000.) && !(TruthParticles.isSimulationParticle))"
74 truth_expression =
'('+truth_cond_WZH+
' || '+truth_cond_Lepton +
' || '+truth_cond_Quark+
'||'+truth_cond_Gluon+
' || '+truth_cond_Photon+
')'
76 preserveAllDescendants =
False
78 JETM5TruthThinningTool = CompFactory.DerivationFramework.GenericTruthThinning ( name =
"JETM5TruthThinningTool",
79 StreamName = kwargs[
'StreamName'],
80 ParticleSelectionString = truth_expression,
81 PreserveDescendants = preserveAllDescendants,
82 PreserveGeneratorDescendants =
not preserveAllDescendants,
83 PreserveAncestors =
True)
85 acc.addPublicTool(JETM5TruthThinningTool)
86 thinningTools.append(JETM5TruthThinningTool)
89 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
90 acc.addEventAlgo(DerivationKernel(name,
91 ThinningTools = thinningTools,
92 SkimmingTools = [skimmingTool]
if not flags.Input.isMC
else []))
96 from DerivationFrameworkJetEtMiss.PFlowCommonConfig
import PFlowCommonCfg
97 acc.merge(PFlowCommonCfg(flags))
104 acc = ComponentAccumulator()
110 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
111 JETM5TriggerListsHelper = TriggerListsHelper(flags)
114 acc.merge(
JETM5KernelCfg(flags, name=
"JETM5Kernel", StreamName =
'StreamDAOD_JETM5', TriggerListsHelper = JETM5TriggerListsHelper))
119 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
120 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
121 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
123 JETM5SlimmingHelper =
SlimmingHelper(
"JETM5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
125 JETM5SlimmingHelper.SmartCollections = [
"EventInfo",
"InDetTrackParticles",
"PrimaryVertices",
126 "Electrons",
"Photons",
"Muons",
"TauJets",
127 "MET_Baseline_AntiKt4EMTopo",
"MET_Baseline_AntiKt4EMPFlow",
128 "AntiKt4EMTopoJets",
"AntiKt4EMPFlowJets",
131 JETM5SlimmingHelper.AllVariables = [
"CaloCalTopoClusters",
133 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
134 "GlobalNeutralParticleFlowObjects",
"GlobalChargedParticleFlowObjects",
135 "CHSGChargedParticleFlowObjects",
"CHSGNeutralParticleFlowObjects",
139 JETM5SlimmingHelper.ExtraVariables += [
"AntiKt4EMPFlowJets.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1"]
142 JETM5SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
143 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer',
144 'TruthVertices':
'xAOD::TruthVertexContainer',
145 'TruthVerticesAux':
'xAOD::TruthVertexAuxContainer'})
147 JETM5SlimmingHelper.AllVariables += [
"MuonTruthParticles",
"egammaTruthParticles",
148 "TruthParticles",
"TruthEvents",
"TruthVertices"]
151 JETM5SlimmingHelper.IncludeTriggerNavigation =
False
152 JETM5SlimmingHelper.IncludeJetTriggerContent =
False
153 JETM5SlimmingHelper.IncludeMuonTriggerContent =
False
154 JETM5SlimmingHelper.IncludeEGammaTriggerContent =
False
155 JETM5SlimmingHelper.IncludeTauTriggerContent =
False
156 JETM5SlimmingHelper.IncludeEtMissTriggerContent =
False
157 JETM5SlimmingHelper.IncludeBJetTriggerContent =
False
158 JETM5SlimmingHelper.IncludeBPhysTriggerContent =
False
159 JETM5SlimmingHelper.IncludeMinBiasTriggerContent =
False
162 JETM5ItemList = JETM5SlimmingHelper.GetItemList()
163 acc.merge(OutputStreamCfg(flags,
"DAOD_JETM5", ItemList=JETM5ItemList, AcceptAlgs=[
"JETM5Kernel"]))
164 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_JETM5", AcceptAlgs=[
"JETM5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))