From dbd9dea53dfcd23eb48605323f2a3ab4741d4c1a Mon Sep 17 00:00:00 2001
From: Brendan Sullivan <sullivanbt@ornl.gov>
Date: Thu, 26 Jul 2018 11:29:12 -0400
Subject: [PATCH] Re #22811 set detector sizes as instrument params

---
 instrument/CORELLI_Parameters.xml          | 10 ++++++++++
 instrument/MANDI_Parameters.xml            | 11 +++++++++++
 instrument/MANDI_Parameters_2015_08_01.xml | 10 ++++++++++
 instrument/MANDI_Parameters_2016_02_01.xml | 10 ++++++++++
 instrument/TOPAZ_Parameters.xml            | 11 +++++++++++
 scripts/SCD_Reduction/BVGFitTools.py       | 12 +++++-------
 6 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/instrument/CORELLI_Parameters.xml b/instrument/CORELLI_Parameters.xml
index 70723673bd7..b560efec73c 100644
--- a/instrument/CORELLI_Parameters.xml
+++ b/instrument/CORELLI_Parameters.xml
@@ -30,6 +30,16 @@
      <value val="2." />
     </parameter>
 
+    <!-- Number of rows between detector gaps for profile fitting -->
+    <parameter name="numDetRows" type="int">
+     <value val="255" />
+    </parameter>
+
+    <!-- Number of cols between detector gaps for profile fitting -->
+    <parameter name="numDetCols" type="int">
+     <value val="16" />
+    </parameter>
+
   </component-link>
 
 </parameter-file>
diff --git a/instrument/MANDI_Parameters.xml b/instrument/MANDI_Parameters.xml
index fcae38355cd..8833ec7f5d2 100644
--- a/instrument/MANDI_Parameters.xml
+++ b/instrument/MANDI_Parameters.xml
@@ -23,6 +23,17 @@
  <value val="2." />
 </parameter>
 
+<!-- Number of rows between detector gaps for profile fitting -->
+<parameter name="numDetRows" type="int">
+ <value val="255" />
+</parameter>
+
+<!-- Number of cols between detector gaps for profile fitting -->
+<parameter name="numDetCols" type="int">
+ <value val="255" />
+</parameter>
+
+
 
 </component-link>
 
diff --git a/instrument/MANDI_Parameters_2015_08_01.xml b/instrument/MANDI_Parameters_2015_08_01.xml
index 1f51ed8abe2..656e899ba71 100644
--- a/instrument/MANDI_Parameters_2015_08_01.xml
+++ b/instrument/MANDI_Parameters_2015_08_01.xml
@@ -23,6 +23,16 @@
  <value val="2." />
 </parameter>
 
+<!-- Number of rows between detector gaps for profile fitting -->
+<parameter name="numDetRows" type="int">
+ <value val="255" />
+</parameter>
+
+<!-- Number of cols between detector gaps for profile fitting -->
+<parameter name="numDetCols" type="int">
+ <value val="255" />
+</parameter>
+
 
 
 </parameter-file>
diff --git a/instrument/MANDI_Parameters_2016_02_01.xml b/instrument/MANDI_Parameters_2016_02_01.xml
index e5f07a3373e..c3471773d9f 100644
--- a/instrument/MANDI_Parameters_2016_02_01.xml
+++ b/instrument/MANDI_Parameters_2016_02_01.xml
@@ -23,4 +23,14 @@
  <value val="2." />
 </parameter>
 
+<!-- Number of rows between detector gaps for profile fitting -->
+<parameter name="numDetRows" type="int">
+ <value val="255" />
+</parameter>
+
+<!-- Number of cols between detector gaps for profile fitting -->
+<parameter name="numDetCols" type="int">
+ <value val="255" />
+</parameter>
+
 </parameter-file>
diff --git a/instrument/TOPAZ_Parameters.xml b/instrument/TOPAZ_Parameters.xml
index 4ef8ded71a5..0151036048a 100644
--- a/instrument/TOPAZ_Parameters.xml
+++ b/instrument/TOPAZ_Parameters.xml
@@ -99,6 +99,17 @@ detScale={13:1.046504,14:1.259293,16:1.02449,17:1.18898,18:0.88014,19:0.98665,\
  <value val="3." />
 </parameter>
 
+<!-- Number of rows between detector gaps for profile fitting -->
+<parameter name="numDetRows" type="int">
+ <value val="255" />
+</parameter>
+
+<!-- Number of cols between detector gaps for profile fitting -->
+<parameter name="numDetCols" type="int">
+ <value val="255" />
+</parameter>
+
+
 </component-link>
 
 </parameter-file>
diff --git a/scripts/SCD_Reduction/BVGFitTools.py b/scripts/SCD_Reduction/BVGFitTools.py
index 4c1f154fbc2..1620d1a476b 100644
--- a/scripts/SCD_Reduction/BVGFitTools.py
+++ b/scripts/SCD_Reduction/BVGFitTools.py
@@ -77,13 +77,11 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150
 
     # This section defines detector size to determine if a peak is too
     # close to the edge.  Order is [NROWS, NCOLS].
-    if   instrumentName == 'MANDI':
-        nPixels = [255, 255]
-    elif instrumentName == 'TOPAZ':
-        nPixels = [255, 255]
-    elif instrumentName == 'CORELLI':
-        nPixels = [255,16]
-    else:
+    try:
+        numDetRows = peaks_ws.getInstrument().getIntParameter("numDetRows")[0]
+        numDetCols = peaks_ws.getInstrument().getIntParameter("numDetCols")[0]
+        nPixels = [numDetRows, numDetCols]
+    except:
         raise UserWarning('Instrument name {} not found. Assuming a 255*255 detector!'.format(instrumentName))
         nPixels = [255,255]
 
-- 
GitLab