ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_RawDataByteStreamCnvConfig.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 SCT_Cabling.SCT_CablingConfig import SCT_CablingToolCfg
9from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ConfigurationConditionsToolCfg
10from SCT_GeoModel.SCT_GeoModelConfig import SCT_ReadoutGeometryCfg
11
12
13def SCT_RodDecoderCfg(flags, prefix="InDet", suffix="", **kwargs):
14 acc = ComponentAccumulator()
15 acc.merge(SCT_ReadoutGeometryCfg(flags))
16 kwargs.setdefault("SCT_CablingTool", acc.popToolsAndMerge(SCT_CablingToolCfg(flags)))
17 kwargs.setdefault("ConfigTool", acc.popToolsAndMerge(SCT_ConfigurationConditionsToolCfg(flags)))
18 acc.setPrivateTools(CompFactory.SCT_RodDecoder(name=prefix+"SCTRodDecoder"+suffix,
19 **kwargs))
20 return acc
21
22
23def SCTRawDataProviderToolCfg(flags, prefix="InDet", suffix="", **kwargs):
24 acc = ComponentAccumulator()
25 kwargs.setdefault("Decoder", acc.popToolsAndMerge(SCT_RodDecoderCfg(flags, prefix=prefix, suffix=suffix)))
26 acc.setPrivateTools(CompFactory.SCTRawDataProviderTool(name=prefix+"SCTRawDataProviderTool"+suffix,
27 **kwargs))
28 return acc
29
30
31def SCTRawDataProviderCfg(flags, prefix="InDet", suffix="", **kwargs):
32 """ Configures the main algorithm for SCT raw data decoding """
33 acc = ComponentAccumulator()
34 kwargs.setdefault("ProviderTool", acc.popToolsAndMerge(SCTRawDataProviderToolCfg(flags, prefix, suffix)))
35
36 if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing:
37 kwargs.setdefault("RDOKey", f"{flags.Overlay.BkgPrefix}SCT_RDOs")
38 kwargs.setdefault("LVL1IDKey", f"{flags.Overlay.BkgPrefix}SCT_LVL1ID")
39 kwargs.setdefault("BCIDKey", f"{flags.Overlay.BkgPrefix}SCT_BCID")
40
41 acc.addEventAlgo(CompFactory.SCTRawDataProvider(name=prefix+"SCTRawDataProvider"+suffix,
42 **kwargs))
43 return acc
44
45
46def TrigSCTRawDataProviderCfg(flags, suffix, RoIs):
47 """ Configures the SCT raw data decoding with trigger args """
48
49 from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg
50
51 regSelAcc = regSelTool_SCT_Cfg(flags)
52 regSelTools = regSelAcc.popPrivateTools()
53 trigargs = {
54 'prefix' : 'Trig',
55 'suffix' : suffix,
56 'RegSelTool' : regSelTools,
57 'RDOKey' : 'SCT_RDOs',
58 'RoIs' : RoIs,
59 'isRoI_Seeded': True,
60 'RDOCacheKey' : flags.Trigger.InDetTracking.SCTRDOCacheKey,
61 'BSErrCacheKey' : flags.Trigger.InDetTracking.SCTBSErrCacheKey,
62 'StoreInDetTimeCollections' : False,
63 }
64
65 dataPrepAcc = SCTRawDataProviderCfg(flags, **trigargs)
66 dataPrepAcc.merge(regSelAcc)
67 return dataPrepAcc
68
69
70def SCTEventFlagWriterCfg(flags, prefix="InDet", suffix="", **kwargs):
71 acc = ComponentAccumulator()
72 if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing:
73 kwargs.setdefault("xAODEventInfoKey", f"{flags.Overlay.BkgPrefix}EventInfo")
74 acc.addEventAlgo(CompFactory.SCTEventFlagWriter(name=prefix+"SCTEventFlagWriter"+suffix,
75 **kwargs))
76 return acc
SCTEventFlagWriterCfg(flags, prefix="InDet", suffix="", **kwargs)
SCT_RodDecoderCfg(flags, prefix="InDet", suffix="", **kwargs)
SCTRawDataProviderToolCfg(flags, prefix="InDet", suffix="", **kwargs)
SCTRawDataProviderCfg(flags, prefix="InDet", suffix="", **kwargs)