5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
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.
39 if 'InDetTrackHoleSearchTool' not in kwargs:
40 from InDetConfig.InDetTrackHoleSearchConfig
import (
41 InDetTrackHoleSearchToolCfg)
42 kwargs.setdefault(
"InDetTrackHoleSearchTool",
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(
55 if 'ResidualPullCalculator' not in kwargs:
56 from TrkConfig.TrkResidualPullCalculatorConfig
import (
57 ResidualPullCalculatorCfg)
58 kwargs.setdefault(
"ResidualPullCalculator", acc.addPublicTool(
61 acc.addEventAlgo(CompFactory.InDetPhysHitDecoratorAlg(name, **kwargs))
67 create decoration algorithm which decorates track particles with the unbiased hit residuals and pulls.
72 if 'InDetTrackHoleSearchTool' not in kwargs:
73 from InDetConfig.InDetTrackHoleSearchConfig
import (
74 ITkTrackHoleSearchToolCfg)
75 kwargs.setdefault(
"InDetTrackHoleSearchTool", acc.popToolsAndMerge(
78 if 'Updator' not in kwargs:
79 from TrkConfig.TrkMeasurementUpdatorConfig
import ITkUpdatorCfg
80 kwargs.setdefault(
"Updator", acc.popToolsAndMerge(
ITkUpdatorCfg(flags)))
82 if 'LorentzAngleTool' not in kwargs:
83 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
84 ITkPixelLorentzAngleToolCfg)
85 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
88 if 'ResidualPullCalculator' not in kwargs:
89 from TrkConfig.TrkResidualPullCalculatorConfig
import (
90 ResidualPullCalculatorCfg)
91 kwargs.setdefault(
"ResidualPullCalculator", acc.addPublicTool(
94 acc.addEventAlgo(CompFactory.InDetPhysHitDecoratorAlg(name, **kwargs))
99 flags, name="ParameterErrDecoratorAlg", **kwargs):
101 create decoration algorithm which decorates track particles with the uncertainties of the track parameters.
104 acc.addEventAlgo(CompFactory.ParameterErrDecoratorAlg(name, **kwargs))
109 flags, name="InDetPhysValTruthDecoratorAlg", **kwargs):
111 create decoration algorithm which decorates truth particles with track parameters at the perigee.
115 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
117 acc.addPublicTool(extrapolator)
118 kwargs.setdefault(
"Extrapolator", extrapolator)
120 if flags.Detector.GeometryITk:
121 kwargs.setdefault(
"PixelClusterContainerName",
"ITkPixelMeasurements")
122 kwargs.setdefault(
"SCTClusterContainerName",
"ITkStripMeasurements")
124 kwargs.setdefault(
'TruthParticleIndexDecoration',
125 'origTruthIndex' if flags.PhysVal.IDPVM.doTechnicalEfficiency
else '')
127 acc.addEventAlgo(CompFactory.InDetPhysValTruthDecoratorAlg(name, **kwargs))
133 create decoration algorithm which decorates truth particles with origin and type from truth classifier.
136 acc.addEventAlgo(CompFactory.TruthClassDecoratorAlg(name, **kwargs))
142 Get track particle decorators needed for the InDetPhysValMonitoring tool
146 if "CombinedInDetTracks" in flags.Input.Collections:
155 kwargs.setdefault(
"TrackParticleContainerName",
"GSFTrackParticles")
161 Add the track particle decoration algorithm to the top sequence.
162 The algorithm is to be run on RAW/RDO since it depends on full hit information
163 which is generally not available at later stages. The decorations added by this
164 algorithm are used by InDetPhysValMonitoring tool.
171 from BeamSpotConditions.BeamSpotConditionsConfig
import (
176 if flags.PhysVal.IDPVM.doValidateGSFTracks:
186 if flags.PhysVal.IDPVM.doValidateGSFTracks:
189 for col
in flags.PhysVal.IDPVM.validateExtraTrackCollections:
191 flags, TrackParticleContainerName=col))
196 Add the InDet decoration algorithm if it has not been ran yet.
202 print(
'DEBUG addDecoratorIfNeeded ? Stage is too early or too late for running the decoration. Needs reconstructed tracks. Try again during next stage ?')