6 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory
import CompFactory
8 from AthenaConfiguration.Enums
import Format
9 from TileConfiguration.TileConfigFlags
import TileRunType
12 @file TileAANtupleConfig.py
13 @brief Python configuration of TileAANtuple algorithm for the Run III
16 ''' Function to configure TileAANtuple algorithm.'''
19 cisRun = flags.Tile.RunType
is TileRunType.CIS
20 laserRun = flags.Tile.RunType
is TileRunType.LAS
21 pedestalRun = flags.Tile.RunType
is TileRunType.PED
22 physicsRun = flags.Tile.RunType
is TileRunType.PHY
24 readDigits = flags.Tile.readDigits
26 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt' if readDigits
else "")
27 kwargs.setdefault(
'TileDigitsContainerFlt',
'TileDigitsFlt' if not readDigits
else "")
28 kwargs.setdefault(
'TileRawChannelContainer', flags.Tile.RawChannelContainer)
29 kwargs.setdefault(
'TileRawChannelContainerFit',
'TileRawChannelFit' if flags.Tile.doFit
else "")
30 kwargs.setdefault(
'TileRawChannelContainerFitCool',
'TileRawChannelFitCool' if flags.Tile.doFitCOOL
else "")
31 kwargs.setdefault(
'TileRawChannelContainerOpt',
"")
32 kwargs.setdefault(
'TileRawChannelContainerQIE',
'TileRawChannelQIE' if flags.Tile.doQIE
else "")
33 kwargs.setdefault(
'TileRawChannelContainerOF1',
'TileRawChannelOF1' if flags.Tile.doOF1
else "")
34 kwargs.setdefault(
'TileRawChannelContainerMF',
'TileRawChannelMF' if flags.Tile.doMF
else "")
35 kwargs.setdefault(
'TileRawChannelContainerWiener',
"")
36 kwargs.setdefault(
'TileRawChannelContainerDsp',
"")
37 kwargs.setdefault(
'TileLaserObject',
'TileLaserObj' if laserRun
else "")
38 kwargs.setdefault(
'TileBeamElemContainer',
'TileBeamElemCnt' if not physicsRun
else "")
40 kwargs.setdefault(
'TileMuRcvRawChannelContainer',
'MuRcvRawChCnt' if saveTMDB
else "")
41 kwargs.setdefault(
'TileMuRcvDigitsContainer',
'MuRcvDigitsCnt' if saveTMDB
else "")
42 kwargs.setdefault(
'TileMuRcvContainer',
"TileMuRcvCnt" if saveTMDB
else "")
44 kwargs.setdefault(
'CheckDCS', flags.Tile.useDCS)
45 kwargs.setdefault(
'BSInput', flags.Input.Format
is Format.BS
and not physicsRun)
46 kwargs.setdefault(
'CalibMode', pedestalRun
or cisRun)
47 kwargs.setdefault(
'CalibrateEnergy', flags.Input.isMC
or not (cisRun
or physicsRun))
51 from TileGeoModel.TileGMConfig
import TileGMCfg
54 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
57 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
60 if 'TileBadChanTool' not in kwargs:
61 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
64 if 'TileCondToolEmscale' not in kwargs:
65 from TileConditions.TileEMScaleConfig
import TileCondToolEmscaleCfg
67 kwargs[
'TileCondToolEmscale'] = emScaleTool
69 if kwargs[
'CheckDCS']:
70 from TileConditions.TileDCSConfig
import TileDCSCondAlgCfg
73 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
77 run =
str(flags.Input.RunNumbers[0])
78 outputFile =
'tile_{}.aan.root'.
format(run)
79 histsvc = CompFactory.THistSvc()
80 histsvc.Output += [
"%s DATAFILE='%s' OPT='RECREATE'" % (
'AANT', outputFile)]
81 acc.addService(histsvc)
83 TileAANtuple = CompFactory.TileAANtuple
84 acc.addEventAlgo(
TileAANtuple(
'TileNtuple', **kwargs), primary =
True)
89 if __name__==
'__main__':
92 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
94 parser = flags.getArgumentParser()
95 parser.add_argument(
'--postExec', help=
'Code to execute after setup')
96 parser.add_argument(
'--no-tmdb', dest=
'tmdb', action=
'store_false', help=
'Do not save TMDB information into ntuple')
97 args, _ = parser.parse_known_args()
100 from AthenaCommon.Logging
import log
104 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
105 flags.Input.Files = defaultTestFiles.RAW_RUN2
106 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
107 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
108 flags.Exec.MaxEvents = 3
109 flags.fillFromArgs(parser=parser)
111 log.info(
'FINAL CONFIG FLAGS SETTINGS FOLLOW')
117 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
120 rawChannelContainer =
'TileRawChannelCnt'
122 if flags.Input.Format
is Format.BS:
123 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
126 readMuRcvDigits=args.tmdb,
127 readMuRcvRawCh=args.tmdb) )
130 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
133 inputCollections = flags.Input.Collections
134 if rawChannelContainer
not in inputCollections:
135 rawChannelContainer =
'TileRawChannelFlt' if 'TileRawChannelFlt' in inputCollections
else ""
137 cfg.merge(
TileAANtupleCfg(flags, TileRawChannelContainer=rawChannelContainer, saveTMDB = args.tmdb) )
141 log.info(
'Executing postExec: %s', args.postExec)
144 cfg.printConfig(withDetails =
True, summariseProps =
True)
146 cfg.store(
open(
'TileAANtuple.pkl',
'wb') )
152 sys.exit(0
if sc.isSuccess()
else 1)