6 @file TileTBAANtupleConfig.py
7 @brief Python configuration of TileTBAANtuple algorithm for the Run III
10 from AthenaConfiguration.ComponentFactory
import CompFactory
11 from TileConfiguration.TileConfigFlags
import TileRunType
17 ''' Function to get Tile TB period.'''
19 TBperiod = 2015
if (run // 100000 == 5)
else 2016
35 ''' Function to configure TileTBAANtuple algorithm.'''
37 cisRun = flags.Tile.RunType
is TileRunType.CIS
38 monoRun = flags.Tile.RunType
is TileRunType.MONOCIS
39 pedestalRun = flags.Tile.RunType
is TileRunType.PED
42 offlineUnits = 0
if cisRun
or monoRun
or pedestalRun
else 3
43 calibrateEnergy = (offlineUnits != 0)
45 run = flags.Input.RunNumbers[0]
48 useFELIX =
True if run > 2310438
else False
50 TBperiod =
getTileTBperiod(run, useFELIX)
if not flags.Input.isMC
else 2003
52 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsCnt')
53 kwargs.setdefault(
'TileBeamElemContainer',
'TileBeamElemCnt' if not flags.Input.isMC
else "")
54 kwargs.setdefault(
'TileRawChannelContainerFlat',
"")
55 kwargs.setdefault(
'TileRawChannelContainerFit',
'TileRawChannelFit' if flags.Tile.doFit
else "")
56 kwargs.setdefault(
'TileRawChannelContainerOpt',
"TileRawChannelOpt2" if flags.Tile.doOpt2
else "")
57 kwargs.setdefault(
'TileRawChannelContainerDsp',
"")
58 kwargs.setdefault(
'TileRawChannelContainerFitCool',
'TileRawChannelFitCool' if flags.Tile.doFitCOOL
else "")
60 kwargs.setdefault(
'TileDigitsContainerFlx',
'TileDigitsFlxCnt' if useFELIX
else "")
61 kwargs.setdefault(
'TileRawChannelContainerFitFlx',
'TileRawChannelFlxFit' if useFELIX
and flags.Tile.doFit
else "")
62 kwargs.setdefault(
'TileRawChannelContainerOptFlx',
'TileRawChannelFlxOpt2' if useFELIX
and flags.Tile.doOpt2
else "")
64 kwargs.setdefault(
'TileHitContainer',
'TileHitCnt' if flags.Input.isMC
else "")
65 kwargs.setdefault(
'TileHitVector',
'TileHitVec' if flags.Input.isMC
else "")
66 kwargs.setdefault(
'CaloCellContainer',
'AllCalo')
68 kwargs.setdefault(
'TileLaserObj',
"")
70 kwargs.setdefault(
'OfflineUnits', offlineUnits)
71 kwargs.setdefault(
'CalibrateEnergy', calibrateEnergy)
72 kwargs.setdefault(
'CalibMode', pedestalRun
or cisRun)
73 kwargs.setdefault(
'PMTOrder',
not (cisRun
or monoRun
or pedestalRun))
75 kwargs.setdefault(
'NSamples', -1)
76 kwargs.setdefault(
'NSamplesFelix', 16
if useFELIX
else 0)
78 kwargs.setdefault(
'TBperiod', TBperiod)
81 kwargs.setdefault(
'beamFragList', [])
82 kwargs.setdefault(
'CompleteNtuple',
False)
84 from TileGeoModel.TileGMConfig
import TileGMCfg
87 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
90 if 'TileCondToolEmscale' not in kwargs:
91 from TileConditions.TileEMScaleConfig
import TileCondToolEmscaleCfg
93 kwargs[
'TileCondToolEmscale'] = emScaleTool
95 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
99 from TileConditions.TileSamplingFractionConfig
import TileSamplingFractionCondAlgCfg
102 kwargs[
'TileSamplingFraction'] =
""
105 outputFile = f
'tiletb_{run}.aan.root'
106 histsvc = CompFactory.THistSvc()
107 histsvc.Output += [
"%s DATAFILE='%s' OPT='RECREATE'" % (
'AANT', outputFile)]
108 acc.addService(histsvc)
110 alg = CompFactory.TileTBAANtuple(**kwargs)
111 from TileMonitoring.TileTBBeamChambersCalibration
import updateBeamChambersCalibrations
113 acc.addEventAlgo(alg, primary=
True)
118 if __name__ ==
'__main__':
121 from AthenaCommon.Logging
import log
125 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
126 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
129 parser = flags.getArgumentParser()
130 parser.add_argument(
'--postExec', help=
'Code to execute after setup')
131 args, _ = parser.parse_known_args()
133 flags.Exec.MaxEvents = 3
134 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
135 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
136 flags.Tile.doFit =
False
137 flags.Tile.doOpt2 =
False
138 flags.Tile.RunType = TileRunType.PHY
139 flags.Input.Files = defaultTestFiles.RAW_RUN2
141 flags.fillFromArgs(parser=parser)
144 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
147 from TileByteStream.TileByteStreamConfig
import TileRawDataReadingCfg
157 cfg.getCondAlgo(
'TileHid2RESrcIDCondAlg').RODStatusProxy =
None
161 log.info(
'Executing postExec: %s', args.postExec)
165 cfg.store(
open(
'TileTBAANtuple.pkl',
'wb'))
169 sys.exit(
not sc.isSuccess())