diff --git a/TileCalorimeter/TileRecUtils/CMakeLists.txt b/TileCalorimeter/TileRecUtils/CMakeLists.txt
index 9fecd97f772c27151baa5bc87cea77f85c60e75b..733259e82966e658cd25c2bef380bb6c6096f1bd 100644
--- a/TileCalorimeter/TileRecUtils/CMakeLists.txt
+++ b/TileCalorimeter/TileRecUtils/CMakeLists.txt
@@ -32,6 +32,7 @@ atlas_depends_on_subdirs( PUBLIC
 
 # External dependencies:
 find_package( Boost COMPONENTS filesystem thread system )
+find_package( ROOT COMPONENTS Core )
 find_package( CLHEP )
 
 # Component(s) in the package:
@@ -53,3 +54,15 @@ atlas_add_component( TileRecUtils
 atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/*.py )
 
+atlas_add_dictionary( TileRecUtilsDict
+                      TileRecUtils/TileRecUtilsDict.h
+                      TileRecUtils/selection.xml
+                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} TileRecUtilsLib )
+
+
+atlas_add_test( TileCellBuilder_test
+  SCRIPT test/TileCellBuilder_test.sh
+  PROPERTIES TIMEOUT 600
+  EXTRA_PATTERNS "LArDetectorToolNV|is still valid|no data retrieved|Database being retired|Reading file|Unable to locate catalog|Resolved path|DigitizationFlags|^Domain|created CondCont|no dictionary for class|^ +[+]|Reading LArPedestalMC|IOV callback|^DetectorStore|TileDetectorTool|Creating TileCondProxyFile" )
+
diff --git a/TileCalorimeter/TileRecUtils/TileRecUtils/TileRecUtilsDict.h b/TileCalorimeter/TileRecUtils/TileRecUtils/TileRecUtilsDict.h
new file mode 100644
index 0000000000000000000000000000000000000000..f2cca8820b2639d1f1ae7661663ea4cd0eed993d
--- /dev/null
+++ b/TileCalorimeter/TileRecUtils/TileRecUtils/TileRecUtilsDict.h
@@ -0,0 +1,21 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+/*
+ * Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration.
+ */
+/**
+ * @file TileRecUtils/TileRecUtilsDict.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Sep, 2018
+ * @brief Generate dictionary for TileRecUtils.
+ */
+
+
+#ifndef TILERECUTILS_TILERECUTILSDICT_H
+#define TILERECUTILS_TILERECUTILSDICT_H
+
+
+// Needed for tests.
+#include "TileRecUtils/TileBeamInfoProvider.h"
+
+
+#endif // not TILERECUTILS_TILERECUTILSDICT_H
diff --git a/TileCalorimeter/TileRecUtils/TileRecUtils/selection.xml b/TileCalorimeter/TileRecUtils/TileRecUtils/selection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..680265273c37e0e34b83bab69ddfa91a31b65cf2
--- /dev/null
+++ b/TileCalorimeter/TileRecUtils/TileRecUtils/selection.xml
@@ -0,0 +1,3 @@
+<lcgdict>
+  <class name="TileBeamInfoProvider"/>
+</lcgdict>
diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.py b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff87f189f380e573d03f9766a7fbbc5787d6d018
--- /dev/null
+++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.py
@@ -0,0 +1,710 @@
+#
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration.
+#
+# File: TileRecUtils/share/TileCellBuilder_test.py
+# Author: sss
+# Date: Aug, 2018
+# Brief: Test for TileCellBuilder.
+#
+
+from __future__ import print_function
+
+
+import ROOT
+ROOT.TH1F
+
+from AthenaCommon.DetFlags      import DetFlags
+DetFlags.detdescr.Tile_setOn()
+DetFlags.detdescr.LAr_setOn()
+
+RunNumber = 284500
+
+import sys
+import string
+import ROOT
+import math
+from AtlasGeoModel import SetGeometryVersion
+from AtlasGeoModel import GeoModelInit
+from AtlasGeoModel import SetupRecoGeometry
+include('TileConditions/TileConditions_jobOptions.py')
+
+from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
+ServiceMgr += GeoModelSvc()
+theApp.CreateSvc += [ "GeoModelSvc"]
+from AtlasGeoModel import TileGM
+from AtlasGeoModel import LArGM   #LAr needed to get MBTS DD.
+
+from IOVDbSvc.IOVDbSvcConf import IOVDbSvc
+IOVDbSvc().GlobalTag = 'OFLCOND-RUN12-SDR-35'
+
+from AthenaCommon.AlgSequence import AlgSequence
+topSequence = AlgSequence()
+
+theApp.EvtMax=12
+
+
+
+hits_0 = [
+    # (sec, side, mod, tow, samp, pmt, adc), [adc, time, qual, ped]
+    [0, [
+        [(1, 1, 0, 1, 1, 0, 1), [ 0.2,  22.1,  2.4, 42.9]],
+        [(1, 1, 0, 1, 1, 1, 1), [-0.4,  75.0,  2.7, 31.4]],
+        [(1, 1, 0, 1, 0, 0, 1), [-0.9, -13.3,  1.5, 37.4]],
+        [(1, 1, 0, 2, 0, 1, 1), [41.8,   0.1,  2.5, 45.7]],
+        [(1, 1, 0, 2, 0, 0, 1), [30.6,  -0.4,  2.0, 33.1]],
+        [(1, 1, 0, 2, 1, 1, 1), [ 1.4,  12.9,  4.7, 43.1]],
+        [(1, 1, 0, 2, 1, 0, 1), [ 3.4,   3.5,  1.9, 54.2]],
+    ]],
+
+    [136, [
+        [(3, 1, 8, 13, 3, 0, 1),  [26.9, 4.8, 5.2, 45.4]],
+    ]],
+
+    [146, [
+        [(3, 1, 18, 13, 3, 0, 1), [ 4.4, -26.5, 23.9, 51.2]],
+        [(3, 1, 18, 15, 3, 0, 1), [-0.1, -75.0,  3.7, 51.0]],
+        [(3, 1, 18,  8, 2, 0, 1), [-0.1,  75.0,  4.2, 41.7]],
+        [(3, 1, 18,  8, 2, 1, 1), [ 3.5, -11.9,  2.6, 44.7]],
+        [(3, 1, 18,  9, 1, 0, 1), [ 0.8, -17.6,  1.8, 49.2]],
+        [(3, 1, 18,  9, 1, 1, 1), [ 0.1, -75.0,  3.4, 48.4]],
+        [(2, 1, 18, 11, 0, 0, 1), [ 8.7,   0.4,  2.7, 50.2]],
+        [(2, 1, 18, 11, 0, 1, 1), [ 6.3,   1.9,  1.6, 48.6]],
+        [(2, 1, 18, 10, 1, 0, 1), [53.3,   1.3,  3.8, 38.4]],
+        [(2, 1, 18, 10, 1, 1, 1), [64.1,   1.0,  3.5, 36.9]],
+        [(2, 1, 18, 12, 0, 0, 1), [-0.2, -75.0,  2.8, 38.1]],
+        [(2, 1, 18, 12, 0, 1, 1), [ 0.5, -32.7,  1.9, 40.3]],
+        [(3, 1, 18, 10, 3, 0, 1), [ 5.4,   7.7,  8.2, 57.0]],
+        [(3, 1, 18, 11, 3, 0, 1), [48.9,   0.4,  4.0, 32.3]],
+        [(2, 1, 18, 11, 1, 0, 1), [38.5,   0.5,  1.7, 46.8]],
+        [(2, 1, 18, 11, 1, 1, 1), [48.1,   0.3,  1.6, 46.3]],
+        [(2, 1, 18, 10, 2, 0, 1), [ 0.3,  75.0,  2.0, 34.9]],
+        [(2, 1, 18, 10, 2, 1, 1), [0.1,  -75.0,  3.7, 54.7]],
+    ]],
+
+    # Some MBTS cells.
+    [135, [ [(4,  1, 0, 1, 0, 0, 0), [ 59.1, 2.8, 6.9, 56.2]] ]],
+    [181, [ [(4,  1, 6, 1, 0, 0, 0), [ 56.4, 1.2, 2.9, 39.9]] ]],
+    [182, [ [(4,  1, 6, 0, 0, 0, 0), [ 44.9, 0.5, 1.4, 42.1]] ]],
+    [231, [ [(4, -1, 3, 0, 0, 0, 0), [107.9, 1.7, 7.8, 47.8]] ]],
+
+    # Some E4 cells.
+    [220, [ [(4, -1, 0, 2, 0, 0, 0), [  2.3,   3.2, 2.5, 44.4]] ]],
+    [223, [ [(4, -1, 1, 2, 0, 0, 0), [  3.1,  -5.3, 2.4, 44.4]] ]],
+    [225, [ [(4, -1, 2, 2, 0, 0, 0), [ -0.4,  27.6, 1.3, 32.5]] ]],
+    [228, [ [(4, -1, 3, 2, 0, 0, 0), [  0.2, -75.0, 2.4, 35.4]] ]],
+
+    # Some disconnected cells.
+    [253, [
+        [4706026383833300992, [ 0, 0, 0, 50000]],
+        [4706027483344928768, [ 0, 0, 0, 50000]] ], ],
+    [255, [
+        [4706157225717006336, [ 0, 0, 0, 80000]],
+        [4706158325228634112, [ 0, 0, 0, 80000]] ], ],
+]
+
+
+# Add an offset to one pedestal value.
+def add_pedestal (offs_addr, offs):
+    out = []
+    for icoll, colldata in hits_0:
+        colldata_out = []
+        for addr, data in colldata:
+            if addr == offs_addr:
+                data = data[:]
+                data[3] += offs
+            colldata_out.append ([addr, data])
+        out.append ([icoll, colldata_out])
+    return out
+
+
+exp_cells_0 = {
+    (1, 1, 0, 1, 0) : [-10.4734, -10.4734, -13.3, -13.3, 1, 1, 130, 138, 1, 1],
+    (1, 1, 0, 1, 1) : [  2.3274,  -4.6548,  22.1,  75.0, 2, 2, 130, 130, 1, 1],
+    (1, 1, 0, 2, 0) : [356.0956, 486.4312,  -0.4,   0.1, 2, 2, 162, 162, 1, 1],
+    (1, 1, 0, 2, 1) : [ 39.5662,  16.2920,   3.5,  12.9, 1, 4, 162, 130, 1, 1],
+
+    (2, 1, 18, 10, 1):[620.25793, 745.93872,  1.3,   1.0, 3, 3, 162, 162, 1, 1],
+    (2, 1, 18, 10, 2):[  3.49113,   1.16371, 75.0, -75.0, 2, 3, 130, 130, 1, 1],
+    (2, 1, 18, 11, 0):[101.24284,  73.31380,  0.4,   1.9, 2, 1, 162, 162, 1, 1],
+    (2, 1, 18, 11, 1):[448.02869, 559.74500,  0.5,   0.3, 1, 1, 162, 162, 1, 1],
+    (2, 1, 18, 12, 0):[ -2.32742,   5.81855,-75.0, -32.7, 2, 1, 130, 130, 1, 1],
+    (3, 1, 18,  8, 2):[ -0.96976,  33.94157, 75.0, -11.9, 4, 2, 130, 130, 1, 1],
+    (3, 1, 18,  9, 1):[  7.75807,   0.96976,-17.6, -75.0, 1, 3, 130, 130, 1, 1],
+    (3, 1, 18, 10, 3):[ 41.89359,   0.0,      7.7,   7.7, 8, 0, 162,   0, 1,-1],
+    (3, 1, 18, 11, 3):[379.36975,   0.0,      0.4,   0.4, 4, 0, 162,   0, 1,-1],
+    (3, 1, 18, 13, 3):[ 34.13552,   0.0,    -26.5, -26.5,23, 0, 130,   0, 1,-1],
+    (3, 1, 18, 15, 3):[ -0.77581,   0.0,    -75.0, -75.0, 3, 0, 130,   0, 1, -1],
+
+    # coll 136
+    (3, 1, 8, 13, 3) : [208.6922, 0.0, 4.8, 4.8, 5, 0, 162, 0, 1, -1],
+}
+
+
+exp_mbts_0 = {
+    (4,  1, 0, 1, 0) : [0.7221, 0.0, 2.8, 2.8, 6, 0, 162, 0, 1, -1],
+    (4,  1, 6, 1, 0) : [0.6891, 0.0, 1.2, 1.2, 2, 0, 162, 0, 1, -1],
+    (4,  1, 6, 0, 0) : [0.5486, 0.0, 0.5, 0.5, 1, 0, 162, 0, 1, -1],
+    (4, -1, 3, 0, 0) : [1.318,  0.0, 1.7, 1.7, 7, 0, 162, 0, 1, -1],
+}
+
+
+exp_e4_0 = {
+    (4, -1, 0, 2, 0) : [17.84357, 0.0,   3.2,   3.2, 2, 0, 130, 0, 1, -1],
+    (4, -1, 1, 2, 0) : [24.05003, 0.0,  -5.3,  -5.3, 2, 0, 130, 0, 1, -1],
+    (4, -1, 2, 2, 0) : [-3.10323, 0.0,  27.6,  27.6, 1, 0, 130, 0, 1, -1],
+    (4, -1, 3, 2, 0) : [1.551615, 0.0, -75.0, -75.0, 2, 0, 130, 0, 1, -1],
+}
+
+
+def exp_merge (base, d):
+    new = base.copy()
+    new.update (d)
+    return new
+
+
+# Underflow.
+hits_1 = add_pedestal ((3, 1, 18, 15, 3, 0, 1), 10000)
+exp_cells_1 = exp_merge (exp_cells_0, {
+    (3, 1, 18, 15, 3) : [-0.7758, 0.0, -75.0, -75.0, 3, 0, 146, 0, 1, -1],
+})
+
+# Overflow.
+hits_2 = add_pedestal ((3, 1, 18, 15, 3, 0, 1), 20000)
+exp_cells_2 = exp_merge (exp_cells_0, {
+    (3, 1, 18, 15, 3) : [-0.7758, 0.0, -75.0, -75.0, 3, 0, 146, 0, 1, -1],
+})
+
+# TileBadChan errors.
+exp_cells_3 = exp_merge (exp_cells_0, {
+    (3, 1, 18,  8, 2) : [ 33.9416, 33.9416, -11.9, -11.9, 2, 2, 138, 130, 1, 1],
+    (2, 1, 18, 11, 0) : [101.2428, 73.3138,   1.9,   1.9, 2, 1,  34, 162, 1, 1],
+    (2, 1, 18, 12, 0) : [ -2.3274, -2.3274, -75.0, -75.0, 2, 2, 130, 138, 1, 1],
+})
+exp_mbts_3 = exp_merge (exp_mbts_0, {
+    (4, 1,  0,  1, 0) : [  0.0,     0.0,   -100.0,-100.0,255,0,  10,   8, 1,-1],
+    (4, 1,  6,  1, 0) : [  0.6891,  0.0,      0.0,   0.0, 2, 0,  34,   0, 1,-1],
+})
+
+# TileBeamInfoProvider errors
+exp_cells_4 = exp_merge (exp_cells_0, {
+    (2, 1, 18, 10, 1):[620.2579,620.2579,  1.3,  1.3,   3,   3, 161, 169, 1, 1],
+    (2, 1, 18, 12, 0):[  0.5,     0.5,     0.0,  0.0, 255, 255,   9,   9, 1, 1],
+    (3, 1, 18,  8, 2):[ 33.9416, 33.9416,-11.9,-11.9,   2,   2, 137, 129, 1, 1],
+    (3, 1, 18, 13, 3):[  0.5,     0.0,     0.0,  0.0, 255,   0,   9,   8, 1,-1],
+    (3, 1, 18, 15, 3):[  0.5,     0.0,     0.0,  0.0, 255,   0,   9,   8, 1,-1],
+})
+
+
+# fakeCrackCells
+exp_cells_5 = exp_merge (exp_cells_0, {
+    (3, 1, 8,  8, 2) : [0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0,  0],
+    (3, 1, 8,  9, 1) : [0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0,  0],
+    (3, 1, 8, 10, 3) : [0.0, 0.0, 0.0, 0.0, 0, 0, 8, 8, 0, -1],
+    (3, 1, 8, 11, 3) : [0.0, 0.0, 0.0, 0.0, 0, 0, 8, 8, 0, -1],
+    (3, 1, 8, 15, 3) : [0.0, 0.0, 0.0, 0.0, 0, 0, 8, 8, 0, -1],
+})
+
+
+def filter_e (base, thresh):
+    out = {}
+    for addr, l in base.items():
+        if l[0] >= thresh or l[1] >= thresh:
+            out[addr] = l
+    return out
+
+# EThreshold
+exp_cells_6 = filter_e (exp_cells_0, 300)
+
+
+
+# corrections
+exp_cells_7 = exp_merge (exp_cells_0, {
+    (1, 1,  0,  2, 0) : [356.1491, 486.4361, -0.4, 0.1, 2, 2, 162, 162, 1, 1],
+    (2, 1, 18, 10, 1) : [621.3283, 746.7004,  1.3, 1.0, 3, 3, 162, 162, 1, 1],
+    (2, 1, 18, 11, 1) : [448.1431, 559.7963,  0.5, 0.3, 1, 1, 162, 162, 1, 1],
+    (3, 1,  8, 13, 3) : [213.6019,   0.0,     4.8, 4.8, 5, 0, 162,   0, 1,-1],
+    (3, 1, 18, 11, 3) : [379.4317,   0.0,     0.4, 0.4, 4, 0, 162,   0, 1,-1],
+})
+exp_mbts_7 = exp_merge (exp_mbts_0, {
+    (4,  1, 0, 1, 0) : [0.7279, 0.0, 2.8, 2.8, 6, 0, 162, 0, 1, -1],
+    (4,  1, 6, 1, 0) : [0.6902, 0.0, 1.2, 1.2, 2, 0, 162, 0, 1, -1],
+    (4, -1, 3, 0, 0) : [1.3223, 0.0, 1.7, 1.7, 7, 0, 162, 0, 1, -1],
+})
+
+
+# noisefilter
+exp_cells_8 = exp_merge (exp_cells_0, {
+    (1, 1, 0, 1, 0) : [-11.3462, -11.3462, -13.3, -13.3, 1, 1, 130, 138, 1, 1],
+    (1, 1, 0, 1, 1) : [  1.4546,  -5.5276,  22.1,  75.0, 2, 2, 130, 130, 1, 1],
+    (1, 1, 0, 2, 0) : [355.2228, 485.5583,  -0.4,   0.1, 2, 2, 162, 162, 1, 1],
+    (1, 1, 0, 2, 1) : [ 39.5662,  15.4192,   3.5,  12.9, 1, 4, 162, 130, 1, 1],
+})
+
+
+# DSP w/corrrections
+exp_cells_10 = exp_merge (exp_cells_7, {
+    (1, 1, 0, 2, 0) : [356.1227, 486.4159, -0.4, 0.1, 2, 2, 162, 162, 1, 1],
+})
+
+
+
+# TileFragHash::TYPE
+class TileFragHash:
+    Beam = 255
+    Default = 0
+    Digitizer = 0
+    OptFilterDsp = 1
+    OptFilterOffline = 2
+    OptFilterDspCompressed = 3
+    ManyAmps = 4
+    MF = 5
+    FitFilter = 6
+    FitFilterCool = 7
+    FlatFilter = 8
+
+
+from AthenaPython.PyAthenaComps import Alg, StatusCode
+class TestAlg (Alg):
+    def __init__ (self, name):
+        Alg.__init__ (self, name)
+        return
+
+    def initialize (self):
+        ROOT.ICaloCellMakerTool
+
+        def gettool (name):
+            tool = ROOT.ToolHandle(ROOT.ICaloCellMakerTool)('TileCellBuilder/' + name)
+            if not tool.retrieve():
+                assert 0
+            return tool
+
+        self.tool1 = gettool ('tool1')
+        self.tool2 = gettool ('tool2')
+        self.tool4 = gettool ('tool4')
+        self.tool5 = gettool ('tool5')
+        self.tool6 = gettool ('tool6')
+        self.tool7 = gettool ('tool7')
+        self.tool8 = gettool ('tool8')
+        self.tool9 = gettool ('tool9')
+        self.tool10 = gettool ('tool10')
+        self.tool11 = gettool ('tool11')
+
+        self.beaminfo4 = ROOT.ToolHandle(ROOT.TileBeamInfoProvider)('TileBeamInfoProvider/beaminfo4')
+        if not self.beaminfo4.retrieve():
+            return StatusCode.Failure
+        return StatusCode.Success
+
+
+    def finalize (self):
+        self.check_bad_chan_lines()
+        return StatusCode.Success
+
+
+    def execute (self):
+        iev = self.getContext().evt()
+
+        hits = hits_0
+        exp_cells = exp_cells_0
+        exp_mbts = exp_mbts_0
+        extra_ei_flags = 0
+        tool = self.tool1
+        baddq = {}
+        bsflags = 0x32002000
+        dspbsflags = 0x32002000
+        rctype = TileFragHash.OptFilterOffline
+        dspcolls = set()
+        if iev == 0:
+            # Event 0: nominal
+            pass
+
+        elif iev == 1:
+            # Event 1: Add an underflow.
+            hits = hits_1
+            extra_ei_flags = 0x40
+            exp_cells = exp_cells_1
+
+        elif iev == 2:
+            # Event 2: Add an overflow.
+            hits = hits_2
+            extra_ei_flags = 0x400
+            exp_cells = exp_cells_2
+
+        elif iev == 3:
+            # Event 3: Bad channels
+            tool = self.tool2
+            exp_cells = exp_cells_3
+            exp_mbts = exp_mbts_3
+
+        elif iev == 4:
+            # Event 4: Bad channels from BeamInfoProvider.
+            tool = self.tool4
+            rctype = TileFragHash.OptFilterDsp
+            baddq = {146 : [2, 10]}
+            exp_cells = exp_cells_4
+
+        elif iev == 5:
+            # Event 5: fakeCrackCells
+            tool = self.tool5
+            exp_cells = exp_cells_5
+
+        elif iev == 6:
+            # Event 6: Threshold.
+            tool = self.tool6
+            exp_cells = exp_cells_6
+
+        elif iev == 7:
+            # Event 7: Corrections
+            tool = self.tool7
+            bsflags = 0x32000000
+            exp_cells = exp_cells_7
+            exp_mbts = exp_mbts_7
+
+        elif iev == 8:
+            # Event 8: noise filter
+            tool = self.tool8
+            exp_cells = exp_cells_8
+
+        elif iev == 9:
+            # Event 9: dsp container
+            tool = self.tool9
+            dspcolls.add (0)
+
+        elif iev == 10:
+            # Event 10: dsp container + corrections
+            tool = self.tool10
+            dspcolls.add (0)
+            bsflags = 0x32000000
+            dspbsflags = 0x20000000
+            exp_cells = exp_cells_10
+            exp_mbts = exp_mbts_7
+
+        else:
+            # Event 11: dsp container + noise filter
+            tool = self.tool11
+            dspcolls.add (0)
+            exp_cells = exp_cells_8
+
+
+        self.record_raw_data (hits, rctype, baddq, bsflags, dspbsflags, dspcolls)
+        if iev == 4:
+            self.beaminfo4.setContainers (None,
+                                          self.evtStore['TileRawChannelCnt'],
+                                          None)
+
+        ccc = ROOT.CaloCellContainer()
+        if not tool.process (ccc):
+            return StatusCode.Failure
+
+        self.compare_cells (ccc, exp_cells, rctype)
+        self.compare_cells (self.evtStore['MBTSContainer'], exp_mbts, rctype)
+        self.compare_cells (self.evtStore['E4prContainer'], exp_e4_0, rctype)
+
+        self.check_ei (extra_ei_flags)
+        return StatusCode.Success
+
+
+    @staticmethod
+    def update_qbit (qb, rctype):
+        if qb == 0: return 0
+        return qb&(~7) | rctype
+
+
+    def record_raw_data (self, hits, typ, baddq, bsflags, dspbsflags, dspcolls):
+        idHelper  = self.detStore['CaloCell_ID'].tile_idHelper()
+
+        unit = 0 # TileRawChannelUnit::ADCcounts
+        cont = ROOT.TileRawChannelContainer (False, typ, unit)
+        cont.set_bsflags (bsflags)
+        hashFunc = cont.hashFunc()
+
+        dspcont = None
+        if dspcolls:
+            dspcont = ROOT.TileRawChannelContainer (False, typ, unit)
+            dspcont.set_bsflags (dspbsflags)
+
+        for icoll, colldata in hits:
+            coll = ROOT.TileRawChannelCollection (hashFunc.identifier(icoll))
+
+            mask = 0
+            for chan in baddq.get (icoll, []):
+                mask |= (1<<(chan/3))
+            coll.setFragMemoryPar(mask)
+
+            for addr, data in colldata:
+                if type(addr) == type(()):
+                    adc_id = idHelper.adc_id (*addr)
+                    chan = ROOT.TileRawChannel (adc_id, *data)
+                else:
+                    hwid = ROOT.HWIdentifier (addr)
+                    chan = ROOT.TileRawChannel (hwid, *data)
+                coll.push_back (chan)
+
+            if icoll in dspcolls:
+                thiscont = dspcont
+            else:
+                thiscont = cont
+            thiscont.addCollection (coll, ROOT.IdentifierHash(icoll))
+            ROOT.SetOwnership (coll, False)
+
+        self.evtStore.record (cont, 'TileRawChannelCnt', False)
+        if dspcont:
+            self.evtStore.record (dspcont, 'TileRawChannelCntDsp', False)
+        return
+
+
+    def compare_cells (self, ccc, exp_cells, rctype):
+        exp_cells = exp_cells.copy()
+        idHelper  = self.detStore['CaloCell_ID'].tile_idHelper()
+
+        for c in ccc:
+            lcell = [c.ene1(), c.ene2(), c.time1(), c.time2(),
+                     ord(c.qual1()), ord(c.qual2()),
+                     ord(c.qbit1()), ord(c.qbit2()),
+                     c.gain1(), c.gain2()]
+
+            cid = c.ID()
+            addr = (idHelper.section(cid),
+                    idHelper.side(cid),
+                    idHelper.module(cid),
+                    idHelper.tower(cid),
+                    idHelper.sampling(cid))
+            l = exp_cells.get (addr)
+            if not l:
+                print ('xxx unexpected cell', addr, lcell)
+                assert 0
+                continue
+
+            l = l[:]
+
+            # Low 3 bits of qbit correspond to rctype, unless cell was masked.
+            if l[0] != 0: l[6] = TestAlg.update_qbit (l[6], rctype)
+            if l[1] != 0: l[7] = TestAlg.update_qbit (l[7], rctype)
+
+            if (abs (lcell[0] - l[0]) > 1e-3 or
+                abs (lcell[1] - l[1]) > 1e-3 or
+                abs (lcell[2] - l[2]) > 1e-3 or
+                abs (lcell[3] - l[3]) > 1e-3 or
+                abs (lcell[4] != l[4]) or
+                abs (lcell[5] != l[5]) or
+                abs (lcell[6] != l[6]) or
+                abs (lcell[7] != l[7]) or
+                abs (lcell[8] != l[8]) or
+                abs (lcell[9] != l[9])):
+                print ('xxx cell mismatch: ', addr, lcell, l)
+                assert 0
+            del exp_cells[addr]
+
+        for extra in exp_cells:
+            print ('xxx unfound cell', extra)
+            assert 0
+        return
+
+
+    def check_ei (self, extra_flags):
+        ei = self.evtStore['EventInfo']
+        print ('zzz', hex(ei.eventFlags (ROOT.xAOD.EventInfo.Tile)), ei.errorState (ROOT.xAOD.EventInfo.Tile), hex(0xf0f0005 | extra_flags))
+        assert ei.eventFlags (ROOT.xAOD.EventInfo.Tile) == (0xf0f0005 | extra_flags)
+        assert ei.errorState (ROOT.xAOD.EventInfo.Tile) == ROOT.xAOD.EventInfo.Error
+        return
+
+
+    def make_bad_chan_lines (self, chans):
+        idHelper  = self.detStore['CaloCell_ID'].tile_idHelper()
+        hwidHelper = self.detStore['TileHWID']
+        cabling = ROOT.TileCablingService.getInstance()
+
+        lines = []
+        for addr, data in chans:
+            pmt_id = idHelper.pmt_id (*addr)
+            channel_id = cabling.s2h_channel_id (pmt_id)
+            frag = hwidHelper.frag (channel_id)
+            channel = hwidHelper.channel (channel_id)
+            line = '0x%03x %d 0 %d %d %d' % (frag, channel, data[0], data[1], data[2])
+            lines.append (line)
+
+        return '\n'.join (lines)
+
+
+    def check_bad_chan_lines (self):
+        for name, (chans, lines) in baddefs.items():
+            xlines = self.make_bad_chan_lines (chans)
+            if xlines.strip() != lines.strip():
+                print ('xxx Bad chan lines need updating: ', name)
+                print (xlines)
+        return
+
+
+#########################################################################
+
+
+baddefs = {}
+BAD_LOW  = [1<<1,    0,    0] # AdcDead
+BAD_HIGH = [   0, 1<<1,    0] # AdcDead
+BAD_BOTH = [   0,    0, 1<<1] # NoHV
+BADTIMING = [  0,    0, 1<<9] # BadTiming
+
+# chans: [(sec, side, mod, tow, samp, pmt), [DATA0, DATA1, DATA2]]
+# We'd like to specify cells using offline addressing, but the bad cell
+# file uses online addressing.  We can convert, but that requires
+# idhelpers, etc, that aren't available until after initialization.
+# So we pass in both representations; in finalize(), we'll check
+# that they match and print out the correct bad cell lines
+# if they do not.
+def make_tileBadChanTool (name, chans = [], lines = ''):
+    global ToolSvc
+    from TileConditions.TileCondProxyConf import getTileCondProxy
+    from TileConditions.TileConditionsConf import TileBadChanTool
+    from TileConditions.TileConditionsConf import TileBadChannelsCondAlg
+
+    # File data line format:
+    #  frag channel dummy adcStatus0 adcStatus1 chnStatus
+    #  chnStatus + adcStatusN are given to TileBchDecoder.
+    #  Offline problem masks:
+    #         chn                         adc
+    #   0     GeneralMaskChannel          GeneralMaskAdc
+    #   1     NoPmt                       AdcDead
+    #   2     NoHV                        StuckBit
+    #   3     WrongHV                     DataCorruption
+    #   4     NoLaser                     VeryLargeHfNoise
+    #   5     BadLaser                    NoData
+    #   6     NoCesium                    WrongDspConfig
+    #   7     BadCesium                   LargeHfNoise
+    #   8     NoTiming                    CorrelatedNoise
+    #   9     BadTiming                   LargeLfNoise
+    #  10     TrigGeneralMask             NoCis
+    #  11     TrigNoGain                  BadCis
+    #  12     TrigHalfGain                SevereStuckBit
+    #  13     TrigNoisy                   SevereDataCorruption
+    #  14     Emergency                   IgnoredByDQV
+    #  15     HVReadoutPb
+    #  16     BrokenClearFibre
+    #  17     IgnoreCs
+    #  18     UnstableCs
+    #
+    # 
+    #  Online problem masks:
+    #         chn                         adc
+    #   0     IgnoredInDsp                OnlineGeneralMaskAdc
+    #   1     IgnoredInHlt
+    #   2     DisableForL1
+    #   3     TrigGeneralMask
+    #   4     TrigNoGain
+    #   5     TrigHalfGain
+    #   6     TrigNoisy
+    #   7     OnlineBadTiming
+
+    if not chans:
+        TileBchList = 'TileNoBad.oflBch'
+    else:
+        TileBchList = name + '.bch'
+        f = open (TileBchList, 'w')
+        print ('OBJVERSION 0', file=f)
+        print ('0x000	0	0	0 0 0', file=f)
+        f.write (lines)
+        f.close()
+        baddefs[name] = (chans, lines)
+
+    from AthenaCommon.AlgSequence import AthSequencer
+    condSeq = AthSequencer("AthCondSeq")
+
+    condAlg = TileBadChannelsCondAlg (name + 'Cond',
+                                      TileBadChannels = name + 'CondData',
+                                      OflBchProxy = getTileCondProxy ('FILE', 'Bch', TileBchList, name + '_ofl'),
+                                      OnlBchProxy = getTileCondProxy ('FILE', 'Bch', 'TileNoBad.oflBch', name + '_onl'),
+                                      )
+    condSeq += condAlg
+
+    bct = TileBadChanTool (name,
+                           TileBadChannels = name + 'CondData')
+    ToolSvc += bct
+    return bct
+
+
+bct1 = make_tileBadChanTool ('tilecellbuilder_bct1')
+
+bct2 = make_tileBadChanTool ('tilecellbuilder_bct2',
+                             [[(3, 1, 18,  8, 2, 0), BAD_HIGH],
+                              [(2, 1, 18,  9, 1, 0), BAD_LOW],
+                              [(2, 1, 18, 12, 0, 1), BAD_BOTH],
+                              [(2, 1, 18, 11, 0, 0), BADTIMING],
+                              [(4, 1,  0,  1, 0, 0), BAD_BOTH],
+                              [(4, 1,  6,  1, 0, 0), BADTIMING],
+                              ],
+                             """
+0x312 2 0 0 2 0
+0x312 4 0 2 0 0
+0x312 11 0 0 0 2
+0x312 6 0 0 0 512
+0x307 12 0 0 0 2
+0x335 12 0 0 0 512
+""")
+
+
+
+from TileRecUtils.TileRecUtilsConf import TileCellBuilder, TileBeamInfoProvider, TileRawChannelNoiseFilter
+beaminfo4 = TileBeamInfoProvider ('beaminfo4')
+ToolSvc += beaminfo4
+noisefilter = TileRawChannelNoiseFilter ('noisefilter')
+ToolSvc += noisefilter
+
+def maketool (name, bct, **kw):
+    return TileCellBuilder (name, TileBadChanTool = bct, **kw)
+ToolSvc += maketool ('tool1', bct1)
+ToolSvc += maketool ('tool2', bct2)
+ToolSvc += maketool ('tool4', bct1, BeamInfo = beaminfo4)
+ToolSvc += maketool ('tool5', bct1, fakeCrackCells = True)
+ToolSvc += maketool ('tool6', bct1, EThreshold = 300)
+ToolSvc += maketool ('tool7', bct1, correctAmplitude = True, correctTime = True)
+ToolSvc += maketool ('tool8', bct1, NoiseFilterTools = [noisefilter])
+ToolSvc += maketool ('tool9', bct1, TileDSPRawChannelContainer = 'TileRawChannelCntDsp')
+ToolSvc += maketool ('tool10', bct1, TileDSPRawChannelContainer = 'TileRawChannelCntDsp',
+                     correctTime = True, correctAmplitude = True)
+ToolSvc += maketool ('tool11', bct1, TileDSPRawChannelContainer = 'TileRawChannelCntDsp',
+                     NoiseFilterTools = [noisefilter])
+
+from xAODEventInfoCnv.xAODEventInfoCnvConf import xAODMaker__EventInfoCnvAlg
+topSequence += xAODMaker__EventInfoCnvAlg (DoBeginRun = False)
+
+testalg1 = TestAlg ('testalg1')
+topSequence += testalg1
+
+
+
+def addr(x):
+    cabling=ROOT.TileCablingService.getInstance()
+    hwid = ROOT.HWIdentifier(x)
+    adcid=cabling.h2s_adc_id(hwid)
+    idHelper  = testalg1.detStore['CaloCell_ID'].tile_idHelper()
+    return (idHelper.section(adcid),
+            idHelper.side(adcid),
+            idHelper.module(adcid),
+            idHelper.tower(adcid),
+            idHelper.sampling(adcid),
+            idHelper.pmt(adcid),
+            idHelper.adc(adcid))
+
+def selindex (fname):
+    from array import array
+    cabling=ROOT.TileCablingService.getInstance()
+    lcoll = ''
+    for l in open(fname).readlines():
+        l = l.strip()
+        if l.find('Coll') == 0:
+            lcoll = l
+            continue
+        if l.find('[') < 0: continue
+        iid = int(l.split()[0])
+        hwid = ROOT.HWIdentifier(iid)
+        index=array('i',[0]) 
+        pmt=array('i',[0])
+        cabling.h2s_cell_id_index (hwid, index, pmt)
+        #if index[0] == -3:
+        #    print (iid, addr(iid), lcoll, l)
+        hwidHelper = testalg1.detStore['TileHWID']
+        ros = hwidHelper.ros (hwid)
+        chan = hwidHelper.channel (hwid)
+        if chan == 0 and ros > 2:
+            drawer = hwidHelper.drawer (hwid)
+            idx = (ros - 3) * 64 + drawer
+            print (iid, idx, addr(iid), lcoll, l)
+    return
diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..23fa680eb4eb20ce68f17fd12341e908dfcee98e
--- /dev/null
+++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref
@@ -0,0 +1,611 @@
+Tue Sep 25 19:06:24 CEST 2018
+Preloading tcmalloc_minimal.so
+Py:Athena            INFO including file "AthenaCommon/Preparation.py"
+Py:Athena            INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/8583d770640] -- built on [2018-09-25T1457]
+Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
+Py:Athena            INFO executing ROOT6Setup
+Py:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "TileRecUtils/TileCellBuilder_test.py"
+[?1034hSetGeometryVersion.py obtained major release version 22
+Py:Athena            INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py"
+Py:ConfigurableDb    INFO Read module info for 5501 configurables from 54 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+EventInfoMgtInit: Got release version  Athena-22.0.1
+Py:IOVDbSvc.CondDB    INFO Setting up conditions DB access to instance OFLP200
+Py:Athena            INFO including file "TileConditions/TileConditions_jobOptions.py"
+Py:TileInfoConf.     INFO Adding TileCablingSvc to ServiceMgr
+Py:TileConditions_jobOptions.py    INFO Forcing RUN2 (2014-2017) cabling for run 284500 with geometry ATLAS-R2-2016-01-00-01
+Py:TileConditions_jobOptions.py    INFO Adjusting TileInfo for 7 samples
+Py:TileConditions_jobOptions.py    INFO setting up COOL for TileCal conditions data
+Py:TileInfoConf.     INFO Changing default TileBadChanTool configuration to COOL source
+Py:TileInfoConf.     INFO Changing default TileBadChanLegacyTool configuration to COOL source
+Py:TileInfoConf.     INFO Changing default TileCondToolEmscale configuration to COOL source
+Py:TileInfoConf.     INFO Changing default TileCondToolNoiseSample configuration to COOL source
+Py:TileInfoConf.     INFO Changing default TileCondToolTiming configuration to COOL source
+Py:TileConditions_jobOptions.py    INFO Adjusting TileInfo to return cell noise for Opt.Filter without iterations
+Py:Athena            INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v30r3)
+                                          running on lxplus034.cern.ch on Tue Sep 25 19:06:33 2018
+====================================================================================================================================
+ApplicationMgr       INFO Successfully loaded modules : AthenaServices
+ApplicationMgr       INFO Application Manager Configured successfully
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+StatusCodeSvc        INFO initialize
+AthDictLoaderSvc     INFO in initialize...
+AthDictLoaderSvc     INFO acquired Dso-registry
+ClassIDSvc           INFO  getRegistryEntries: read 6946 CLIDRegistry entries for module ALL
+CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
+CoreDumpSvc          INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
+MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
+PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok]
+PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc              INFO Frontier compression level set to 5
+DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus034.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+PoolSvc              INFO Successfully setup replica sorting algorithm
+PoolSvc              INFO Setting up APR FileCatalog and Streams
+PoolSvc           WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables
+PoolSvc           WARNING Unable to locate catalog for apcfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables
+PoolSvc              INFO Resolved path (via ATLAS_POOLCOND_PATH) is /cvmfs/atlas-condb.cern.ch/repo/conditions/poolcond/PoolFileCatalog.xml
+PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
+DbSession            INFO     Open     DbSession    
+Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+IOVDbSvc             INFO Opened read transaction for POOL PersistencySvc
+IOVDbSvc             INFO Only 5 POOL conditions files will be open at once
+IOVDbSvc             INFO Cache alignment will be done in 3 slices
+IOVDbSvc             INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions
+IOVDbSvc             INFO Read from meta data only for folder /TagInfo
+IOVDbSvc             INFO Initialised with 3 connections and 14 folders
+IOVDbSvc             INFO Service IOVDbSvc initialised successfully
+IOVDbSvc             INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found.
+IOVDbSvc             INFO Opening COOL connection for COOLOFL_LAR/OFLP200
+IOVSvc               INFO No IOVSvcTool associated with store "StoreGateSvc"
+IOVSvcTool           INFO IOVRanges will be checked at every Event
+IOVDbSvc             INFO Opening COOL connection for COOLOFL_TILE/OFLP200
+IOVDbSvc             INFO Disconnecting from COOLOFL_LAR/OFLP200
+IOVDbSvc             INFO Disconnecting from COOLOFL_TILE/OFLP200
+IOVDbSvc             INFO Added taginfo remove for /LAR/Align
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/CES
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/CIS/FIT/LIN
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/CIS/FIT/NLN
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/EMS
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/LAS/FIBER
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/LAS/LIN
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/CALIB/LAS/NLN
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/NOISE/SAMPLE
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC
+IOVDbSvc             INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY
+IOVDbSvc             INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC
+IOVDbSvc             INFO Added taginfo remove for /LAR/LArCellPositionShift
+ClassIDSvc           INFO  getRegistryEntries: read 1856 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 22 CLIDRegistry entries for module ALL
+DetDescrCnvSvc       INFO  initializing 
+DetDescrCnvSvc       INFO Found DetectorStore service
+DetDescrCnvSvc       INFO  filling proxies for detector managers 
+DetDescrCnvSvc       INFO  filling address for CaloTTMgr with CLID 117659265 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloMgr with CLID 4548337 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloSuperCellMgr with CLID 241807251 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloIdManager with CLID 125856940 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArIdManager with CLID 79554919 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for IdDict with CLID 2411 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for AtlasID with CLID 164875623 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for PixelID with CLID 2516 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for SCT_ID with CLID 2517 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TRT_ID with CLID 2518 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for SiliconID with CLID 129452393 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArEM_ID with CLID 163583365 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArEM_SuperCell_ID with CLID 99488227 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArHEC_ID with CLID 3870484 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArHEC_SuperCell_ID with CLID 254277678 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArFCAL_ID with CLID 45738051 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArFCAL_SuperCell_ID with CLID 12829437 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArMiniFCAL_ID with CLID 79264204 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArOnlineID with CLID 158698068 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TTOnlineID with CLID 38321944 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArOnline_SuperCellID with CLID 115600394 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArHVLineID with CLID 27863673 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for LArElectrodeID with CLID 80757351 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TileID with CLID 2901 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for Tile_SuperCell_ID with CLID 49557789 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TileHWID with CLID 2902 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TileTBID with CLID 2903 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for MDTIDHELPER with CLID 4170 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CSCIDHELPER with CLID 4171 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for RPCIDHELPER with CLID 4172 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for TGCIDHELPER with CLID 4173 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for STGCIDHELPER with CLID 4174 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for MMIDHELPER with CLID 4175 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloLVL1_ID with CLID 108133391 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloCell_ID with CLID 123500438 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloCell_SuperCell_ID with CLID 128365736 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for CaloDM_ID with CLID 167756483 and storage type 68 to detector store 
+DetDescrCnvSvc       INFO  filling address for ZdcID with CLID 190591643 and storage type 68 to detector store 
+GeoModelSvc::RD...WARNING  Getting PixTBMatComponents with default tag
+GeoModelSvc::RD...WARNING  Getting PixTBMaterials with default tag
+GeoModelSvc::RD...WARNING  Getting InDetMatComponents with default tag
+GeoModelSvc::RD...WARNING  Getting InDetMaterials with default tag
+GeoModelSvc.LAr...   INFO Keys for LAr are ATLAS-R2-2016-01-00-01  ATLAS
+GeoModelSvc.LAr...   INFO Building LAr version LAr-Revised-17-01 while ATLAS version is ATLAS-R2-2016-01-00-01
+GeoModelSvc.LAr...   INFO LAr Geometry Options:
+GeoModelSvc.LAr...   INFO   Sagging           = false
+GeoModelSvc.LAr...   INFO   Barrel            = ON
+GeoModelSvc.LAr...   INFO   Endcap            = ON
+BarrelConstruction   INFO Getting primary numbers for ATLAS, ATLAS-R2-2016-01-00-01
+BarrelConstruction   INFO   Makes detailed absorber sandwich  ? 1 1
+BarrelConstruction   INFO   Use sagging in geometry  ? 0
+============== EMEC Construction ===============
+  multi-layered version of absorbers activated, mlabs == 1
+================================================
+EventPersistenc...   INFO Added successfully Conversion service:DetDescrCnvSvc
+ClassIDSvc           INFO  getRegistryEntries: read 2398 CLIDRegistry entries for module ALL
+CaloIDHelper_ID...   INFO in createObj: creating a TileTBID helper object in the detector store
+IdDictDetDescrCnv    INFO in initialize
+IdDictDetDescrCnv    INFO in createObj: creating a IdDictManager object in the detector store
+IdDictDetDescrCnv    INFO IdDictName:  IdDictParser/ATLAS_IDS.xml
+IdDictDetDescrCnv    INFO Reading InnerDetector    IdDict file InDetIdDictFiles/IdDictInnerDetector_IBL3D25-03.xml
+IdDictDetDescrCnv    INFO Reading LArCalorimeter   IdDict file IdDictParser/IdDictLArCalorimeter_DC3-05-Comm-01.xml
+IdDictDetDescrCnv    INFO Reading TileCalorimeter  IdDict file IdDictParser/IdDictTileCalorimeter.xml
+IdDictDetDescrCnv    INFO Reading Calorimeter      IdDict file IdDictParser/IdDictCalorimeter_L1Onl.xml
+IdDictDetDescrCnv    INFO Reading MuonSpectrometer IdDict file IdDictParser/IdDictMuonSpectrometer_R.03.xml
+IdDictDetDescrCnv    INFO Reading ForwardDetectors IdDict file IdDictParser/IdDictForwardDetectors_2010.xml
+IdDictDetDescrCnv    INFO Found id dicts:
+IdDictDetDescrCnv    INFO Using dictionary tag: null
+IdDictDetDescrCnv    INFO Dictionary ATLAS                version default              DetDescr tag (using default) file 
+IdDictDetDescrCnv    INFO Dictionary Calorimeter          version default              DetDescr tag CaloIdentifier-LVL1-02 file IdDictParser/IdDictCalorimeter_L1Onl.xml
+IdDictDetDescrCnv    INFO Dictionary ForwardDetectors     version default              DetDescr tag ForDetIdentifier-01       file IdDictParser/IdDictForwardDetectors_2010.xml
+IdDictDetDescrCnv    INFO Dictionary InnerDetector        version IBL-DBM              DetDescr tag InDetIdentifier-IBL3D25-02 file InDetIdDictFiles/IdDictInnerDetector_IBL3D25-03.xml
+IdDictDetDescrCnv    INFO Dictionary LArCalorimeter       version fullAtlas            DetDescr tag LArIdentifier-DC3-05-Comm file IdDictParser/IdDictLArCalorimeter_DC3-05-Comm-01.xml
+IdDictDetDescrCnv    INFO Dictionary LArElectrode         version fullAtlas            DetDescr tag (using default) file 
+IdDictDetDescrCnv    INFO Dictionary LArHighVoltage       version fullAtlas            DetDescr tag (using default) file 
+IdDictDetDescrCnv    INFO Dictionary MuonSpectrometer     version R.03                 DetDescr tag MuonIdentifier-08         file IdDictParser/IdDictMuonSpectrometer_R.03.xml
+IdDictDetDescrCnv    INFO Dictionary TileCalorimeter      version fullAtlasAndTestBeam DetDescr tag TileIdentifier-00         file IdDictParser/IdDictTileCalorimeter.xml
+TileTBID             INFO initialize_from_dictionary 
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+EndcapDMConstru...   INFO Start building EC electronics geometry
+============== EMEC Construction ===============
+  multi-layered version of absorbers activated, mlabs == 1
+================================================
+EndcapDMConstru...   INFO Start building EC electronics geometry
+GeoModelSvc          INFO GeoModelSvc.LArDetectorToolNV	 SZ= 22964Kb 	 Time = 0.51S
+GeoModelSvc.Til...   INFO  Entering TileDetectorTool::create()
+TileDddbManager      INFO m_tag = ATLAS-R2-2016-01-00-01
+TileDddbManager      INFO n_tiglob = 5
+TileDddbManager      INFO n_timod = 320
+TileDddbManager      INFO n_cuts = 9
+TileDddbManager      INFO n_saddle = 1
+TileDddbManager      INFO n_tilb = 21
+TileDddbManager      INFO n_tileSwitches = 1
+ClassIDSvc           INFO  getRegistryEntries: read 213 CLIDRegistry entries for module ALL
+CaloIDHelper_ID...   INFO in createObj: creating a TileID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+TileNeighbour        INFO Reading file  /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt
+TileHWIDDetDesc...   INFO in createObj: creating a TileHWID helper object in the detector store
+TileHWID             INFO initialize_from_dictionary 
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+ClassIDSvc           INFO  getRegistryEntries: read 55 CLIDRegistry entries for module ALL
+CaloIDHelper_ID...   INFO in createObj: creating a CaloCell_ID helper object in the detector store
+CaloIDHelper_ID...   INFO in createObj: creating a LArEM_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a LArHEC_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a LArFCAL_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCal2DNeighbors-April2011.txt
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsNext-April2011.txt
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt
+CaloIDHelper_ID...   INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+LArMiniFCAL_ID       INFO  initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+GeoModelSvc.Til...   INFO  U-shape parameter from database is: 1
+GeoModelSvc.Til...   INFO  Glue parameter from database is: 1
+GeoModelSvc.Til...   INFO  Entering TileAtlasFactory::create()
+GeoModelSvc.Til...   INFO  Tile Geometry with Saddle supports, starting from TileCal-CSC-02 xxx
+GeoModelSvc.Til...   INFO  => New BFingerLengthPos 430.5
+GeoModelSvc.Til...   INFO  => New BFingerLengthNeg 420.5
+GeoModelSvc.Til...   INFO  Positioning barrel with translation 0
+GeoModelSvc.Til...   INFO  Positioning positive barrel finger with translation 3035.25
+GeoModelSvc.Til...   INFO  Positioning negative barrel finger with translation -3030.25
+GeoModelSvc.Til...   INFO  Positioning positive ext.barrel with translation 4854.75
+GeoModelSvc.Til...   INFO  Positioning positive ext.barrel finger with translation ztrans= 6338.5
+GeoModelSvc.Til...   INFO  Positioning positive ext.barrel saddle with translation ztrans= 6192.5
+GeoModelSvc.Til...   INFO  Positive ITC envelope parameters: PLUG1  Rmin= 3438.85 Rmax= 4250 dzITC1= 154.5
+GeoModelSvc.Til...   INFO                                    PLUG2  Rmin= 2981 Rmax= 3440 dzITC2= 47.425
+GeoModelSvc.Til...   INFO  Positioning positive ITC with translation 3405
+GeoModelSvc.Til...   INFO  Positioning positive Gap with translation 3552
+GeoModelSvc.Til...   INFO  Positioning positive Crack with translation 3536
+GeoModelSvc.Til...   INFO  Positioning negative ext.barrel with translation ztrans -4854.75
+GeoModelSvc.Til...   INFO  Positioning negative ext.barrel finger with translation ztrans= -6338.5
+GeoModelSvc.Til...   INFO  Positioning negative ext.barrel saddle with translation ztrans= -6192.5
+GeoModelSvc.Til...   INFO  Negative ITC envelope parameters: PLUG1  Rmin= 3438.85 Rmax= 4250 dzITC1= 154.5
+GeoModelSvc.Til...   INFO                                    PLUG2  Rmin= 2981 Rmax= 3440 dzITC2= 47.425
+GeoModelSvc.Til...   INFO  Positioning negative ITC with translation -3405
+GeoModelSvc.Til...   INFO  Positioning negative Gap with translation -3552
+GeoModelSvc.Til...   INFO  Positioning negative Crack with translation -3536
+GeoModelSvc.Til...   INFO  Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm
+GeoModelSvc.Til...   INFO  Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm
+GeoModelSvc.Til...   INFO  Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm
+TileDetDescrMan...   INFO Entering create_elements()
+GeoModelSvc          INFO GeoModelSvc.TileDetectorTool	 SZ= 4596Kb 	 Time = 0.2S
+ClassIDSvc           INFO  getRegistryEntries: read 65 CLIDRegistry entries for module ALL
+TileInfoLoader       INFO Initializing....TileInfoLoader
+TileInfoLoader       INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001
+TileInfoLoader       INFO Changing TTL1 calib from 4.1 to 6.9
+TileInfoLoader       INFO Changing TTL1 noise sigma from 2.5 to 2.8
+TileInfoLoader       INFO ATLAS IBL geometry - special sampling fractions for gap/crack scin are allowed
+TileInfoLoader       INFO Special C10 in EB module 39
+TileInfoLoader       INFO Special C10 in EB module 40
+TileInfoLoader       INFO Special C10 in EB module 41
+TileInfoLoader       INFO Special C10 in EB module 42
+TileInfoLoader       INFO Special C10 in EB module 55
+TileInfoLoader       INFO Special C10 in EB module 56
+TileInfoLoader       INFO Special C10 in EB module 57
+TileInfoLoader       INFO Special C10 in EB module 58
+TileInfoLoader       INFO Sampling fraction for normal cells 1/34
+TileInfoLoader       INFO Sampling fraction for special C10 cells 1/45
+TileInfoLoader       INFO Sampling fraction for E1 cells 1/125
+TileInfoLoader       INFO Sampling fraction for E2 cells 1/107
+TileInfoLoader       INFO Sampling fraction for E3 cells 1/97
+TileInfoLoader       INFO Sampling fraction for E4 cells 1/75
+TileInfoLoader       INFO Sampling fraction for E4' cells 1/75
+TileInfoLoader       INFO Reading file  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulsehi_physics.dat
+TileInfoLoader       INFO Reading file  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulselo_physics.dat
+TileInfoLoader       INFO Reading file  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_tower_physics.dat
+TileInfoLoader       INFO Reading file  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muonRcv_physics.dat
+TileInfoLoader       INFO Reading file  /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat
+CaloIDHelper_ID...   INFO in createObj: creating a CaloLVL1_ID helper object in the detector store
+CaloLVL1_ID          INFO initialize_from_dictionary
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+TileCablingSvc       INFO RUN2 ATLAS geometry flag detected for geometry: ATLAS-R2-2016-01-00-01
+TileCablingSvc       INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via jobOptions 
+TileCablingSvc       INFO Setting Cabling type to 4
+TileInfoLoader       INFO Placed TileInfo object in the detector store.
+ToolSvc.TileBad...   INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC"
+IOVSvcTool           INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c8f7700]+7f3afb649a70 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC]
+ToolSvc.TileBad...   INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC"
+IOVSvcTool           INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c8f6c00]+7f3afb649a70 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC]
+ToolSvc.TileBad...   INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status
+IOVSvcTool           INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18f02000]+7f3afb5d83c0 bound to /TILE/ONL01/STATUS/ADC
+IOVSvcTool           INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18f02000]+7f3afb5d83c0 bound to /TILE/OFL02/STATUS/ADC
+AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 318 CLIDRegistry entries for module ALL
+CondInputLoader      INFO Initializing CondInputLoader...
+CondInputLoader      INFO Adding base classes:
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CES' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/LIN' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/NLN' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/EMS' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/FIBER' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/LIN' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/NLN' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/NOISE/SAMPLE' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/STATUS/ADC' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/TIME/CHANNELOFFSET/PHY' )   ->
+  +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/ONL01/STATUS/ADC' )   ->
+CondInputLoader      INFO Will create WriteCondHandle dependencies for the following DataObjects:
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CES' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/LIN' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/NLN' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/EMS' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/FIBER' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/LIN' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/CALIB/LAS/NLN' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/NOISE/SAMPLE' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/STATUS/ADC' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/OFL02/TIME/CHANNELOFFSET/PHY' ) 
+    +  ( 'CondAttrListCollection' , 'ConditionStore+/TILE/ONL01/STATUS/ADC' ) 
+TileBadChannels...   INFO Creating TileCondProxyCool(TileBadChannelsCondAlg.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC"
+TileBadChannels...   INFO Creating TileCondProxyCool(TileBadChannelsCondAlg.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC"
+TileBadChannels...   INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCisLin) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN"
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCisNln) for folder: "/TILE/OFL02/CALIB/CIS/FIT/NLN"
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflLasLin) for folder: "/TILE/OFL02/CALIB/LAS/LIN"
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflLasNln) for folder: "/TILE/OFL02/CALIB/LAS/NLN"
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflLasFib) for folder: "/TILE/OFL02/CALIB/LAS/FIBER"
+TileEMScaleCondAlg   INFO ProxyOflLasFib is set up and can be used
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES"
+TileEMScaleCond...   INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS"
+TileEMScaleCondAlg   INFO Loading of online calibration constants is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid
+TileSampleNoise...   INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE"
+TileTimingCondA...   INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY"
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-opt/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch"
+tilecellbuilder...   INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status
+ClassIDSvc           INFO  getRegistryEntries: read 504 CLIDRegistry entries for module ALL
+xAODMaker::Even...   INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
+xAODMaker::Even...   INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
+xAODMaker::Even...WARNING Beam conditions service not available
+xAODMaker::Even...WARNING Will not fill beam spot information into xAOD::EventInfo
+xAODMaker::Even...   INFO Luminosity information not available
+xAODMaker::Even...   INFO Will take information from the EventInfo object
+ClassIDSvc           INFO  getRegistryEntries: read 319 CLIDRegistry entries for module ALL
+PyComponentMgr       INFO Initializing PyComponentMgr...
+testalg1             INFO Initializing testalg1...
+ClassIDSvc           INFO  getRegistryEntries: read 4339 CLIDRegistry entries for module ALL
+ToolSvc.tool1        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.TileBea...   INFO in initialize()
+ToolSvc.tool1        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool1        INFO size of temp vector set to 5184
+ToolSvc.tool1        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool1        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool1        INFO TileCellBuilder initialization completed
+ToolSvc.tool2        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool2        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool2        INFO size of temp vector set to 5184
+ToolSvc.tool2        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool2        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool2        INFO TileCellBuilder initialization completed
+ToolSvc.tool4        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.beaminfo4    INFO in initialize()
+ToolSvc.tool4        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool4        INFO size of temp vector set to 5184
+ToolSvc.tool4        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool4        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool4        INFO TileCellBuilder initialization completed
+ToolSvc.tool5        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool5        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool5        INFO size of temp vector set to 5184
+ToolSvc.tool5        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool5        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool5        INFO TileCellBuilder initialization completed
+ToolSvc.tool6        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool6        INFO Ene threshold 300 MeV
+ToolSvc.tool6        INFO max time diff 100000 ns
+ToolSvc.tool6        INFO max time thr  100000 ns
+ToolSvc.tool6        INFO min time thr  -100000 ns
+ToolSvc.tool6        INFO max qual thr  100000
+ToolSvc.tool6        INFO min qual thr  -100000
+ToolSvc.tool6        INFO size of temp vector set to 5184
+ToolSvc.tool6        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool6        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool6        INFO TileCellBuilder initialization completed
+ToolSvc.tool7        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool7        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool7        INFO size of temp vector set to 5184
+ToolSvc.tool7        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool7        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool7        INFO TileCellBuilder initialization completed
+ToolSvc.tool8        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.noisefi...   INFO Initializing...
+ToolSvc.tool8        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool8        INFO size of temp vector set to 5184
+ToolSvc.tool8        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool8        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool8        INFO TileCellBuilder initialization completed
+ToolSvc.tool9        INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool9        INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool9        INFO size of temp vector set to 5184
+ToolSvc.tool9        INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool9        INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool9        INFO TileCellBuilder initialization completed
+ToolSvc.tool10       INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool10       INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool10       INFO size of temp vector set to 5184
+ToolSvc.tool10       INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool10       INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool10       INFO TileCellBuilder initialization completed
+ToolSvc.tool11       INFO Storing MBTS cells in MBTSContainer
+ToolSvc.tool11       INFO none of thresholds set, all RawChannels will be converted to Cells
+ToolSvc.tool11       INFO size of temp vector set to 5184
+ToolSvc.tool11       INFO taking RawChannels from 'TileRawChannelCnt'
+ToolSvc.tool11       INFO Storing E4'  cells in E4prContainer
+ToolSvc.tool11       INFO TileCellBuilder initialization completed
+HistogramPersis...WARNING Histograms saving not required.
+ApplicationMgr       INFO Application Manager Initialized successfully
+ClassIDSvc           INFO  getRegistryEntries: read 281 CLIDRegistry entries for module ALL
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CES'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/LIN'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/NLN'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/EMS'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/LAS/FIBER'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/LAS/LIN'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/LAS/NLN'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/NOISE/SAMPLE'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/STATUS/ADC'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/TIME/CHANNELOFFSET/PHY'
+CondInputLoader      INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/ONL01/STATUS/ADC'
+ApplicationMgr       INFO Application Manager Started successfully
+AthenaEventLoopMgr   INFO   ===>>>  start of run 1    <<<===
+EventPersistenc...   INFO Added successfully Conversion service:AthenaPoolCnvSvc
+EventPersistenc...   INFO Added successfully Conversion service:TagInfoMgr
+ClassIDSvc           INFO  getRegistryEntries: read 109 CLIDRegistry entries for module ALL
+IOVDbSvc             INFO Opening COOL connection for COOLOFL_LAR/OFLP200
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift
+IOVDbSvc             INFO Disconnecting from COOLOFL_LAR/OFLP200
+IOVDbSvc             INFO Opening COOL connection for COOLOFL_TILE/OFLP200
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC
+IOVDbSvc             INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY
+IOVDbSvc             INFO Disconnecting from COOLOFL_TILE/OFLP200
+DbSession            INFO     Open     DbSession    
+Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20
+Domain[ROOT_All]     INFO                           /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root
+RootDatabase.open    INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200
+ToolSvc.TileBad...   INFO ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch: callback has been triggered by: /TILE/ONL01/STATUS/ADC 
+ToolSvc.TileBad...   INFO ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch: callback has been triggered by: /TILE/OFL02/STATUS/ADC 
+CaloMgrDetDescrCnv   INFO in createObj: creating a Calo Detector Manager object in the detector store
+CaloIdMgrDetDes...   INFO in createObj: creating a CaloDescrManager object in the detector store
+ClassIDSvc           INFO  getRegistryEntries: read 193 CLIDRegistry entries for module ALL
+CaloIDHelper_ID...   INFO in createObj: creating a CaloDM_ID helper object in the detector store
+CaloDM_ID            INFO initialize_from_dictionary
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a TTOnlineID helper object in the detector store
+TTOnlineID           INFO initialize_from_dictionary
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a CaloCell_SuperCell_ID helper object in the detector store
+CaloIDHelper_ID...   INFO in createObj: creating a LArEM_SuperCell_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a LArHEC_SuperCell_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIDHelper_ID...   INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt
+LArFCAL_Base_ID      INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt
+CaloIDHelper_ID...   INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+TileNeighbour        INFO Reading file  /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-opt/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt
+AtlasDetectorID      INFO initialize_from_dictionary - OK
+CaloIdMgrDetDes...   INFO  Finished 
+CaloIdMgrDetDes...   INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv 
+Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A
+Domain[ROOT_All]     INFO                           /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root
+RootDatabase.open    INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root File version:52200
+ToolSvc.TileBad...   INFO TileBadChanLegacyTool::recache() has been triggered by: '/TILE/OFL02/STATUS/ADC' '/TILE/ONL01/STATUS/ADC' 
+ToolSvc.TileBad...   INFO Updating TileBchStatus::isBad() definition from DB
+ToolSvc.TileBad...   INFO Updating TileBchStatus::isNoisy() definition from DB
+ToolSvc.TileBad...   INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults
+ToolSvc.TileBad...   INFO No TileBchStatus::isBadTiming() definition found in DB, using defaults
+ToolSvc.TileBad...   INFO TileBchStatus::isBad() is defined by: ADC masked (unspecified); ADC dead; Very large HF noise; No data; Wrong DSP configuration; Severe stuck bit; Severe data corruption; Channel masked (unspecified); No PMT connected; No HV; Wrong HV; 
+ToolSvc.TileBad...   INFO TileBchStatus::isNoisy() is defined by: Large HF noise; Correlated noise; Large LF noise; 
+ToolSvc.TileBad...   INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; <no description available>; 
+ToolSvc.TileBad...   INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; 
+ToolSvc.TileBad...   INFO No drawer trips probabilities found in DB
+xAODMaker::Even...WARNING Algorithm::BeginRun is deprecated. Use Start instead
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #1, run #1 0 events processed so far  <<<===
+TileBadChannels...   INFO Updating TileBchStatus::isBad() definition from DB
+TileBadChannels...   INFO Updating TileBchStatus::isNoisy() definition from DB
+TileBadChannels...   INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults
+TileBadChannels...   INFO No TileBchStatus::isBadTiming() definition found in DB, using defaults
+TileBadChannels...   INFO TileBchStatus::isBad() is defined by: ADC masked (unspecified); ADC dead; Very large HF noise; No data; Wrong DSP configuration; Severe stuck bit; Severe data corruption; Channel masked (unspecified); No PMT connected; No HV; Wrong HV; 
+TileBadChannels...   INFO TileBchStatus::isNoisy() is defined by: Large HF noise; Correlated noise; Large LF noise; 
+TileBadChannels...   INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; <no description available>; 
+TileBadChannels...   INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; 
+TileBadChannels...   INFO No drawer trips probabilities found in DB
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO No TileBchStatus::isBad() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isNoisy() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isBadTiming() definition found in DB, using defaults
+tilecellbuilder...   INFO TileBchStatus::isBad() is defined by: ADC masked (unspecified); ADC dead; Very large HF noise; No data; Wrong DSP configuration; Severe stuck bit; Severe data corruption; Channel masked (unspecified); No PMT connected; No HV; Wrong HV; Online ADC masked (unspecified); 
+tilecellbuilder...   INFO TileBchStatus::isNoisy() is defined by: Large HF noise; Correlated noise; Large LF noise; 
+tilecellbuilder...   INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; <no description available>; 
+tilecellbuilder...   INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; 
+tilecellbuilder...   INFO No drawer trips probabilities found in DB
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-09-24T2056/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch"
+tilecellbuilder...   INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-opt/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch"
+tilecellbuilder...   INFO No TileBchStatus::isBad() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isNoisy() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults
+tilecellbuilder...   INFO No TileBchStatus::isBadTiming() definition found in DB, using defaults
+tilecellbuilder...   INFO TileBchStatus::isBad() is defined by: ADC masked (unspecified); ADC dead; Very large HF noise; No data; Wrong DSP configuration; Severe stuck bit; Severe data corruption; Channel masked (unspecified); No PMT connected; No HV; Wrong HV; Online ADC masked (unspecified); 
+tilecellbuilder...   INFO TileBchStatus::isNoisy() is defined by: Large HF noise; Correlated noise; Large LF noise; 
+tilecellbuilder...   INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; <no description available>; 
+tilecellbuilder...   INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; 
+tilecellbuilder...   INFO No drawer trips probabilities found in DB
+ClassIDSvc           INFO  getRegistryEntries: read 650 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 67 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 8 CLIDRegistry entries for module ALL
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 1 events processed so far  <<<===
+/cvmfs/atlas-co...   INFO Database being retired...
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20
+/cvmfs/atlas-co...   INFO Database being retired...
+Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A
+Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #2, run #1 1 events processed so far  <<<===
+ClassIDSvc           INFO  getRegistryEntries: read 51 CLIDRegistry entries for module ALL
+zzz 0xf0f0045L 2 0xf0f0045
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 2 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #3, run #1 2 events processed so far  <<<===
+zzz 0xf0f0405L 2 0xf0f0405
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 3 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #4, run #1 3 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 4 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #5, run #1 4 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 5 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #6, run #1 5 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 6 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #7, run #1 6 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 7 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #8, run #1 7 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 8 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #9, run #1 8 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 9 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #10, run #1 9 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 10 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #11, run #1 10 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 11 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #12, run #1 11 events processed so far  <<<===
+zzz 0xf0f0005L 2 0xf0f0005
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 12 events processed so far  <<<===
+TileInfoLoader       INFO Handling EndRun incident
+TileInfoLoader       INFO Removed TileInfo object from detector store.
+Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
+ApplicationMgr       INFO Application Manager Stopped successfully
+IncidentProcAlg1     INFO Finalize
+CondInputLoader      INFO Finalizing CondInputLoader...
+testalg1             INFO Finalizing testalg1...
+IncidentProcAlg2     INFO Finalize
+PyComponentMgr       INFO Finalizing PyComponentMgr...
+IdDictDetDescrCnv    INFO in finalize
+IOVDbSvc             INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 ((     0.04 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 ((     0.06 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 ((     0.04 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 ((     0.03 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 ((     0.02 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 ((     0.03 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 ((     0.03 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 ((     0.04 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 ((     0.13 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 ((     0.69 ))s
+IOVDbSvc             INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 ((     0.68 ))s
+IOVDbSvc             INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 ((     0.07 ))s
+IOVDbSvc             INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 ((     0.01 ))s
+IOVDbSvc             INFO Total payload read from COOL: 844581 bytes in ((      1.87 ))s
+IOVDbSvc             INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: ((     0.00 ))s
+IOVDbSvc             INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: ((     0.05 ))s
+IOVDbSvc             INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: ((     1.82 ))s
+TileInfoLoader       INFO TileInfoLoader::finalize()
+AthDictLoaderSvc     INFO in finalize...
+ToolSvc              INFO Removing all tools created by ToolSvc
+ToolSvc.tool11       INFO Finalizing
+ToolSvc.tool10       INFO Finalizing
+ToolSvc.tool9        INFO Finalizing
+ToolSvc.tool8        INFO Finalizing
+ToolSvc.tool7        INFO Finalizing
+ToolSvc.tool6        INFO Finalizing
+ToolSvc.tool5        INFO Finalizing
+ToolSvc.tool4        INFO Finalizing
+ToolSvc.tool2        INFO Finalizing
+ToolSvc.tool1        INFO Finalizing
+ToolSvc.beaminfo4    INFO Finalizing
+ToolSvc.TileBea...   INFO Finalizing
+*****Chrono*****     INFO ****************************************************************************************************
+*****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
+*****Chrono*****     INFO ****************************************************************************************************
+cObjR_ALL            INFO Time User   : Tot=  390 [ms] Ave/Min/Max=  195(+-  185)/   10/  380 [ms] #=  2
+cObj_ALL             INFO Time User   : Tot=  470 [ms] Ave/Min/Max= 31.3(+-  102)/    0/  410 [ms] #= 15
+ChronoStatSvc        INFO Time User   : Tot= 41.8  [s]                                             #=  1
+*****Chrono*****     INFO ****************************************************************************************************
+ChronoStatSvc.f...   INFO  Service finalized successfully 
+ApplicationMgr       INFO Application Manager Finalized successfully
+ApplicationMgr       INFO Application Manager Terminated successfully
+Py:Athena            INFO leaving with code 0: "successful run"
diff --git a/TileCalorimeter/TileRecUtils/src/TileBeamInfoProvider.cxx b/TileCalorimeter/TileRecUtils/src/TileBeamInfoProvider.cxx
index fb1431f2dd4af24cdf3677a85653b63d89e685a4..6d47670062537afc708c97eba837f083afd69979 100644
--- a/TileCalorimeter/TileRecUtils/src/TileBeamInfoProvider.cxx
+++ b/TileCalorimeter/TileRecUtils/src/TileBeamInfoProvider.cxx
@@ -641,7 +641,7 @@ const TileDQstatus * TileBeamInfoProvider::getDQstatus() {
     TileFragHash::TYPE RChType = m_rcCnt->get_type();
     if (RChType != TileFragHash::OptFilterDsp
         && RChType != TileFragHash::OptFilterDspCompressed) {
-      ATH_MSG_INFO("RawChannelContaier didn't come from BS - don't check DQ flags");
+      ATH_MSG_INFO("RawChannelContainer didn't come from BS - don't check DQ flags");
       ATH_MSG_INFO("RChType = " << RChType);
       m_DQstatus.setAllGood();
       m_checkDQ = false;
diff --git a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx
index 4d4761ec962a34ef2bbc1391e7586dcec4c1af44..0fa4c4d5e5aa80d456b37b2346beb90b2bc21d95 100644
--- a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx
+++ b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx
@@ -172,7 +172,7 @@ TileCellBuilder::~TileCellBuilder(){
  * Initializer
  */
 StatusCode TileCellBuilder::initialize() {
-  
+
   // retrieve MBTS and Tile detector manager, TileID helper and TileIfno from det store
   if (m_MBTSContainerKey.key().empty()) {
     m_mbtsMgr = nullptr;
@@ -310,7 +310,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) {
 
   } else {
     
-    ATH_MSG_DEBUG( "Container " << m_rawChannelContainerKey.key() << " with TileRawChannles found ");
+    ATH_MSG_DEBUG( "Container " << m_rawChannelContainerKey.key() << " with TileRawChannels found ");
 
     m_RChType = rawChannelContainer->get_type();
     m_RChUnit = rawChannelContainer->get_unit();
@@ -402,7 +402,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) {
           dspTimeCut = 63.9375; // 64-1/16 ns is hard limit in DSP
           dspCorrectAmplitude = ((dspFlags & 0x3000000) == 0);
           dspCorrectTime = ((dspFlags & 0x3000000) != 0);
-        } else { // dsp container contains resluts of offline reco
+        } else { // dsp container contains results of offline reco
           dspTimeCut = ((dspFlags >> 27) & 1) ? 100.0 : 75.0; // 100 or 75 ns is the limit for 9 or 7 samples
         }
 
@@ -1140,7 +1140,7 @@ void TileCellBuilder::build(const ITERATOR & begin, const ITERATOR & end, COLLEC
 
     if (index == -3) { // E4' cells
 
-      if (m_E4prCells) { // do something with them only if contaier existst
+      if (m_E4prCells) { // do something with them only if container exists
         ++nE4pr;
 
         // convert ADC counts to MeV. like for normal cells
diff --git a/TileCalorimeter/TileRecUtils/src/TileCellBuilderFromHit.cxx b/TileCalorimeter/TileRecUtils/src/TileCellBuilderFromHit.cxx
index 0a4eff3f873af35c1befe49be216db6530a65274..70ddb67e9dfbf160c22f92925456bdd7eaf59cfc 100644
--- a/TileCalorimeter/TileRecUtils/src/TileCellBuilderFromHit.cxx
+++ b/TileCalorimeter/TileRecUtils/src/TileCellBuilderFromHit.cxx
@@ -370,7 +370,7 @@ StatusCode TileCellBuilderFromHit::process(CaloCellContainer * theCellContainer)
     flag |= fl << (p - 1);
   }
 
-  // number of cosecutively masked modules (if it's > 15 we have error already set)
+  // number of consecutively masked modules (if it's > 15 we have error already set)
   flag |= (std::min(15, drConsecMaxMax) << 16);
 
   if (drConsecMaxMax > 1 && error < xAOD::EventInfo::Warning) {
diff --git a/TileCalorimeter/TileRecUtils/test/TileCellBuilder_test.sh b/TileCalorimeter/TileRecUtils/test/TileCellBuilder_test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..04fd6c3842f085edb2fa1225c00b1d28c48259de
--- /dev/null
+++ b/TileCalorimeter/TileRecUtils/test/TileCellBuilder_test.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+#
+# Script running the TileCellBuilder_test.py test with CTest.
+#
+
+# Run the job:
+athena.py TileRecUtils/TileCellBuilder_test.py