ATLAS Offline Software
JetRecToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 
10 
11 from AthenaCommon import Logging
12 jrtlog = Logging.logging.getLogger('JetRecToolsConfig')
13 
14 from AthenaConfiguration.ComponentFactory import CompFactory
15 from JetRecConfig.JetRecConfig import isAnalysisRelease
16 
17 
18 
19 def getIDTrackSelectionTool(toolname, **toolProps):
20  """returns a InDetTrackSelectionTool configured with toolProps
21  (except in Analysis releases where some un-used (?) options are explicitely turned off)
22  """
23  idtracksel = CompFactory.getComp("InDet::InDetTrackSelectionTool")(toolname, **toolProps)
24 
25  if not isAnalysisRelease():
26  # thes options can not be set in AnalysisBase/AthAnalysis. (but not setting them is equivalent to set them to False)
27  idtracksel.UseTrkTrackTools = False
28  idtracksel.Extrapolator = ""
29  idtracksel.TrackSummaryTool = ""
30  return idtracksel
31 
32 def getTrackSelAlg(jetdef, trackSelOpt=False):
33  trkProperties = jetdef._contextDic
34  trkOpt=jetdef.context
35 
36  trackToolProps = dict(**trkProperties["trackSelOptions"])
37 
38  if not trackSelOpt:
39  # track selection from trkOpt but OVERWRITING the CutLevel for e.g. ghosts (typically, only a pt>500MeV cut remains):
40  trackToolProps.update( CutLevel=trkProperties['GhostTrackCutLevel'] )
41  outContainerKey = "JetTracks"
42  trkOpt= trkOpt+'ghost' # just so it gives a different tool name below
43  else:
44  outContainerKey = "JetTracksQualityCuts"
45 
46  # build the selection alg
47  trkSelAlg = CompFactory.JetTrackSelectionAlg( f"trackselalg_{trkOpt}_{trkProperties[outContainerKey]}",
48  TrackSelector = getIDTrackSelectionTool(f"tracksel{trkOpt}",**trackToolProps),
49  InputContainer = trkProperties["Tracks"],
50  OutputContainer = trkProperties[outContainerKey],
51  DecorDeps = ["TTVA_AMVFWeights_forReco", "TTVA_AMVFVertices_forReco"] # Hardcoded for now... we might want to have this context-dependent ??
52  )
53 
54  return trkSelAlg
55 
56 
57 def getJetTrackVtxAlg( trkProperties, algname="jetTVA", **ttva_overide):
58  """ theSequence and ttva_overide are options used in trigger (HLT/Jet/JetTrackingConfig.py)"""
59  from TrackVertexAssociationTool.TrackVertexAssociationToolConfig import getTTVAToolForReco
60 
61  ttva_options = dict(
62  TrackContName = trkProperties["Tracks"],
63  HardScatterLinkDeco = ""
64  )
65  # allow client to overide options :
66  ttva_options.update(**ttva_overide)
67 
68  idtvassoc = getTTVAToolForReco( "jetTVatool", **ttva_options )
69 
70  alg = CompFactory.JetTrackVtxAssoAlg(algname,
71  TrackParticleContainer = trkProperties["Tracks"],
72  TrackVertexAssociation = trkProperties["TVA"],
73  VertexContainer = trkProperties["Vertices"],
74  TrackVertexAssoTool = idtvassoc
75  )
76  return alg
77 
78 
80  # PFlow objects matched to electrons/muons filtering algorithm
81  return CompFactory.JetPFlowSelectionAlg( "pflowselalg",
82  electronID = "LHMedium",
83  ChargedPFlowInputContainer = "JetETMissChargedParticleFlowObjects",
84  NeutralPFlowInputContainer = "JetETMissNeutralParticleFlowObjects",
85  ChargedPFlowOutputContainer = "GlobalPFlowChargedParticleFlowObjects",
86  NeutralPFlowOutputContainer = "GlobalPFlowNeutralParticleFlowObjects"
87  )
JetRecToolsConfig.getPFlowSelAlg
def getPFlowSelAlg()
Definition: JetRecToolsConfig.py:79
JetRecToolsConfig.getJetTrackVtxAlg
def getJetTrackVtxAlg(trkProperties, algname="jetTVA", **ttva_overide)
Definition: JetRecToolsConfig.py:57
ParticleJetToolsConfig.isAnalysisRelease
def isAnalysisRelease()
Definition: ParticleJetToolsConfig.py:19
TrackVertexAssociationToolConfig.getTTVAToolForReco
def getTTVAToolForReco(name="TTVATool", **kwargs)
Definition: TrackVertexAssociationToolConfig.py:13
JetRecToolsConfig.getTrackSelAlg
def getTrackSelAlg(jetdef, trackSelOpt=False)
Definition: JetRecToolsConfig.py:32
JetRecToolsConfig.getIDTrackSelectionTool
def getIDTrackSelectionTool(toolname, **toolProps)
Definition: JetRecToolsConfig.py:19