3# JetInputConfig: A helper module providing function to setup algorithms
4# in charge of preparing input sources to jets (ex: EventDensity algo, track
5# or truth selection,...)
9from AthenaConfiguration.ComponentFactory
import CompFactory
10from AthenaCommon
import Logging
11jetlog = Logging.logging.getLogger(
'JetInputConfig')
18 jetalg = CompFactory.JetAlgorithm(
"jetalg_"+suffix,
24 from InDetUsedInFitTrackDecoratorTool.UsedInVertexFitTrackDecoratorConfig
import (
25 getUsedInVertexFitTrackDecoratorAlg)
26 trkProperties = parentjetdef._contextDic
28 return getUsedInVertexFitTrackDecoratorAlg(trackCont=trkProperties[
"Tracks"],
29 vtxCont= trkProperties[
"Vertices"])
33 truthmod = truthmod
or ""
34 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthJetParticles
36 tools = [ getCopyTruthJetParticles(truthmod, parentjetdef._cflags) ]
41 """ Build truth constituents as in EVTGEN jobs in the r21 config.
42 IMPORTANT : this is expected to be temporary, only to reproduce the EVTGEN r21 config with the new config. The definitions should be harmonized with reco-level at some point and this function removed.
43 The source for r21 EVTGEN config was in GeneratorFilters/share/common/GenerateTruthJets.py
45 truthmod = truthmod
or ""
46 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthJetParticlesGEN
48 tools = [ getCopyTruthJetParticlesGEN(truthmod, parentjetdef._cflags) ]
53 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthLabelParticles
54 tool = getCopyTruthLabelParticles(truthmod)
60 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import getTTVAToolForReco
61 trkOptions = parentjetdef._contextDic
62 tvaTool = getTTVAToolForReco(
"trackjetTVAtool",
63 HardScatterLinkDeco =
"",
64 WorkingPoint =
"Nonprompt_All_MaxWeight",
65 TrackContName = trkOptions[
'JetTracksQualityCuts']
67 alg = CompFactory.PV0TrackSelectionAlg(
"pv0tracksel_trackjet",
68 InputTrackContainer = trkOptions[
'JetTracksQualityCuts'],
69 VertexContainer = trkOptions[
'Vertices'],
70 OutputTrackContainer =
"PV0"+trkOptions[
'JetTracks'],
77 egammaPEB = parentjetdef._cflags.Input.TriggerStream==
'physics_EgammaPEBTLA' or egammaPEB
79 jetlog.warning(
"Configuring muon-less reconstruction for EgammaPEB stream")
80 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg",
81 electronIDToExclude =
"LHMedium",
82 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
83 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
84 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects",
85 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects",
86 isEgammaPEB = egammaPEB
95 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_tauSeedEleRM",
96 electronIDToExclude =
"LHMedium",
97 ElectronInputContainer=
"Electrons",
98 excludeNeutralElectronFE=
True,
99 muonIDToInclude =
"Loose",
100 excludeChargedMuonFE=
False,
101 includeChargedMuonFE=
True,
102 includeNeutralMuonFE=
True,
103 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
104 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
105 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_tauSeedEleRM",
106 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_tauSeedEleRM"
110 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noElectrons",
111 electronIDToExclude =
"LHMedium",
112 ElectronInputContainer=
"Electrons",
113 excludeNeutralElectronFE=
True,
114 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
115 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
116 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noElectrons",
117 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noElectrons"
121 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noMuons",
122 electronIDToExclude =
"LHMedium",
123 muonIDToExclude =
"Medium",
124 excludeNeutralMuonFE=
True,
125 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
126 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
127 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noMuons",
128 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noMuons"
132 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noLeptons",
133 electronIDToExclude =
"LHMedium",
134 ElectronInputContainer=
"Electrons",
135 excludeNeutralElectronFE=
True,
136 muonIDToExclude =
"Medium",
137 excludeNeutralMuonFE=
True,
138 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
139 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
140 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noLeptons",
141 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noLeptons"
147 """Function producing an EventShapeAlg to calculate
148 median energy density for pileup correction"""
150 from .JetRecConfig
import getPJContName
151 from EventShapeTools.EventDensityConfig
import configEventDensityTool, getEventShapeName
154 pjContName = getPJContName(jetOrConstitdef,suffix)
155 nameprefix = inputspec
or ""
156 rhotool = configEventDensityTool(
157 f
"EventDensity_{nameprefix}Kt4{pjContName}",
159 InputContainer = pjContName,
160 OutputContainer = getEventShapeName(jetOrConstitdef, nameprefix=nameprefix, suffix=suffix, radius=radius),
162 VoronoiRfact = voronoiRf,
165 eventshapealg = CompFactory.EventDensityAthAlg(
166 f
"EventDensity_{nameprefix}Kt4{pjContName}Alg",
167 EventDensityTool = rhotool )