From 5746a07a4de8b95d28c3175639540b64cdf1fc96 Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wdconinc@gmail.com>
Date: Thu, 30 Jun 2022 22:06:53 +0000
Subject: [PATCH] Resolve "Far Backward Arb8 error"

---
 ip6/far_backward/vacuum.xml   |  2 +-
 src/BackwardsTagWin_geo.cpp   | 16 ++++++++--------
 src/BackwardsVacDrift_geo.cpp | 15 ++++++++-------
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/ip6/far_backward/vacuum.xml b/ip6/far_backward/vacuum.xml
index 0328c49..97a86b4 100644
--- a/ip6/far_backward/vacuum.xml
+++ b/ip6/far_backward/vacuum.xml
@@ -79,6 +79,7 @@
         xQB="Q3eR_XB"
         zW="ExitWin_Z"
         xW="ExitWin_XB"
+        zA="ExitWin_Z"
         xA="ExitWin_XA"
       />
     </detector>
@@ -197,4 +198,3 @@
   </detectors>
 
 </lccdd>
-
diff --git a/src/BackwardsTagWin_geo.cpp b/src/BackwardsTagWin_geo.cpp
index f66c514..4460f27 100644
--- a/src/BackwardsTagWin_geo.cpp
+++ b/src/BackwardsTagWin_geo.cpp
@@ -42,17 +42,17 @@ static Ref_t createDetector(Detector& lccdd, xml_h e, SensitiveDetector /*sens*/
   double ver[16];
 
   // plane at upper y
-  ver[0] = xTB;
-  ver[1] = zTB;
+  ver[0] = xB;
+  ver[1] = zB;
 
-  ver[2] = xB;
-  ver[3] = zB;
+  ver[2] = xT;
+  ver[3] = zT;
 
-  ver[4] = xB;
-  ver[5] = zB;
+  ver[4] = xTB;
+  ver[5] = zTB;
 
-  ver[6] = xT;
-  ver[7] = zT;
+  ver[6] = xB - 0.001 * mm;
+  ver[7] = zB - 0.001 * mm;
 
   // plane at lower y
   for (int i = 8; i < 16; i++) {
diff --git a/src/BackwardsVacDrift_geo.cpp b/src/BackwardsVacDrift_geo.cpp
index 40daa64..7578ff2 100644
--- a/src/BackwardsVacDrift_geo.cpp
+++ b/src/BackwardsVacDrift_geo.cpp
@@ -35,6 +35,7 @@ static Ref_t createDetector(Detector& lccdd, xml_h e, SensitiveDetector /*sens*/
 
   double zW = points.attr<double>(_Unicode(zW));
   double xW = points.attr<double>(_Unicode(xW));
+  double zA = points.attr<double>(_Unicode(zA));
   double xA = points.attr<double>(_Unicode(xA));
 
   printout(DEBUG, "BackwardsVacDrift", "zW: %f", zW);
@@ -45,16 +46,16 @@ static Ref_t createDetector(Detector& lccdd, xml_h e, SensitiveDetector /*sens*/
   double ver[16];
 
   // plane at upper y
-  ver[0] = xQB;
-  ver[1] = zQB;
+  ver[0] = xQT;
+  ver[1] = zQT;
 
-  ver[2] = xQT;
-  ver[3] = zQT;
+  ver[2] = xQB;
+  ver[3] = zQB;
 
-  ver[4] = xW;
-  ver[5] = zW;
+  ver[4] = xA;
+  ver[5] = zA;
 
-  ver[6] = xA;
+  ver[6] = xW;
   ver[7] = zW;
 
   // plane at lower y
-- 
GitLab