3 from AthenaConfiguration.AthConfigFlags
import AthConfigFlags
4 from AthenaConfiguration.Enums
import BeamType, Format, FlagEnum
17 UNDEFINED =
'UNDEFINED'
21 if self
in [TileRunType.PHY, TileRunType.PED]:
22 commonType = TileRunType.PHY
23 elif self
in [TileRunType.LAS, TileRunType.BILAS, TileRunType.GAPLAS]:
24 commonType = TileRunType.LAS
25 elif self
in [TileRunType.CIS, TileRunType.MONOCIS, TileRunType.GAPCIS, TileRunType.L1CALO]:
26 commonType = TileRunType.CIS
30 if self
is TileRunType.L1CALO:
31 return TileRunType.PHY
33 return self
if self
in [TileRunType.GAPLAS]
else self.
getCommonType()
36 _runTypeInt = {TileRunType.PHY: 1, TileRunType.LAS: 2,
37 TileRunType.GAPLAS: 2, TileRunType.BILAS: 2,
38 TileRunType.PED: 4, TileRunType.CIS: 8,
39 TileRunType.GAPCIS: 8, TileRunType.MONOCIS: 9,
40 TileRunType.L1CALO: 9}
41 return _runTypeInt.get(self, 0)
44 return True if self
in [TileRunType.CIS, TileRunType.PED]
else False
49 tcf = AthConfigFlags()
51 tcf.addFlag(
'Tile.doQIE',
False)
52 tcf.addFlag(
'Tile.doManyAmps',
False)
53 tcf.addFlag(
'Tile.doFlat',
False)
54 tcf.addFlag(
'Tile.doFit',
False)
55 tcf.addFlag(
'Tile.doFitCOOL',
False)
56 tcf.addFlag(
'Tile.doMF',
False)
57 tcf.addFlag(
'Tile.doOF1',
False)
58 tcf.addFlag(
'Tile.doWiener',
False)
59 tcf.addFlag(
'Tile.doOpt2', _doOpt2)
60 tcf.addFlag(
'Tile.doOptATLAS', _doOptATLAS)
61 tcf.addFlag(
'Tile.NoiseFilter',
lambda prevFlags : -1
if prevFlags.Input.isMC
else 1)
62 tcf.addFlag(
'Tile.RunType', _getRunType, type=TileRunType)
63 tcf.addFlag(
'Tile.correctTime',
lambda prevFlags :
not prevFlags.Input.isMC
and prevFlags.Beam.Type
is BeamType.Collisions)
64 tcf.addFlag(
'Tile.correctTimeNI',
True)
65 tcf.addFlag(
'Tile.correctAmplitude',
True)
66 tcf.addFlag(
'Tile.AmpMinForAmpCorrection', 15.0)
67 tcf.addFlag(
'Tile.TimeMinForAmpCorrection',
lambda prevFlags : (prevFlags.Beam.BunchSpacing / -2.))
68 tcf.addFlag(
'Tile.TimeMaxForAmpCorrection',
lambda prevFlags : (prevFlags.Beam.BunchSpacing / 2.))
69 tcf.addFlag(
'Tile.OfcFromCOOL',
True)
70 tcf.addFlag(
'Tile.BestPhaseFromCOOL',
lambda prevFlags :
not prevFlags.Input.isMC
and prevFlags.Beam.Type
is BeamType.Collisions)
71 tcf.addFlag(
'Tile.readDigits',
lambda prevFlags :
not prevFlags.Input.isMC)
72 tcf.addFlag(
'Tile.doOverflowFit',
True)
73 tcf.addFlag(
'Tile.zeroAmplitudeWithoutDigits', _zeroAmplitudeWithoutDigits)
74 tcf.addFlag(
'Tile.correctPedestalDifference', _correctPedestalDifference)
75 tcf.addFlag(
'Tile.correctTimeJumps', _correctTimeJumps)
76 tcf.addFlag(
'Tile.RawChannelContainer', _getRawChannelContainer)
77 tcf.addFlag(
'Tile.useDCS', _useDCS)
78 tcf.addFlag(
'Tile.doTimingHistogramsForGain', -1)
79 tcf.addFlag(
'Tile.doTimingHistogramsForCell', {
'LBA14':[
'A4',
'B6',
'D1'],
'LBA22':[
'A4',
'B6',
'D1'],
'EBA22':[
'A13',
'B12',
'D5']})
80 tcf.addFlag(
'Tile.useOnlineChannelStatus',
True)
88 if prevFlags.Common.isOnline:
89 if prevFlags.Beam.Type
is BeamType.Collisions:
94 runNumber = prevFlags.Input.RunNumbers[0]
97 if not prevFlags.Input.isMC
and runNumber > 0
and runNumber < 171194:
101 elif prevFlags.Beam.Type
is BeamType.Collisions:
109 if (prevFlags.Tile.doQIE
or prevFlags.Tile.doManyAmps
or prevFlags.Tile.doFlat
110 or prevFlags.Tile.doFit
or prevFlags.Tile.doFitCOOL
or prevFlags.Tile.doMF
111 or prevFlags.Tile.doOF1
or prevFlags.Tile.doWiener):
123 _flags = prevFlags.clone()
124 _flags.Tile.doOpt2 =
True
126 return not _flags.Tile.doOptATLAS
139 _flags = prevFlags.clone()
140 _flags.Tile.doOptATLAS =
True
141 return not _flags.Tile.doOpt2
147 if not prevFlags.Input.isMC:
148 runNumber = prevFlags.Input.RunNumbers[0]
150 return runNumber > 269101
and runNumber < 324320
156 if not prevFlags.Common.isOnline:
163 if not (prevFlags.Input.isMC
or prevFlags.Overlay.DataOverlay)
and prevFlags.Input.Format
is Format.BS:
171 from AthenaConfiguration.AutoConfigFlags
import GetFileMD
172 if not prevFlags.Input.isMC
and 'calibration_Tile' in GetFileMD(prevFlags.Input.Files).
get(
'triggerStreamOfFile',
''):
173 return TileRunType.UNDEFINED
175 return TileRunType.PHY
179 if not (prevFlags.Common.isOnline
or prevFlags.Input.isMC):
180 runNumber = prevFlags.Input.RunNumbers[0]
182 return (runNumber > 171194
and runNumber < 222222)
or runNumber > 232498
189 rawChannelContainer =
'UNDEFINED'
191 if prevFlags.Tile.doQIE:
192 rawChannelContainer =
'TileRawChannelQIE'
193 if prevFlags.Tile.doManyAmps:
194 rawChannelContainer =
'TileRawChannelManyAmp'
195 if prevFlags.Tile.doFlat:
196 rawChannelContainer =
'TileRawChannelFlat'
197 if prevFlags.Tile.doFit:
198 rawChannelContainer =
'TileRawChannelFit'
199 if prevFlags.Tile.doFitCOOL:
200 rawChannelContainer =
'TileRawChannelFitCool'
201 if prevFlags.Tile.doMF:
202 rawChannelContainer =
'TileRawChannelMF'
203 if prevFlags.Tile.doOF1:
204 rawChannelContainer =
'TileRawChannelOF1'
205 if prevFlags.Tile.doWiener:
206 rawChannelContainer =
'TileRawChannelWiener'
207 if prevFlags.Tile.doOpt2:
208 rawChannelContainer =
'TileRawChannelOpt2'
209 if prevFlags.Tile.doOptATLAS:
210 if not (prevFlags.Input.isMC
or prevFlags.Overlay.DataOverlay)
and prevFlags.Input.Format
is Format.BS:
211 rawChannelContainer =
'TileRawChannelFixed'
213 rawChannelContainer =
'TileRawChannelCnt'
215 return rawChannelContainer
218 if __name__==
"__main__":
220 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
221 from AthenaConfiguration.TestDefaults
import defaultTestFiles
223 flags.Input.Files = defaultTestFiles.RAW_RUN2
225 if len(sys.argv) > 1:
230 flags.needFlagsCategory(
'Tile')