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