ATLAS Offline Software
Loading...
Searching...
No Matches
ITkPixelByteStreamCnvConfig.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
7
9 from ITkPixelCabling.ITkPixelCablingAlgConfig import ITkPixelCablingAlgCfg
10 from ITkPixelCabling.ITkPixelCablingFromDB import ITkPixelCablingFromCREST
11 import os
12 import sys
13
14 acc = ComponentAccumulator()
15
16 ITkPixelCablingFromCREST(output_file='cabling.json')
17
18 if os.path.isfile("cabling.json"):
19 acc.merge(ITkPixelCablingAlgCfg(flags, name="ITkPixelCablingAlg", UseTestCabling=False, DataSource='cabling.json'))
20 return acc
21
22 else:
23 if flags.ITk.Conditions.PixelTestCablingFallback:
24 acc.merge(ITkPixelCablingAlgCfg(flags, name="ITkPixelCablingAlg", UseTestCabling=True))
25 return acc
26
27 else:
28 sys.exit("Error: cabling couldn't be fetched from CREST. Provide a cabling.json file in the run directory, or explicitly allow flags.ITk.Conditions.PixelTestCablingFallback=True")
29
30
31def ITkPixelHitSortingToolCfg(flags, name = "ITkPixelHitSortingTool", **kwargs) -> ComponentAccumulator:
32 acc = ComponentAccumulator()
33
34 from PixelReadoutGeometry.PixelReadoutGeometryConfig import ITkPixelReadoutManagerCfg
35 acc.merge(ITkPixelReadoutManagerCfg(flags))
36
37 acc.setPrivateTools(CompFactory.ITkPixelHitSortingTool(name, **kwargs))
38 return acc
39
40def ITkPixelEncodingToolCfg(flags, name = "ITkPixelEncodingTool", **kwargs) -> ComponentAccumulator:
41 acc = ComponentAccumulator()
42 acc.setPrivateTools(CompFactory.ITkPixelEncodingTool(name, **kwargs))
43 return acc
44
45def ITkPixelTranslatorAlgCfg(flags, name = "ITkPixelTranslatorAlg", **kwargs) -> ComponentAccumulator:
46 acc = ComponentAccumulator()
47
48 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
49 acc.merge(ITkPixelReadoutGeometryCfg(flags))
50
51 acc.addEventAlgo(CompFactory.ITkPixelTranslatorAlg(name, **kwargs))
52
53 return acc
54
55def ITkPixelDecodingAlgCfg(flags, name = "ITkPixelDecodingAlg", **kwargs) -> ComponentAccumulator:
56 acc = ComponentAccumulator()
57
58 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
59 acc.merge(ITkPixelReadoutGeometryCfg(flags))
60
61 acc.merge(addITkPixelCabling(flags))
62
63 acc.addEventAlgo(CompFactory.ITkPixelDecodingAlg(name, **kwargs))
64
65 return acc
66
68 name = "ITkPixelDecodingPhaseIIRDOAlg",
69 nRDOs = 1300000,
70 **kwargs) -> ComponentAccumulator:
71 acc = ComponentAccumulator()
72
73 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
74 acc.merge(ITkPixelReadoutGeometryCfg(flags))
75
76 kwargs.setdefault("nRDOs", nRDOs)
77
78 acc.merge(addITkPixelCabling(flags))
79
80 acc.addEventAlgo(CompFactory.ITkPixelDecodingPhaseIIRDOAlg(name, **kwargs))
81
82 return acc
83
84
85def ITkPixelEncodingAlgCfg(flags, name = "ITkPixelEncodingAlg",
86 doMonitoring = False,
87 doExpertPlots = False,
88 **kwargs) -> ComponentAccumulator:
89 acc = ComponentAccumulator()
90
91 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
92 acc.merge(ITkPixelReadoutGeometryCfg(flags))
93
94 kwargs.setdefault("PixelConversionTool", acc.getPrimaryAndMerge( ITkPixelCnvToolCfg(flags,
95 doMonitoring = doMonitoring,
96 doExpertPlots = doExpertPlots,
97 **kwargs) ))
98
99 acc.merge(addITkPixelCabling(flags))
100
101 acc.addEventAlgo(CompFactory.ITkPixelEncodingAlg(name, **kwargs))
102
103 return acc
104
105
107 name = "ITkPixelDataRateMonTool",
108 doExpertPlots = False,
109 HistogramGroup: str="DataRateMon",
110 FileName: str='ITkPixelEncodingMonitoring.root') -> ComponentAccumulator:
111 acc = ComponentAccumulator()
112
113 histSvc = CompFactory.THistSvc(Output = [f"{HistogramGroup} DATAFILE='{FileName}', OPT='RECREATE'"] )
114 acc.addService(histSvc)
115
116 monitor = CompFactory.ITkPixelDataRateMonTool(name)
117 monitor.HistSvc = histSvc
118 monitor.DoExpertPlots = doExpertPlots
119
120 acc.addPublicTool(monitor, primary=True)
121 return acc
122
123
124def ITkPixelCnvToolCfg(flags, name = "ITkPixelCnvTool",
125 doMonitoring = False,
126 doExpertPlots = False,
127 **kwargs) -> ComponentAccumulator:
128 acc = ComponentAccumulator()
129
130 if doMonitoring:
131 kwargs.setdefault("DataRateMonitoringTool", acc.getPrimaryAndMerge(ITkPixelDataRateMonToolCfg(flags, doExpertPlots=doExpertPlots)))
132
133 kwargs.setdefault("HitSortingTool", acc.popToolsAndMerge(ITkPixelHitSortingToolCfg(name)))
134 kwargs.setdefault("EncodingTool", acc.popToolsAndMerge(ITkPixelEncodingToolCfg(name)))
135 kwargs.setdefault("PixelCablingKey", "ITkPixelCablingData")
136
137 acc.addPublicTool(CompFactory.ITkPixelCnvTool(name, **kwargs), primary=True)
138 return acc
139
140
142 name = "ITkPixelCsvWaferIdAlg",
143 OutputFile: str = "ITkPixelWaferIds.txt",
144 **kwargs) -> ComponentAccumulator:
145 acc = ComponentAccumulator()
146
147 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
148 acc.merge(ITkPixelReadoutGeometryCfg(flags))
149
150 kwargs.setdefault("OutputFile", OutputFile)
151 acc.addEventAlgo(CompFactory.ITkPixelCsvWaferIdAlg(name, **kwargs))
152 return acc
ComponentAccumulator ITkPixelTranslatorAlgCfg(flags, name="ITkPixelTranslatorAlg", **kwargs)
ComponentAccumulator ITkPixelEncodingToolCfg(flags, name="ITkPixelEncodingTool", **kwargs)
ComponentAccumulator ITkPixelHitSortingToolCfg(flags, name="ITkPixelHitSortingTool", **kwargs)
ComponentAccumulator ITkPixelDecodingAlgCfg(flags, name="ITkPixelDecodingAlg", **kwargs)
ComponentAccumulator ITkPixelCnvToolCfg(flags, name="ITkPixelCnvTool", doMonitoring=False, doExpertPlots=False, **kwargs)
ComponentAccumulator ITkPixelDecodingPhaseIIRDOAlgCfg(flags, name="ITkPixelDecodingPhaseIIRDOAlg", nRDOs=1300000, **kwargs)
ComponentAccumulator ITkPixelDataRateMonToolCfg(flags, name="ITkPixelDataRateMonTool", doExpertPlots=False, str HistogramGroup="DataRateMon", str FileName='ITkPixelEncodingMonitoring.root')
ComponentAccumulator ITkPixelCsvWaferIdAlgCfg(flags, name="ITkPixelCsvWaferIdAlg", str OutputFile="ITkPixelWaferIds.txt", **kwargs)
ComponentAccumulator ITkPixelEncodingAlgCfg(flags, name="ITkPixelEncodingAlg", doMonitoring=False, doExpertPlots=False, **kwargs)