5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.Enums
import Format
11 @file TileAtlantisConfig.py
12 @brief Python configuration of Atlantis algorithm for Tile for the Run III
17 ''' Function to get Tile digits container to be used in Atlantis.'''
19 tileDigitsContainer =
"TileDigitsCnt"
21 if flags.Input.Format
is Format.POOL:
22 if "TileDigitsCnt" in flags.Input.Collections:
23 tileDigitsContainer =
"TileDigitsCnt"
24 elif "TileDigitsFlt" in flags.Input.Collections:
25 tileDigitsContainer =
"TileDigitsFlt"
27 return tileDigitsContainer
31 ''' Function to get Tile raw channel container to be used in Atlantis.'''
33 tileRawChannelContainer =
""
35 if flags.Input.Format
is Format.BS
and flags.Tile.readDigits:
37 tileRawChannelContainer =
'TileRawChannelOpt2'
38 elif flags.Tile.doOptATLAS:
39 tileRawChannelContainer =
'TileRawChannelFixed'
40 elif flags.Tile.doFitCOOL:
41 tileRawChannelContainer =
'TileRawChannelFitCool'
42 elif flags.Tile.doFit:
43 tileRawChannelContainer =
'TileRawChannelFit'
45 if "TileRawChannelOpt2" in flags.Input.Collections:
46 tileRawChannelContainer =
'TileRawChannelOpt2'
47 elif "TileRawChannelFitCool" in flags.Input.Collections:
48 tileRawChannelContainer =
'TileRawChannelFitCool'
49 elif "TileRawChannelFit" in flags.Input.Collections:
50 tileRawChannelContainer =
'TileRawChannelFit'
51 elif "TileRawChannelCnt" in flags.Input.Collections:
52 tileRawChannelContainer =
'TileRawChannelCnt'
54 return tileRawChannelContainer
58 CaloClusterContainer='TileTopoCluster', **kwargs):
60 Function to configure AlgoJiveXML algorithm for Tile.
63 TileDigitsContainer -- name of Tile digits container (default: None).
64 In the case of None it will be autoconfigured.
65 In the case of empty string it will not be used.
66 TileRawChannelContainer -- name of Tile raw channel container (default: None).
67 In the case of None it will be autoconfigured.
68 In the case of empty string it will not be used.
69 CaloClusterContainer -- name of Calo cluster container (default: TileTopoCluster).
70 In the case of empty string it will not be used.
75 if TileDigitsContainer
is None:
78 digitsContainer = TileDigitsContainer
80 if TileRawChannelContainer
is None:
83 rawChannelContainer = TileRawChannelContainer
85 useDigits = digitsContainer !=
""
86 useRawChannels = rawChannelContainer !=
""
87 useClusters = CaloClusterContainer !=
""
89 from AthenaCommon.Logging
import logging
90 msg = logging.getLogger(
'TileAlgoJiveXMLCfg')
93 msg.info(f
'Use TileDigitsContainer [{digitsContainer}]')
95 msg.info(
'TileDigitsContainer is not configured => no use of digits')
98 msg.info(f
'Use TileRawChannelContainer [{rawChannelContainer}] for detailed information')
100 msg.info(
'TileRawChannelContainer is not configured => no detailed cell information')
103 msg.info(f
'Use CaloClusterContainer [{CaloClusterContainer}]')
105 msg.info(
'CaloClusterContainer is not configured => no clusters information')
109 from TileGeoModel.TileGMConfig
import TileGMCfg
112 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
115 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
118 from TileConditions.TileInfoLoaderConfig
import TileInfoLoaderCfg
121 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
124 from TileConditions.TileEMScaleConfig
import TileEMScaleCondAlgCfg
127 from TileConditions.TileTimingConfig
import TileTimingCondAlgCfg
131 from TileMonitoring.TileTopoClusterConfig
import TileTopoClusterCfg
134 data_types += [
"JiveXML::CaloTileRetriever/CaloTileRetriever"]
136 CompFactory.JiveXML.CaloTileRetriever(
137 name=
"CaloTileRetriever",
138 TileDigitsContainer=digitsContainer,
139 TileRawChannelContainer=rawChannelContainer,
140 DoTileCellDetails=useRawChannels,
141 DoTileDigit=useDigits,
147 data_types += [
"JiveXML::CaloMBTSRetriever/CaloMBTSRetriever"]
149 CompFactory.JiveXML.CaloMBTSRetriever(
150 name=
"CaloMBTSRetriever",
151 TileDigitsContainer=digitsContainer,
152 TileRawChannelContainer=rawChannelContainer,
153 DoMBTSDigits=useDigits,
154 DoMBTSCellDetails=useRawChannels,
160 data_types += [
"JiveXML::CaloClusterRetriever/CaloClusterRetriever"]
162 CompFactory.JiveXML.CaloClusterRetriever(
163 name=
"CaloClusterRetriever",
164 FavouriteClusterCollection=
"TileTopoCluster",
165 OtherClusterCollections=[
"TileTopoCluster"]
169 kwargs.setdefault(
"AtlasRelease", os.environ.get(
"AtlasVersion",
"Unknown"))
170 kwargs.setdefault(
"WriteToFile",
True)
171 kwargs.setdefault(
"OnlineMode",
False)
172 kwargs.setdefault(
"StreamToServerTool",
None)
174 kwargs.setdefault(
"WriteGeometry",
False)
175 kwargs.setdefault(
"DataTypes", data_types)
177 AlgoJiveXML = CompFactory.JiveXML.AlgoJiveXML
178 acc.addEventAlgo(AlgoJiveXML(name=
"AlgoJiveXML", **kwargs), primary=
True)
183 if __name__ ==
'__main__':
186 from AthenaCommon.Logging
import log
191 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
192 from AthenaConfiguration.TestDefaults
import defaultTestFiles
194 flags.Input.Files = defaultTestFiles.ESD
195 flags.Exec.MaxEvents = 3
200 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
201 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
207 cfg.printConfig(withDetails=
True, summariseProps=
True)
214 sys.exit(
not sc.isSuccess())