11     '''Function to configures TileRawChannelFlxMonAlg algorithms in the monitoring system.''' 
   13     kwargs.setdefault(
'TileRawChannelContainerLegacy', 
'TileRawChannelFit')
 
   14     kwargs.setdefault(
'TileRawChannelContainerFlx', 
'TileRawChannelFlxFit')
 
   15     kwargs.setdefault(
'FelixScale', 4)
 
   17     felixScale = kwargs[
'FelixScale']
 
   19     from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
   22     from TileConditions.TileCablingSvcConfig 
import TileCablingSvcCfg
 
   25     from AthenaMonitoring 
import AthMonitorCfgHelper
 
   26     helper = AthMonitorCfgHelper(flags, 
'TileRawChannelFlxMonitoring')
 
   28     from AthenaConfiguration.ComponentFactory 
import CompFactory
 
   29     TileRawChannelFlxMonitorAlgorithm = CompFactory.TileRawChannelFlxMonitorAlgorithm
 
   30     tileRawChannelFlxMonAlg = helper.addAlgorithm(TileRawChannelFlxMonitorAlgorithm, 
'TileRawChannelFlxMonAlg')
 
   31     tileRawChannelFlxMonAlg.TriggerChain = 
'' 
   33     for k, v 
in kwargs.items():
 
   34         setattr(tileRawChannelFlxMonAlg, k, v)
 
   37     executeTimeGroup = helper.addGroup(tileRawChannelFlxMonAlg, 
'TileRawChannelFlxMonExecuteTime', f
'{topPath}/Felix')
 
   38     executeTimeGroup.defineHistogram(
'TIME_execute', path = 
'RawChannel', type=
'TH1F',
 
   39                                      title = 
'Time for execute TileRawChannelFlxMonAlg algorithm;time [#mus]',
 
   40                                      xbins = 300, xmin = 0, xmax = 300000)
 
   42     runNumber = flags.Input.RunNumbers[0]
 
   43     from TileCalibBlobObjs.Classes 
import TileCalibUtils 
as Tile
 
   47         for fragID 
in fragIDs:
 
   49             drawer = fragID & 0x3F
 
   50             modules += [Tile.getDrawerString(ros, drawer)]
 
   52         for ros 
in range(1, Tile.MAX_ROS):
 
   53             for drawer 
in range(0, Tile.MAX_DRAWER):
 
   54                 modules += [Tile.getDrawerString(ros, drawer)]
 
   56     channelLegacyGroup = helper.addGroup(tileRawChannelFlxMonAlg, 
'TileRawChannelAmpLegacy', f
'{topPath}/Legacy/RawChannel')
 
   57     for moduleName 
in modules:
 
   58         for gainName 
in [
'HG', 
'LG']:
 
   59             title = f
'Run {str(runNumber)} {moduleName} {gainName}: Amplitude (Legacy);Channel;Amplitude' 
   60             name = f
'{moduleName}_{gainName}_channel,{moduleName}_{gainName}_amplitude;{moduleName}_{gainName}_amplitude_legacy' 
   62             channelLegacyGroup.defineHistogram(name, title = title, path = path, type = 
'TProfile',
 
   63                                                xbins = 48, xmin = -0.5, xmax = 47.5)
 
   65     channelFelixGroup = helper.addGroup(tileRawChannelFlxMonAlg, 
'TileRawChannelAmpFlx', f
'{topPath}/Felix/RawChannel')
 
   66     for moduleName 
in modules:
 
   67         for gainName 
in [
'HG', 
'LG']:
 
   68             title = f
'Run {str(runNumber)} {moduleName} {gainName}: Amplitude (FELIX);Channel;Amplitude' 
   69             name = f
'{moduleName}_{gainName}_channel,{moduleName}_{gainName}_amplitude;{moduleName}_{gainName}_amplitude_felix' 
   71             channelFelixGroup.defineHistogram(name, title = title, path = path, type = 
'TProfile',
 
   72                                               xbins = 48, xmin = -0.5, xmax = 47.5)
 
   74     channelCompareGroup = helper.addGroup(tileRawChannelFlxMonAlg, 
'TileRawChannelAmpDiff', f
'{topPath}/Compare/RawChannel')
 
   75     for moduleName 
in modules:
 
   76         for gainName 
in [
'HG', 
'LG']:
 
   77             title = f
'Run {str(runNumber)} {moduleName} {gainName}: Amplitude difference (FELIX-Legacy*{felixScale});Channel;Amplitude difference [ADC]' 
   78             name = f
'{moduleName}_{gainName}_channel,{moduleName}_{gainName}_amplitude_diff;{moduleName}_{gainName}_amplitude_diff' 
   80             channelCompareGroup.defineHistogram(name, title = title, path = path, type = 
'TProfile',
 
   81                                                 xbins = 48, xmin = -0.5, xmax = 47.5)
 
   83     channelCompareVsLegacyGroup = helper.addGroup(tileRawChannelFlxMonAlg, 
'TileRawChannelAmpDiffVsLegacy', f
'{topPath}/Compare/RawChannel')
 
   84     for moduleName 
in modules:
 
   85         for gainName 
in [
'HG', 
'LG']:
 
   86             title = f
'Run {str(runNumber)} {moduleName} {gainName}: Amplitude difference (FELIX-Legacy*{felixScale});Amplitude (Legacy) [ADC];Amplitude difference [ADC]' 
   87             name = f
'{moduleName}_{gainName}_amplitude,{moduleName}_{gainName}_amplitude_diff;{moduleName}_{gainName}_amplitude_diff_vs_legacy' 
   89             channelCompareVsLegacyGroup.defineHistogram(name, title = title, path = path, type = 
'TProfile',
 
   90                                                         xbins = 1024, xmin = -0.5, xmax = 1023.5)
 
   92     accumalator = helper.result()
 
   93     result.merge(accumalator)