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(
'UseDspUnits',
False)
27 useDspUnits = kwargs[
'UseDspUnits']
34 elif not (pedestalRun
or physicsRun):
37 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt' if readDigits
else "")
38 kwargs.setdefault(
'TileDigitsContainerFlt',
'TileDigitsFlt' if not readDigits
else "")
39 kwargs.setdefault(
'TileRawChannelContainer', flags.Tile.RawChannelContainer)
40 kwargs.setdefault(
'TileRawChannelContainerFit',
'TileRawChannelFit' if flags.Tile.doFit
else "")
41 kwargs.setdefault(
'TileRawChannelContainerFitCool',
'TileRawChannelFitCool' if flags.Tile.doFitCOOL
else "")
42 kwargs.setdefault(
'TileRawChannelContainerOpt',
"")
43 kwargs.setdefault(
'TileRawChannelContainerQIE',
'TileRawChannelQIE' if flags.Tile.doQIE
else "")
44 kwargs.setdefault(
'TileRawChannelContainerOF1',
'TileRawChannelOF1' if flags.Tile.doOF1
else "")
45 kwargs.setdefault(
'TileRawChannelContainerMF',
'TileRawChannelMF' if flags.Tile.doMF
else "")
46 kwargs.setdefault(
'TileRawChannelContainerWiener',
"")
47 kwargs.setdefault(
'TileRawChannelContainerDsp',
"")
48 kwargs.setdefault(
'TileLaserObject',
'TileLaserObj' if laserRun
else "")
49 kwargs.setdefault(
'TileBeamElemContainer',
'TileBeamElemCnt' if not physicsRun
else "")
51 kwargs.setdefault(
'TileMuRcvRawChannelContainer',
'MuRcvRawChCnt' if saveTMDB
else "")
52 kwargs.setdefault(
'TileMuRcvDigitsContainer',
'MuRcvDigitsCnt' if saveTMDB
else "")
53 kwargs.setdefault(
'TileMuRcvContainer',
"TileMuRcvCnt" if saveTMDB
else "")
55 kwargs.setdefault(
'CheckDCS', flags.Tile.useDCS)
56 kwargs.setdefault(
'BSInput', flags.Input.Format
is Format.BS
and not physicsRun)
57 kwargs.setdefault(
'CalibMode', pedestalRun
or cisRun)
58 kwargs.setdefault(
'CalibrateEnergy', flags.Input.isMC
or useDspUnits
or not cisRun)
59 kwargs.setdefault(
'OfflineUnits', offlineUnits)
63 from TileGeoModel.TileGMConfig
import TileGMCfg
66 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
69 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
72 if 'TileBadChanTool' not in kwargs:
73 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
76 if 'TileCondToolEmscale' not in kwargs:
77 from TileConditions.TileEMScaleConfig
import TileCondToolEmscaleCfg
79 kwargs[
'TileCondToolEmscale'] = emScaleTool
81 if kwargs[
'CheckDCS']:
82 from TileConditions.TileDCSConfig
import TileDCSCondAlgCfg
85 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
89 run =
str(flags.Input.RunNumbers[0])
90 outputFile =
'tile_{}.aan.root'.
format(run)
91 histsvc = CompFactory.THistSvc()
92 histsvc.Output += [
"%s DATAFILE='%s' OPT='RECREATE'" % (
'AANT', outputFile)]
93 acc.addService(histsvc)
95 TileAANtuple = CompFactory.TileAANtuple
96 acc.addEventAlgo(
TileAANtuple(
'TileNtuple', **kwargs), primary =
True)
101 if __name__==
'__main__':
104 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
106 parser = flags.getArgumentParser()
107 parser.add_argument(
'--postExec', help=
'Code to execute after setup')
108 parser.add_argument(
'--no-tmdb', dest=
'tmdb', action=
'store_false', help=
'Do not save TMDB information into ntuple')
109 args, _ = parser.parse_known_args()
112 from AthenaCommon.Logging
import log
116 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
117 flags.Input.Files = defaultTestFiles.RAW_RUN2
118 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
119 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
120 flags.Exec.MaxEvents = 3
121 flags.fillFromArgs(parser=parser)
123 log.info(
'FINAL CONFIG FLAGS SETTINGS FOLLOW')
129 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
132 rawChannelContainer =
'TileRawChannelCnt'
134 if flags.Input.Format
is Format.BS:
135 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
138 readMuRcvDigits=args.tmdb,
139 readMuRcvRawCh=args.tmdb) )
142 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
145 inputCollections = flags.Input.Collections
146 if rawChannelContainer
not in inputCollections:
147 rawChannelContainer =
'TileRawChannelFlt' if 'TileRawChannelFlt' in inputCollections
else ""
149 cfg.merge(
TileAANtupleCfg(flags, TileRawChannelContainer=rawChannelContainer, saveTMDB = args.tmdb) )
153 log.info(
'Executing postExec: %s', args.postExec)
156 cfg.printConfig(withDetails =
True, summariseProps =
True)
158 cfg.store(
open(
'TileAANtuple.pkl',
'wb') )
164 sys.exit(0
if sc.isSuccess()
else 1)