17def TrackParticleImpactParameters (TPD3PDObject,
21 pvunbiased_suffix = 'pvunbiased'):
22 """Add to a D3PD object blocks filling in impact parameter information.
24TPD3PDObject should be a D3PD object for a TrackParticle
25(could be an association). This will add information for impact
26parameters with respect to the beam spot and the primary vertex,
27and the unbiased impact parameter with respect to the primary vertex.
28The variable names are constructed using the prefix and *_suffix
35 BSPerigeeAssoc = SimpleAssociation \
38 blockname = prefix +
'BSPerigeeAssoc',
40 def _trackToVertexHook (c, flags, acc, prefix, *args, **kw):
41 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
42 acc.merge(BeamSpotCondAlgCfg(flags))
43 from TrackToVertex.TrackToVertexConfig
import InDetTrackToVertexCfg
44 c.Associator.TrackToVertexTool = acc.popToolsAndMerge (InDetTrackToVertexCfg (flags))
46 BSPerigeeAssoc.defineHook (_trackToVertexHook)
47 BSPerigeeAssoc.defineBlock (1, prefix +
'Impact' + beam_suffix,
49 FillThetaAndQoverP =
False,
53 BSCovarAssoc = SimpleAssociation \
56 blockname = prefix +
'BSPerigeeCovarAssoc')
57 BSCovarAssoc.defineBlock (1, prefix +
'ImpactSig' + beam_suffix,
64 PVPerigeeAssoc = SimpleAssociation \
67 blockname = prefix +
'PVPerigeeAssoc',
69 PVPerigeeAssoc.defineHook (_trackToVertexHook)
70 PVPerigeeAssoc.defineBlock (1, prefix +
'Impact' + pv_suffix,
72 FillThetaAndQoverP =
False,
76 PVCovarAssoc = SimpleAssociation \
79 blockname = prefix +
'PVPerigeeCovarAssoc')
80 PVCovarAssoc.defineBlock (1, prefix +
'ImpactSig' + pv_suffix,