3 """Define method to construct configured Tile Cell builder tool""" 
    5 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
    6 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
    7 from AthenaConfiguration.Enums 
import LHCPeriod, BeamType
 
    8 from TileConfiguration.TileConfigFlags 
import TileRunType
 
    9 from AthenaConfiguration.Enums 
import ProductionStep
 
   12     """Return component accumulator with configured private Tile Cell builder tool 
   15         flags  -- Athena configuration flags 
   16         SkipGain - skip given gain. Defaults to -1 [use all gains]. Possible values: 0 [LG], 1 [HG]. 
   17         mergeChannels -- merge DSP results with offline reco results. Defaults to True. 
   21     kwargs.setdefault(
'CheckDCS', flags.Tile.useDCS)
 
   22     kwargs.setdefault(
'TileRawChannelContainer', flags.Tile.RawChannelContainer)
 
   23     kwargs.setdefault(
'SkipGain', -1) 
 
   25     testBeam = flags.Beam.Type 
is BeamType.TestBeam
 
   26     kwargs.setdefault(
'MBTSContainer', 
'MBTSContainer' if not testBeam 
and flags.GeoModel.Run 
in [LHCPeriod.Run1, LHCPeriod.Run2, LHCPeriod.Run3] 
else "")
 
   27     kwargs.setdefault(
'E4prContainer', 
'E4prContainer' if not testBeam 
and flags.GeoModel.Run 
is LHCPeriod.Run2 
else "")
 
   29     kwargs[
'mergeChannels'] = mergeChannels
 
   30     if flags.Common.ProductionStep 
is ProductionStep.PileUpPretracking:
 
   31         kwargs.setdefault(
'EventInfo', flags.Overlay.BkgPrefix + 
"EventInfo")
 
   33     if kwargs[
'SkipGain'] 
not in [-1, 0, 1]:
 
   34         raise(Exception(
"Invalid Tile gain requsted to be skipped: %s" % kwargs[
'SkipGain']))
 
   36     from TileRecUtils.TileDQstatusConfig 
import TileDQstatusAlgCfg
 
   40         from LArGeoAlgsNV.LArGMConfig 
import LArGMCfg
 
   43     from TileGeoModel.TileGMConfig 
import TileGMCfg
 
   46     from TileConditions.TileInfoLoaderConfig 
import TileInfoLoaderCfg
 
   49     from TileConditions.TileCablingSvcConfig 
import TileCablingSvcCfg
 
   52     from TileConditions.TileBadChannelsConfig 
import TileBadChannelsCondAlgCfg
 
   55     from TileConditions.TileEMScaleConfig 
import TileEMScaleCondAlgCfg
 
   58     if 'TileCondToolTiming' not in kwargs:
 
   59         from TileConditions.TileTimingConfig 
import TileCondToolTimingCfg
 
   62     if kwargs[
'CheckDCS']:
 
   63         from TileConditions.TileDCSConfig 
import TileDCSCondAlgCfg
 
   66     if not (flags.Input.isMC 
or flags.Overlay.DataOverlay) 
and mergeChannels 
and 'TileDSPRawChannelContainer' not in kwargs:
 
   67         from TileRecUtils.TileRawChannelCorrectionConfig 
import TileRawChannelCorrectionAlgCfg
 
   69         tileRawChannelCorrectionAlg = corrAlgAcc.getPrimary()
 
   70         tileRawChannelContainerDSP = tileRawChannelCorrectionAlg.OutputRawChannelContainer
 
   71         kwargs[
'TileDSPRawChannelContainer'] = tileRawChannelContainerDSP
 
   72         acc.merge( corrAlgAcc )
 
   74     TileCellBuilder=CompFactory.TileCellBuilder
 
   80 if __name__ == 
"__main__":
 
   82     from AthenaConfiguration.AllConfigFlags 
import initConfigFlags
 
   83     from AthenaConfiguration.TestDefaults 
import defaultGeometryTags, defaultTestFiles
 
   84     from AthenaCommon.Logging 
import log
 
   91     flags.Input.Files = defaultTestFiles.RAW_RUN2
 
   92     flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
 
   93     flags.Tile.RunType = TileRunType.PHY
 
  102     acc.printConfig(withDetails = 
True, summariseProps = 
True)
 
  103     acc.store( 
open(
'TileCellBuilder.pkl',
'wb') )