8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
14 """Configure the PhotonsDirectionTool"""
16 acc.setPrivateTools(CompFactory.DerivationFramework.PhotonsDirectionTool(name, **kwargs))
22 """Configure the E-gamma selection tool wrapper"""
24 sgName = kwargs.pop(
"StoreGateEntryName",
"")
26 raise AttributeError(
"StoreGateEntryName not set")
27 kwargs.setdefault(
"decoratorPass", sgName)
28 kwargs.setdefault(
"decoratorIsEM", sgName +
"IsEMValue")
29 acc.setPrivateTools(CompFactory.DerivationFramework.EGSelectionToolWrapper(name, **kwargs))
35 """Configure the electron likelihood tool wrapper"""
37 sgName = kwargs.pop(
"StoreGateEntryName",
"")
38 containerName = kwargs.setdefault(
"ContainerName",
"")
40 raise AttributeError(
"StoreGateEntryName not set")
42 raise AttributeError(
"ContainerName empty string")
43 storeTResult = kwargs.setdefault(
"StoreTResult",
False)
44 storeMultipleOutputs = kwargs.setdefault(
"StoreMultipleOutputs",
False)
45 sgMultipleNames = kwargs.pop(
"StoreGateEntryMultipleNames", [])
47 kwargs.setdefault(
"decoratorPass", sgName)
48 kwargs.setdefault(
"decoratorIsEM", sgName +
"IsEMValue")
49 kwargs.setdefault(
"decoratorResult", sgName +
"Result" if storeTResult
else "")
50 kwargs.setdefault(
"decoratorMultipleOutputs", [containerName +
"." + n
for n
in sgMultipleNames]
if storeMultipleOutputs
else [])
53 acc.setPrivateTools(CompFactory.DerivationFramework.EGElectronLikelihoodToolWrapper(name, **kwargs))
59 """Configure the photon cleaning tool wrapper"""
61 sgName = kwargs.pop(
"StoreGateEntryName",
"DFCommonPhotonsCleaning")
63 kwargs.setdefault(
"decoratorPass", sgName)
64 kwargs.setdefault(
"decoratorPassDelayed", sgName +
"NoTime")
65 acc.setPrivateTools(CompFactory.DerivationFramework.EGPhotonCleaningWrapper(name, **kwargs))
71 """Configure the electron ambiguity tool"""
73 EGElectronAmbiguityTool = CompFactory.DerivationFramework.EGElectronAmbiguityTool
74 acc.setPrivateTools(EGElectronAmbiguityTool(name, **kwargs))
80 """Configure the background electron classification tool"""
82 from MCTruthClassifier.MCTruthClassifierConfig
import DFCommonMCTruthClassifierCfg
83 kwargs.setdefault(
"MCTruthClassifierTool", acc.popToolsAndMerge(
85 acc.setPrivateTools(CompFactory.DerivationFramework.BkgElectronClassification(name, **kwargs))
91 """Configure the track particle merger tool"""
93 ElectronMerger = CompFactory.DerivationFramework.ElectronMergerTool
94 acc.setPrivateTools(ElectronMerger(name, **kwargs))
99 flags, name="PhotonVertexSelectionWrapper", **kwargs):
101 prefix = kwargs.pop(
"DecorationPrefix",
"")
102 if prefix: prefix +=
"_"
103 kwargs.setdefault(
"pt", prefix +
"pt")
104 kwargs.setdefault(
"eta", prefix +
"eta")
105 kwargs.setdefault(
"phi", prefix +
"phi")
106 kwargs.setdefault(
"sumPt", prefix +
"sumPt")
107 kwargs.setdefault(
"sumPt2", prefix +
"sumPt2")
109 if "PhotonPointingTool" not in kwargs:
110 from PhotonVertexSelection.PhotonVertexSelectionConfig
import (
111 PhotonPointingToolCfg)
112 kwargs.setdefault(
"PhotonPointingTool", acc.popToolsAndMerge(
116 CompFactory.DerivationFramework.PhotonVertexSelectionWrapper(
122 flags, name="PhotonVertexSelectionWrapperKernel", **kwargs):
125 augmentationTools = [
128 kwargs.setdefault(
"AugmentationTools", augmentationTools)
131 CompFactory.DerivationFramework.DerivationKernel(name, **kwargs))
138 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
140 from TileGeoModel.TileGMConfig
import TileGMCfg
143 clusterKey = kwargs.setdefault(
"ClusterContainerName",
"ForwardElectronCookieCutClusters")
144 kwargs.setdefault(
"ClusterContainerLinksName", clusterKey +
"_links")
146 if kwargs[
"ClusterContainerLinksName"] != (clusterKey +
"_links"):
147 raise AttributeError(
"ClusterContainerLinksName ({}) is not syncrhonised with ClusterContainerName ({})".
format(kwargs[
"ClusterContainerLinksName"], clusterKey))
148 kwargs.setdefault(
'StoreCookedMoments',
False)
149 kwargs.setdefault(
'StoreInputMoments',
False)
150 electronKey = kwargs.setdefault(
"SGKey_electrons", flags.Egamma.Keys.Output.ForwardElectrons)
152 momentNames = [
"SECOND_LAMBDA",
"LATERAL",
"LONGITUDINAL",
"ENG_FRAC_MAX",
153 "SECOND_R",
"CENTER_LAMBDA",
"SECOND_ENG_DENS",
"SIGNIFICANCE"]
154 cookedMoments = [
"cookiecut" + moment
for moment
in momentNames]
if kwargs[
'StoreCookedMoments']
else []
155 originalMoments = [
"original" + moment
for moment
in momentNames]
if kwargs[
'StoreInputMoments']
else []
156 electronDecorations = [i
for sublist
in zip(cookedMoments, originalMoments)
for i
in sublist]
157 electronDecorations += [
"cookiecutClusterLink"]
158 kwargs.setdefault(
"SGKey_electrons_decorations", [electronKey +
"." + decor
for decor
in electronDecorations])
161 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
163 from CaloRec.CaloTopoClusterConfig
import getTopoMoments
165 kwargs.setdefault(
"ClusterMomentMaker",[momentsMaker])
168 CompFactory.DerivationFramework.EGammaCookieCutClusterTool(