From 832b6e5150631e7a4bb122379d67aacb21f12669 Mon Sep 17 00:00:00 2001
From: Dave Casper <dcasper@uci.edu>
Date: Tue, 3 Aug 2021 02:42:31 +0000
Subject: [PATCH] Test-beam geometry setup

---
 .gitlab-ci.yml                                |   2 +-
 .../data/IdDictCalorimeter_TB00.xml           |  27 +++
 .../FaserCaloSimEvent/src/CaloHitIdHelper.cxx |   4 +-
 .../GeoModelTest/CMakeLists.txt               |   5 +
 .../GeoModelTest/python/TestBeamTestConfig.py |  68 +++++++
 .../GeoModelTest/src/GeoModelTestAlg.cxx      |  20 +-
 .../GeoModel/FaserGeoModel/data/geomDB.sql    | 190 +++++++++++++++++-
 README.md                                     |   2 +
 .../data/IdDictScintillator_TB00.xml          |  27 +++
 Simulation/G4Faser/G4FaserAlg/CMakeLists.txt  |  10 +
 .../G4Faser/G4FaserAlg/test/runG4FaserNu.py   |   6 +-
 .../G4Faser/G4FaserAlg/test/runG4TestBeam.py  | 132 ++++++++++++
 .../data/IdDictInterface_TB00.xml             |  50 +++++
 .../src/TrackerDataDecoderTool.cxx            |   7 +-
 .../src/TrackerDataDecoderTool.h              |   2 +
 .../test/TestBeamClusterFitDbg.py             | 160 +++++++++++++++
 graphics/VTI12/README.md                      |   4 +-
 17 files changed, 692 insertions(+), 24 deletions(-)
 create mode 100644 Calorimeter/CaloDetDescr/CaloIdDictFiles/data/IdDictCalorimeter_TB00.xml
 create mode 100644 Control/CalypsoExample/GeoModelTest/python/TestBeamTestConfig.py
 create mode 100644 Scintillator/ScintDetDescr/ScintIdDictFiles/data/IdDictScintillator_TB00.xml
 create mode 100755 Simulation/G4Faser/G4FaserAlg/test/runG4TestBeam.py
 create mode 100644 Tracker/TrackerDetDescr/TrackerIdDictFiles/data/IdDictInterface_TB00.xml
 create mode 100755 Tracker/TrackerRecAlgs/TrackerClusterFit/test/TestBeamClusterFitDbg.py

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a46a954..0a79f45d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,6 +43,6 @@ test_unittest:
     - set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh; set -e
     - set +e && asetup --input=../../calypso/asetup.faser Athena,22.0.31; set -e 
     - set +e && source `find . -name 'setup.sh'`; set -e
-    - ctest -j12
+    - ctest -j3
   dependencies:
     - build_image
diff --git a/Calorimeter/CaloDetDescr/CaloIdDictFiles/data/IdDictCalorimeter_TB00.xml b/Calorimeter/CaloDetDescr/CaloIdDictFiles/data/IdDictCalorimeter_TB00.xml
new file mode 100644
index 00000000..c932a0c7
--- /dev/null
+++ b/Calorimeter/CaloDetDescr/CaloIdDictFiles/data/IdDictCalorimeter_TB00.xml
@@ -0,0 +1,27 @@
+<IdDictionary name="Calorimeter">
+
+  <field name="part" >
+    <label name="Ecal" value="1" />
+  </field>
+
+  <field name="row">
+    <label name="Bottom"       value="0" /> 
+    <label name="Top"          value="1" />
+  </field>
+
+  <field name="module">
+  <!-- facing downstream (hence "starboard" and "port")
+       x must increase right to left for a right-handed
+       coordinate system -->
+    <label name="Starboard"   value="0" />
+    <label name="Center"      value="1" />
+    <label name="Port"        value="2" />
+  </field>
+
+  <region>
+    <range field="part"       value="Ecal" />
+    <range field="row"        values="Bottom Top" wraparound="FALSE" />
+    <range field="module"     values="Starboard Center Port" wraparound="FALSE" />
+    <range field="pmt"        minvalue="0" maxvalue="0" />
+  </region>
+</IdDictionary>
\ No newline at end of file
diff --git a/Calorimeter/FaserCaloSimEvent/src/CaloHitIdHelper.cxx b/Calorimeter/FaserCaloSimEvent/src/CaloHitIdHelper.cxx
index cdf4d186..eec88553 100644
--- a/Calorimeter/FaserCaloSimEvent/src/CaloHitIdHelper.cxx
+++ b/Calorimeter/FaserCaloSimEvent/src/CaloHitIdHelper.cxx
@@ -48,8 +48,8 @@ void CaloHitIdHelper::Initialize() {
     if (detStore->retrieve(pix, "EcalID").isFailure()) { pix = 0; }
   }
 
-  InitializeField("Row", 0, 1);
-  InitializeField("Module", 0, 1);
+  InitializeField("Row", 0, 2);
+  InitializeField("Module", 0, 2);  // Need three values for test beam
 }
 
 // Station
diff --git a/Control/CalypsoExample/GeoModelTest/CMakeLists.txt b/Control/CalypsoExample/GeoModelTest/CMakeLists.txt
index d42aea9f..5c420501 100644
--- a/Control/CalypsoExample/GeoModelTest/CMakeLists.txt
+++ b/Control/CalypsoExample/GeoModelTest/CMakeLists.txt
@@ -20,6 +20,11 @@ atlas_add_test( GeoModelCheck
                 PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
                 PROPERTIES TIMEOUT 300 )
 
+atlas_add_test( TestBeamGeoCheck
+                SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/python/TestBeamTestConfig.py
+                PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+                PROPERTIES TIMEOUT 300 )
+
 # Install files from the package:
 #atlas_install_headers( GeoModelTest )
 #atlas_install_joboptions( share/*.py )
diff --git a/Control/CalypsoExample/GeoModelTest/python/TestBeamTestConfig.py b/Control/CalypsoExample/GeoModelTest/python/TestBeamTestConfig.py
new file mode 100644
index 00000000..f843b34d
--- /dev/null
+++ b/Control/CalypsoExample/GeoModelTest/python/TestBeamTestConfig.py
@@ -0,0 +1,68 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+#!/usr/bin/env python
+import sys
+from AthenaCommon.Constants import VERBOSE, INFO
+from AthenaConfiguration.ComponentFactory import CompFactory
+
+def GeoModelTestCfg(flags, name="GeoModelTestAlg", **kwargs):
+
+    # Initialize GeoModel
+    from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
+    a = FaserGeometryCfg(flags)
+
+    # Initialize field service
+    from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
+    a.merge(MagneticFieldSvcCfg(flags))
+
+    # Configure the algorithm itself
+    GeoModelTestAlg = CompFactory.GeoModelTestAlg
+    a.addEventAlgo(GeoModelTestAlg(name, FirstSCTStation=0, 
+                                         LastSCTStation=0,
+                                         NumVetoStations=1, 
+                                         NumVetoPlatesPerStation=2,
+                                         NumTriggerStations=0,
+                                         **kwargs))
+
+    return a
+
+if __name__ == "__main__":
+    from AthenaCommon.Logging import log#, logging
+    from AthenaCommon.Configurable import Configurable
+    from CalypsoConfiguration.AllConfigFlags import ConfigFlags
+
+    Configurable.configurableRun3Behavior = True
+    
+# Flags for this job
+    ConfigFlags.Input.isMC = True                                # Needed to bypass autoconfig
+    ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02"             # Always needed; must match FaserVersion
+    ConfigFlags.GeoModel.FaserVersion     = "FASER-TB00"           # Default FASER geometry
+    ConfigFlags.GeoModel.GeoExportFile    = "faserTestBeamGeo.db"        # Writes out a GeoModel file with the full geometry tree (optional, comment out to skip)
+    # ConfigFlags.Detector.EnableVeto     = True
+    # ConfigFlags.Detector.EnableTrigger  = True
+    # ConfigFlags.Detector.EnablePreshower= True
+    # ConfigFlags.Detector.EnableFaserSCT = True
+    # ConfigFlags.Detector.EnableUpstreamDipole = True
+    # ConfigFlags.Detector.EnableCentralDipole = True
+    # ConfigFlags.Detector.EnableDownstreamDipole = True
+    # ConfigFlags.Detector.EnableEcal = True
+    ConfigFlags.lock()
+
+# Configure components
+    from CalypsoConfiguration.MainServicesConfig import MainServicesCfg
+    acc = MainServicesCfg(ConfigFlags)
+
+# Set up algorithm
+    acc.merge(GeoModelTestCfg(ConfigFlags))
+
+# Configure verbosity    
+    msgSvc = acc.getService("MessageSvc")
+    msgSvc.Format = "% F%30W%S%7W%R%T %0W%M"
+    # ConfigFlags.dump()
+    # logging.getLogger('forcomps').setLevel(VERBOSE)
+    acc.foreach_component("*").OutputLevel = VERBOSE
+    acc.foreach_component("*ClassID*").OutputLevel = INFO
+    log.setLevel(VERBOSE)
+    
+# Execute and finish
+    sys.exit(int(acc.run(maxEvents=1).isFailure()))
diff --git a/Control/CalypsoExample/GeoModelTest/src/GeoModelTestAlg.cxx b/Control/CalypsoExample/GeoModelTest/src/GeoModelTestAlg.cxx
index 85bcd7e5..2deb292d 100644
--- a/Control/CalypsoExample/GeoModelTest/src/GeoModelTestAlg.cxx
+++ b/Control/CalypsoExample/GeoModelTest/src/GeoModelTestAlg.cxx
@@ -545,17 +545,17 @@ StatusCode GeoModelTestAlg::testVeto() const
     {
         ATH_MSG_ALWAYS("Retrieved (typed) Veto detector manager with " << vetoMgr->getNumTreeTops() << " treetops directly from DetStore.");
         // Compare numerology with the "right" answers from our properties
-        if (vetoMgr->numerology().numStations() != m_numVetoStations || vetoMgr->getNumTreeTops() != m_numVetoStations)
+        if (vetoMgr->numerology().numStations() != m_numVetoStations)
         {
             ATH_MSG_FATAL("Disagreement in number of veto stations.");
             return StatusCode::FAILURE;
         }
-        if (vetoMgr->numerology().numPlatesPerStation() != m_numVetoPlatesPerStation)
+        if (m_numVetoStations > 0 && vetoMgr->numerology().numPlatesPerStation() != m_numVetoPlatesPerStation)
         {
             ATH_MSG_FATAL("Disagreement in number of plates per veto station.");
             return StatusCode::FAILURE;
         }
-        if (vetoMgr->numerology().numPmtsPerPlate() != m_numVetoPmtsPerPlate)
+        if (m_numVetoStations > 0 && m_numVetoPlatesPerStation > 0 && vetoMgr->numerology().numPmtsPerPlate() != m_numVetoPmtsPerPlate)
         {
             ATH_MSG_FATAL("Disagreement in number of pmts per veto plate.");
             return StatusCode::FAILURE;
@@ -605,7 +605,7 @@ StatusCode GeoModelTestAlg::testVeto() const
                         return StatusCode::FAILURE;
                     }
                 }
-                if (next == nullptr && prev == nullptr)
+                if (next == nullptr && prev == nullptr && m_numVetoPlatesPerStation > 1)
                 {
                     ATH_MSG_FATAL("Veto element " << hash << " has no previous OR next neighbor.");
                     return StatusCode::FAILURE;
@@ -704,12 +704,12 @@ StatusCode GeoModelTestAlg::testTrigger() const
             ATH_MSG_FATAL("Disagreement in number of Trigger stations.");
             return StatusCode::FAILURE;
         }
-        if (triggerMgr->numerology().numPlatesPerStation() != m_numTriggerPlatesPerStation)
+        if (m_numTriggerStations > 0 && triggerMgr->numerology().numPlatesPerStation() != m_numTriggerPlatesPerStation)
         {
             ATH_MSG_FATAL("Disagreement in number of plates per Trigger station.");
             return StatusCode::FAILURE;
         }
-        if (triggerMgr->numerology().numPmtsPerPlate() != m_numTriggerPmtsPerPlate)
+        if (m_numTriggerStations > 0 && m_numTriggerPlatesPerStation > 0 && triggerMgr->numerology().numPmtsPerPlate() != m_numTriggerPmtsPerPlate)
         {
             ATH_MSG_FATAL("Disagreement in number of pmts per Trigger plate.");
             return StatusCode::FAILURE;
@@ -759,7 +759,7 @@ StatusCode GeoModelTestAlg::testTrigger() const
                         return StatusCode::FAILURE;
                     }
                 }
-                if (next == nullptr && prev == nullptr)
+                if (next == nullptr && prev == nullptr && m_numTriggerPlatesPerStation > 1)
                 {
                     ATH_MSG_FATAL("Trigger element " << hash << " has no previous OR next neighbor.");
                     return StatusCode::FAILURE;
@@ -858,12 +858,12 @@ StatusCode GeoModelTestAlg::testPreshower() const
             ATH_MSG_FATAL("Disagreement in number of preshower stations.");
             return StatusCode::FAILURE;
         }
-        if (preshowerMgr->numerology().numPlatesPerStation() != m_numPreshowerPlatesPerStation)
+        if (m_numPreshowerStations > 0 && preshowerMgr->numerology().numPlatesPerStation() != m_numPreshowerPlatesPerStation)
         {
             ATH_MSG_FATAL("Disagreement in number of plates per preshower station.");
             return StatusCode::FAILURE;
         }
-        if (preshowerMgr->numerology().numPmtsPerPlate() != m_numPreshowerPmtsPerPlate)
+        if (m_numPreshowerStations > 0 && m_numPreshowerPlatesPerStation > 0 && preshowerMgr->numerology().numPmtsPerPlate() != m_numPreshowerPmtsPerPlate)
         {
             ATH_MSG_FATAL("Disagreement in number of pmts per preshower plate.");
             return StatusCode::FAILURE;
@@ -913,7 +913,7 @@ StatusCode GeoModelTestAlg::testPreshower() const
                         return StatusCode::FAILURE;
                     }
                 }
-                if (next == nullptr && prev == nullptr)
+                if (next == nullptr && prev == nullptr && m_numPreshowerPlatesPerStation > 1)
                 {
                     ATH_MSG_FATAL("Preshower element " << hash << " has no previous OR next neighbor.");
                     return StatusCode::FAILURE;
diff --git a/DetectorDescription/GeoModel/FaserGeoModel/data/geomDB.sql b/DetectorDescription/GeoModel/FaserGeoModel/data/geomDB.sql
index f3b35ef0..c26edb58 100644
--- a/DetectorDescription/GeoModel/FaserGeoModel/data/geomDB.sql
+++ b/DetectorDescription/GeoModel/FaserGeoModel/data/geomDB.sql
@@ -761,14 +761,18 @@ INSERT INTO "HVS_TAG2NODE" VALUES (0, "FASER-01", 100039, NULL, 0, 0, 1590796800
 INSERT INTO "HVS_TAG2NODE" VALUES (0, "FASER-CR", 107784, NULL, 0, 0, 1598400000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (0, "FASER-02", 107788, NULL, 0, 0, 1619222400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (0, "FASERNU-02", 107804, NULL, 0, 0, 1619308800000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (0, "FASER-TB00", 107834, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (90,   "FaserCommon-00", 100013, NULL, 0, 0, 1549324800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (9000, "Materials-00", 100005, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (9001, "StdMaterials-00", 100006, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (9002, "StdMatComponents-00", 100007, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (9003, "Elements-00", 100008, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (1, "Neutrino-00", 100031, NULL, 0, 0, 1582416000000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (1, "Neutrino-TB00", 107811, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (11,"Emulsion-00", 100034, NULL, 0, 0, 1582416000000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (11,"Emulsion-TB00", 107812, NULL, 0, 0, 1582416000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (110, "EmulsionTopLevel-00", 100035, NULL, 0, 0, 1582416000000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (110, "EmulsionTopLevel-TB00", 107813, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (111, "EmulsionGeneral-00", 107805, NULL, 0, 0, 1619308800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (112, "EmulsionFilm-00", 107806, NULL, 0, 0, 1619308800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (113, "EmulsionPlates-00", 107807, NULL, 0, 0, 1619308800000000000, NULL, 22);
@@ -776,21 +780,26 @@ INSERT INTO "HVS_TAG2NODE" VALUES (114, "EmulsionSwitches-00", 100036, NULL, 0,
 INSERT INTO "HVS_TAG2NODE" VALUES (2, "Scintillator-00", 100001, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (2, "Scintillator-01", 100042, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (2, "Scintillator-02", 107789, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (2, "Scintillator-TB00", 107814, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3, "Tracker-00", 100002, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3, "Tracker-01", 100038, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3, "Tracker-CR", 107783, NULL, 0, 0, 1598400000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3, "Tracker-02", 107790, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (3, "Tracker-TB00", 107815, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (31, "SCT-00", 100026, NULL, 0, 0, 1567987200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (31, "SCT-01", 100037, NULL, 0, 0, 1159079680000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (31, "SCT-CR", 107781, NULL, 0, 0, 1598400000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (31, "SCT-02", 107791, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (31, "SCT-TB00", 107816, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (32, "Dipole-00", 100027, NULL, 0, 0, 1568678400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (32, "Dipole-01", 100041, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (32, "Dipole-02", 107792, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (32, "Dipole-TB00", 107817, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (310, "SctTopLevel-00", 106788, NULL, 0, 0, 1567987200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (310, "SctTopLevel-01", 106790, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (310, "SctTopLevel-CR", 107786, NULL, 0, 0, 1598400000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (310, "SctTopLevel-02", 107793, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (310, "SctTopLevel-TB00", 107818, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (311, "SctBarrelModule-00", 107003, NULL, 0, 0, 1567987200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (312, "SctBarrelSensor-00", 106730, NULL, 0, 0, 1567987200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (313, "SctFaserGeneral-00", 106789, NULL, 0, 0, 1567987200000000000, NULL, 22);
@@ -806,33 +815,42 @@ INSERT INTO "HVS_TAG2NODE" VALUES (3182,"SctFrameShape-00", 100055, NULL, 0, 0,
 INSERT INTO "HVS_TAG2NODE" VALUES (320, "DipoleTopLevel-00", 100029, NULL, 0, 0, 1568678400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (320, "DipoleTopLevel-01", 100040, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (320, "DipoleTopLevel-02", 107794, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (320, "DipoleTopLevel-TB00", 107819, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (321, "DipoleGeneral-00", 100004, NULL, 0, 0, 1568678400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (324, "DipoleSwitches-00", 100028, NULL, 0, 0, 1568678400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (4, "Calorimeter-00", 100003, NULL, 0, 0, 1549238400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (4, "Calorimeter-02", 107795, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (4, "Calorimeter-TB00", 107820, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (41, "Ecal-00", 100056, NULL, 0, 0,    1593907200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (41, "Ecal-02", 107796, NULL, 0, 0,    1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (41, "Ecal-TB00", 107821, NULL, 0, 0,    1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (410, "EcalTopLevel-00", 100058, NULL, 0, 0, 1599350400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (410, "EcalTopLevel-02", 107797, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (410, "EcalTopLevel-TB00", 107822, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (411, "EcalRowGeneral-00", 100059, NULL, 0, 0, 1599350400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (411, "EcalRowGeneral-TB00", 107830, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (414, "EcalSwitches-00", 100057, NULL, 0, 0, 1593907200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (210,  "VetoTopLevel-00", 100009, NULL, 0, 0, 1567123200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (210,  "VetoTopLevel-01", 100046, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (210,  "VetoTopLevel-02", 107798, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (210,  "VetoTopLevel-TB00", 107823, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (211,  "VetoStationGeneral-00", 100010, NULL, 0, 0, 1567123200000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (212,  "VetoPlateGeneral-00", 100025, NULL, 0, 0, 1567209600000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (211,  "VetoStationGeneral-01", 100049, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (212,  "VetoPlateGeneral-01", 100050, NULL, 0, 0, 1590796800000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (211,  "VetoStationGeneral-TB00", 107833, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (215,  "VetoRadiatorGeneral-00", 107810, NULL, 0, 0, 1627776000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (220,  "TriggerTopLevel-00", 110009, NULL, 0, 0, 1581292800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (220,  "TriggerTopLevel-01", 100047, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (220,  "TriggerTopLevel-02", 107799, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (220,  "TriggerTopLevel-TB00", 107824, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (221,  "TriggerStationGeneral-00", 110010, NULL, 0, 0, 1581292800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (221,  "TriggerStationGeneral-01", 100051, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (222,  "TriggerPlateGeneral-00", 110025, NULL, 0, 0, 1581292800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (230,  "PreshowerTopLevel-00", 120009, NULL, 0, 0, 1581292800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (230,  "PreshowerTopLevel-01", 100048, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (230,  "PreshowerTopLevel-02", 107800, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (230,  "PreshowerTopLevel-TB00", 107825, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (231,  "PreshowerStationGeneral-00", 120010, NULL, 0, 0, 1581292800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (231,  "PreshowerStationGeneral-01", 100052, NULL, 0, 0, 1590796800000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (232,  "PreshowerPlateGeneral-00", 120025, NULL, 0, 0, 1581292800000000000, NULL, 22);
@@ -858,45 +876,66 @@ INSERT INTO "HVS_TAG2NODE" VALUES (23, "Preshower-01", 100045, NULL, 0, 0, 15907
 INSERT INTO "HVS_TAG2NODE" VALUES (21, "Veto-02", 107801, NULL, 0, 0, 1619222400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (22, "Trigger-02", 107802, NULL, 0, 0, 1619222400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (23, "Preshower-02", 107803, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (21, "Veto-TB00", 107826, NULL, 0, 0, 1627862400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (22, "Trigger-TB00", 107827, NULL, 0, 0, 1627862400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (23, "Preshower-TB00", 107828, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (1005, "NeutrinoIdentifier-00", 100030, NULL, 0, 0, 1582416000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (2005, "ScintIdentifier-00", 100016, NULL, 0, 0, 1550448000000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (2005, "ScintIdentifier-TB00", 107832, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3005, "TrackerIdentifier-00", 100017, NULL, 0, 0, 1550448000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3005, "TrackerIdentifier-CR", 107785, NULL, 0, 0, 1598400000000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (3005, "TrackerIdentifier-02", 107787, NULL, 0, 0, 1619222400000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (3005, "TrackerIdentifier-TB00", 107829, NULL, 0, 0, 1627862400000000000, NULL, 22);
 INSERT INTO "HVS_TAG2NODE" VALUES (4005, "CaloIdentifier-00", 100018, NULL, 0, 0, 1550448000000000000, NULL, 22);
+INSERT INTO "HVS_TAG2NODE" VALUES (4005, "CaloIdentifier-TB00", 107831, NULL, 0, 0, 1627862400000000000, NULL, 22);
 -- Data for the HVS_LTAG2LTAG table
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107804, 1,    100031);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 1,    107811);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100000, 2,    100001);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100039, 2,    100042);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107784, 2,    100042);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107788, 2,    107789);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 2,    107814);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100000, 3,    100002);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100039, 3,    100038);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107784, 3,    107783);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107788, 3,    107790);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 3,    107815);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100000, 4,    100003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100039, 4,    100003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107784, 4,    100003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107788, 4,    107795);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 4,    107820);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100000, 90,   100013);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100039, 90,   100013);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107788, 90,   100013);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 90,   100013);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100000, 9000,  100005);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   100039, 9000,  100005);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107784, 9000,  100005);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107788, 9000,  100005);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (0,   107834, 9000,  100005);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (9000, 100005, 9001,  100006);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (9000, 100005, 9002,  100007);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (9000, 100005, 9003,  100008);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   100031,  11,  100034);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   107811,  11,  107812);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  100034, 110,  100035);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  100034, 111,  107805);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  100034, 112,  107806);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  100034, 113,  107807);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  100034, 114,  100036);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  107812, 110,  107813);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  107812, 111,  107805);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  107812, 112,  107806);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  107812, 113,  107807);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (11,  107812, 114,  100036);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   100031, 1003, 100032);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   100031, 1004, 100033);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   100031, 1005, 100030);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   107811, 1003, 100032);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   107811, 1004, 100033);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (1,   107811, 1005, 100030);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 21,   100015);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 22,   100019);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 23,   100020);
@@ -906,6 +945,9 @@ INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100042, 23,   100045);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 21,   107801);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 22,   107802);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 23,   107803);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 21,   107826);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 22,   107827);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 23,   107828);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 2003, 100011);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 2004, 100012);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100001, 2005, 100016);
@@ -915,113 +957,152 @@ INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   100042, 2005, 100016);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 2003, 100011);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 2004, 100012);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107789, 2005, 100016);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 2003, 100011);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 2004, 100012);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (2,   107814, 2005, 100016);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100015, 210,  100009);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100043, 210,  100046);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107801, 210,  100046);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107826, 210,  107823);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100015, 211,  100010);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100043, 211,  100049);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107801, 211,  100049);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107826, 211,  100049);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100015, 212,  100025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100043, 212,  100050);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107801, 212,  100050);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107826, 212,  100050);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100015, 214,  100014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  100043, 214,  100014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107801, 214,  100014);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (21,  107826, 214,  100014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100019, 220,  110009);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100044, 220,  100047);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107802, 220,  100047);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107827, 220,  107824);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100019, 221,  110010);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100044, 221,  100051);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107802, 221,  100051);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107827, 221,  100051);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100019, 222,  110025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100044, 222,  110025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107802, 222,  110025);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107827, 222,  110025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100019, 224,  110014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  100044, 224,  110014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107802, 224,  110014);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (22,  107827, 224,  110014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100020, 230,  120009);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100045, 230,  120048);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107803, 230,  120048);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107828, 230,  107825);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100020, 231,  120010);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100045, 231,  100052);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107803, 231,  100052);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107828, 231,  100052);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100020, 232,  120025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100045, 232,  120025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107803, 232,  120025);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107828, 232,  120025);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100020, 234,  120014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  100045, 234,  120014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107803, 234,  120014);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (23,  107828, 234,  120014);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100002, 31,   100026);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100038, 31,   100037);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107783, 31,   107781);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107790, 31,   107791);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107815, 31,   107816);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100002, 32,   100027);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100038, 32,   100041);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107790, 32,   107792);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107815, 32,   107817);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100002, 3003, 100021);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100038, 3003, 100021);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107790, 3003, 100021);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107815, 3003, 100021);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100002, 3004, 100022);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100038, 3004, 100022);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107790, 3004, 100022);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107815, 3004, 100022);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100002, 3005, 100017);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   100038, 3005, 100017);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107781, 3005, 107785);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107790, 3005, 107787);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (3,   107815, 3005, 107829);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 310,  106788);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 310,  106790);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100081, 310,  107786);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 310,  106790);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 310,  107818);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 311,  107003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 311,  107003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 311,  107003);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 311,  107003);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 312,  106730);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 312,  106730);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 312,  106730);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 312,  106730);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 313,  106789);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 313,  106791);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107781, 313,  107780);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 313,  106791);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 313,  106791);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 314,  107782);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 314,  107782);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 314,  107782);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 314,  107782);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 315,  107777);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 315,  107777);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 315,  107777);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 315,  107777);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 316,  107778);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 316,  107778);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 316,  107778);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 316,  107778);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 317,  107779);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 317,  107779);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 317,  107779);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 317,  107779);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100026, 318,  100053);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  100037, 318,  100053);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107791, 318,  100053);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (31,  107816, 318,  100053);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (318, 100053, 3181, 100054);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (318, 100053, 3182, 100055);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100027, 320,  100029);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100041, 320,  100040);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107792, 320,  107794);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107817, 320,  107819);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100027, 321,  100004);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100041, 321,  100004);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107792, 321,  100004);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107817, 321,  100004);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100027, 324,  100028);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  100041, 324,  100028);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107792, 324,  100028);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (32,  107817, 324,  100028);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   100003, 41,   100056);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107795, 41,   107796);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107820, 41,   107821);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   100003, 4003, 100023);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   100003, 4004, 100024);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   100003, 4005, 100018);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107795, 4003, 100023);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107795, 4004, 100024);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107795, 4005, 100018);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107820, 4003, 100023);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107820, 4004, 100024);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (4,   107820, 4005, 100018);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  100056, 410,  100058);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107796, 410,  107797);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107821, 410,  107822);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  100056, 411,  100059);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  100056, 414,  100057);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107796, 411,  100059);
 INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107796, 414,  100057);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107821, 411,  107830);
+INSERT INTO "HVS_LTAG2LTAG" VALUES (41,  107821, 414,  100057);
 -- Data for the HVS_TAGCACHE table
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "FASER",              "FASER-00",                100000);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "FaserCommon",        "FaserCommon-00",          100013);
@@ -1086,6 +1167,7 @@ INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "NeutrinoIdentifier", "NeutrinoId
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "ScintIdentifier",    "ScintIdentifier-00",      100016);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "TrackerIdentifier",  "TrackerIdentifier-00",    100017);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-00", "CaloIdentifier",     "CaloIdentifier-00",       100018);
+--
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "FASER",              "FASER-01",                100039);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "FaserCommon",        "FaserCommon-00",          100013);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "Materials",          "Materials-00",            100005);
@@ -1149,6 +1231,7 @@ INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "NeutrinoIdentifier", "NeutrinoId
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "ScintIdentifier",    "ScintIdentifier-00",      100016);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "TrackerIdentifier",  "TrackerIdentifier-00",    100017);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-01", "CaloIdentifier",     "CaloIdentifier-00",       100018);
+--
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "FASER",              "FASER-CR",                107784);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "FaserCommon",        "FaserCommon-00",          100013);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "Materials",          "Materials-00",            100005);
@@ -1212,7 +1295,7 @@ INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "NeutrinoIdentifier", "NeutrinoId
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "ScintIdentifier",    "ScintIdentifier-00",      100016);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "TrackerIdentifier",  "TrackerIdentifier-CR",    107785);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-CR", "CaloIdentifier",     "CaloIdentifier-00",       100018);
-
+--
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "FASER",              "FASER-02",                107788);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "FaserCommon",        "FaserCommon-00",          100013);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "Materials",          "Materials-00",            100005);
@@ -1272,7 +1355,7 @@ INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "NeutrinoIdentifier", "NeutrinoId
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "ScintIdentifier",    "ScintIdentifier-00",      100016);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "TrackerIdentifier",  "TrackerIdentifier-02",     107787);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-02", "CaloIdentifier",     "CaloIdentifier-00",       100018);
-
+--
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "FASER",              "FASERNU-02",              107804);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "FaserCommon",        "FaserCommon-00",          100013);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "Materials",          "Materials-00",            100005);
@@ -1339,7 +1422,73 @@ INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "NeutrinoIdentifier", "Neutrino
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "ScintIdentifier",    "ScintIdentifier-00",      100016);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "TrackerIdentifier",  "TrackerIdentifier-02",     107787);
 INSERT INTO "HVS_TAGCACHE" VALUES ("FASERNU-02", "CaloIdentifier",     "CaloIdentifier-00",       100018);
-
+--
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "FASER",              "FASER-TB00",              107834);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "FaserCommon",        "FaserCommon-00",          100013);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Materials",          "Materials-00",            100005);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "StdMaterials",       "StdMaterials-00",         100006);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "StdMatComponents",   "StdMatComponents-00",     100007);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Elements",           "Elements-00",             100008);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Neutrino",           "Neutrino-TB00",           107811);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Emulsion",           "Emulsion-TB00",           107812);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EmulsionTopLevel",   "EmulsionTopLevel-TB00",   107813);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EmulsionGeneral",    "EmulsionGeneral-00",      107805);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EmulsionFilm",       "EmulsionFilm-00",         107806);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EmulsionPlates",     "EmulsionPlates-00",       107807);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EmulsionSwitches",   "EmulsionSwitches-00",     100036);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Scintillator",       "Scintillator-TB00",       107814);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Tracker",            "Tracker-TB00",            107815);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SCT",                "SCT-TB00",                107816);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctTopLevel",        "SCTTopLevel-TB00",        107818);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctBrlModule",       "SCTBrlModule-00",         107003);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctBrlSensor",       "SCTBrlSensor-00",         106730);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctFaserGeneral",    "SCTFaserGeneral-01",      106791);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctSwitches",        "SCTSwitches-00",          107782);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SCTMaterials",       "SCTMaterials-00",         107777);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SCTMatComponents",   "SCTMatComponents-00",     107778);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctConditions",      "SctConditions-00",        107779);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctFrame",           "SctFrame-00",             100053);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctFrameGeneral",    "SctFrameGeneral-00",      100054);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "SctFrameShape",      "SctFrameShape-00",        100055);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Dipole",             "Dipole-TB00",             107817);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "DipoleTopLevel",     "DipoleTopLevel-TB00",     107819);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "DipoleGeneral",      "DipoleGeneral-00",        100004);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "DipoleSwitches",     "DipoleSwitches-00",       100028);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Calorimeter",        "Calorimeter-TB00",        107820);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Ecal",               "Ecal-TB00",               107821);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EcalTopLevel",       "EcalTopLevel-TB00",       107822);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EcalRowGeneral",     "EcalRowGeneral-TB00",     107830);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "EcalSwitches",       "EcalSwitches-00",         100057);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "VetoTopLevel",       "VetoTopLevel-TB00",       107823);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "VetoStationGeneral", "VetoStationGeneral-TB00", 107833);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "VetoPlateGeneral",   "VetoPlateGeneral-01",     100050);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "VetoRadiatorGeneral","VetoRadiatorGeneral-00",  107810);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TriggerTopLevel",    "TriggerTopLevel-TB00",    107824);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TriggerStationGeneral", "TriggerStationGeneral-01",   100051);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TriggerPlateGeneral",   "TriggerPlateGeneral-00",     110025);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerTopLevel",     "PreshowerTopLevel-TB00",         107825);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerStationGeneral", "PreshowerStationGeneral-01",   100052);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerPlateGeneral",   "PreshowerPlateGeneral-00",     120025);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerRadiatorGeneral",   "PreshowerRadiatorGeneral-00",     107808);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerAbsorberGeneral",   "PreshowerAbsorberGeneral-00",     107809);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "NeutrinoMaterials",     "NeutrinoMaterials-00",       100032);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "NeutrinoMatComponents", "NeutrinoMatComponents-00",   100033);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "ScintMaterials",     "ScintMaterials-00",       100011);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "ScintMatComponents", "ScintMatComponents-00",   100012);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TrackerMaterials",     "TrackerMaterials-00",     100021);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TrackerMatComponents", "TrackerMatComponents-00", 100022);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "CaloMaterials",     "CaloMaterials-00",         100023);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "CaloMatComponents", "CaloMatComponents-00",     100024);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "VetoSwitches",       "VetoSwitches-00",         100014);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TriggerSwitches",    "TriggerSwitches-00",      110014);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "PreshowerSwitches",  "PreshowerSwitches-00",    120014);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Veto",               "Veto-TB00",                 107826);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Trigger",            "Trigger-TB00",              107827);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "Preshower",          "Preshower-TB00",            107828);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "NeutrinoIdentifier", "NeutrinoIdentifier-00",   100030);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "ScintIdentifier",    "ScintIdentifier-TB00",    107832);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "TrackerIdentifier",  "TrackerIdentifier-TB00",  107829);
+INSERT INTO "HVS_TAGCACHE" VALUES ("FASER-TB00", "CaloIdentifier",     "CaloIdentifier-TB00",     107831);
 -- 
 --
 -- Part 2b: Content (Leaf node) data
@@ -1886,6 +2035,7 @@ INSERT INTO "EMULSIONTOPLEVEL_DATA" VALUES (0, 0.0, 0.0, -2475.72, 0.0, 0.0, 0.0
 INSERT INTO "EMULSIONTOPLEVEL_DATA" VALUES (1, 0.0, 0.0,     0.0, 0.0, 0.0, 0.0, 321, "StationA");
 INSERT INTO "EMULSIONTOPLEVEL_DATA2TAG" VALUES (100035, 0);
 INSERT INTO "EMULSIONTOPLEVEL_DATA2TAG" VALUES (100035, 1);
+INSERT INTO "EMULSIONTOPLEVEL_DATA2TAG" VALUES (107813, 0);
 --
 --
 INSERT INTO "EMULSIONGENERAL_DATA" VALUES (0, 35, 22, -524.275, 525.275);
@@ -1940,6 +2090,8 @@ INSERT INTO "VETOTOPLEVEL_DATA" VALUES (6, 0.0, 0.0, -1694.65, 0.0, 0.0, 0.0, 32
 INSERT INTO "VETOTOPLEVEL_DATA" VALUES (7, 0.0, 0.0, -85.0, 0.0, 0.0, 2.6, 321, "StationA");
 INSERT INTO "VETOTOPLEVEL_DATA" VALUES (8, 0.0, 0.0,  85.0, 0.0, 0.0,-2.6, 321, "StationB");
 INSERT INTO "VETOTOPLEVEL_DATA" VALUES (9, 0.0, 0.0,  0.0, 0.0, 0.0, 0.0, 321, "Radiator");
+INSERT INTO "VETOTOPLEVEL_DATA" VALUES (10, 0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 321, "Veto");
+INSERT INTO "VETOTOPLEVEL_DATA" VALUES (11, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 321, "StationA");
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (100009, 0);
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (100009, 1);
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (100009, 2);
@@ -1950,12 +2102,16 @@ INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107798, 6);
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107798, 7);
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107798, 8);
 INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107798, 9);
+INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107823, 10);
+INSERT INTO "VETOTOPLEVEL_DATA2TAG" VALUES (107823, 11);
 --
 --
 INSERT INTO "VETOSTATIONGENERAL_DATA" VALUES (0, 2, 100.0);
 INSERT INTO "VETOSTATIONGENERAL_DATA" VALUES (1, 2, 20.0);
+INSERT INTO "VETOSTATIONGENERAL_DATA" VALUES (2, 2, 20.0);
 INSERT INTO "VETOSTATIONGENERAL_DATA2TAG" VALUES (100010, 0);
 INSERT INTO "VETOSTATIONGENERAL_DATA2TAG" VALUES (100049, 1);
+INSERT INTO "VETOSTATIONGENERAL_DATA2TAG" VALUES (107833, 2);
 --
 INSERT INTO "VETOPLATEGENERAL_DATA" VALUES (0, 1, 300.0, 300.0, 20.0, "scint::Scintillator");
 INSERT INTO "VETOPLATEGENERAL_DATA" VALUES (1, 1, 300.0, 300.0, 19.5, "scint::Scintillator");
@@ -1970,12 +2126,14 @@ INSERT INTO "TRIGGERTOPLEVEL_DATA" VALUES (0, 0.0, 0.0, 187.0, 0.0, 0.0, 0.0, 32
 INSERT INTO "TRIGGERTOPLEVEL_DATA" VALUES (1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 321, "StationA");
 INSERT INTO "TRIGGERTOPLEVEL_DATA" VALUES (2, 0.0, -5.0, -28.9, 0.0, 0.0, 0.0, 321, "Trigger");
 INSERT INTO "TRIGGERTOPLEVEL_DATA" VALUES (3, 0.0, -5.0, -29.2, 0.0, 0.0, 0.0, 321, "Trigger");
+INSERT INTO "TRIGGERTOPLEVEL_DATA" VALUES (4, 0.0, -5.0, -29.2, 0.0, 0.0, 0.0, 321, "Trigger");
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (110009, 0);
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (110009, 1);
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (100047, 1);
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (100047, 2);
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (107799, 3);
 INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (107799, 1);
+INSERT INTO "TRIGGERTOPLEVEL_DATA2TAG" VALUES (107824, 4);
 --
 --
 INSERT INTO "TRIGGERSTATIONGENERAL_DATA" VALUES (0, 2, 195.0, 11.0);
@@ -1992,12 +2150,16 @@ INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 32
 INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (2, 0.0, 0.0, 2662.7, 0.0, 0.0, 0.0, 321, "Preshower");
 --INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (3, 0.0, 0.0, 2662.35, 0.0, 0.0, 0.0, 321, "Preshower");
 INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (3, 0.0, 0.0, 2618.35, 0.0, 0.0, 0.0, 321, "Preshower");
+INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (4, 0.0, 0.0, 300.0, 0.0, 0.0, 0.0, 321, "Preshower");
+INSERT INTO "PRESHOWERTOPLEVEL_DATA" VALUES (5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 321, "StationA");
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (120009, 0);
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (120009, 1);
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (100048, 1);
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (100048, 2);
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (107800, 1);
 INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (107800, 3);
+INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (107825, 4);
+INSERT INTO "PRESHOWERTOPLEVEL_DATA2TAG" VALUES (107825, 5);
 --
 --
 INSERT INTO "PRESHOWERSTATIONGENERAL_DATA" VALUES (0, 2, 80.0);
@@ -2019,16 +2181,24 @@ INSERT INTO "ECALTOPLEVEL_DATA" VALUES (0, 0.0,   0.0, 3099.2, 0.0, 0.0, 0.0, 32
 INSERT INTO "ECALTOPLEVEL_DATA" VALUES (1, 0.0, -71.6,    0.0, 0.0, 2.8, 0.0, 321, "BottomRow");
 INSERT INTO "ECALTOPLEVEL_DATA" VALUES (2, 0.0,  49.6,    0.0, 0.0, 2.8, 0.0, 321, "TopRow");
 INSERT INTO "ECALTOPLEVEL_DATA" VALUES (3, 0.0,   0.0, 3098.9, 0.0, 0.0, 0.0, 321, "Ecal");
+INSERT INTO "ECALTOPLEVEL_DATA" VALUES (4, 0.0, -71.6,    0.0, 0.0, 0.0, 0.0, 321, "BottomRow");
+INSERT INTO "ECALTOPLEVEL_DATA" VALUES (5, 0.0,  49.6,    0.0, 0.0, 0.0, 0.0, 321, "TopRow");
+INSERT INTO "ECALTOPLEVEL_DATA" VALUES (6, 20.0,  0.0,  800.0, -2.8, 2.8, 0.0, 321, "Ecal");
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (100058, 0);
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (100058, 1);
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (100058, 2);
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107797, 1);
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107797, 2);
 INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107797, 3);
+INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107822, 4);
+INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107822, 5);
+INSERT INTO "ECALTOPLEVEL_DATA2TAG" VALUES (107822, 6);
 --
 --
 INSERT INTO "ECALROWGENERAL_DATA" VALUES (0, 2, 0.0, 2.8);
+INSERT INTO "ECALROWGENERAL_DATA" VALUES (1, 3, 0.0, 0.0);
 INSERT INTO "ECALROWGENERAL_DATA2TAG" VALUES (100059, 0);
+INSERT INTO "ECALROWGENERAL_DATA2TAG" VALUES (107830, 1);
 --
 --
 INSERT INTO "SCINTMATERIALS_DATA" VALUES (0, "Scintillator", 1.032);
@@ -2074,19 +2244,25 @@ INSERT INTO "NEUTRINOIDENTIFIER_DATA2TAG" VALUES (100030, 0);
 --
 --
 INSERT INTO "SCINTIDENTIFIER_DATA" VALUES (0, "Scintillator", "ScintIdDictFiles/IdDictScintillator.xml", "Baseline layout");
+INSERT INTO "SCINTIDENTIFIER_DATA" VALUES (1, "Scintillator", "ScintIdDictFiles/IdDictScintillator_TB00.xml", "2021 Test-beam layout");
 INSERT INTO "SCINTIDENTIFIER_DATA2TAG" VALUES (100016, 0);
+INSERT INTO "SCINTIDENTIFIER_DATA2TAG" VALUES (107832, 1);
 --
 --
 INSERT INTO "TRACKERIDENTIFIER_DATA" VALUES (0, "Tracker", "TrackerIdDictFiles/IdDictTracker.xml", "Baseline layout");
 INSERT INTO "TRACKERIDENTIFIER_DATA" VALUES (1, "Tracker", "TrackerIdDictFiles/IdDictCosmic.xml", "Cosmic ray test stand");
 INSERT INTO "TRACKERIDENTIFIER_DATA" VALUES (2, "Tracker", "TrackerIdDictFiles/IdDictInterface.xml", "Tracker with interface detector");
+INSERT INTO "TRACKERIDENTIFIER_DATA" VALUES (3, "Tracker", "TrackerIdDictFiles/IdDictInterface_TB00.xml", "2021 Test-beam layout");
 INSERT INTO "TRACKERIDENTIFIER_DATA2TAG" VALUES (100017, 0);
 INSERT INTO "TRACKERIDENTIFIER_DATA2TAG" VALUES (107785, 1);
 INSERT INTO "TRACKERIDENTIFIER_DATA2TAG" VALUES (107787, 2);
+INSERT INTO "TRACKERIDENTIFIER_DATA2TAG" VALUES (107829, 3);
 --
 --
 INSERT INTO "CALOIDENTIFIER_DATA" VALUES (0, "Calorimeter", "CaloIdDictFiles/IdDictCalorimeter.xml", "Baseline layout");
+INSERT INTO "CALOIDENTIFIER_DATA" VALUES (1, "Calorimeter", "CaloIdDictFiles/IdDictCalorimeter_TB00.xml", "2021 Test-beam layout");
 INSERT INTO "CALOIDENTIFIER_DATA2TAG" VALUES (100018, 0);
+INSERT INTO "CALOIDENTIFIER_DATA2TAG" VALUES (107831, 1);
 --
 --
 DROP TABLE IF EXISTS "SCTBRLSENSOR_DATA";
@@ -2121,6 +2297,9 @@ INSERT INTO "SCTTOPLEVEL_DATA" VALUES(6,0.0,0.0, 1190.0,0.0,0.0,0.0,312,'Station
 INSERT INTO "SCTTOPLEVEL_DATA" VALUES(7,0.0,0.0, 1237.7075,0.0,0.0,0.0,312,'SCT');
 INSERT INTO "SCTTOPLEVEL_DATA" VALUES(8,0.0,0.0, 1237.4   ,0.0,0.0,0.0,312,'SCT');
 INSERT INTO "SCTTOPLEVEL_DATA" VALUES(9,0.0,0.0,-3097.55  ,0.0,0.0,0.0,312,'Interface');
+INSERT INTO "SCTTOPLEVEL_DATA" VALUES(10,0.0,0.0, 120.0   ,0.0,0.0,0.0,312,'SCT');
+INSERT INTO "SCTTOPLEVEL_DATA" VALUES(11,0.0,0.0, 0.0  ,0.0,0.0,0.0,312,'Interface');
+
 
 
 DROP TABLE IF EXISTS "SCTTOPLEVEL_DATA2TAG";
@@ -2140,6 +2319,8 @@ INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107793,5);
 INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107793,6);
 INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107793,8);
 INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107793,9);
+INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107818,10);
+INSERT INTO "SCTTOPLEVEL_DATA2TAG" VALUES(107818,11);
 --
 --
 DROP TABLE IF EXISTS "SCTFASERGENERAL_DATA";
@@ -2261,7 +2442,7 @@ INSERT INTO "DIPOLETOPLEVEL_DATA" VALUES(6,0.0,0.0,1837.726,0.0,0.0,0.0,312,'Dow
 INSERT INTO "DIPOLETOPLEVEL_DATA" VALUES(7,0.0,0.0,-812.60,0.0,0.0,0.0,312,'UpstreamDipole');
 INSERT INTO "DIPOLETOPLEVEL_DATA" VALUES(8,0.0,0.0, 637.40,0.0,0.0,0.0,312,'CentralDipole');
 INSERT INTO "DIPOLETOPLEVEL_DATA" VALUES(9,0.0,0.0,1837.40,0.0,0.0,0.0,312,'DownstreamDipole');
-
+INSERT INTO "DIPOLETOPLEVEL_DATA" VALUES(10,0.0,0.0, 0.0,0.0,0.0,0.0,312,'Dipole');
 
 DROP TABLE IF EXISTS "DIPOLETOPLEVEL_DATA2TAG";
 CREATE TABLE "DIPOLETOPLEVEL_DATA2TAG" ( "DIPOLETOPLEVEL_TAG_ID" SLONGLONG ,"DIPOLETOPLEVEL_DATA_ID" SLONGLONG  );
@@ -2277,6 +2458,7 @@ INSERT INTO "DIPOLETOPLEVEL_DATA2TAG" VALUES(107794,3);
 INSERT INTO "DIPOLETOPLEVEL_DATA2TAG" VALUES(107794,7);
 INSERT INTO "DIPOLETOPLEVEL_DATA2TAG" VALUES(107794,8);
 INSERT INTO "DIPOLETOPLEVEL_DATA2TAG" VALUES(107794,9);
+INSERT INTO "DIPOLETOPLEVEL_DATA2TAG" VALUES(107819,10);
 --
 --
 DROP TABLE IF EXISTS "DIPOLEGENERAL_DATA";
diff --git a/README.md b/README.md
index 00cfe12e..75e54471 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,8 @@ It can be convenient to alias the "asetup --input=calypso/asetup.faser" to somet
 
 ** `ConfigFlags.GeoModel.FaserVersion = "FASERNU-02"` and `ConfigFlags.IOVDb.GlobalTag = OFLCOND-FASER-02` enables the full FaserNu (IFT + emulsion) setup
 
+** `ConfigFlags.GeoModel.FaserVersion = "FASER-TB00"` and `ConfigFlags.IOVDb.GlobalTag = OFLCOND-FASER-02` enables the 2021 Test-beam setup.
+
 * The "FaserActsKalmanFilter" package is temporarily disabled.
 
 * The command `lsetup "lcgenv -p LCG_98python3_ATLAS_8 x86_64-centos7-gcc8-opt sqlite"` may be necessary to avoid errors when generating a database
diff --git a/Scintillator/ScintDetDescr/ScintIdDictFiles/data/IdDictScintillator_TB00.xml b/Scintillator/ScintDetDescr/ScintIdDictFiles/data/IdDictScintillator_TB00.xml
new file mode 100644
index 00000000..a4b3f0c9
--- /dev/null
+++ b/Scintillator/ScintDetDescr/ScintIdDictFiles/data/IdDictScintillator_TB00.xml
@@ -0,0 +1,27 @@
+<IdDictionary name="Scintillator">
+
+  <field name="part" >
+    <label name="Veto" value="1" />
+    <label name="Trigger" value="2" />
+    <label name="Preshower" value="3" />
+  </field>
+
+  <region>
+    <range field="part" value="Veto" />
+    <range field="station" minvalue="0" maxvalue="0" />
+    <range field="plate" minvalue="0" maxvalue="1" />
+    <range field="pmt" minvalue="0" maxvalue="0" />
+  </region>
+  <region>
+    <range field="part" value="Trigger"/>
+    <range field="station" minvalue="0" maxvalue="0" />
+    <range field="plate" minvalue="0" maxvalue="1" />
+    <range field="pmt" minvalue="0" maxvalue="1" />
+  </region>
+  <region>
+    <range field="part" value="Preshower" />
+    <range field="station" minvalue="0" maxvalue="0" />
+    <range field="plate" minvalue="0" maxvalue="1" />
+    <range field="pmt" minvalue="0" maxvalue="0" />
+  </region>
+</IdDictionary>
\ No newline at end of file
diff --git a/Simulation/G4Faser/G4FaserAlg/CMakeLists.txt b/Simulation/G4Faser/G4FaserAlg/CMakeLists.txt
index 574f0242..0d43acc7 100644
--- a/Simulation/G4Faser/G4FaserAlg/CMakeLists.txt
+++ b/Simulation/G4Faser/G4FaserAlg/CMakeLists.txt
@@ -31,6 +31,16 @@ atlas_add_test( G4FaserAlgConfig_Test
                 PROPERTIES TIMEOUT 300 
                 PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
 
+atlas_add_test( G4FaserAlgConfig_FaserNu
+                SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/runG4FaserNu.py
+                PROPERTIES TIMEOUT 300 
+                PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+
+atlas_add_test( G4FaserAlgConfig_TestBeam
+                SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/runG4TestBeam.py
+                PROPERTIES TIMEOUT 300 
+                PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_scripts( test/*.py )
diff --git a/Simulation/G4Faser/G4FaserAlg/test/runG4FaserNu.py b/Simulation/G4Faser/G4FaserAlg/test/runG4FaserNu.py
index 486b628c..0b301ba9 100644
--- a/Simulation/G4Faser/G4FaserAlg/test/runG4FaserNu.py
+++ b/Simulation/G4Faser/G4FaserAlg/test/runG4FaserNu.py
@@ -52,7 +52,7 @@ if __name__ == "__main__":
 # Output settings
 #
     ConfigFlags.Output.HITSFileName = "myFaserNu.HITS.pool.root"
-    ConfigFlags.GeoModel.GeoExportFile = "faserGeo.db" # Optional dump of geometry for browsing in vp1light
+    ConfigFlags.GeoModel.GeoExportFile = "faserNuGeo.db" # Optional dump of geometry for browsing in vp1light
 #
 # Geometry-related settings
 # Do not change!
@@ -123,10 +123,10 @@ if __name__ == "__main__":
 #    acc.getService("StoreGateSvc").Dump=True
 #    acc.getService("ConditionStore").Dump=True
 #    acc.printConfig()
-    f=open('FaserG4AppCfg_EVNT.pkl','wb')
+    f=open('FaserG4AppCfgFaserNu_EVNT.pkl','wb')
     acc.store(f)
     f.close()
 #
 # Execute and finish
 #
-    sys.exit(int(acc.run(maxEvents=50).isFailure()))
+    sys.exit(int(acc.run(maxEvents=10).isFailure()))
diff --git a/Simulation/G4Faser/G4FaserAlg/test/runG4TestBeam.py b/Simulation/G4Faser/G4FaserAlg/test/runG4TestBeam.py
new file mode 100755
index 00000000..acaec378
--- /dev/null
+++ b/Simulation/G4Faser/G4FaserAlg/test/runG4TestBeam.py
@@ -0,0 +1,132 @@
+#!/usr/bin/env python
+if __name__ == "__main__":
+    import os
+    import sys
+    import GaudiPython
+    import ParticleGun as PG
+    from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+    from AthenaConfiguration.ComponentFactory import CompFactory
+    from AthenaCommon.AppMgr import *
+    from AthenaCommon.Logging import log, logging
+    from AthenaCommon.SystemOfUnits import TeV
+    from AthenaCommon.PhysicalConstants import pi
+    from AthenaCommon.Constants import VERBOSE, INFO
+    from AthenaCommon.Configurable import Configurable
+    from CalypsoConfiguration.AllConfigFlags import ConfigFlags
+    from CalypsoConfiguration.MainServicesConfig import MainServicesCfg
+    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+    from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
+    from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
+    from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
+    from G4FaserAlg.G4FaserAlgConfigNew import G4FaserAlgCfg
+    from G4FaserServices.G4FaserServicesConfigNew import G4GeometryNotifierSvcCfg
+#
+# Set up logging and new style config
+#
+    log.setLevel(VERBOSE)
+    Configurable.configurableRun3Behavior = True
+#
+# Input settings (Generator file)
+#
+#   from AthenaConfiguration.TestDefaults import defaultTestFiles
+#   ConfigFlags.Input.Files = defaultTestFiles.EVNT
+#
+# Alternatively, these must ALL be explicitly set to run without an input file
+# (if missing, it will try to read metadata from a non-existent file and crash)
+#
+    ConfigFlags.Input.Files = [""]
+    ConfigFlags.Input.isMC = True
+    ConfigFlags.Input.RunNumber = 12345
+    ConfigFlags.Input.Collections = [""]
+    ConfigFlags.Input.ProjectName = "mc19"
+    ConfigFlags.Common.isOnline = False
+    ConfigFlags.Beam.Type = "collisions"
+    ConfigFlags.Beam.Energy = 7*TeV                              # Informational, does not affect simulation
+    ConfigFlags.GeoModel.FaserVersion = "FASER-TB00"             # Always needed
+    ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02"             # Always needed; must match FaserVersion
+# Workaround for bug/missing flag; unimportant otherwise 
+    ConfigFlags.addFlag("Input.InitialTimeStamp", 0)
+# Workaround to avoid problematic ISF code
+    ConfigFlags.GeoModel.Layout = "Development"
+#
+# Output settings
+#
+    ConfigFlags.Output.HITSFileName = "myTestBeam.HITS.pool.root"
+    ConfigFlags.GeoModel.GeoExportFile = "faserTestBeamGeo.db" # Optional dump of geometry for browsing in vp1light
+#
+# Geometry-related settings
+# Do not change!
+#
+    detectors = ['Veto', 'Preshower', 'FaserSCT', 'Ecal']
+    from CalypsoConfiguration.DetectorConfigFlags import setupDetectorsFromList
+    setupDetectorsFromList(ConfigFlags, detectors, toggle_geometry=True)
+    ConfigFlags.GeoModel.Align.Dynamic  = False
+    ConfigFlags.Sim.ReleaseGeoModel     = False
+#
+# Physics list
+#
+    ConfigFlags.Sim.PhysicsList = "FTFP_BERT"
+#
+# All flags should be set before calling lock
+#
+    ConfigFlags.lock()
+#
+# Construct ComponentAccumulator
+#
+    acc = MainServicesCfg(ConfigFlags)
+#
+# Particle Gun generator (comment out to read generator file)
+# Raw energies (without units given) are interpreted as MeV
+#
+    pg = PG.ParticleGun()
+    pg.McEventKey = "GEN_EVENT"
+    pg.randomSeed = 123456
+    pg.sampler.pid = -11
+    pg.sampler.mom = PG.EThetaMPhiSampler(energy=0.2*TeV, theta=[0, pi/20], phi=[0, 2*pi], mass=0.511)
+    pg.sampler.pos = PG.PosSampler(x=[-5, 5], y=[-5, 5], z=-20.0, t=0.0)
+    acc.addEventAlgo(pg, "AthBeginSeq") # to run *before* G4
+#
+# Only one of these two should be used in a given job
+# (MCEventSelectorCfg for generating events with no input file,
+#  PoolReadCfg when reading generator data from an input file)
+#    
+    acc.merge(McEventSelectorCfg(ConfigFlags))
+    # acc.merge(PoolReadCfg(ConfigFlags))
+#
+#  Output stream configuration
+#
+    acc.merge(OutputStreamCfg(ConfigFlags, 
+                              "HITS", 
+                             ["EventInfo#*",
+                              "McEventCollection#TruthEvent",
+                              "McEventCollection#GEN_EVENT",
+                              "NeutrinoHitCollection#*",
+                              "ScintHitCollection#*",
+                              "FaserSiHitCollection#*",
+                              "CaloHitCollection#*"
+                            ], disableEventTag=True))
+    acc.getEventAlgo("OutputStreamHITS").AcceptAlgs = ["G4FaserAlg"]               # optional
+    acc.getEventAlgo("OutputStreamHITS").WritingTool.ProcessingTag = "StreamHITS"  # required
+#
+#  Here is the configuration of the Geant4 pieces
+#    
+    acc.merge(FaserGeometryCfg(ConfigFlags))
+    acc.merge(G4FaserAlgCfg(ConfigFlags))
+    acc.addService(G4GeometryNotifierSvcCfg(ConfigFlags, ActivateLVNotifier=True))
+#
+# Verbosity
+#
+#    ConfigFlags.dump()
+#    logging.getLogger('forcomps').setLevel(VERBOSE)
+#    acc.foreach_component("*").OutputLevel = VERBOSE
+#    acc.foreach_component("*ClassID*").OutputLevel = INFO
+#    acc.getService("StoreGateSvc").Dump=True
+#    acc.getService("ConditionStore").Dump=True
+#    acc.printConfig()
+    f=open('FaserG4AppCfgTestBeam_EVNT.pkl','wb')
+    acc.store(f)
+    f.close()
+#
+# Execute and finish
+#
+    sys.exit(int(acc.run(maxEvents=10).isFailure()))
diff --git a/Tracker/TrackerDetDescr/TrackerIdDictFiles/data/IdDictInterface_TB00.xml b/Tracker/TrackerDetDescr/TrackerIdDictFiles/data/IdDictInterface_TB00.xml
new file mode 100644
index 00000000..a75ccee6
--- /dev/null
+++ b/Tracker/TrackerDetDescr/TrackerIdDictFiles/data/IdDictInterface_TB00.xml
@@ -0,0 +1,50 @@
+<IdDictionary name="Tracker" version="FaserNu">
+
+  <field name="part">
+    <label name="SCT"        value="1" />
+  </field>
+
+<!-- This file includes the Interface detector -->
+  <field name="station" >
+    <label name="Interface"  value="0" />
+  </field>
+
+  <field name="layer" >
+    <label name="Upstream"   value="0" />
+    <label name="Central"    value="1" />
+    <label name="Downstream" value="2" />
+  </field>
+
+  <field name="phi_module">
+    <label name="Bottom"       value="0" /> 
+    <label name="LowerMiddle"  value="1" />
+    <label name="UpperMiddle"  value="2" />
+    <label name="Top"          value="3" />
+  </field>
+
+  <field name="eta_module">
+  <!-- facing downstream (hence "starboard" and "port")
+       x must increase right to left for a right-handed
+       coordinate system -->
+  <!-- numbers straddle zero for consistency with ATLAS -->       
+    <label name="Starboard"   value="-1" />
+    <label name="Port"        value="+1" />
+  </field>
+
+  <field name="side">
+  <!-- The "upper" side is the side with the pigtail -->
+    <label name="Upper"    value="0" />
+    <label name="Lower"    value="1" />
+  </field>
+
+  <region>
+    <range field="part"       value="SCT" />
+    <range field="station"    values="Interface" />
+    <range field="layer"      values="Upstream Central Downstream" />
+    <range field="phi_module" values="Bottom LowerMiddle UpperMiddle Top" wraparound="FALSE" />
+    <range field="eta_module" values="Starboard Port" wraparound="FALSE" />
+    <range field="side"       values="Upper Lower" />
+    <range field="strip"      minvalue="0" maxvalue="767" />
+  </region>
+
+</IdDictionary>
\ No newline at end of file
diff --git a/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.cxx b/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.cxx
index 11a291d0..e3c2b07f 100644
--- a/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.cxx
+++ b/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.cxx
@@ -45,6 +45,9 @@ TrackerDataDecoderTool::initialize()
 
   ATH_CHECK(detStore()->retrieve(m_sctID, "FaserSCT_ID"));
 
+  auto first_wafer = m_sctID->wafer_begin();
+  m_trb0Station = m_sctID->station(*first_wafer);
+
   m_sctContext = m_sctID->wafer_context();
   m_phiReversed.resize(m_sctID->wafer_hash_max(), false);
 
@@ -113,8 +116,8 @@ TrackerDataDecoderTool::convert(const DAQFormats::EventFull* re,
     if ((frag->source_id()&0xFFFF0000) != DAQFormats::SourceIDs::TrackerSourceID) continue;
     ATH_MSG_DEBUG("Fragment:\n" << *frag);
     uint32_t trb = frag->source_id() & 0x0000FFFF;
-    // FIXME: will need to be updated for interface detector
-    int station = 1 + trb / TrackerDataFragment::PLANES_PER_STATION; 
+    // FIXME: 1 by default; needs to be 0 for IFT
+    int station = m_trb0Station + trb / TrackerDataFragment::PLANES_PER_STATION; 
     int plane = trb % TrackerDataFragment::PLANES_PER_STATION;
     
     // Exceptions are a no-no in Athena/Calypso, so catch any thrown by faser-common
diff --git a/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.h b/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.h
index 401c0ec5..1d9507c2 100644
--- a/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.h
+++ b/Tracker/TrackerEventCnv/TrackerByteStream/src/TrackerDataDecoderTool.h
@@ -41,6 +41,8 @@ private:
                                                         "ModuleMap", 
                                                         {7, 2, 5, 0, 3, 6, 1, 4}, 
                                                         "Mapping from online to offline module numbers" };
+  
+  Gaudi::Property<uint32_t>               m_trb0Station { this, "Trb0StationNumber", 1, "Station number for TRB #0" };
 };
 
 #endif  /* TRACKERBYTESTREAM_TRACKERDATADECODERTOOL_H */
diff --git a/Tracker/TrackerRecAlgs/TrackerClusterFit/test/TestBeamClusterFitDbg.py b/Tracker/TrackerRecAlgs/TrackerClusterFit/test/TestBeamClusterFitDbg.py
new file mode 100755
index 00000000..a900eeb9
--- /dev/null
+++ b/Tracker/TrackerRecAlgs/TrackerClusterFit/test/TestBeamClusterFitDbg.py
@@ -0,0 +1,160 @@
+#!/usr/bin/env python
+"""Test various ComponentAccumulator Digitization configuration modules
+
+Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+"""
+import sys
+from AthenaCommon.Logging import log, logging
+from AthenaCommon.Constants import DEBUG, VERBOSE, INFO
+from AthenaCommon.Configurable import Configurable
+from CalypsoConfiguration.AllConfigFlags import ConfigFlags
+from AthenaConfiguration.TestDefaults import defaultTestFiles
+from CalypsoConfiguration.MainServicesConfig import MainServicesCfg
+from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+from AthenaPoolCnvSvc.PoolWriteConfig import PoolWriteCfg
+from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
+#from Digitization.DigitizationParametersConfig import writeDigitizationMetadata
+from ScintRecAlgs.ScintRecAlgsConfig import WaveformReconstructionCfg
+from TrackerPrepRawDataFormation.TrackerPrepRawDataFormationConfig import FaserSCT_ClusterizationCfg
+from TrackerClusterFit.TrackerClusterFitConfig import ClusterFitAlgCfg
+from TrackerSpacePointFormation.TrackerSpacePointFormationConfig import TrackerSpacePointFinderCfg
+#from MCTruthSimAlgs.RecoTimingConfig import MergeRecoTimingObjCfg
+
+# Set up logging and new style config
+log.setLevel(DEBUG)
+Configurable.configurableRun3Behavior = True
+
+# Configure
+ConfigFlags.Input.Files = [
+    'tb.raw',
+    #'/eos/project-f/faser-commissioning/TI12Data/Run-001332/Faser-Physics-001332-00000.raw',
+    #'/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00000.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00001.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00002.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00003.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00004.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00005.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00006.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00007.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00008.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00009.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00010.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00011.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00012.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00013.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00014.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00015.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00016.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00017.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00018.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00019.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00020.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00021.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00022.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00023.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00024.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00025.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00026.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00027.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00028.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00029.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00030.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00031.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00032.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00033.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00034.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00035.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00036.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00037.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00038.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00039.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00040.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00041.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00042.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00043.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00044.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00045.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00046.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00047.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00048.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00049.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00050.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00051.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00052.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00053.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00054.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00055.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00056.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00057.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00058.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00059.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00060.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00061.raw',
+    # '/eos/project-f/faser-commissioning/winter2020CosmicsStand/Run-000608/Faser-Physics-000608-00062.raw'
+]
+#ConfigFlags.Output.ESDFileName = "run608.ESD.pool.root"
+#ConfigFlags.Output.ESDFileName = "run001332.ESD.pool.root"
+ConfigFlags.Output.ESDFileName = "tb.ESD.pool.root"
+ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02"             # Always needed; must match FaserVersion
+ConfigFlags.IOVDb.DatabaseInstance = "OFLP200"               # Use MC conditions for now
+ConfigFlags.Input.ProjectName = "data21"                     # Needed to bypass autoconfig
+ConfigFlags.Input.isMC = False                               # Needed to bypass autoconfig
+ConfigFlags.GeoModel.FaserVersion     = "FASER-TB00"         # FASER geometry
+ConfigFlags.Common.isOnline = False
+ConfigFlags.GeoModel.Align.Dynamic = False
+ConfigFlags.Beam.NumberOfCollisions = 0.
+
+ConfigFlags.Detector.GeometryFaserSCT = True
+
+ConfigFlags.lock()
+
+# Core components
+acc = MainServicesCfg(ConfigFlags)
+#acc.merge(PoolReadCfg(ConfigFlags))
+acc.merge(PoolWriteCfg(ConfigFlags))
+
+#acc.merge(writeDigitizationMetadata(ConfigFlags))
+
+from FaserByteStreamCnvSvc.FaserByteStreamCnvSvcConfig import FaserByteStreamCnvSvcCfg
+acc.merge(FaserByteStreamCnvSvcCfg(ConfigFlags))
+#acc.merge(WaveformReconstructionCfg(ConfigFlags))
+acc.merge(FaserSCT_ClusterizationCfg(ConfigFlags, DataObjectName="SCT_EDGEMODE_RDOs"))
+acc.merge(ClusterFitAlgCfg(ConfigFlags))
+acc.merge(TrackerSpacePointFinderCfg(ConfigFlags))
+#acc.getEventAlgo("Tracker::ClusterFitAlg").OutputLevel = DEBUG
+
+# explicitly save RDO information
+from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
+itemList = [ "xAOD::EventInfo#*",
+             "xAOD::EventAuxInfo#*",
+             "FaserSCT_RDO_Container#*",
+             "xAOD::FaserTriggerData#*",
+             "xAOD::FaserTriggerDataAux#*",
+#             "ScintWaveformContainer#*",
+             "TrackCollection#*",
+#             "xAOD::WaveformHitContainer#*",
+#             "xAOD::WaveformHitAuxContainer#*",
+#             "xAOD::WaveformClock#*",
+#             "xAOD::WaveformClockAuxInfo#*",
+           ]
+acc.merge(OutputStreamCfg(ConfigFlags, "ESD", itemList))
+acc.getEventAlgo("OutputStreamESD").AcceptAlgs = ["Tracker::ClusterFitAlg"] 
+# Timing
+#acc.merge(MergeRecoTimingObjCfg(ConfigFlags))
+
+# Dump config
+# logging.getLogger('forcomps').setLevel(VERBOSE)
+# acc.foreach_component("*").OutputLevel = VERBOSE
+# acc.foreach_component("*ClassID*").OutputLevel = INFO
+# acc.getCondAlgo("FaserSCT_AlignCondAlg").OutputLevel = VERBOSE
+# acc.getCondAlgo("FaserSCT_DetectorElementCondAlg").OutputLevel = VERBOSE
+# acc.getService("StoreGateSvc").Dump = True
+# acc.getService("ConditionStore").Dump = True
+# acc.printConfig(withDetails=True)
+# ConfigFlags.dump()
+
+# Execute and finish
+sc = acc.run(maxEvents=1000)
+
+# Success should be 0
+sys.exit(not sc.isSuccess())
diff --git a/graphics/VTI12/README.md b/graphics/VTI12/README.md
index 4cf72c22..d6e0311a 100644
--- a/graphics/VTI12/README.md
+++ b/graphics/VTI12/README.md
@@ -8,8 +8,8 @@ To run on Calypso MC data (from an installation (run) directory):
 
 Note that VP1PLUGINPATH can be ninja-changed by asetup, and if it does not include the Calypso installation library folder, nothing will work.  Also note that it must be an ABSOLUTE (not relative) path!
 
-You can also give the -detdescr="FASER-01" (baseline detector), -detdescr="FASER-02" (baseline + IFT) or -detdescr="FASERNU-02" (baseline + IFT + emulsion) to specify the geometry.
+You can also give the -detdescr="FASER-01" (baseline detector), -detdescr="FASER-02" (baseline + IFT), -detdescr="FASERNU-02" (baseline + IFT + emulsion) or -detdescr="FASER-TB00" (2021 Test-beam) to specify the geometry.
 
-You also need either -globcond="OFLCOND-FASER-01" (baseline) or -globcond="OFLCOND-FASER-02" (IFT with or without emulsion) flags to specify the conditions.  
+You also need either -globcond="OFLCOND-FASER-01" (baseline) or -globcond="OFLCOND-FASER-02" (IFT with or without emulsion, or Test-beam) flags to specify the conditions.  
 
 The event display has no way to determine the right values for these settings (it defaults to FASER-01 and OFLCOND-FASER-01).
\ No newline at end of file
-- 
GitLab