diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileBchTools.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileBchTools.py
index 711ca20c2aba01be8152f2066e824ac30ccd8733..41e4e94074f06137f925e0f1954073cdc7638a8a 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileBchTools.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileBchTools.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 # TileBchTools.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-12-17
 #
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibDefaultWriter.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibDefaultWriter.py
index 140a2a1fdcfc986723f6059316a7a24e5668222e..fd953a16134381b91d1ec7c7f39b94be1bfb65b2 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibDefaultWriter.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibDefaultWriter.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 # TileCalibDefaultWriter.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-23
 # modified Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-07-09
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibLogger.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibLogger.py
index fee7f8dc97214c319c41790d72803f820cc721b5..b75e68f2565bc04a13c6da428e52908376c2b45a 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibLogger.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibLogger.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 # TileCalibLogger.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-29
 
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibTools.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibTools.py
index cdc42f4be124467b4efe371645afbfbe78b27a53..2a1a4099680fc4eccd8d99e39c6c5b007bc3c676 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibTools.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCalibTools.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 # TileCalibTools.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-23
 # Carlos Solans <carlos.solans@cern.ch>, 2012-10-19
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCellTools.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCellTools.py
index 33351942577334f971da27a5c8511a83cbb5b1ec..723f4874fcc93f6ba014e9a6d84678c114231feb 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCellTools.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCellTools.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
 import bisect
 
@@ -7,10 +7,11 @@ class TileCellHashMgr():
     This class ised to convert cell hash to cell name
     """
     #____________________________________________________________________
-    def __init__(self, geometry='Default'):
+    def __init__(self, geometry='Default', cabling='RUN2'):
 
         #=== initialize all arrays
         self._geometry=geometry
+        self._cabling=cabling
         if geometry == "UpgradeABC":
             self._cellNames=[
             ["A-1","A-2","A-3","B-1","C-1","A-4","A-5","A-6","A-7","B-2","C-2","A-8","A-9","D-1","A-10","A-11","B-3","C-3","A-12","A-13","A-14","A-15","B-4","C-4",
@@ -108,11 +109,19 @@ class TileCellHashMgr():
             if index==0 and ((part==4 and module==18) or (part==5 and module==15)): index+=8
             if index==0 and (module==14 or module==15 or module==18 or module==19): index+=6
             if index==1 and ((module>=39 and module<=42) or (module>=55 and module<=58)): index+=6
-            if index==2 and (module==7 or module==25 or module==44 or module==53): index+=7
-            if index==2 and (module==8 or module==24 or module==43 or module==54): index+=8
-            if part==4:
-                if index==2 and (module==28 or module==31 or module==35 or module==38): index+=7
-                if index==2 and (module==29 or module==32 or module==34 or module==37): index+=9
+            if index==2 and (self._cabling=='RUN2' or self._cabling=='RUN2a'):
+                if part==4: # E4' in EBC
+                    if module==28 or module==31 or module==35 or module==38: index+=7 # E1m
+                    if module==29 or module==32 or module==34 or module==37: index+=9 # E4'
+                if module==7 or module==25 or module==44 or module==53: index+=7 # E1m
+                if module==8 or module==24 or module==43 or module==54: index+=8 # MBTS
+                if self._cabling=='RUN2a':
+                    if part==5: # EBA
+                        if module==4 or module==21 or module==47 or module==60: index+=7 # E1m
+                        if module==3 or module==20 or module==46 or module==59: index+=8 # MBTS
+                    if part==4: # EBC
+                        if module==4 or module==18 or module==47 or module==60: index+=7 # E1m
+                        if module==3 or module==19 or module==46 or module==59: index+=8 # MBTS
 
         return (modName,self._cellNames[part][index])
 
@@ -131,9 +140,15 @@ class TileCellHashMgr():
             if index==0 and ((part==4 and module==18) or (part==5 and module==15)): index+=8
             if index==0 and (module>=15 and module<=18): index+=6
             if index==1 and ((module>=39 and module<=42) or (module>=55 and module<=58)): index+=6
-            if index==2 and (module==7 or module==8 or module==25 or module==24 or module==44 or module==43 or module==53 or module==54): index+=7
-            if part==4:
-                if index==2 and (module==28 or module==29 or module==31 or module==32 or module==35 or module==34 or module==38 or module==37): index+=7
+            if index==2 and (self._cabling=='RUN2' or self._cabling=='RUN2a'):
+                if part==4: # E4' in EBC
+                    if module==28 or module==29 or module==31 or module==32 or module==35 or module==34 or module==38 or module==37: index+=7 # E1m or E4'
+                if module==7 or module==8 or module==25 or module==24 or module==44 or module==43 or module==53 or module==54: index+=7 # E1m or MBTS
+                if self._cabling=='RUN2a':
+                    if part==5: # EBA
+                        if module==4 or module==3 or module==21 or module==20 or module==47 or module==46 or module==60 or module==59: index+=7 # E1m or MBTS
+                    if part==4: # EBC
+                        if module==4 or module==3 or module==18 or module==19 or module==47 or module==46 or module==60 or module==59: index+=7 # E1m or MBTS
 
         return self._cellNames[part][index]
 
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCoolCommentsReader.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCoolCommentsReader.py
old mode 100755
new mode 100644
index 9d843a9f8af4fefb0b722ad9a47c1ca44d949453..a15935c7dd5cf1d0e11af81b6fdce15ac7048e8d
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCoolCommentsReader.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/TileCoolCommentsReader.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
 """
 Migrated to the TileCalibWeb package
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/__init__.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/__init__.py
index 584a051f0a810f4201e4d4da9244fde702cf8982..087661f9fae04a45259a3dd19c2c8af0cf207c43 100644
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/python/__init__.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/python/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
 # File TileCalibBlobPython/python/__init__.py
 # Author: nils.gollub@cern.ch
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/BchCleanup.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/BchCleanup.py
index 6e77e92267ddb0c007477910e75754c453e67642..588f8653e0dd0e237c605cf07fca8d54855a3763 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/BchCleanup.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/BchCleanup.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # File:    BchCleanup.py
 # Package: TileCalibBlobPython
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/CheckTagAssociation.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/CheckTagAssociation.py
index 4cec58414eb50fc6acb5aa8fb0c8207474c13442..eeef9425f3044115be00d2ee753d19942547611a 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/CheckTagAssociation.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/CheckTagAssociation.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # CheckTagAssociation.py
 # Andrei Artamonov 2012
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/Example_ReadSampleNoise.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/Example_ReadSampleNoise.py
index 57e8af227b8c1619942aef6efc477f4d9ac293ee..08c14496028804c96b361a56f1cbe10739d1449e 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/Example_ReadSampleNoise.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/Example_ReadSampleNoise.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # Example_ReadSampleNoise.py
 # Nils Gollub <nils.gollub@cern.ch>, 2008-06-16
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py
index e5037427b78e3f769483abfbeafd38a9c3349db5..28502519ed6904ed57fda2535b305ee7e8bc3853 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # PlotCalibFromCool.py
 # Using Part of ReadCalibfromCool.py to plot constants
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotPulseshapeFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotPulseshapeFromCool.py
index aa2e1b85ba63780a717461013ef225656181fc67..198156c78db7118e218436a36d5a903e22eabe64 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotPulseshapeFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotPulseshapeFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # PlotPulseshapeFromCool.py
 # Nils Gollub <nils.gollub@cern.ch>, 2008-06-05
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBadBitsFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBadBitsFromCool.py
index e0d480da2c4c5fbe40a2730faab040272ec2ccf0..6b72a53c9c965ecedbc198328450b9dfadea4761 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBadBitsFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBadBitsFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadBadBitsFromCool.py   --schema='COOLOFL_TILE/CONDBR2'  --folder='OFL02' --tag='UPD4'
 # Sanya Solodkov 2011-07-15
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBchFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBchFromCool.py
index f8989191fc4b827b070af17d443124990697c132..32767d403c7eff2aa81863cb3b10a287994e57e7 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBchFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadBchFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadBchFromCool.py  --schema='COOLOFL_TILE/CONDBR2'  --folder='OFL02' --tag='UPD4'
 # Sanya Solodkov 2011-07-15
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCalibFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCalibFromCool.py
index 11b2d15c56ca81c5fc1997cdb137ac0f84d83343..107302eab930d2ca936772c0e681fe97968265dc 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCalibFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCalibFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadCalibFromCool.py
 # Andrei Artamonov 2009-11-03
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCool.py
index fc7b8efdf09afeddfcf94c197d6d6f1715746f16..7e8d7b12d6b93894fc87c5a788b90c9fdbc3dc78 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadFloatFromCaloCool.py
 # Carlos.Solans <Carlos.Solans@cern.ch>
@@ -91,11 +91,6 @@ import cppyy
 from CaloCondBlobAlgs import CaloCondTools, CaloCondLogger
 from TileCalibBlobPython import TileCalibTools
 from TileCalibBlobPython import TileCellTools
-hashMgr=None
-hashMgrDef=TileCellTools.TileCellHashMgr()
-hashMgrA=TileCellTools.TileCellHashMgr("UpgradeA")
-hashMgrBC=TileCellTools.TileCellHashMgr("UpgradeBC")
-hashMgrABC=TileCellTools.TileCellHashMgr("UpgradeABC")
 
 #=== get a logger
 log = CaloCondLogger.getLogger("ReadCellNoise")
@@ -143,6 +138,19 @@ elif schema=='MC': # shortcut for COOLOFL_TILE/OFLP200 or COOLOFL_LAR/OFLP200
         folderPath='/TILE/OFL02/NOISE/CELL'
     if tag=='UPD4': tag='OFLCOND-RUN12-SDR-31' # change default to tag used in MC15
 
+if run<222222 or 'COMP200' in schema:
+    cabling = 'RUN1'
+else:
+    if ('OFLP200' in schema and run>=310000) or run>=343000:
+        cabling = 'RUN2a'
+    else:
+        cabling = 'RUN2'
+hashMgr=None
+hashMgrDef=TileCellTools.TileCellHashMgr(cabling=cabling)
+hashMgrA=TileCellTools.TileCellHashMgr("UpgradeA")
+hashMgrBC=TileCellTools.TileCellHashMgr("UpgradeBC")
+hashMgrABC=TileCellTools.TileCellHashMgr("UpgradeABC")
+
 db = CaloCondTools.openDbConn(schema, "READONLY")
 
 if folderPath.startswith('/TILE') or tag=='UPD1' or tag=='UPD4' or 'COND'in tag:
@@ -213,7 +221,7 @@ if brief or doubl:
   dm=" "
   for i in xrange(indexmax): names += [""]
 else:
-  name1 = ["Noise cell ", "gain ","0.00"]
+  name1 = ["Noise cell ", "gain ","0.00    "]
   names = ["RMS ", "pileup ", "RMS1 ", "RMS2 ", "Ratio "]
   for i in xrange(len(names),indexmax): names += ["c"+str(i)+" "]
   dm="\t"
@@ -224,10 +232,10 @@ for cell in xrange(cellmin,cellmax):
     msg="%s%4d %s%d\t" % ( name1[0], cell, name1[1], gain)
     for index in xrange(indexmin,indexmax):
       v=blobFlt.getData(cell, gain, index)
-      if doubl: msg += "%s%s%s" % (names[index],"{0:<15.10g}".format(v),dm)
+      if doubl: msg += "%s%s%s" % (names[index],"{0:<15.10g}".format(v).ljust(15),dm)
       elif v<5.e-7: msg += "%s%s%s" % (names[index],name1[2],dm)
       elif v<1: msg += "%s%8.6f%s" % (names[index],v,dm)
-      else: msg += "%s%s%s" % (names[index],"{0:<8.7g}".format(v),dm)
+      else: msg += "%s%s%s" % (names[index],"{0:<8.7g}".format(v).ljust(8),dm)
     print msg
 
 #=== close DB
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCoolCompare.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCoolCompare.py
index 778a67ebb38dfff4bc7e1697e8a25ec58703414a..0b9d11f8c10f1806f0db36aeaba2c6b24bb986de 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCoolCompare.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadCellNoiseFromCoolCompare.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadCellNoiseFromCoolCompare.py
 # based on ReadCellNoiseFromCool.py and ReadFromCoolCompare.py
@@ -25,17 +25,19 @@ def usage():
     print "-t2, --tag2=      specify tag2 to use, f.i. UPD1 or UPD4 or tag suffix like 14TeV-N200_dT50-01"
     print "-r2, --run2=      specify 2-nd run number, by default uses latest iov"
     print "-l2, --lumi2=     specify 2-nd lumi block number, default is 0"
-    print "-m,  --maxdiff=        specify an absolute maximal difference to compare constants"
+    print "-m,  --maxdiff=          specify an absolute maximal difference to compare constants"
     print "-m2, --maxdiffpercent=   specify the maximal difference in percents to compare constants"
     print "-n, --channel=  specify cool channel to read (48 by defalt)"
     print "-c, --cell=     specify cell hash (0-5183), default is -1, means all cells"
     print "-g, --gain=     specify gain to print (0-3), default is -1, means all gains"
     print "-i, --index=    specify parameter index (0-4), default is -1, means all parameters"
+    print "-z, --zero=     zero threshold - treat values in DB below this threshold as zeros"
+    print "-w, --wide      wide format - print all values per cell in one line"
     print "-b, --brief     print only numbers without character names"
     print "-d, --double    print values with double precision"
     
-letters = "hs:t:f:r:l:s2:t2:f2:r2:l2:m:m2:n:c:g:i:bd"
-keywords = ["help","schema=","tag=","folder=","run=","lumi=","schema2=","tag2=","folder2=","run2=","lumi2=","maxdiff=","maxdiffpercent=","channel=","cell=","gain=","index=","brief","double"]
+letters = "hs:t:f:r:l:s2:t2:f2:r2:l2:m:m2:n:c:g:i:z:wbd"
+keywords = ["help","schema=","tag=","folder=","run=","lumi=","schema2=","tag2=","folder2=","run2=","lumi2=","maxdiff=","maxdiffpercent=","channel=","cell=","gain=","index=","zero=","wide","brief","double"]
 
 try:
     opts, extraparams = getopt.getopt(sys.argv[1:],letters,keywords)
@@ -63,6 +65,8 @@ gain   = -1
 index  = -1
 brief  = False
 doubl  = False
+multi  = True
+zthr   = 5e-7
 
 for o, a in opts:
     if o in ("-s","--schema"):
@@ -99,6 +103,10 @@ for o, a in opts:
         maxdiff = float(a)
     elif o in ('--maxdiffpercent'):
         maxdiffpercent = float(a)
+    elif o in ("-z","--zero"):
+        zthr = float(a)
+    elif o in ("-w","--wide"):
+        multi = False
     elif o in ("-b","--brief"):
         brief = True
     elif o in ("-d","--double"):
@@ -128,7 +136,6 @@ import cppyy
 from CaloCondBlobAlgs import CaloCondTools, CaloCondLogger
 from TileCalibBlobPython import TileCalibTools
 from TileCalibBlobPython import TileCellTools
-hashMgr=TileCellTools.TileCellHashMgr()
 
 #=== get a logger
 log = CaloCondLogger.getLogger("ReadCellNoise")
@@ -177,6 +184,15 @@ elif schema=='MC': # shortcut for COOLOFL_TILE/OFLP200 or COOLOFL_LAR/OFLP200
         folderPath='/TILE/OFL02/NOISE/CELL'
         if tag=='UPD4': tag='IOVDEP-02' # change default to tag used in DC14
 
+if run<222222 or 'COMP200' in schema:
+    cabling = 'RUN1'
+else:
+    if ('OFLP200' in schema and run>=310000) or run>=343000:
+        cabling = 'RUN2a'
+    else:
+        cabling = 'RUN2'
+hashMgr=TileCellTools.TileCellHashMgr(cabling=cabling)
+
 db = CaloCondTools.openDbConn(schema, "READONLY")
 
 if folderPath.startswith('/TILE') or tag=='UPD1' or tag=='UPD4' or 'COND'in tag:
@@ -298,14 +314,11 @@ log.info("From DB:  ncell: %d ngain %d index nval %d" % (ncell, ngain, nval))
 
 if brief or doubl:
   name1 = ["","","0.0     "]
-  names = []
-
-
+  names = ["S0 ", "Pl ", "S1 ", "S2 ", "Ra "]
   dm=" "
-  for i in xrange(indexmax): names += [""]
 else:
-  name1 = ["Noise cell ", "gain ","0.00"]
-  names = ["RMS ", "pileup ", "RMS1 ", "RMS2 ", "Ratio "]
+  name1 = ["Noise cell ", "gain ","0.00    "]
+  names = ["   RMS ", "pileup ", "  RMS1 ", "  RMS2 ", " Ratio "]
   for i in xrange(len(names),indexmax): names += ["c"+str(i)+" "]
   dm="\t"
 for cell in xrange(cellmin,cellmax):
@@ -313,27 +326,36 @@ for cell in xrange(cellmin,cellmax):
     name1[0] = "%s %6s hash " % hashMgr.getNames(cell) 
   for gain in xrange(gainmin,gainmax):
     msg="%s%4d %s%d\t" % ( name1[0], cell, name1[1], gain)
+    l0=len(msg)
+    if multi: dm="\n"+msg
     for index in xrange(indexmin,indexmax):
       v=blobFlt.getData(cell, gain, index)
       v2=blobFlt2.getData(cell, gain, index)
-      dv12 = abs(v - v2)
-      if v == 0:
-          dv12percent=0
+      dv12 = v - v2
+      if abs(dv12)<zthr:
+          dv12 = 0
+      if v2 == 0:
+          if v==0: dp12=0
+          else:    dp12=100
       else:
-          dv12percent=dv12*100/v
-
-      #if doubl: msg += "%s%s%s" % (names[index],"{0:<15.10g}".format(v),dm)
-      #elif v<5.e-7: msg += "%s%s%s" % (names[index],name1[2],dm)
-      #elif v<1: msg += "%s%8.6f%s" % (names[index],v,dm)
-      #else: msg += "%s%s%s" % (names[index],"{0:<8.7g}".format(v),dm)
-
-      if abs(dv12) > maxdiff and abs(dv12percent) > maxdiffpercent:      
-         if doubl: msg += "%s v1 %s v2 %s diff %s diffpercent %s%s" % (names[index],"{0:<15.10g}".format(v),"{0:<15.10g}".format(v2),"{0:<15.10g}".format(dv12),"{0:<15.10g}".format(dv12percent),dm)
-         elif v<5.e-7: msg += "%s v1 %s v2 %s diff %s diffpercent %s%s" % (names[index],name1[2],"{0:<8.7g}".format(v2),"{0:<8.7g}".format(dv12),"{0:<8.7g}".format(dv12percent),dm)
-         elif v<1: msg += "%s v1 %8.6f v2 %8.6f diff %8.6f diffpercent %8.6f%s" % (names[index],v,v2,dv12,dv12percent,dm)
-         else: msg += "%s v1 %s v2 %s diff %s diffpercent %s%s" % (names[index],"{0:<8.7g}".format(v),"{0:<8.7g}".format(v2),"{0:<8.7g}".format(dv12),"{0:<8.7g}".format(dv12percent),dm)
-
-    print msg
+          dp12=dv12*100/v2
+
+      if abs(dv12) > maxdiff and abs(dp12) > maxdiffpercent:
+         if doubl:
+             s1 = "{0:<14.9g}".format(v)    if    v<0 else "{0:<15.10g}".format(v)
+             s2 = "{0:<14.9g}".format(v2)   if   v2<0 else "{0:<15.10g}".format(v2)
+             s3 = "{0:<14.9g}".format(dv12) if dv12<0 else "{0:<15.10g}".format(dv12)
+             s4 = "{0:<14.9g}".format(dp12) if dp12<0 else "{0:<15.10g}".format(dp12)
+             msg += "%s v1 %s v2 %s diff %s diffpercent %s%s" % (names[index],s1.ljust(15),s2.ljust(15),s3.ljust(15),s4.ljust(15),dm)
+         else:
+             s1 = name1[2] if    abs(v)<zthr else "%8.6f" %    v if    abs(v)<1 else "{0:<8.7g}".format(v).ljust(8)
+             s2 = name1[2] if   abs(v2)<zthr else "%8.6f" %   v2 if   abs(v2)<1 else "{0:<8.7g}".format(v2).ljust(8)
+             s3 = name1[2] if abs(dv12)<zthr else "%8.6f" % dv12 if abs(dv12)<1 else "{0:<8.7g}".format(dv12).ljust(8)
+             s4 = name1[2] if abs(dp12)<zthr else "%8.6f" % dp12 if abs(dp12)<1 else "{0:<8.7g}".format(dp12).ljust(8)
+             msg += "%s v1 %s v2 %s diff %s diffpercent %s%s" % (names[index],s1[:8],s2[:8],s3[:8],s4[:8],dm)
+
+    if len(msg)>l0:
+        print msg[:len(msg)-len(dm)]
 
 #=== close DB
 db.closeDatabase()
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFloatFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFloatFromCool.py
index 2bb32c312f984fa5ec64ee8ccbb32ddb08545b6a..d0ecaf9f28df6389b40fbbf618ee5721bc665dfd 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFloatFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFloatFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadFloatFromCool.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-11-18
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFromCoolCompare.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFromCoolCompare.py
index 1aaa7525781b6d32fecc966ac365f16f632b735a..61a61d6f75616b0e8054953efd135d892d156171 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFromCoolCompare.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadFromCoolCompare.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadFromCoolCompare.py
 # (Based on A. Solodkov's script ReadCsFromCool.py)
@@ -234,7 +234,9 @@ os2 = flt2.getObjSizeByte()/4
 
 if (os <> os2) or (ot <> ot2):
     log.error("Object sizes (%s vs %s) or types (%s vs %s) are different" % (os, os2, ot, ot2))
-    sys.exit()
+    answ=raw_input(' continue anyway? (y/n)')
+    if (answ <> 'y'):
+        sys.exit()
 
 v =[]
 v2=[]
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadLUTFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadLUTFromCool.py
index 37a39d032ddd0173790cb6785c0b57642334cf7c..e5f056511452cbce730e3e47eac8f62c9b86008c 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadLUTFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadLUTFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadLUTFromCool.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2010-03-18
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadNoiseFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadNoiseFromCool.py
index dd88f887eaacbf24e465eef6f5835cca92c4825d..dc41b7d7c950e758f9f81a1e7f6951f230c3fb57 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadNoiseFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadNoiseFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadNoiseFromCool.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-08-05
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadOfcFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadOfcFromCool.py
index 244f0a39e63f529a9334f8485f9d5cdd12527e6f..01a12f6c4df53ade6dc7568ae66409dc6a86eea7 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadOfcFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadOfcFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ReadOfcFromCool.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-07-25
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadTripsProbsFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadTripsProbsFromCool.py
index 663ac732d7ff881da057152b7b56e25ec75c0656..65b337a710bbe1a6dd3359a146d9b744f55e7ed6 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadTripsProbsFromCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/ReadTripsProbsFromCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # ./ReadTripsProbsFromCool.py  --schema='COOLOFL_TILE/OFLP200'  --folder='OFL02' --tag='UPD4'
 
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_Ofl_Onl.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_Ofl_Onl.py
index adfa6a6762175885d8f9f3e5990a799f35f2b709..6e8cc5e720fa5cbcc2daa4e5e4c3b894f671ab4b 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_Ofl_Onl.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_Ofl_Onl.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_Ofl_Onl.py
 # Lukas Pribyl
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_badChannelExample.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_badChannelExample.py
index a51626d9770a3ee261e3f742c2ca3f4161cf0e33..1a8d7c10c03b73552f38ff80267869ed85024540 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_badChannelExample.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_badChannelExample.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_badChannelExample.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-12-19
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeAutoCrFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeAutoCrFromASCII.py
index 6d1a15df96bc7246289b7e2cbb2253f8d9be1b79..baa526e83b3f9a4c5dc2d3db0067315443d6733a 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeAutoCrFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeAutoCrFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writePedFromASCII.py
 # Nils Gollub <nils.gollub@cern.ch>, 2008-03-03
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchFromASCII.py
index e1dc3674de07aecc0e74c7ee7f7960629659b1eb..19c9e2ca7a9d85bc4c3fa0ea386a38336663aa78 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_badChannelExample.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-12-19
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchM7.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchM7.py
index 61d1bb7b11b038c6fa368a3cda8784c3df1754d7..44b46435b656ef0bef2424401fb4af7b305634e2 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchM7.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchM7.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeBchM7.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-05-29
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchOnlM8.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchOnlM8.py
index cbca26471315e89f722e88697d276185451d4d02..7323dbb63b2351a04b7089d98600a7905251f8ca 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchOnlM8.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeBchOnlM8.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeBchOnlM8.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-07-14
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultCs.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultCs.py
index 4226ee450a47f45b8e7caa67bab0af6a512e3868..771b50277e455fd7980b13a85937c860671f396c 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultCs.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultCs.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeDefaults.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-26
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultOnlNoise.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultOnlNoise.py
index 9f8e0c8a467a30706f02b28f652a43223d0f79a3..8f94bc2b235211df0f0ea36b353b38037c28f337 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultOnlNoise.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaultOnlNoise.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeDefaults.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-26
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaults.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaults.py
index 8dd20ddfff721de476045b4a31ab0b34d17cfdaa..d6b5686f418d18d108396a0f9573e5e218980fdd 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaults.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeDefaults.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeDefaults.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-26
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeIntegratorFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeIntegratorFromASCII.py
index 269dde37416ef1ad9acdfbe7f0e6a0c4bd45f701..94842f67a81ec1771bdd71c10aef21186dceff48 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeIntegratorFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeIntegratorFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeIntegratorFromASCII.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2008-12-05
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeMuonReceiverPulseShape.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeMuonReceiverPulseShape.py
index 8b26af2c366103db522eb016a656f5cac7248487..e6fc4939da7c0d5f7b2b844380d2889fde8e65ad 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeMuonReceiverPulseShape.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeMuonReceiverPulseShape.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 from TileCalibBlobPython import TileCalibTools, TileCalibDefaultWriter
 
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeOfc.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeOfc.py
index 48f18d11feda2a21228e2a6dfa2ad239acd3c5e5..b0389f126d160e3acda41bfe374aae6410d67ea3 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeOfc.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeOfc.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeOfc.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-19
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writePedFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writePedFromASCII.py
index 3887f035205caf333ac9d014ea9a93de2ae5fe34..90408a3f5d622549414d44204b4df25b4d33f311 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writePedFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writePedFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writePedFromASCII.py
 # Nils Gollub <nils.gollub@cern.ch>, 2008-03-03
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTileMuIdFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTileMuIdFromASCII.py
index 9b5dc304a92a89b4e07017116285de6681446e6e..c33b29a9f150adb4c28399a8d6253815411a9268 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTileMuIdFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTileMuIdFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeTileMuIdFromASCII.py
 # Lukas Pribyl <lukas.pribyl@cern.ch>, 2009-04-29
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTimingFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTimingFromASCII.py
index 433645fa6a3439dadb40544e71cd889a6f64a94d..81692cdb1426065feb55a9a509f47fc3e95208b5 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTimingFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTimingFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_writeTimingFromASCII.py
 # Nils Gollub <nils.gollub@cern.ch>, 2007-11-26
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTripsProbsFromASCII.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTripsProbsFromASCII.py
index f95ea8723b73cafce3b3020af9c6079e19cac913..e2173b64f11488a7925366ba8d2b305275526153 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTripsProbsFromASCII.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileCalibBlobPython_writeTripsProbsFromASCII.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 import getopt,sys,os,string
  
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeBch.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeBch.py
index 2c402012f4231bce740e9dd71bcb9e31432d9799..d7d411d2780e41f75470a8c2ff0776630700b0d3 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeBch.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeBch.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileSynchronizeBch.py <TAG1> <TAG2> <MASKONLY> <RUN1> <RUN2>
 # sanya.solodkov@cern.ch July 2016
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeOnlBchWithOfl.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeOnlBchWithOfl.py
index 9d406889d43d6bb66d008e1878df56d3fafff137..c35bf7452c2d86c2f5d480da64912f96ad6f2b0b 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeOnlBchWithOfl.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/TileSynchronizeOnlBchWithOfl.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileSynchronizeOnlBchWithOfl.py <TAG> <RUN>
 # lukas.pribyl@cern.ch March 2010
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteBchToCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteBchToCool.py
index bfb3be5a21ae7b1a0899ae9f68efb5e58c07065a..4e8193a972c44a74a64bec86f2884e02a439c162 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteBchToCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteBchToCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # WriteBchToCool.py
 # Alexander Solodkov <Sanya.Solodkov@cern.ch>, 2014-09-09
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCalibToCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCalibToCool.py
index 59205bf6416ecf0a4e6bc9ba6f85b17feb7d5a40..0c378c142387bde3b1219787fe0238f8e3099ff7 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCalibToCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCalibToCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # WriteCalibToCool.py
 # Sanya Solodkov 2014-08-29
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCellNoiseToCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCellNoiseToCool.py
index 2d95f6c92863be8018d4889639f39b686c64ec11..0838e1a49cb4e71aca6eb10ce2b18612f4832121 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCellNoiseToCool.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/WriteCellNoiseToCool.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # File:    WriteCellNoiseToCool.py
 # Purpose: Manual update of cell noise constants from ascii file
@@ -163,8 +163,17 @@ import cppyy
 from CaloCondBlobAlgs import CaloCondTools
 from TileCalibBlobPython import TileCalibTools
 from TileCalibBlobPython import TileCellTools
+if run<0:
+    cabling = 'RUN2a'
+elif run<222222 or 'COMP200' in ischema:
+    cabling = 'RUN1'
+else:
+    if ('OFLP200' in ischema and run>=310000) or run>=343000:
+        cabling = 'RUN2a'
+    else:
+        cabling = 'RUN2'
 hashMgr=None
-hashMgrDef=TileCellTools.TileCellHashMgr()
+hashMgrDef=TileCellTools.TileCellHashMgr(cabling=cabling)
 hashMgrA=TileCellTools.TileCellHashMgr("UpgradeA")
 hashMgrBC=TileCellTools.TileCellHashMgr("UpgradeBC")
 hashMgrABC=TileCellTools.TileCellHashMgr("UpgradeABC")
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_ascii2db.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_ascii2db.py
index 0c4e2996ea4f47a404fa82cf55f32404edb77932..78d3a8540dda1d4bedaaa814e537c39f7e37db85 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_ascii2db.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_ascii2db.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # TileCalibBlobPython_integratorExample
 # Nils Gollub <nils.gollub@cern.ch>, 2008-02-07
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_readDb.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_readDb.py
index 65daa9575423474f26f67cfc7aee6964bf426a74..a0e8e6cf7d2d7a708463f5137b192245e50a1850 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_readDb.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/integrator_readDb.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # integrator_readDb.py
 # Nils Gollub <nils.gollub@cern.ch>, 2008-02-07
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/maskDeadModules.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/maskDeadModules.py
index eeba99e46f8f6f17e08c226c8b138acacc938249..4032668ea9a5072722ca81a71a17d05eb6d81de4 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/maskDeadModules.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/maskDeadModules.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # File:    maskDeadModules.py
 # Purpose: Mask a dead module over a range.  A new IOV gets created in the process.
diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/testcurrent_tag.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/testcurrent_tag.py
index 9ba79b1f0326a4e8474b0c9cd3dcaad1fdcfddf5..3681924bb9e2b086ad8a585008ba670171002af9 100755
--- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/testcurrent_tag.py
+++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/testcurrent_tag.py
@@ -1,6 +1,6 @@
 #!/bin/env python
 
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 #
 # testcurrent_tag.py
 #==================================================