ATLAS Offline Software
Reconstruction
Jet
JetCalibTools
python
JetCalibToolsCfg.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
from
JetRecConfig.StandardJetConstits
import
inputsFromContext
4
from
PathResolver
import
PathResolver
5
6
from
AthenaCommon
import
Logging
7
jetcaliblog = Logging.logging.getLogger(
'JetCalibToolsConfig'
)
8
9
all = [
'getJetCalibTool'
]
10
11
calibdic = {
12
"AntiKt4EMPFlow:T0"
:
"JetCalibTools/calibConfigExample.yaml"
,
13
"AntiKt4EMPFlow:TrigRun2"
:
"JetCalibTools/calibConfigExample.yaml"
,
# this is for testing
14
}
15
16
# This method actually sets up the tool
17
def
defineJetCalibTool
(jetdef, modspec):
18
from
JetCalibTools.JetCalibStepsConfig
import
calibToolFromConfigFile
19
20
jetcollection = jetdef.basename
21
cfg = calibdic[f
"{jetdef.basename}:{modspec}"
]
22
path_configFile =
PathResolver.FindCalibFile
(cfg)
23
toolname =
"jetcalib_new_{0}_{1}"
.
format
(jetcollection,modspec)
24
jct =
calibToolFromConfigFile
(jetdef._cflags, path_configFile, toolname)
25
26
return
jct
27
28
# This method extends the basic config getter to specify the requisite jet
29
# moments or other inputs
30
def
getJetCalibToolPrereqs
(jetdef, modspec):
31
from
JetCalibTools.JetCalibStepsConfig
import
load_yaml_cfg
32
33
cfg = calibdic[f
"{jetdef.basename}:{modspec}"
]
34
configDic =
load_yaml_cfg
(cfg)
35
36
prereqs = [
"mod:ConstitFourMom"
]
37
pvname =
"PrimaryVertices"
# this can be set dinamically in future
38
39
for
step, step_config
in
configDic.items():
40
# JetArea
41
if
step_config.get(
"DoJetArea"
,
False
):
42
if
modspec.startswith(
"Trig"
):
43
prereqs.append(
"input:HLT_EventDensity"
)
44
elif
pvname ==
"PrimaryVertices_initial"
:
45
prereqs.append(
"input:EventDensityCustomVtxGNN"
)
46
elif
pvname !=
"PrimaryVertices"
:
47
prereqs.append(
"input:EventDensityCustomVtx"
)
48
else
:
49
prereqs.append(
inputsFromContext
(
"EventDensity"
)(jetdef))
50
51
# read prereqs from context or default config block
52
prereq_block = step_config.get(
"prereqs"
, {})
53
step_prereqs = prereq_block.get(modspec, prereq_block.get(
"default"
, []))
54
prereqs.extend(step_prereqs)
55
56
# remove duplication and keep order
57
seen =
set
()
58
prereqs_unique = []
59
for
p
in
prereqs:
60
if
p
not
in
seen:
61
prereqs_unique.append(p)
62
seen.add(p)
63
64
return
prereqs_unique
65
PathResolver::FindCalibFile
static std::string FindCalibFile(const std::string &logical_file_name)
Definition:
PathResolver.h:63
vtune_athena.format
format
Definition:
vtune_athena.py:14
JetCalibToolsCfg.getJetCalibToolPrereqs
def getJetCalibToolPrereqs(jetdef, modspec)
Definition:
JetCalibToolsCfg.py:30
JetCalibToolsCfg.defineJetCalibTool
def defineJetCalibTool(jetdef, modspec)
Definition:
JetCalibToolsCfg.py:17
JetCalibStepsConfig.calibToolFromConfigFile
def calibToolFromConfigFile(flags, configFile, name="jetcalib")
Definition:
JetCalibStepsConfig.py:196
python.StandardJetContext.inputsFromContext
def inputsFromContext(inputKey, prefix="", suffix="")
Definition:
StandardJetContext.py:112
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition:
bitmask.h:232
JetCalibStepsConfig.load_yaml_cfg
def load_yaml_cfg(configFile)
Definition:
JetCalibStepsConfig.py:205
Generated on Mon Sep 1 2025 21:12:36 for ATLAS Offline Software by
1.8.18