22def StandaloneMuonOutputCfg(flags):
23 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
24 result = ComponentAccumulator()
25
26 aod_items = []
27 esd_items = []
28
29
30
31 exclude = ["", "mdtTrkPrdLink", "rpcTrkPrdLink", "tgcTrkPrdLink", "segmentFitDriftSign"]
32 for cont_t, cont_name in [("MdtDriftCircle", "xMdtDriftCircles"),
33 ("MdtTwinDriftCircle", "xMdtTwinDriftCircles"),
34 ("sTgcStrip", "xAODsTgcStrips"),
35 ("sTgcPad", "xAODsTgcPads"),
36 ("sTgcWire", "xAODsTgcWires"),
37 ("MMCluster", "xAODMMClusters"),
38 ("TgcStrip", "xTgcStrips"),
39 ("RpcStrip", "xRpcStrips" ),
40 ("RpcStrip2D", "xRpcBILStrips"),
41 ("CombinedMuonStrip", "CombinedMuonPrds" )]:
42 esd_items+=[f"xAOD::{cont_t}Container#{cont_name}",
43 "xAOD::{cont_t}AuxContainer#{cont_name}Aux{exclude}".format(
44 cont_t = cont_t,cont_name = cont_name,
45 exclude = ".-".join(exclude))]
46
47
48 if flags.Muon.writeSDOs:
49 for item in ["MDT_SDO","RPC_SDO","TGC_SDO","MM_SDO","sTGC_SDO"]:
50 esd_items += [f"xAOD::MuonSimHitContainer#{item}", f"xAOD::MuonSimHitAuxContainer#{item}Aux."]
51
52
53
54 aod_items += ["xAOD::MuonSegmentContainer#MuonSegmentsFromR4"]
55 aod_items += ["xAOD::MuonSegmentAuxContainer#MuonSegmentsFromR4Aux.-localSegPars.-parentSegment.-localSegCov"]
56
57
58 for trk in [ "MsTrksAtIpTrackParticles", "MsTrackParticlesR4"]:
59 aod_items += [f"xAOD::TrackParticleContainer#{trk}",
60 f"xAOD::TrackParticleAuxContainer#{trk}Aux."]
61
62 if flags.Output.doWriteESD:
63 from ActsConfig.ActsEventCnvConfig import ActsToXAODTrackConverterAlgCfg
64 result.merge(ActsToXAODTrackConverterAlgCfg(flags, name = "MsTracksToXAODTrackConverterAlg", InputActsTracksLocation = "MsTracks", OutputActsTracksLocation="MsTracks"))
65 esd_items += MuonTrackContainersToPersistify("Ms")
66
67
68 aod_items += ["xAOD::MuonContainer#MuonsR4"]
69 aod_items += ["xAOD::MuonAuxContainerR4#MuonsR4Aux."]
70
71 esd_items += aod_items
72
73 if flags.Output.doWriteESD:
74 result.merge(OutputStreamCfg(flags, "ESD", esd_items))
75 if flags.Output.doWriteAOD:
76 result.merge(OutputStreamCfg(flags, "AOD", aod_items))
77 return result
78
79