15def InDetOutputCfg( flags, **kwargs ):
16 '''
17 Write output file in AOD_IDTPM format, on top of the
18 histogram output file, for reprocessing
19 '''
20 acc = ComponentAccumulator()
21
22
26
27
36
37
39
40 for trkAnaName in flags.PhysVal.IDTPM.trkAnaNames:
41
42 offTracks = getattr( flags.PhysVal.IDTPM, trkAnaName+'.OfflineTrkKey' )
43 trigTracks = getattr( flags.PhysVal.IDTPM, trkAnaName+'.TrigTrkKey' )
44 itemsToRecord.update({
45 'xAOD::TrackParticleContainer#'+offTracks,
46 'xAOD::TrackParticleAuxContainer#'+offTracks+'Aux.',
47 'xAOD::TrackParticleContainer#'+trigTracks,
48 'xAOD::TrackParticleAuxContainer#'+trigTracks+'Aux.',
49 })
50
51
52 truthParticles = getattr( flags.PhysVal.IDTPM, trkAnaName+'.TruthPartKey' )
53 itemsToRecord.update({
54 'xAOD::TruthParticleContainer#'+truthParticles,
55 'xAOD::TruthParticleAuxContainer#'+truthParticles+'Aux.',
56 })
57
58
59 objStr = getattr( flags.PhysVal.IDTPM, trkAnaName+".SelectOfflineObject" )
60
61
62 if objStr == 'Electron':
63 itemsToRecord.update({
64 'xAOD::ElectronContainer#Electrons',
65
66
67 })
68
69
70 if objStr == 'Muon':
71 itemsToRecord.update({
72 'xAOD::MuonContainer#Muons',
73
74
75 })
76
77
78 if objStr == 'Tau':
79 itemsToRecord.update({
80 'xAOD::TauJetContainer#TauJets',
81
82
83 })
84
85
86 trkAnaInfo = "TrkAnaInfo"+getattr( flags.PhysVal.IDTPM, trkAnaName+'.anaTag' )
87 itemsToRecord.update({
88 'xAOD::BaseContainer#'+trkAnaInfo,
89 'xAOD::AuxContainerBase#'+trkAnaInfo+'Aux.',
90 })
91
92
93 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
94 acc.merge( OutputStreamCfg( flags, 'AOD_IDTPM',
95 ItemList = list( itemsToRecord ),
96 disableEventTag = True ) )
97
98 return acc