diff --git a/TileCalorimeter/TileRecUtils/CMakeLists.txt b/TileCalorimeter/TileRecUtils/CMakeLists.txt index 1d85363fd7ba82f9c2fd4e8be154a970e9b7008b..885050639dd95b2d24ddcb511dfd67d69fd1c256 100644 --- a/TileCalorimeter/TileRecUtils/CMakeLists.txt +++ b/TileCalorimeter/TileRecUtils/CMakeLists.txt @@ -111,6 +111,11 @@ atlas_add_test( TileRawChannelBuilderOptConfig_test PROPERTIES TIMEOUT 300 POST_EXEC_SCRIPT nopost.sh) +atlas_add_test( TileRawChannelBuilderMFConfig_test + SCRIPT python -m TileRecUtils.TileRawChannelBuilderMFConfig + PROPERTIES TIMEOUT 300 + POST_EXEC_SCRIPT nopost.sh) + atlas_add_test( TileCellNoiseFilterConfig_test SCRIPT python -m TileRecUtils.TileCellNoiseFilterConfig PROPERTIES TIMEOUT 300 diff --git a/TileCalorimeter/TileRecUtils/python/TileRawChannelBuilderMFConfig.py b/TileCalorimeter/TileRecUtils/python/TileRawChannelBuilderMFConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..ca8e1ef57a6381825791eddd1527ed1ea5ed0b06 --- /dev/null +++ b/TileCalorimeter/TileRecUtils/python/TileRawChannelBuilderMFConfig.py @@ -0,0 +1,79 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + +"""Define method to construct configured Tile MF raw channel builder tool""" + +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + +def TileRawChannelBuilderMFCfg(flags, **kwargs): + """Return component accumulator with configured private Tile MF raw channel builder tool + + Arguments: + flags -- Athena configuration flags (ConfigFlags) + """ + + kwargs.setdefault('Name', 'TileRawChannelBuilderMF') + kwargs.setdefault('TileRawChannelContainer', 'TileRawChannelMF') + + from TileRecUtils.TileRecUtilsConf import TileRawChannelBuilderMF + kwargs['TileRawChannelBuilder'] = TileRawChannelBuilderMF + + if 'TileCondToolOfcOnFly' not in kwargs: + from TileConditions.TileOFCConfig import TileCondToolOfcCfg + ofcTool = acc.popToolsAndMerge( TileCondToolOfcCfg(flags) ) + kwargs['TileCondToolOfcOnFly'] = ofcTool + + if flags.Tile.OfcFromCOOL and 'TileCondToolOfc' not in kwargs: + from TileConditions.TileOFCConfig import TileCondToolOfcCoolCfg + ofcCoolTool = acc.popToolsAndMerge( TileCondToolOfcCoolCfg(flags, OfcType = 'OF2') ) + kwargs['TileCondToolOfc'] = ofcCoolTool + + if 'TileCondToolNoiseSample' not in kwargs: + from TileConditions.TileSampleNoiseConfig import TileCondToolNoiseSampleCfg + sampleNoiseTool = acc.popToolsAndMerge( TileCondToolNoiseSampleCfg(flags) ) + kwargs['TileCondToolNoiseSample'] = sampleNoiseTool + + if flags.Tile.BestPhaseFromCOOL: # can't correct time and use best phase at the same time + kwargs['correctTime'] = False + else: + kwargs.setdefault('correctTime', flags.Tile.correctTime) + + kwargs.setdefault('BestPhase', flags.Tile.BestPhaseFromCOOL) + kwargs.setdefault('MaxIterations', 5) # iterative mode on + kwargs.setdefault('AmplitudeCorrection', False) + kwargs.setdefault('TimeFromCOF', False) + + if flags.Tile.correctTime and 'TileCondToolTiming' not in kwargs: + from TileConditions.TileTimingConfig import TileCondToolTimingCfg + timingTool = acc.popToolsAndMerge( TileCondToolTimingCfg(flags) ) + kwargs['TileCondToolTiming'] = timingTool + + from TileRecUtils.TileRawChannelBuilderConfig import TileRawChannelBuilderCfg + return TileRawChannelBuilderCfg(flags, **kwargs) + + + +if __name__ == "__main__": + + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior = 1 + from AthenaConfiguration.AllConfigFlags import ConfigFlags + from AthenaConfiguration.TestDefaults import defaultTestFiles + from AthenaCommon.Logging import log + from AthenaCommon.Constants import DEBUG + + # Test setup + log.setLevel(DEBUG) + + ConfigFlags.Input.Files = defaultTestFiles.RAW + ConfigFlags.Tile.RunType = 'PHY' + ConfigFlags.Tile.NoiseFilter = 1 + ConfigFlags.lock() + + ConfigFlags.dump() + + acc = ComponentAccumulator() + + print( acc.popToolsAndMerge( TileRawChannelBuilderMFCfg(ConfigFlags) ) ) + + acc.printConfig(withDetails = True, summariseProps = True) + acc.store( open('TileRawChannelBuilderMF.pkl','w') )