5 @file TileDigiNoiseMonitorAlgorithm.py
6 @brief Python configuration of TileDigiNoiseMonitorAlgorithm algorithm for the Run III
10 ''' Function to configure TileDigiNoiseMonitorAlgorithm algorithm in the monitoring system.'''
14 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
17 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
20 from TileGeoModel.TileGMConfig
import TileGMCfg
23 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
26 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
29 kwargs.setdefault(
'ignoreDisconnectedChannels', flags.Common.isOnline)
31 kwargs.setdefault(
'fillPedestalDifference',
True)
32 if kwargs[
'fillPedestalDifference']
and 'TileCondToolNoiseSample' not in kwargs:
33 from TileConditions.TileSampleNoiseConfig
import TileCondToolNoiseSampleCfg
35 kwargs[
'TileCondToolNoiseSample'] = sampleNoiseTool
37 kwargs.setdefault(
'CheckDCS', flags.Tile.useDCS)
38 if kwargs[
'CheckDCS']:
39 from TileConditions.TileDCSConfig
import TileDCSCondAlgCfg
43 kwargs.setdefault(
'TriggerTypes', [0x82])
47 from AthenaMonitoring
import AthMonitorCfgHelper
48 helper = AthMonitorCfgHelper(flags,
'TileDigiNoiseMonitoring')
50 from AthenaConfiguration.Enums
import Format
51 if flags.Input.Format
is Format.POOL:
52 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsFlt')
55 from AthenaConfiguration.ComponentFactory
import CompFactory
56 tileDigiNoiseMonAlg = helper.addAlgorithm(CompFactory.TileDigiNoiseMonitorAlgorithm,
'TileDigiNoiseMonAlg')
58 for k, v
in kwargs.items():
59 setattr(tileDigiNoiseMonAlg, k, v)
61 run =
str(flags.Input.RunNumbers[0])
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)
70 from TileMonitoring.TileMonitoringCfgHelper
import addTileModuleChannelMapsArray
74 title =
'Pedestal', path =
'Tile/DigiNoise', type =
'TProfile2D',
75 value =
'pedestal', run = run, perGain =
True, separator =
'_')
79 title =
'High frequency noise', path =
'Tile/DigiNoise', type =
'TProfile2D',
80 value =
'HFN', run = run, perGain =
True, separator =
'_')
83 accumalator = helper.result()
84 result.merge(accumalator)
87 if __name__==
'__main__':
90 from AthenaCommon.Logging
import log
95 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
96 from AthenaConfiguration.TestDefaults
import defaultGeometryTags, defaultConditionsTags
98 flags.Input.Files = [
'/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TileRecEx/data24_13p6TeV.00485506.physics_CosmicCalo.merge.RAW._lb0202._SFO-ALL.TT130.10_events._0001.1']
99 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
100 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA
101 flags.Output.HISTFileName =
'TileDigiNoiseMonitorOutput.root'
102 flags.DQ.useTrigger =
False
103 flags.DQ.enableLumiAccess =
False
104 flags.Exec.MaxEvents = 3
109 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
112 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
117 cfg.printConfig(withDetails =
True, summariseProps =
True)
120 cfg.store(
open(
'TileDigiNoiseMonitorAlgorithm.pkl',
'wb') )
126 sys.exit(
not sc.isSuccess())