4from D3PDMakerCoreComps.D3PDObject
import make_SGDataVector_D3PDObject
5from D3PDMakerCoreComps.SimpleAssociation
import SimpleAssociation
6from D3PDMakerConfig.D3PDMakerFlags
import D3PDMakerFlags
7from AthenaConfiguration.ComponentFactory
import CompFactory
13 make_SGDataVector_D3PDObject (
'DataVector<xAOD::Muon_v1>',
14 D3PDMakerFlags.MuonSGKey,
15 'mu_',
'MuonD3PDObject')
17MuonD3PDObject.defineBlock (0,
'Kinematics',
22MuonD3PDObject.defineBlock (
25 Vars = [
'allauthor = allAuthors'])
27MuonD3PDObject.defineBlock (
31MuonD3PDObject.defineBlock (1,
'NumberOfSegments',
34MuonD3PDObject.defineBlock (
37 Vars = [
'etcone20 < float: 0',
38 'etcone30 < float: 0',
39 'etcone40 < float: 0',
40 'ptcone20 < float: 0',
41 'ptcone30 < float: 0',
42 'ptcone40 < float: 0',
43 'scatteringCurvatureSignificance < float: 0',
44 'scatteringNeighbourSignificance < float: 0',
45 'momentumBalanceSignificance < float: 0'])
47MuonD3PDObject.defineBlock (
50 Vars = [
'energyLossType'])
51MuonD3PDObject.defineBlock (
56MuonD3PDObject.defineBlock (2,
'MuonHitSummary',
59MuonD3PDObject.defineBlock (
60 2,
'MuonSpectrometerHitSummary',
62 Vars = [
'primarySector',
98MuonD3PDObject.defineBlock (
99 4,
'MuonSpectrometerFieldIntegral',
101 Vars = [
'MSFieldIntegral = spectrometerFieldIntegral < float: 0'])
109MuonTPAssoc = SimpleAssociation \
112 matched =
'hastrack',
113 blockname =
'TrkInfo')
114MuonTPAssoc.defineBlock (
118TrackParticlePerigeeAssoc = SimpleAssociation \
123 blockname =
'TrackParticlePerigeeAssoc')
124TrackParticlePerigeeAssoc.defineBlock (1,
'TrkParameters',
128TrackParticleCovarAssoc = SimpleAssociation (TrackParticlePerigeeAssoc,
131 blockname =
'TrackParticleCovarAssoc')
132TrackParticleCovarAssoc.defineBlock (1,
'TrkCovDiag',
135 IsTrackPerigee =
True,
137 DiagCovariance =
True)
138TrackParticleCovarAssoc.defineBlock (2,
'TrkCovOffDiag',
141 IsTrackPerigee =
True,
143 OffDiagCovariance =
True)
145MuonTPAssoc.defineBlock (
148 Vars = [
'chi2 = chiSquared',
153MuonIDTPAssoc = SimpleAssociation \
156 blockname =
'TrkInfoInDet',
159if not D3PDMakerFlags.Muons.doSingleMuons:
164 from TrackD3PDMaker.TrackParticleImpactParameters \
165 import TrackParticleImpactParameters
166 TrackParticleImpactParameters (MuonIDTPAssoc)
169MuonPVPerigeeAssoc = SimpleAssociation (
174 blockname =
'MuonPVPerigeeAssoc')
176 from TrackToVertex.TrackToVertexConfig
import InDetTrackToVertexCfg
177 c.Associator.TrackToVertexTool = acc.popToolsAndMerge (InDetTrackToVertexCfg (flags))
179MuonPVPerigeeAssoc.defineHook (_trackToVertexHook)
180MuonPVPerigeeAssoc.defineBlock (
184MuonPVCovarAssoc = SimpleAssociation (
188 blockname =
'MuonPVCovarAssoc')
189MuonPVCovarAssoc.defineBlock (
190 1,
'PrimaryTrackDiagonalCovarianceAtPV',
193 IsTrackPerigee =
True,
195MuonPVCovarAssoc.defineBlock (
196 1,
'PrimaryTrackOffDiagonalCovarianceAtPV',
199 IsTrackPerigee =
True,
201 OffDiagCovariance =
True)
203MuonCBTPAssoc = SimpleAssociation \
208 blockname =
'CBTrkInfo')
209MuonCBPVPerigeeAssoc = SimpleAssociation (
214 blockname =
'MuonCBPVPerigeeAssoc')
215MuonCBPVPerigeeAssoc.defineHook (_trackToVertexHook)
216MuonCBPVPerigeeAssoc.defineBlock (
217 1,
'CBParametersAtPV',
221MuonIDTPAssoc = SimpleAssociation \
226 blockname =
'IDTrkInfo')
227MuonIDPerigeeAssoc = SimpleAssociation (
231 blockname =
'MuonIDPerigeeAssoc')
232MuonIDPerigeeAssoc.defineBlock (
236MuonIDPVPerigeeAssoc = SimpleAssociation (
241 blockname =
'MuonIDPVPerigeeAssoc')
242MuonIDPVPerigeeAssoc.defineHook (_trackToVertexHook)
243MuonIDPVPerigeeAssoc.defineBlock (
244 1,
'IDParametersAtPV',
248MuonIDPVCovarAssoc = SimpleAssociation (
249 MuonIDPVPerigeeAssoc,
252 blockname =
'MuonIDPVCovarAssoc')
253MuonIDPVCovarAssoc.defineBlock (
254 2,
'IDTrackDiagonalCovarianceAtPV',
257 IsTrackPerigee =
True,
259MuonIDPVCovarAssoc.defineBlock (
260 3,
'IDTrackOffDiagonalCovarianceAtPV',
263 IsTrackPerigee =
True,
265 OffDiagCovariance =
True)
268MuonMETPAssoc = SimpleAssociation \
271 Type =
'MuonSpectrometer',
273 blockname =
'METrkInfo')
274MuonMEPerigeeAssoc = SimpleAssociation (
278MuonMEPerigeeAssoc.defineBlock (
282MuonMEPVPerigeeAssoc = SimpleAssociation (
287 blockname =
'MuonMEPVPerigeeAssoc')
288MuonMEPVPerigeeAssoc.defineHook (_trackToVertexHook)
289MuonMEPVPerigeeAssoc.defineBlock (
290 1,
'MEParametersAtPV',
294MuonMEPVCovarAssoc = SimpleAssociation (
295 MuonMEPVPerigeeAssoc,
298 blockname =
'MuonMEPVCovarAssoc')
299MuonMEPVCovarAssoc.defineBlock (
300 2,
'METrackDiagonalCovarianceAtPV',
303 IsTrackPerigee =
True,
305MuonMEPVCovarAssoc.defineBlock (
306 3,
'METrackOffDiagonalCovarianceAtPV',
309 IsTrackPerigee =
True,
311 OffDiagCovariance =
True)
317if D3PDMakerFlags.DoTruth:
318 truthClassification = \
319 MuonD3PDObject.defineBlock (1,
'TruthClassification',
322 from TruthD3PDMaker.MCTruthClassifierConfig \
323 import D3PDMCTruthClassifierCfg
324 acc.merge (D3PDMCTruthClassifierCfg (flags))
325 c.Classifier = acc.getPublicTool (
'D3PDMCTruthClassifier')
327 truthClassification.defineHook (_truthClassificationHook)
329 MuonTruthPartAssoc = SimpleAssociation \
332 blockname =
'TruthAssoc',
335 from TruthD3PDMaker.MCTruthClassifierConfig \
336 import D3PDMCTruthClassifierCfg
337 acc.merge (D3PDMCTruthClassifierCfg (flags))
338 c.Associator.Classifier = acc.getPublicTool (
'D3PDMCTruthClassifier')
340 MuonTruthPartAssoc.defineHook (_truthClassificationAssocHook)
341 MuonTruthPartAssoc.defineBlock (0,
'TruthKin',
346 MuonTruthPartAssoc.defineBlock (0,
'Truth',
348 PDGIDVariable =
'type',
350 MuonTruthPartMotherAssoc = SimpleAssociation \
355 (
'MuonTruthPartMotherAssoc2'),
356 blockname =
'MuonTruthPartMotherAssoc',
357 prefix =
'truth_mother')
358 MuonTruthPartMotherAssoc.defineBlock (0,
'MotherTruth',
361 PDGIDVariable =
'type')
362 MuonTruthPartAssoc.defineBlock (0,
'TruthAssocIndex',
Associate from an electron/photon to a matched GenParticle via classification tool.
Associate from an Muon to its primary TrackParticle.
Associate from a TrackParticle to its default Perigee.
Associate from a VxCandidate to its perigee at primary vertex.
Associate all particles within a DR cut.
_truthClassificationHook(c, flags, acc, *args, **kw)
_truthClassificationAssocHook(c, flags, acc, *args, **kw)
_trackToVertexHook(c, flags, acc, *args, **kw)