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,...)
7 # Author: P-A Delsart #
9 from AthenaConfiguration.ComponentFactory
import CompFactory
16 jetalg = CompFactory.JetAlgorithm(
"jetalg_"+suffix,
22 from InDetUsedInFitTrackDecoratorTool.UsedInVertexFitTrackDecoratorConfig
import (
23 getUsedInVertexFitTrackDecoratorAlg)
24 trkProperties = parentjetdef._contextDic
27 vtxCont= trkProperties[
"Vertices"])
31 truthmod = truthmod
or ""
32 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthJetParticles
39 """ Build truth constituents as in EVTGEN jobs in the r21 config.
40 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.
41 The source for r21 EVTGEN config was in GeneratorFilters/share/common/GenerateTruthJets.py
43 truthmod = truthmod
or ""
44 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthJetParticlesGEN
51 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthLabelParticles
58 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import getTTVAToolForReco
59 trkOptions = parentjetdef._contextDic
61 HardScatterLinkDeco =
"",
62 WorkingPoint =
"Nonprompt_All_MaxWeight",
63 TrackContName = trkOptions[
'JetTracksQualityCuts']
65 alg = CompFactory.PV0TrackSelectionAlg(
"pv0tracksel_trackjet",
66 InputTrackContainer = trkOptions[
'JetTracksQualityCuts'],
67 VertexContainer = trkOptions[
'Vertices'],
68 OutputTrackContainer =
"PV0"+trkOptions[
'JetTracks'],
75 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg",
76 electronIDToExclude =
"LHMedium",
77 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
78 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
79 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects",
80 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects"
89 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_tauSeedEleRM",
90 electronIDToExclude =
"LHMedium",
91 ElectronInputContainer=
"Electrons",
92 excludeNeutralElectronFE=
True,
93 muonIDToInclude =
"Loose",
94 excludeChargedMuonFE=
False,
95 includeChargedMuonFE=
True,
96 includeNeutralMuonFE=
True,
97 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
98 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
99 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_tauSeedEleRM",
100 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_tauSeedEleRM"
104 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noElectrons",
105 electronIDToExclude =
"LHMedium",
106 ElectronInputContainer=
"Electrons",
107 excludeNeutralElectronFE=
True,
108 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
109 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
110 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noElectrons",
111 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noElectrons"
115 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noMuons",
116 electronIDToExclude =
"LHMedium",
117 muonIDToExclude =
"Medium",
118 excludeNeutralMuonFE=
True,
119 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
120 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
121 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noMuons",
122 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noMuons"
126 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noLeptons",
127 electronIDToExclude =
"LHMedium",
128 ElectronInputContainer=
"Electrons",
129 excludeNeutralElectronFE=
True,
130 muonIDToExclude =
"Medium",
131 excludeNeutralMuonFE=
True,
132 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
133 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
134 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noLeptons",
135 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noLeptons"
141 """Function producing an EventShapeAlg to calculate
142 median energy density for pileup correction"""
144 from .JetRecConfig
import getPJContName
145 from EventShapeTools.EventDensityConfig
import configEventDensityTool, getEventShapeName
149 nameprefix = inputspec
or ""
151 f
"EventDensity_{nameprefix}Kt4{pjContName}",
153 InputContainer = pjContName,
154 OutputContainer =
getEventShapeName(jetOrConstitdef, nameprefix=nameprefix, suffix=suffix, radius=radius),
156 VoronoiRfact = voronoiRf,
159 eventshapealg = CompFactory.EventDensityAthAlg(
160 f
"EventDensity_{nameprefix}Kt4{pjContName}Alg",
161 EventDensityTool = rhotool )