9 """Return component accumulator with configured Tile sample noise conditions algorithm
12 flags -- Athena configuration flags
14 Source -- source of Tile sample noise conditions (COOL, FILE). Defaults to COOL.
15 ForceOnline -- flag to use online sample noise in offline. Defaults to False.
16 TileSampleNoise -- name of Tile sample noise conditions object.
17 Defaults to TileOnlineSampleNoise if ForceOnline else TileSampleNoise.
20 acc = ComponentAccumulator()
22 source = kwargs.get(
'Source',
'COOL')
23 sampleNoise = kwargs.get(
'TileSampleNoise',
'TileSampleNoise')
24 forceOnline = kwargs.get(
'ForceOnline',
False)
26 name = sampleNoise +
'CondAlg'
31 from TileConditions.TileFolders
import TileFolders
32 folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
34 if flags.IOVDb.DatabaseInstance ==
'CONDBR2':
35 onlineSampleNoiseFolder =
'/TILE/ONL01/NOISE/SAMPLE'
37 onlineSampleNoiseFolder =
'/TILE/OFL01/NOISE/SAMPLE'
40 sampleNoiseFolder = folders.add(onlineSampleNoiseFolder,
'TILE')
42 sampleNoiseFolder = folders.addSplitOnline(onlineSampleNoiseFolder,
'/TILE/OFL02/NOISE/SAMPLE')
44 TileCondProxyCoolFlt=CompFactory.getComp(
"TileCondProxyCool<TileCalibDrawerFlt>")
45 sampleNoiseProxy =
TileCondProxyCoolFlt(
'TileCondProxyCool_NoiseSample', Source = sampleNoiseFolder)
47 from IOVDbSvc.IOVDbSvcConfig
import addFolderList
48 acc.merge( addFolderList(flags, folders.get()) )
50 elif source ==
'FILE':
52 TileCondProxyFileFlt=CompFactory.getComp(
"TileCondProxyFile<TileCalibDrawerFlt>")
53 sampleNoiseProxy =
TileCondProxyFileFlt(
'TileCondProxyFile_NoiseSample', Source =
'TileDefault.ped')
56 raise(Exception(
"Invalid source: %s" % source))
58 TileSampleNoiseCondAlg = CompFactory.getComp(
"TileCondAlg<TileSampleNoise,TileCalibDrawerFlt>")
60 ConditionsProxy = sampleNoiseProxy,
61 TileCondData = sampleNoise)
63 acc.addCondAlgo(sampleNoiseCondAlg)
70 """Return component accumulator with configured private Tile sample noise tool
72 flags -- Athena configuration flags
74 Source -- source of Tile sample noise conditions (COOL, FILE). Defaults to COOL.
75 TileSampleNoise -- name of Tile sample noise conditions object. Defaults to TileSampleNoise.
76 TileOnlineSampleNoise -- name of Tile online sample noise conditions object. If it is not empty
77 online sample noise will be accessible in offline also and that allows
78 to get difference between pedestal used in online and corrected one
79 in offline. Proposed name: TileOnlineSampleNoise. Defaults to empty.
82 from AthenaCommon.Logging
import logging
83 msg = logging.getLogger(
'TileCondToolNoiseSample')
85 acc = ComponentAccumulator()
87 kwargs.setdefault(
'Source',
'COOL')
88 kwargs.setdefault(
'TileSampleNoise',
'TileSampleNoise')
90 sampleNoise = kwargs[
'TileSampleNoise']
91 onlineSampleNoise = kwargs.pop(
'TileOnlineSampleNoise',
'')
93 name =
'TileCondToolNoiseSample'
95 from TileConditions.TileEMScaleConfig
import TileEMScaleCondAlgCfg
96 acc.merge( TileEMScaleCondAlgCfg(flags, **kwargs) )
100 if onlineSampleNoise:
101 if flags.Common.isOnline:
102 msg.warning(
'Not necessary to configure online sample noise in online especially')
103 onlineSampleNoise = sampleNoise
105 kwargs[
'TileSampleNoise'] = onlineSampleNoise
108 TileCondToolNoiseSample=CompFactory.TileCondToolNoiseSample
110 TileOnlineSampleNoise = onlineSampleNoise) )