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 electronIDToExclude =
"LHMedium",
89 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
90 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
91 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects",
92 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects"
101 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_tauSeedEleRM",
102 electronIDToExclude =
"LHMedium",
103 ElectronInputContainer=
"Electrons",
104 excludeNeutralElectronFE=
True,
105 muonIDToInclude =
"Loose",
106 excludeChargedMuonFE=
False,
107 includeChargedMuonFE=
True,
108 includeNeutralMuonFE=
True,
109 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
110 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
111 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_tauSeedEleRM",
112 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_tauSeedEleRM"
116 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noElectrons",
117 electronIDToExclude =
"LHMedium",
118 ElectronInputContainer=
"Electrons",
119 excludeNeutralElectronFE=
True,
120 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
121 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
122 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noElectrons",
123 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noElectrons"
127 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noMuons",
128 electronIDToExclude =
"LHMedium",
129 muonIDToExclude =
"Medium",
130 excludeNeutralMuonFE=
True,
131 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
132 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
133 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noMuons",
134 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noMuons"
138 return CompFactory.JetPFlowSelectionAlg(
"pflowselalg_noLeptons",
139 electronIDToExclude =
"LHMedium",
140 ElectronInputContainer=
"Electrons",
141 excludeNeutralElectronFE=
True,
142 muonIDToExclude =
"Medium",
143 excludeNeutralMuonFE=
True,
144 ChargedPFlowInputContainer =
"JetETMissChargedParticleFlowObjects",
145 NeutralPFlowInputContainer =
"JetETMissNeutralParticleFlowObjects",
146 ChargedPFlowOutputContainer =
"GlobalChargedParticleFlowObjects_noLeptons",
147 NeutralPFlowOutputContainer =
"GlobalNeutralParticleFlowObjects_noLeptons"
153 """Function producing an EventShapeAlg to calculate
154 median energy density for pileup correction"""
156 from .JetRecConfig
import getPJContName
157 from EventShapeTools.EventDensityConfig
import configEventDensityTool, getEventShapeName
161 nameprefix = inputspec
or ""
163 f
"EventDensity_{nameprefix}Kt4{pjContName}",
165 InputContainer = pjContName,
166 OutputContainer =
getEventShapeName(jetOrConstitdef, nameprefix=nameprefix, suffix=suffix, radius=radius),
168 VoronoiRfact = voronoiRf,
171 eventshapealg = CompFactory.EventDensityAthAlg(
172 f
"EventDensity_{nameprefix}Kt4{pjContName}Alg",
173 EventDensityTool = rhotool )