11 check whether the decorator can be added.
13 A decorator can be added if a track particle converter alg is in the sequence or
14 if ESDs or AODs are read.
17 if not (flags.Detector.GeometryID
or flags.Detector.GeometryITk):
20 return (flags.PhysVal.IDPVM.runDecoration
and
21 (
"StreamESD" in flags.Input.ProcessingTags
or
22 "StreamAOD" in flags.Input.ProcessingTags
or
23 (len(flags.Input.ProcessingTags) > 0
and
26 "StreamDAOD" in flags.Input.ProcessingTags[0])))
30 flags, name="InDetPhysHitDecoratorAlg", **kwargs):
31 if flags.Detector.GeometryITk:
35 create decoration algorithm which decorates track particles with the unbiased hit residuals and pulls.
37 acc = ComponentAccumulator()
39 if 'InDetTrackHoleSearchTool' not in kwargs:
40 from InDetConfig.InDetTrackHoleSearchConfig
import (
41 InDetTrackHoleSearchToolCfg)
42 kwargs.setdefault(
"InDetTrackHoleSearchTool",
43 acc.popToolsAndMerge(InDetTrackHoleSearchToolCfg(flags)))
45 if 'Updator' not in kwargs:
46 from TrkConfig.TrkMeasurementUpdatorConfig
import InDetUpdatorCfg
47 kwargs.setdefault(
"Updator", acc.popToolsAndMerge(InDetUpdatorCfg(flags)))
49 if 'LorentzAngleTool' not in kwargs:
50 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
51 PixelLorentzAngleToolCfg)
52 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
53 PixelLorentzAngleToolCfg(flags)))
55 if 'ResidualPullCalculator' not in kwargs:
56 from TrkConfig.TrkResidualPullCalculatorConfig
import (
57 ResidualPullCalculatorCfg)
58 kwargs.setdefault(
"ResidualPullCalculator", acc.addPublicTool(
59 acc.popToolsAndMerge(ResidualPullCalculatorCfg(flags))))
61 kwargs.setdefault(
"useTRT", flags.Detector.EnableTRT)
63 acc.addEventAlgo(CompFactory.InDetPhysHitDecoratorAlg(name, **kwargs))
69 create decoration algorithm which decorates track particles with the unbiased hit residuals and pulls.
72 acc = ComponentAccumulator()
74 if 'InDetTrackHoleSearchTool' not in kwargs:
75 from InDetConfig.InDetTrackHoleSearchConfig
import (
76 ITkTrackHoleSearchToolCfg)
77 kwargs.setdefault(
"InDetTrackHoleSearchTool", acc.popToolsAndMerge(
78 ITkTrackHoleSearchToolCfg(flags)))
80 if 'Updator' not in kwargs:
81 from TrkConfig.TrkMeasurementUpdatorConfig
import ITkUpdatorCfg
82 kwargs.setdefault(
"Updator", acc.popToolsAndMerge(ITkUpdatorCfg(flags)))
84 if 'LorentzAngleTool' not in kwargs:
85 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
86 ITkPixelLorentzAngleToolCfg)
87 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
88 ITkPixelLorentzAngleToolCfg(flags)))
90 if 'ResidualPullCalculator' not in kwargs:
91 from TrkConfig.TrkResidualPullCalculatorConfig
import (
92 ResidualPullCalculatorCfg)
93 kwargs.setdefault(
"ResidualPullCalculator", acc.addPublicTool(
94 acc.popToolsAndMerge(ResidualPullCalculatorCfg(flags))))
96 acc.addEventAlgo(CompFactory.InDetPhysHitDecoratorAlg(name, **kwargs))
112 flags, name="InDetPhysValTruthDecoratorAlg", **kwargs):
114 create decoration algorithm which decorates truth particles with track parameters at the perigee.
116 acc = ComponentAccumulator()
118 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
119 extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
120 acc.addPublicTool(extrapolator)
121 kwargs.setdefault(
"Extrapolator", extrapolator)
123 if flags.Detector.GeometryITk:
124 kwargs.setdefault(
"PixelClusterContainerName",
"ITkPixelMeasurements")
125 kwargs.setdefault(
"SCTClusterContainerName",
"ITkStripMeasurements")
127 kwargs.setdefault(
"PixelClusterContainerName",
"PixelMeasurements")
128 kwargs.setdefault(
"SCTClusterContainerName",
"SCT_Measurements")
130 kwargs.setdefault(
'TruthParticleIndexDecoration',
131 'origTruthIndex' if flags.PhysVal.IDPVM.doTechnicalEfficiency
else '')
133 acc.addEventAlgo(CompFactory.InDetPhysValTruthDecoratorAlg(name, **kwargs))