ATLAS Offline Software
Loading...
Searching...
No Matches
TileMuIDConfig.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 MuID conditions tool and algorithm"""
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7
8def TileMuIDCondAlgCfg(flags, **kwargs):
9 """Return component accumulator with configured Tile MuID conditions algorithm
10
11 Arguments:
12 flags -- Athena configuration flags
13 Keyword arguments:
14 Source -- source of Tile MuID conditions (COOL, FILE). Defaults to COOL.
15 TileMuID -- name of Tile MuID conditions object. Defaults to TileMuID.
16 """
17
18 acc = ComponentAccumulator()
19
20 source = kwargs.get('Source', 'COOL')
21 muID = kwargs.get('TileMuID', 'TileMuID')
22
23 name = muID + 'CondAlg'
24
25 if source == 'COOL':
26 # Connect COOL Tile conditions proxies to the algorithm (default)
27
28 from TileConditions.TileFolders import TileFolders
29 folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
30
31 muIDFolder = folders.addSplitMC('/TILE/ONL01/MUID', '/TILE/ONL01/MUID')
32
33 TileCondProxyCoolFlt=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
34 muIDProxy = TileCondProxyCoolFlt('TileCondProxyCool_MuID', Source = muIDFolder)
35
36 from IOVDbSvc.IOVDbSvcConfig import addFolderList
37 acc.merge( addFolderList(flags, folders.get()) )
38
39 elif source == 'FILE':
40 # Connect FILE Tile conditions proxies to the algorithm
41 TileCondProxyFileFlt=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
42 muIDProxy = TileCondProxyFileFlt('TileCondProxyFile_MuID', Source = 'TileDefault.muid')
43 else:
44 raise(Exception("Invalid source: %s" % source))
45
46 TileCalibFltCondAlg=CompFactory.getComp("TileCalibCondAlg<TileCalibDrawerFlt>")
47 muIDCondAlg = TileCalibFltCondAlg( name = name,
48 ConditionsProxy = muIDProxy,
49 TileCalibData = muID)
50
51 acc.addCondAlgo(muIDCondAlg)
52
53 return acc
54
55
56def TileCondToolMuIDCfg(flags, **kwargs):
57 """Return component accumulator with configured private Tile MuID conditions tool
58 Arguments:
59 flags -- Athena configuration flags
60 Keyword arguments:
61 Source -- source of Tile MuID conditions (COOL, FILE). Defaults to COOL.
62 TileMuID -- name of Tile MuID conditions object. Defaults to TileMuID.
63 """
64
65 acc = ComponentAccumulator()
66
67 kwargs.setdefault('Source', 'COOL')
68 kwargs.setdefault('TileMuID', 'TileMuID')
69
70 muID = kwargs['TileMuID']
71 name = 'TileCondToolMuID'
72
73 acc.merge( TileMuIDCondAlgCfg(flags, **kwargs) )
74
75 TileCondToolMuID=CompFactory.TileCondToolMuID
76 acc.setPrivateTools( TileCondToolMuID(name, TileMuID = muID) )
77
78 return acc
79
80
81if __name__ == "__main__":
82
83 from AthenaConfiguration.AllConfigFlags import initConfigFlags
84 from AthenaConfiguration.TestDefaults import defaultTestFiles
85 from AthenaCommon.Logging import log
86 from AthenaCommon.Constants import DEBUG
87
88 # Test setup
89 log.setLevel(DEBUG)
90
91 flags = initConfigFlags()
92 flags.Input.Files = defaultTestFiles.RAW_RUN2
93 flags.lock()
94
95 acc = ComponentAccumulator()
96
97 muIDTool = acc.popToolsAndMerge( TileCondToolMuIDCfg(flags) )
98 print(muIDTool)
99
100 acc.printConfig(withDetails = True, summariseProps = True)
101 print(acc.getService('IOVDbSvc'))
102 acc.store( open('TileMuID.pkl','wb') )
103
104 print('All OK')
105
void print(char *figname, TCanvas *c1)
TileMuIDCondAlgCfg(flags, **kwargs)
TileCondToolMuIDCfg(flags, **kwargs)