8def TileDigiNoiseMonitoringConfig(flags, **kwargs):
9
10 ''' Function to configure TileDigiNoiseMonitorAlgorithm algorithm in the monitoring system.'''
11
12
13
14 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
15 result = ComponentAccumulator()
16
17 from TileRecUtils.TileDQstatusConfig import TileDQstatusAlgCfg
18 result.merge( TileDQstatusAlgCfg(flags) )
19
20 from TileGeoModel.TileGMConfig import TileGMCfg
21 result.merge(TileGMCfg(flags))
22
23 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
24 result.merge( TileCablingSvcCfg(flags) )
25
26 from TileConditions.TileBadChannelsConfig import TileBadChannelsCondAlgCfg
27 result.merge( TileBadChannelsCondAlgCfg(flags, **kwargs) )
28
29 kwargs.setdefault('ignoreDisconnectedChannels', flags.Common.isOnline)
30
31 kwargs.setdefault('fillPedestalDifference', True)
32 if kwargs['fillPedestalDifference'] and 'TileCondToolNoiseSample' not in kwargs:
33 from TileConditions.TileSampleNoiseConfig import TileCondToolNoiseSampleCfg
34 sampleNoiseTool = result.popToolsAndMerge( TileCondToolNoiseSampleCfg(flags) )
35 kwargs['TileCondToolNoiseSample'] = sampleNoiseTool
36
37 kwargs.setdefault('CheckDCS', flags.Tile.useDCS)
38 if kwargs['CheckDCS']:
39 from TileConditions.TileDCSConfig import TileDCSCondAlgCfg
40 result.merge( TileDCSCondAlgCfg(flags) )
41
42
43 kwargs.setdefault('TriggerTypes', [0x82])
44
45
46
47 from AthenaMonitoring import AthMonitorCfgHelper
48 helper = AthMonitorCfgHelper(flags,'TileDigiNoiseMonitoring')
49
50 from AthenaConfiguration.Enums import Format
51 if flags.Input.Format is Format.POOL:
52 kwargs.setdefault('TileDigitsContainer', 'TileDigitsFlt')
53
54
55 from AthenaConfiguration.ComponentFactory import CompFactory
56 tileDigiNoiseMonAlg = helper.addAlgorithm(CompFactory.TileDigiNoiseMonitorAlgorithm, 'TileDigiNoiseMonAlg')
57
58 for k, v in kwargs.items():
59 setattr(tileDigiNoiseMonAlg, k, v)
60
61 run = str(flags.Input.RunNumbers[0])
62
63
64 executeTimeGroup = helper.addGroup(tileDigiNoiseMonAlg, 'TileDigiNoiseMonExecuteTime', 'Tile/')
65 executeTimeGroup.defineHistogram('TIME_execute', path = 'DigiNoise', type='TH1F',
66 title = 'Time for execute TileDigiNoiseMonAlg algorithm;time [#mus]',
67 xbins = 100, xmin = 0, xmax = 100000)
68
69
70 from TileMonitoring.TileMonitoringCfgHelper import addTileModuleChannelMapsArray
71
72
73 addTileModuleChannelMapsArray(helper, tileDigiNoiseMonAlg, name = 'TileDigiNoisePed',
74 title = 'Pedestal', path = 'Tile/DigiNoise', type = 'TProfile2D',
75 value = 'pedestal', run = run, perGain = True, separator = '_')
76
77
78 addTileModuleChannelMapsArray(helper, tileDigiNoiseMonAlg, name = 'TileDigiNoiseHFN',
79 title = 'High frequency noise', path = 'Tile/DigiNoise', type = 'TProfile2D',
80 value = 'HFN', run = run, perGain = True, separator = '_')
81
82
83 accumalator = helper.result()
84 result.merge(accumalator)
85 return result
86