10def TileBadChannelsCondAlgCfg(flags, **kwargs):
11 """Return component accumulator with configured Tile bad channels conditions algorithm
12
13 Arguments:
14 flags: -- Athena configuration flags
15 Keyword arguments:
16 Source: -- source of Tile bad channels (COOL, FILE). Defaults to COOL.
17 TileBadChannels -- name of Tile bad channels object. Defaults to TileBadChannels.
18 """
19
20 acc = ComponentAccumulator()
21
22 source = kwargs.get('Source', 'COOL')
23 badChannels = kwargs.get('TileBadChannels', 'TileBadChannels')
24
25 if source not in _validSources:
26 raise(Exception("Invalid source: %s" % source))
27
28 name = badChannels + 'CondAlg'
29
30 if source == 'COOL':
31
32
33 from TileConditions.TileFolders import TileFolders
34 folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
35
36 TileCondProxyCoolBch=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerBch>")
37
38 if flags.Tile.useOnlineChannelStatus:
39 onlineFolder = folders.addSplitMC('/TILE/ONL01/STATUS/ADC', '/TILE/ONL01/STATUS/ADC')
41 else:
42 onlineBadChannelsProxy = None
43
44 if flags.IOVDb.DatabaseInstance == 'CONDBR2':
45 if not flags.Common.isOnline:
46 oflineFolder = folders.add('/TILE/OFL02/STATUS/ADC', 'TILE_OFL')
47 offlineBadChannelsProxy =
TileCondProxyCoolBch(
'TileCondProxyCool_OflBch', Source = oflineFolder)
48 else:
49 offlineBadChannelsProxy = None
50 else:
51 oflineFolder = folders.addSplitOnline('/TILE/OFL01/STATUS/ADC', '/TILE/OFL02/STATUS/ADC')
52 offlineBadChannelsProxy =
TileCondProxyCoolBch(
'TileCondProxyCool_OflBch', Source = oflineFolder)
53
54 from IOVDbSvc.IOVDbSvcConfig import addFolderList
55 acc.merge( addFolderList(flags, folders.get()) )
56
57 else:
58
59 TileCondProxyFileBch=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerBch>")
60 if flags.Tile.useOnlineChannelStatus:
61 onlineBadChannelsProxy =
TileCondProxyFileBch(
'TileCondProxyFile_OnlBch', Source =
'TileDefault.onlBch')
62 else:
63 onlineBadChannelsProxy = None
64 offlineBadChannelsProxy =
TileCondProxyFileBch(
'TileCondProxyFile_OflBch', Source =
'TileDefault.oflBch')
65
66
67 TileCondIdTransforms=CompFactory.TileCondIdTransforms
68 TileBadChannelsCondAlg=CompFactory.TileBadChannelsCondAlg
70 OnlBchProxy = onlineBadChannelsProxy,
71 OflBchProxy = offlineBadChannelsProxy,
73 TileBadChannels = badChannels)
74
75 acc.addCondAlgo(badChannelsCondAlg)
76
77 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
78 acc.merge( TileCablingSvcCfg(flags) )
79
80 return acc
81
82
Condition algorithm to prepare TileBadChannels and put it into condition store.