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 if "DataRateMonitoringTool" not in kwargs:
30 kwargs.setdefault("DataRateMonitoringTool", acc.getPrimaryAndMerge(ITkStripDataRateMonToolCfg(flags, doExpertPlots=False)))
31 kwargs.setdefault("ITkStripCablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
32 acc.setPrivateTools(CompFactory.ITkStripsRodEncoder(name,**kwargs))
33 return acc
34
35def ITkStripsRodDecoderCfg(flags, name='ITkStripsRodDecoder', **kwargs):
36 acc = ComponentAccumulator()
37 acc.merge(ITkStripReadoutGeometryCfg(flags))
38 kwargs.setdefault("ITkStripCablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
39 acc.setPrivateTools(CompFactory.ITkStripsRodDecoder(name,**kwargs))
40 return acc
41
42def ITkStripRawDataProviderToolCfg(flags, name="ITkStripRawDataProviderTool", **kwargs):
43 acc = ComponentAccumulator()
44 kwargs.setdefault("Decoder", acc.popToolsAndMerge(ITkStripsRodDecoderCfg(flags)))
45 acc.setPrivateTools(CompFactory.ITkStripRawDataProviderTool(name, **kwargs))
46 return acc
47
48def ITkStripRawDataProviderCfg(flags, **kwargs):
49 """ Configures the main algorithm for ITk raw data decoding """
50 acc = ComponentAccumulator()
51 kwargs.setdefault("ProviderTool", acc.popToolsAndMerge(ITkStripRawDataProviderToolCfg(flags)))
52
53 if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing:
54 kwargs.setdefault("RDOKey", f"{flags.Overlay.BkgPrefix}ITkStripRDOs")
55 kwargs.setdefault("LVL1IDKey", f"{flags.Overlay.BkgPrefix}ITkStripLVL1ID")
56 kwargs.setdefault("BCIDKey", f"{flags.Overlay.BkgPrefix}ITkStripBCID")
57
58 acc.addEventAlgo(CompFactory.ITkStripRawDataProvider(name="ITkStripRawDataProvider",**kwargs))
59 return acc
60
61def ITkStripsEventFlagWriterCfg(flags, **kwargs):
62 acc = ComponentAccumulator()
63 if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing:
64 kwargs.setdefault("xAODEventInfoKey", f"{flags.Overlay.BkgPrefix}EventInfo")
65 acc.addEventAlgo(CompFactory.SCTEventFlagWriter(name="ITkStripsEventFlagWriter", **kwargs))
66
67 return acc
68
70 name = "ITkStripDataRateMonTool",
71 doExpertPlots = False,
72 HistogramGroup: str="DataRateMon",
73 FileName: str='ITkStripEncodingMonitoring.root') -> ComponentAccumulator:
74 acc = ComponentAccumulator()
75
76 histSvc = CompFactory.THistSvc(Output = [f"{HistogramGroup} DATAFILE='{FileName}', OPT='RECREATE'"] )
77 acc.addService(histSvc)
78
79 monitor = CompFactory.ITkStripDataRateMonTool(name)
80 monitor.HistSvc = histSvc
81 monitor.DoExpertPlots = doExpertPlots
82
83 acc.addPublicTool(monitor, primary=True)
84 return acc
ITkStripRawContByteStreamToolCfg(flags, name="ITkStripRawContByteStreamToolCustom", **kwargs)
ComponentAccumulator ITkStripDataRateMonToolCfg(flags, name="ITkStripDataRateMonTool", doExpertPlots=False, str HistogramGroup="DataRateMon", str FileName='ITkStripEncodingMonitoring.root')
ITkStripsRodEncoderCfg(flags, name='ITkStripRodEncoder', **kwargs)
ITkStripRawDataProviderToolCfg(flags, name="ITkStripRawDataProviderTool", **kwargs)
ITkStripsRodDecoderCfg(flags, name='ITkStripsRodDecoder', **kwargs)
ITkStripRawContByteStreamToolProviderToolCfg(flags, name="SCTRawContByteStreamToolProviderTool", **kwargs)