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
85 acc = TileGMCfg(flags)
87 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
88 acc.merge( TileCablingSvcCfg(flags) )
90 if 'TileCondToolEmscale' not in kwargs:
91 from TileConditions.TileEMScaleConfig
import TileCondToolEmscaleCfg
92 emScaleTool = acc.popToolsAndMerge( TileCondToolEmscaleCfg(flags) )
93 kwargs[
'TileCondToolEmscale'] = emScaleTool
95 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
96 acc.merge( TileDQstatusAlgCfg(flags) )
99 from TileConditions.TileSamplingFractionConfig
import TileSamplingFractionCondAlgCfg
100 acc.merge( TileSamplingFractionCondAlgCfg(flags) )
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
112 updateBeamChambersCalibrations(alg, run)
113 acc.addEventAlgo(alg, primary=
True)
126 from AthenaConfiguration.TestDefaults
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles