ATLAS Offline Software
Loading...
Searching...
No Matches
ITkStripByteStreamCnvConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3#
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from ITkStripCabling.ITkStripCablingConfig import ITkStripCablingToolCfg
8from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
9
10
11def ITkStripRawContByteStreamToolCfg(flags, name="ITkStripRawContByteStreamToolCustom", **kwargs) :
12 acc = ComponentAccumulator()
13 if "ITkStripsRodEncoder" not in kwargs :
14 kwargs.setdefault("Encoder", acc.popToolsAndMerge(ITkStripsRodEncoderCfg(flags)))
15 acc.setPrivateTools( CompFactory.ITkStripsRawContByteStreamTool(name=name,**kwargs))
16 return acc
17
18def ITkStripRawContByteStreamToolProviderToolCfg(flags, name="SCTRawContByteStreamToolProviderTool", **kwargs) :
19 acc = ComponentAccumulator()
20 if "RawContByteStreamTool" not in kwargs :
21 kwargs.setdefault("RawContByteStreamTool", acc.popToolsAndMerge(ITkStripRawContByteStreamToolCfg(flags)))
22 acc.addPublicTool( CompFactory.ITkStripRawContByteStreamToolProviderTool(name=name,**kwargs))
23 return acc
24
25def ITkStripsRodEncoderCfg(flags, name='ITkStripRodEncoder', **kwargs):
26 acc = ComponentAccumulator()
27 acc.merge(ITkStripReadoutGeometryCfg(flags))
28 kwargs.setdefault("ITkStripCablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
29 acc.setPrivateTools(CompFactory.ITkStripsRodEncoder(name,**kwargs))
30 return acc
31
32def ITkStripsRodDecoderCfg(flags, name='ITkStripsRodDecoder', **kwargs):
33 acc = ComponentAccumulator()
34 acc.merge(ITkStripReadoutGeometryCfg(flags))
35 kwargs.setdefault("ITkStripCablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
36 acc.setPrivateTools(CompFactory.ITkStripsRodDecoder(name,**kwargs))
37 return acc
38
39def ITkStripRawDataProviderToolCfg(flags, name="ITkStripRawDataProviderTool", **kwargs):
40 acc = ComponentAccumulator()
41 kwargs.setdefault("Decoder", acc.popToolsAndMerge(ITkStripsRodDecoderCfg(flags)))
42 acc.setPrivateTools(CompFactory.ITkStripRawDataProviderTool(name, **kwargs))
43 return acc
44
45def ITkStripRawDataProviderCfg(flags, **kwargs):
46 """ Configures the main algorithm for ITk raw data decoding """
47 acc = ComponentAccumulator()
48 kwargs.setdefault("ProviderTool", acc.popToolsAndMerge(ITkStripRawDataProviderToolCfg(flags)))
49
50 if flags.Overlay.ByteStream:
51 kwargs.setdefault("RDOKey", f"{flags.Overlay.BkgPrefix}ITkStripRDOs")
52 kwargs.setdefault("LVL1IDKey", f"{flags.Overlay.BkgPrefix}ITkStripLVL1ID")
53 kwargs.setdefault("BCIDKey", f"{flags.Overlay.BkgPrefix}ITkStripBCID")
54
55 acc.addEventAlgo(CompFactory.ITkStripRawDataProvider(name="ITkStripRawDataProvider",**kwargs))
56 return acc
57
58def ITkStripsEventFlagWriterCfg(flags, **kwargs):
59 acc = ComponentAccumulator()
60 if flags.Overlay.ByteStream:
61 kwargs.setdefault("xAODEventInfoKey", f"{flags.Overlay.BkgPrefix}EventInfo")
62 acc.addEventAlgo(CompFactory.SCTEventFlagWriter(name="ITkStripsEventFlagWriter", **kwargs))
63
64 return acc
65
ITkStripRawContByteStreamToolCfg(flags, name="ITkStripRawContByteStreamToolCustom", **kwargs)
ITkStripsRodEncoderCfg(flags, name='ITkStripRodEncoder', **kwargs)
ITkStripRawDataProviderToolCfg(flags, name="ITkStripRawDataProviderTool", **kwargs)
ITkStripsRodDecoderCfg(flags, name='ITkStripsRodDecoder', **kwargs)
ITkStripRawContByteStreamToolProviderToolCfg(flags, name="SCTRawContByteStreamToolProviderTool", **kwargs)