ATLAS Offline Software
Loading...
Searching...
No Matches
TileRawChannelBuilderConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3"""Define method to construct configured base Tile raw channel builder tool"""
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from TileConfiguration.TileConfigFlags import TileRunType
8
9def TileRawChannelBuilderCfg(flags, name, TileRawChannelBuilder, **kwargs):
10 """Return component accumulator with configured private base Tile raw channel builder tool
11
12 Arguments:
13 flags -- Athena configuration flags
14 name -- name of Tile raw channel builder
15 TileRawChannelbuilder -- concrete Tile raw channel builder tool.
16 """
17
18 acc = ComponentAccumulator()
19
20 runType = flags.Tile.RunType
21
22 createContainer = ( kwargs.get('TileRawChannelContainer', "") != "" )
23
24 if createContainer:
25 from TileRecUtils.TileDQstatusConfig import TileDQstatusAlgCfg
26 acc.merge( TileDQstatusAlgCfg(flags) )
27 else:
28 kwargs['TileDQstatus'] = ""
29
30 from TileConditions.TileInfoLoaderConfig import TileInfoLoaderCfg
31 acc.merge( TileInfoLoaderCfg(flags) )
32
33 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
34 acc.merge( TileCablingSvcCfg(flags) )
35
36 kwargs['RunType'] = runType.getIntValue()
37 kwargs['calibrateEnergy'] = False
38
39 kwargs.setdefault('AmpMinForAmpCorrection', flags.Tile.AmpMinForAmpCorrection)
40 kwargs.setdefault('TimeMinForAmpCorrection', flags.Tile.TimeMinForAmpCorrection)
41 kwargs.setdefault('TimeMaxForAmpCorrection', flags.Tile.TimeMaxForAmpCorrection)
42
43 tileRawChannelContainerDSP = ""
44 if createContainer:
45 if 'NoiseFilterTools' not in kwargs:
46 from TileRecUtils.TileRawChannelCorrectionConfig import TileRawChannelCorrectionToolsCfg
47 correctionTools = acc.popToolsAndMerge( TileRawChannelCorrectionToolsCfg(flags) )
48 kwargs['NoiseFilterTools'] = correctionTools
49
50 if not (flags.Input.isMC or flags.Overlay.DataOverlay) and len(kwargs['NoiseFilterTools']) > 0:
51 tileRawChannelContainerDSP = 'TileRawChannelCntCorrected'
52 from TileRecUtils.TileRawChannelCorrectionConfig import TileRawChannelCorrectionAlgCfg
53 acc.merge( TileRawChannelCorrectionAlgCfg(flags) )
54
55 kwargs.setdefault('DSPContainer', tileRawChannelContainerDSP)
56
57 acc.setPrivateTools( TileRawChannelBuilder(name, **kwargs) )
58
59 return acc
60
61
62if __name__ == "__main__":
63
64 from AthenaConfiguration.AllConfigFlags import initConfigFlags
65 from AthenaConfiguration.TestDefaults import defaultGeometryTags, defaultTestFiles
66 from AthenaCommon.Logging import log
67 from AthenaCommon.Constants import DEBUG
68
69 # Test setup
70 log.setLevel(DEBUG)
71
72 flags = initConfigFlags()
73 flags.Input.Files = defaultTestFiles.RAW_RUN2
74 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
75 flags.Tile.RunType = TileRunType.PHY
76 flags.Tile.NoiseFilter = 1
77 flags.lock()
78
79 flags.dump()
80
81 acc = ComponentAccumulator()
82
83 TileRawChannelBuilderFitFilter=CompFactory.TileRawChannelBuilderFitFilter
84 rchBuilderFitAcc = TileRawChannelBuilderCfg(flags,
85 name = 'TileRawChannelBuilderFit',
86 TileRawChannelBuilder = TileRawChannelBuilderFitFilter)
87 print( acc.popToolsAndMerge(rchBuilderFitAcc) )
88
89 TileRawChannelBuilderOpt2Filter=CompFactory.TileRawChannelBuilderOpt2Filter
90 rchBuilderOpt2Acc = TileRawChannelBuilderCfg(flags,
91 name = 'TileRawChannelBuilderOpt2',
92 TileRawChannelBuilder = TileRawChannelBuilderOpt2Filter)
93 print( acc.popToolsAndMerge(rchBuilderOpt2Acc) )
94
95
96 acc.printConfig(withDetails = True, summariseProps = True)
97 acc.store( open('TileRawChannelBuilder.pkl','wb') )
98
99
void print(char *figname, TCanvas *c1)
TileRawChannelBuilderCfg(flags, name, TileRawChannelBuilder, **kwargs)