diff --git a/Control/CalypsoExample/Reconstruction/scripts/faser_reco.py b/Control/CalypsoExample/Reconstruction/scripts/faser_reco.py
index 72235c1f2bb0d6f1167e4b12350ecb5214ecd580..487b1388d134b4614015a693a79c34d950b72cbb 100755
--- a/Control/CalypsoExample/Reconstruction/scripts/faser_reco.py
+++ b/Control/CalypsoExample/Reconstruction/scripts/faser_reco.py
@@ -129,8 +129,6 @@ elif runtype == "TI12Data02":
 # Final 2022 TI12 geometry
 elif runtype == "TI12Data03":
     ConfigFlags.GeoModel.FaserVersion = "FASERNU-03" 
-    # ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02"
-    # Use the updated field map
     ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-03"
     useCal = True
     useLHC = True
@@ -140,7 +138,6 @@ else:
     print("Specify correct type or update list")
     sys.exit(1)
 
-
 # Must use original input string here, as pathlib mangles double // in path names
 ConfigFlags.Input.Files = [ args.file_path ]
 
@@ -291,6 +288,12 @@ if not args.isMC:
 if args.verbose:
     acc.foreach_component("*").OutputLevel = VERBOSE
     ConfigFlags.dump()
+    # Print out POOL conditions
+    import os
+    print(f"ATLAS_POOLCOND_PATH: {os.environ['ATLAS_POOLCOND_PATH']}")
+    print(f"PoolSvc.ReadCatalog: {acc.getService('PoolSvc').ReadCatalog}")
+    print(f"PoolSvc.WriteCatalog: {acc.getService('PoolSvc').WriteCatalog}")
+
 else:
     acc.foreach_component("*").OutputLevel = INFO
 
diff --git a/Control/CalypsoExample/Reconstruction/scripts/submit_faser_reco.sh b/Control/CalypsoExample/Reconstruction/scripts/submit_faser_reco.sh
index 6924506133cddacd3ad7f4f88aec64121719b9b8..09ba06317f34168cab970aa7d5032b0ba198a7ce 100755
--- a/Control/CalypsoExample/Reconstruction/scripts/submit_faser_reco.sh
+++ b/Control/CalypsoExample/Reconstruction/scripts/submit_faser_reco.sh
@@ -127,7 +127,6 @@ echo "Starting: $starting_directory"
 export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
 source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh 
 #
-# Try automatic
 # Always go back to the starting directory in case paths are relative
 cd "$starting_directory"
 cd "$release_directory"
@@ -139,6 +138,11 @@ asetup --input=calypso/asetup.faser Athena,22.0.49
 source run/setup.sh
 #source build/x86*/setup.sh
 #
+# Check if there are data overrides
+if [ -d "run/data/sqlite200" ]; then
+   cond_directory=`pwd -P`/run/data  # Get absolute path
+fi
+#
 # Try to find a release tag
 cd calypso
 recotag=`git describe`
@@ -169,6 +173,29 @@ else
 fi
 cd "$file_stem"
 #
+# Check if there were data overrides in the release directory
+if [[ -z "$cond_directory" ]]; then
+    echo "No local conditions directory found!"
+else
+    echo "Local conditions directory found!  Copying to run directory..."
+    echo Copying $cond_directory
+    cp -r $cond_directory .
+    ls -R data
+fi
+# 
+# Further check if there is a pool conditions override
+#if [[ -d "data/poolcond" ]]; then
+#    echo "Local POOL directory found!"
+#    echo "Change ATLAS_POOLCOND_PATH"
+#    echo " from $ATLAS_POOLCOND_PATH"
+#    export ATLAS_POOLCOND_PATH=`pwd -P`/data
+#    echo " to $ATLAS_POOLCOND_PATH"
+#else
+#    echo "No local pool files found, use default:"
+#    echo " $ATLAS_POOLCOND_PATH"
+#fi
+echo "ATLAS_POOLCOND_PATH: $ATLAS_POOLCOND_PATH"
+#
 # Run job
 if [[ -z "$tag" ]]; then
     tagstr=""
diff --git a/Tracker/TrackerAlignTools/TrackerAlignGenTools/src/TrackerAlignDBTool.cxx b/Tracker/TrackerAlignTools/TrackerAlignGenTools/src/TrackerAlignDBTool.cxx
index 4483eb5b4cd52b31aa70cb915ba6500641297685..42c41bb2e8a7116ea2906b3c9c5f9d34d3c0d025 100644
--- a/Tracker/TrackerAlignTools/TrackerAlignGenTools/src/TrackerAlignDBTool.cxx
+++ b/Tracker/TrackerAlignTools/TrackerAlignGenTools/src/TrackerAlignDBTool.cxx
@@ -275,7 +275,10 @@ StatusCode TrackerAlignDBTool::createDB() const
           alignment *= Amg::AngleAxis3D(c[4], Amg::Vector3D(0.,1.,0.));
           alignment *= Amg::AngleAxis3D(c[3], Amg::Vector3D(1.,0.,0.));
 
-	      pat->add(ident2, Amg::EigenTransformToCLHEP(alignment));
+	  //first transfer to the center of layer then rotate then transfer back to global cooridinate system
+	  Amg::Translation3D newtransl(0,0,element->transform().translation()[2]);
+	  Amg::Transform3D newcorr= newtransl * Amg::RotationMatrix3D::Identity();
+	  pat->add(ident2, Amg::EigenTransformToCLHEP(newcorr*alignment*newcorr.inverse()));
 	    } else {
           ATH_MSG_VERBOSE("No correction given for " << key);
 	    }