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 not prevFlags.Overlay.DataOverlay 
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 not prevFlags.Overlay.DataOverlay 
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) 
 
   83           from TileConfiguration.TileSimConfigFlags 
import createTileSimConfigFlags
 
   85      tcf.addFlagsCategory(
'Tile.Sim', __tilesim, prefix=
True)
 
   93      if prevFlags.Common.isOnline:
 
   94           if prevFlags.Beam.Type 
is BeamType.Collisions:
 
   99      runNumber = prevFlags.Input.RunNumbers[0]
 
  102      if not prevFlags.Input.isMC 
and runNumber > 0 
and runNumber < 171194:
 
  106      elif prevFlags.Beam.Type 
is BeamType.Collisions:
 
  114      if (prevFlags.Tile.doQIE 
or prevFlags.Tile.doManyAmps 
or prevFlags.Tile.doFlat
 
  115          or prevFlags.Tile.doFit 
or prevFlags.Tile.doFitCOOL 
or prevFlags.Tile.doMF
 
  116          or prevFlags.Tile.doOF1 
or prevFlags.Tile.doWiener):
 
  128                _flags = prevFlags.clone()
 
  129                _flags.Tile.doOpt2 = 
True 
  131                return not _flags.Tile.doOptATLAS
 
  144                _flags = prevFlags.clone()
 
  145                _flags.Tile.doOptATLAS = 
True 
  146                return not _flags.Tile.doOpt2
 
  152      if not prevFlags.Input.isMC:
 
  153           runNumber = prevFlags.Input.RunNumbers[0]
 
  155           return runNumber > 269101 
and runNumber < 324320
 
  161      if not prevFlags.Common.isOnline:
 
  168      if not (prevFlags.Input.isMC 
or prevFlags.Overlay.DataOverlay) 
and prevFlags.Input.Format 
is Format.BS:
 
  176      from AthenaConfiguration.AutoConfigFlags 
import GetFileMD
 
  177      if not prevFlags.Input.isMC 
and 'calibration_Tile' in GetFileMD(prevFlags.Input.Files).
get(
'triggerStreamOfFile', 
''):
 
  178           return TileRunType.UNDEFINED
 
  180           return TileRunType.PHY
 
  184      if not (prevFlags.Common.isOnline 
or prevFlags.Input.isMC):
 
  185           runNumber = prevFlags.Input.RunNumbers[0]
 
  187           return (runNumber > 171194 
and runNumber < 222222) 
or runNumber > 232498
 
  194      rawChannelContainer = 
'UNDEFINED' 
  196      if prevFlags.Tile.doQIE:
 
  197           rawChannelContainer = 
'TileRawChannelQIE' 
  198      if prevFlags.Tile.doManyAmps:
 
  199           rawChannelContainer = 
'TileRawChannelManyAmp' 
  200      if prevFlags.Tile.doFlat:
 
  201           rawChannelContainer = 
'TileRawChannelFlat' 
  202      if prevFlags.Tile.doFit:
 
  203           rawChannelContainer = 
'TileRawChannelFit' 
  204      if prevFlags.Tile.doFitCOOL:
 
  205           rawChannelContainer = 
'TileRawChannelFitCool' 
  206      if prevFlags.Tile.doMF:
 
  207           rawChannelContainer = 
'TileRawChannelMF' 
  208      if prevFlags.Tile.doOF1:
 
  209           rawChannelContainer = 
'TileRawChannelOF1' 
  210      if prevFlags.Tile.doWiener:
 
  211           rawChannelContainer = 
'TileRawChannelWiener' 
  212      if prevFlags.Tile.doOpt2:
 
  213           rawChannelContainer = 
'TileRawChannelOpt2' 
  214      if prevFlags.Tile.doOptATLAS:
 
  217      return rawChannelContainer
 
  221      if not (flags.Input.isMC 
or flags.Overlay.DataOverlay) 
and flags.Input.Format 
is Format.BS:
 
  222           return 'TileRawChannelFixed' 
  224           return 'TileRawChannelCnt' 
  227 if __name__==
"__main__":
 
  229      from AthenaConfiguration.AllConfigFlags 
import initConfigFlags
 
  230      from AthenaConfiguration.TestDefaults 
import defaultTestFiles
 
  232      flags.Input.Files = defaultTestFiles.RAW_RUN2
 
  234      if len(sys.argv) > 1:
 
  239      flags.needFlagsCategory(
'Tile')