ATLAS Offline Software
Loading...
Searching...
No Matches
TileDSPThresholdConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3"""Define methods to construct configured Tile DSP threshold conditions tool and algorithm"""
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7
8
9def TileDSP_ThresholdCondAlgCfg(flags, **kwargs):
10 """Return component accumulator with configured Tile DSP threshold conditions algorithm
11
12 Arguments:
13 flags -- Athena configuration flags
14 Keyword arguments:
15 Source -- source of Tile auto correlation conditions (COOL, FILE). Defaults to COOL.
16 TileDSP_Threshold -- name of Tile auto correlation conditions object. Defaults to TileDSP_Threshold.
17 """
18
19 acc = ComponentAccumulator()
20
21 source = kwargs.get('Source', 'COOL')
22 dspThreshold = kwargs.get('TileDSP_Threshold', 'TileDSP_Threshold')
23
24 name = dspThreshold + 'CondAlg'
25
26 if source == 'COOL':
27 # Connect COOL Tile conditions proxies to the algorithm (default)
28
29 from TileConditions.TileFolders import TileFolders
30 folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
31
32 if flags.IOVDb.DatabaseInstance == 'CONDBR2':
33 dspThresholdFolder = folders.addSplitOnline('/TILE/ONL01/DSP/THRESHOLD', '/TILE/OFL02/DSP/THRESHOLD')
34 else:
35 raise(Exception("No Tile DSP threshold folder in %s" % flags.IOVDb.DatabaseInstancea))
36
37 TileCondProxyCoolFlt=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
38 dspThresholdProxy = TileCondProxyCoolFlt('TileCondProxyCool_DspThreshold', Source = dspThresholdFolder)
39
40 from IOVDbSvc.IOVDbSvcConfig import addFolderList
41 acc.merge( addFolderList(flags, folders.get()) )
42
43 elif source == 'FILE':
44 # Connect FILE Tile conditions proxies to the algorithm
45 TileCondProxyFileFlt=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
46 dspThresholdProxy = TileCondProxyFileFlt('TileCondProxyFile_DspThreshold', Source = 'TileDefault.dspThreshold')
47 else:
48 raise(Exception("Invalid source: %s" % source))
49
50 TileCalibFltCondAlg=CompFactory.getComp("TileCalibCondAlg<TileCalibDrawerFlt>")
51 dspThresholdCondAlg = TileCalibFltCondAlg( name = name,
52 ConditionsProxy = dspThresholdProxy,
53 TileCalibData = dspThreshold)
54
55 acc.addCondAlgo(dspThresholdCondAlg)
56
57 return acc
58
59
60def TileCondToolDspThresholdCfg(flags, **kwargs):
61 """Return component accumulator with configured private Tile DSP threshold tool
62 Arguments:
63 flags -- Athena configuration flags
64 Keyword arguments:
65 Source -- source of Tile DSP threshold conditions (COOL, FILE). Defaults to COOL.
66 TileDSP_Threshold -- name of Tile DSP threshold conditions object. Defaults to TileDSP_Threshold.
67 """
68
69 acc = ComponentAccumulator()
70
71 kwargs.setdefault('Source', 'COOL')
72 kwargs.setdefault('TileDSP_Threshold', 'TileDSP_Threshold')
73
74 dspThreshold = kwargs['TileDSP_Threshold']
75
76 acc.merge( TileDSP_ThresholdCondAlgCfg(flags, **kwargs) )
77
78 TileCondToolDspThreshold=CompFactory.TileCondToolDspThreshold
79 acc.setPrivateTools( TileCondToolDspThreshold(TileDSP_Threshold = dspThreshold) )
80
81 return acc
82
83
84if __name__ == "__main__":
85
86 from AthenaConfiguration.AllConfigFlags import initConfigFlags
87 from AthenaConfiguration.TestDefaults import defaultTestFiles
88 from AthenaCommon.Logging import log
89 from AthenaCommon.Constants import DEBUG
90
91 # Test setup
92 log.setLevel(DEBUG)
93
94 flags = initConfigFlags()
95 flags.Input.Files = defaultTestFiles.RAW_RUN2
96 flags.lock()
97
98 acc = ComponentAccumulator()
99
100 autoCorrelationTool = acc.popToolsAndMerge( TileCondToolDspThresholdCfg(flags) )
101 print(autoCorrelationTool)
102
103 acc.printConfig(withDetails = True, summariseProps = True)
104 print(acc.getService('IOVDbSvc'))
105 acc.store( open('TileDSP_Threshold.pkl','wb') )
106
107 print('All OK')
108
void print(char *figname, TCanvas *c1)