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
38 """ Build truth constituents as in EVTGEN jobs in the r21 config.
39 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.
40 The source for r21 EVTGEN config was in GeneratorFilters/share/common/GenerateTruthJets.py
42 truthmod = truthmod
or ""
45 truthClassifier = CompFactory.MCTruthClassifier(
"JetMCTruthClassifier")
48 truthpartcopy = CompFactory.CopyTruthJetParticles(
"truthpartcopy",
49 OutputName=
"JetInputTruthParticlesGEN",
50 MCTruthClassifier=truthClassifier)
51 elif truthmod==
"NoWZ":
53 truthpartcopy = CompFactory.CopyTruthJetParticles(
"truthpartcopywz",
54 OutputName=
"JetInputTruthParticlesGENNoWZ",
55 MCTruthClassifier=truthClassifier,
56 IncludePromptLeptons=
False)
59 tools = [ truthpartcopy ]
63 from ParticleJetTools.ParticleJetToolsConfig
import getCopyTruthLabelParticles
70 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import getTTVAToolForReco
71 trkOptions = parentjetdef._contextDic
73 HardScatterLinkDeco =
"",
74 WorkingPoint =
"Nonprompt_All_MaxWeight",
75 TrackContName = trkOptions[
'JetTracksQualityCuts']
77 alg = CompFactory.PV0TrackSelectionAlg(
"pv0tracksel_trackjet",
78 InputTrackContainer = trkOptions[
'JetTracksQualityCuts'],
79 VertexContainer = trkOptions[
'Vertices'],
80 OutputTrackContainer =
"PV0"+trkOptions[
'JetTracks'],
87 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg",
88 electronID =
"LHMedium",
89 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
90 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
91 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects",
92 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects"
96 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noElectrons",
97 electronID =
"LHMedium",
98 ElectronInputContainer=
"Electrons",
99 removeNeutralElectronFE=
True,
100 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
101 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
102 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noElectrons",
103 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noElectrons"
107 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noMuons",
108 electronID =
"LHMedium",
110 removeNeutralMuonFE=
True,
111 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
112 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
113 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noMuons",
114 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noMuons"
118 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noLeptons",
119 electronID =
"LHMedium",
120 ElectronInputContainer=
"Electrons",
121 removeNeutralElectronFE=
True,
123 removeNeutralMuonFE=
True,
124 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
125 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
126 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noLeptons",
127 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noLeptons"
133 """Function producing an EventShapeAlg to calculate
134 median energy density for pileup correction"""
136 from .JetRecConfig
import getPJContName
137 from EventShapeTools.EventDensityConfig
import configEventDensityTool, getEventShapeName
141 nameprefix = inputspec
or ""
143 f
"EventDensity_{nameprefix}Kt4{pjContName}",
145 InputContainer = pjContName,
146 OutputContainer =
getEventShapeName(jetOrConstitdef, nameprefix=nameprefix, suffix=suffix, radius=radius),
148 VoronoiRfact = voronoiRf,
151 eventshapealg = CompFactory.EventDensityAthAlg(
152 f
"EventDensity_{nameprefix}Kt4{pjContName}Alg",
153 EventDensityTool = rhotool )