9def TileTimingCondAlgCfg(flags, **kwargs):
10 """Return component accumulator with configured Tile timing conditions algorithm
11
12 Arguments:
13 flags -- Athena configuration flags
14 Keyword arguments:
15 Source -- source of Tile timing conditions (COOL, FILE). Defaults to COOL.
16 TileTiming -- name of Tile timing conditions object. Defaults to TileTiming.
17 ForceOnline -- flag to use online timing in offline. Defaults to False.
18 """
19
20 acc = ComponentAccumulator()
21
22 source = kwargs.get('Source', 'COOL')
23 timing = kwargs.get('TileTiming', 'TileTiming')
24 forceOnline = kwargs.get('ForceOnline', False)
25
26 runType = flags.Tile.RunType
27 timingType = runType.getTimingType().value
28
29 name = timing + 'CondAlg'
30
31 if source == 'COOL':
32
33
34 from TileConditions.TileFolders import TileFolders
35 folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
36
37 if flags.IOVDb.DatabaseInstance == 'CONDBR2':
38 onlineTimingFolder = '/TILE/ONL01/TIME/CHANNELOFFSET/' + timingType
39 else:
40 if timingType == 'GAP/LAS':
41 raise(Exception("No Tile GAP/LAS timing in DB: %s" % flags.IOVDb.DatabaseInstance))
42
43 onlineTimingFolder = '/TILE/OFL01/TIME/CHANNELOFFSET/' + timingType
44
45 if forceOnline:
46 timingFolder = folders.add(onlineTimingFolder, 'TILE')
47 else:
48 timingFolder = folders.addSplitOnline(onlineTimingFolder, '/TILE/OFL02/TIME/CHANNELOFFSET/' + timingType)
49
50 TileCondProxyCoolFlt=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
52
53 from IOVDbSvc.IOVDbSvcConfig import addFolderList
54 acc.merge( addFolderList(flags, folders.get()) )
55
56 elif source == 'FILE':
57
58 fileExtention = {'PHY' : 'tcphy', 'LAS' : 'tclas', 'CIS' : 'tccis'}
59
60 TileCondProxyFileFlt=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
62 Source = 'TileDefault.' + fileExtention[timingType])
63 else:
64 raise(Exception("Invalid source: %s" % source))
65
66 TileTimingCondAlg = CompFactory.getComp("TileCondAlg<TileTiming,TileCalibDrawerFlt>")
68 ConditionsProxy = timingProxy,
69 TileCondData = timing)
70
71 acc.addCondAlgo(timingCondAlg)
72
73 return acc
74
75
76