26) -> ComponentAccumulator:
27 """Decorate jets with calibrated four-momentum components."""
28
29 del cfgFlags
30
31 if jetCollection.endswith("Jets"):
32 jet_container = jetCollection
33 jet_collection_nosuffix = jetCollection[:-4]
34 else:
35 jet_container = f"{jetCollection}Jets"
36 jet_collection_nosuffix = jetCollection
37
38 safe_collection = _sanitize(jet_collection_nosuffix)
39 safe_scale = _sanitize(calibrationScale)
40
41 calib_collection = calibJetCollection if calibJetCollection is not None else jet_collection_nosuffix
42
43 tool_kwargs = dict(
44 JetCollection=calib_collection,
45 ConfigFile=configFile,
46 CalibSequence=calibSequence,
47 CalibArea=calibArea,
48 IsData=isData,
49 )
50 if rhoKey is not None:
51 tool_kwargs['RhoKey'] = rhoKey
52 if originScale is not None:
53 tool_kwargs['OriginScale'] = originScale
54
55 jet_calib_tool = CompFactory.JetCalibrationTool(
56 f"JetCalibrationTool_{safe_collection}_{safe_scale}",
57 **tool_kwargs,
58 )
59
60 acc = ComponentAccumulator()
61 acc.addPublicTool(jet_calib_tool)
62 acc.addEventAlgo(
63 CompFactory.FlavorTagDiscriminants.JetCalibrationDecoratorAlg(
64 f"JetCalibrationDecoratorAlg_{_sanitize(jet_container)}_{safe_scale}",
65 JetCalibrationTool=jet_calib_tool,
66 JetContainer=jet_container,
67 ptCalibratedKey=f"{jet_container}.{calibrationScale}_pt",
68 etaCalibratedKey=f"{jet_container}.{calibrationScale}_eta",
69 phiCalibratedKey=f"{jet_container}.{calibrationScale}_phi",
70 massCalibratedKey=f"{jet_container}.{calibrationScale}_mass",
71 )
72 )
73
74 return acc