ATLAS Offline Software
Loading...
Searching...
No Matches
egammaCaloToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3""" Tool configuration to instantiate all egammaCaloTools with default configuration.
4"""
5
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory import CompFactory
8
9
10def CaloFillRectangularClusterCfg(flags, **kwargs):
11 result = ComponentAccumulator()
12
13 kwargs.setdefault("eta_size", 5)
14 kwargs.setdefault("phi_size", 7)
15 kwargs.setdefault("cells_name", flags.Egamma.Keys.Input.CaloCells)
16
17 result.setPrivateTools(CompFactory.CaloFillRectangularCluster(**kwargs))
18 return result
19
20
22 flags, name="egammaCheckEnergyDepositTool", **kwargs
23):
24 result = ComponentAccumulator()
25 kwargs.setdefault("ThrE2min", 50)
26 kwargs.setdefault("ThrF0max", 0.9)
27 kwargs.setdefault("ThrF1max", 0.9)
28 kwargs.setdefault("ThrF2max", 0.999)
29 kwargs.setdefault("ThrF3max", 0.8)
30 result.setPrivateTools(CompFactory.egammaCheckEnergyDepositTool(name, **kwargs))
31 return result
32
33
34def egammaCaloClusterSelectorGSFCfg(flags, name="caloClusterGSFSelector", **kwargs):
35 result = ComponentAccumulator()
36
37 if "egammaCheckEnergyDepositTool" not in kwargs:
38 if not flags.Egamma.doLowMu:
39 kwargs["egammaCheckEnergyDepositTool"] = result.popToolsAndMerge(
41 )
42
43 kwargs.setdefault("EMEtCut", 2250.0 if not flags.Egamma.doLowMu else 300.0)
44 kwargs.setdefault("EMEtSplittingFraction", 0.7)
45 kwargs.setdefault("EMFCut", 0.5)
46 kwargs.setdefault("CellContainerName", flags.Egamma.Keys.Input.CaloCells)
47 result.setPrivateTools(CompFactory.egammaCaloClusterSelector(name, **kwargs))
48 return result
49
50
51def egammaCaloClusterSelectorCfg(flags, name="caloClusterROISelector", **kwargs):
52 result = ComponentAccumulator()
53
54 if "egammaCheckEnergyDepositTool" not in kwargs:
55 if not flags.Egamma.doLowMu:
56 kwargs["egammaCheckEnergyDepositTool"] = result.popToolsAndMerge(
58 )
59 kwargs.setdefault("EMEtCut", 2250.0 if not flags.Egamma.doLowMu else 300.0)
60 kwargs.setdefault("EMEtSplittingFraction", 0.7)
61 kwargs.setdefault("EMFCut", 0.7)
62 kwargs.setdefault("RetaCut", 0.65 if not flags.Egamma.doLowMu else 0.0)
63 kwargs.setdefault("HadLeakCut", 0.15)
64 result.setPrivateTools(CompFactory.egammaCaloClusterSelector(name, **kwargs))
65 return result
66
67
69 flags, name="caloClusterHadROISelector", **kwargs
70):
71 result = ComponentAccumulator()
72 kwargs.setdefault("egammaCheckEnergyDepositTool", "")
73 kwargs.setdefault("ClusterEtCut", 150e3)
74 result.setPrivateTools(CompFactory.egammaCaloClusterSelector(name, **kwargs))
75 return result
76
78 flags, name="egammaLargeClusterCellRecoveryTool", **kwargs
79):
80 result = ComponentAccumulator()
81
82 # Configure to fill 7x11 cluster with cells
83 toolArgs = dict(
84 eta_size = 7,
85 phi_size = 11,
86 fill_cluster = True,
87 )
88
89 kwargs["CaloFillRectangularClusterTool"] = result.popToolsAndMerge(
90 CaloFillRectangularClusterCfg(flags, **toolArgs)
91 )
92
93 result.setPrivateTools(
94 CompFactory.egammaLargeClusterCellRecoveryTool(name, **kwargs)
95 )
96
97 return result
98
99if __name__ == "__main__":
100 from AthenaConfiguration.AllConfigFlags import initConfigFlags
101 from AthenaConfiguration.ComponentAccumulator import printProperties
102 from AthenaConfiguration.TestDefaults import defaultTestFiles
103 from AthenaCommon.Logging import logging
104 flags = initConfigFlags()
105 flags.Input.Files = defaultTestFiles.RDO_RUN2
106 flags.fillFromArgs()
107 flags.lock()
108 flags.dump()
109
110 cfg = ComponentAccumulator()
111 mlog = logging.getLogger("egammaCaloToolsConfigTest")
112 mlog.info("Configuring egammaCaloClusterSelector : ")
113 printProperties(
114 mlog,
115 cfg.popToolsAndMerge(egammaCaloClusterSelectorCfg(flags)),
116 nestLevel=1,
117 printDefaults=True,
118 )
119 mlog.info("Configuring egammaCaloClusterSelectorGSF :")
120 printProperties(
121 mlog,
122 cfg.popToolsAndMerge(egammaCaloClusterSelectorGSFCfg(flags)),
123 nestLevel=1,
124 printDefaults=True,
125 )
126 mlog.info("Configuring egammaHadCaloClusterSelector :")
127 printProperties(
128 mlog,
129 cfg.popToolsAndMerge(egammaHadCaloClusterSelectorCfg(flags)),
130 nestLevel=1,
131 printDefaults=True,
132 )
133 f = open("egtracktools.pkl", "wb")
134 cfg.store(f)
135 f.close()
egammaHadCaloClusterSelectorCfg(flags, name="caloClusterHadROISelector", **kwargs)
egammaCheckEnergyDepositToolcfg(flags, name="egammaCheckEnergyDepositTool", **kwargs)
CaloFillRectangularClusterCfg(flags, **kwargs)
egammaCaloClusterSelectorCfg(flags, name="caloClusterROISelector", **kwargs)
egammaLargeClusterCellRecoveryToolCfg(flags, name="egammaLargeClusterCellRecoveryTool", **kwargs)
egammaCaloClusterSelectorGSFCfg(flags, name="caloClusterGSFSelector", **kwargs)