10def TileRawChannelMakerCfg(flags, **kwargs):
11 """Return component accumulator with configured Tile raw channel maker algorithm
12
13 Arguments:
14 flags -- Athena configuration flags
15 """
16
17 acc = ComponentAccumulator()
18
19 from TileConditions.TileInfoLoaderConfig import TileInfoLoaderCfg
20 acc.merge( TileInfoLoaderCfg(flags) )
21
22 kwargs.setdefault('name', 'TileRChMaker')
23 name = kwargs['name']
24
25 if flags.Common.ProductionStep in [ProductionStep.PileUpPresampling, ProductionStep.PileUpPretracking]:
26 kwargs.setdefault('TileDigitsContainer', flags.Overlay.BkgPrefix + 'TileDigitsCnt')
27 else:
28 kwargs.setdefault('TileDigitsContainer', 'TileDigitsCnt')
29
30 from AthenaCommon.Logging import logging
31 mlog = logging.getLogger( 'TileRawChannelMakerCfg' )
32
33 if flags.Tile.doOverflowFit:
34 kwargs.setdefault('FitOverflow', True)
35 from TileRecUtils.TileRawChannelBuilderFitConfig import TileRawChannelBuilderFitOverflowCfg
36 tileRawChannelBuilderFitOverflow = acc.popToolsAndMerge( TileRawChannelBuilderFitOverflowCfg(flags) )
37 kwargs.setdefault('TileRawChannelBuilderFitOverflow', tileRawChannelBuilderFitOverflow)
38 else:
39 kwargs.setdefault('FitOverflow', False)
40
41 tileRawChannelBuilder = []
42
43 if flags.Tile.doFit:
44 from TileRecUtils.TileRawChannelBuilderFitConfig import TileRawChannelBuilderFitFilterCfg
45 tileRawChannelBuilderFitFilter = acc.popToolsAndMerge( TileRawChannelBuilderFitFilterCfg(flags) )
46 tileRawChannelBuilder += [tileRawChannelBuilderFitFilter]
47 mlog.info(" adding now TileRawChannelBuilderFitFilter with name %s to the algorithm: %s",
48 tileRawChannelBuilderFitFilter.name, name)
49
50 if flags.Tile.doMF:
51 from TileRecUtils.TileRawChannelBuilderMFConfig import TileRawChannelBuilderMFCfg
52 tileRawChannelBuilderMF = acc.popToolsAndMerge( TileRawChannelBuilderMFCfg(flags) )
53 tileRawChannelBuilder += [tileRawChannelBuilderMF]
54 mlog.info(" adding now TileRawChannelBuilderMF with name %s to the algorithm: %s",
55 tileRawChannelBuilderMF.name, name)
56
57 if flags.Tile.doOF1:
58 from TileRecUtils.TileRawChannelBuilderOptConfig import TileRawChannelBuilderOF1Cfg
59 tileRawChannelBuilderOF1 = acc.popToolsAndMerge( TileRawChannelBuilderOF1Cfg(flags) )
60 tileRawChannelBuilder += [tileRawChannelBuilderOF1]
61 mlog.info(" adding now TileRawChannelBuilderOpt2Filter with name %s to the algorithm: %s",
62 tileRawChannelBuilderOF1.name, name)
63
64 if flags.Tile.doWiener:
65 from TileRecUtils.TileRawChannelBuilderWienerConfig import TileRawChannelBuilderWienerCfg
66 tileRawChannelBuilderWiener = acc.popToolsAndMerge( TileRawChannelBuilderWienerCfg(flags) )
67 tileRawChannelBuilder += [tileRawChannelBuilderWiener]
68 mlog.info(" adding now TileRawChannelBuilderWienerFilter with name %s to the algorithm: %s",
69 tileRawChannelBuilderWiener.name, name)
70
71 if flags.Tile.doOpt2:
72 from TileRecUtils.TileRawChannelBuilderOptConfig import TileRawChannelBuilderOpt2Cfg
73 tileRawChannelBuilderOpt2 = acc.popToolsAndMerge( TileRawChannelBuilderOpt2Cfg(flags) )
74 tileRawChannelBuilder += [tileRawChannelBuilderOpt2]
75 mlog.info(" adding now TileRawChannelBuilderOpt2Filter with name %s to the algorithm: %s",
76 tileRawChannelBuilderOpt2.name, name)
77
78 if flags.Tile.doOptATLAS:
79 from TileRecUtils.TileRawChannelBuilderOptConfig import TileRawChannelBuilderOptATLASCfg
80 tileRawChannelBuilderOptATLAS = acc.popToolsAndMerge( TileRawChannelBuilderOptATLASCfg(flags) )
81 tileRawChannelBuilder += [tileRawChannelBuilderOptATLAS]
82 mlog.info(" adding now TileRawChannelBuilderOpt2Filter with name %s to the algorithm: %s",
83 tileRawChannelBuilderOptATLAS.name, name)
84
85 kwargs.setdefault('TileRawChannelBuilder', tileRawChannelBuilder)
86
87 if flags.Common.isOverlay and flags.Concurrency.NumThreads > 0:
88 kwargs.setdefault('Cardinality', flags.Concurrency.NumThreads)
89
90 TileRawChannelMaker=CompFactory.TileRawChannelMaker
92
93 return acc
94
95