From 9e1416b62f7aeeeadad586ef26b34d86ec0752e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Le=20Guyader?= <loic.le.guyader@xfel.eu>
Date: Thu, 22 Sep 2022 09:54:32 +0200
Subject: [PATCH] Fix sign of XAS

---
 doc/changelog.rst               |  1 +
 src/toolbox_scs/routines/XAS.py | 13 +++----------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/doc/changelog.rst b/doc/changelog.rst
index 5439780..c47bd4d 100644
--- a/doc/changelog.rst
+++ b/doc/changelog.rst
@@ -6,6 +6,7 @@ unreleased
 
 - **Bug fixes**
 
+    - fix :issue:`61` regarding sign of XAS in some cases :mr:`207`
 
 - **Improvements**
 
diff --git a/src/toolbox_scs/routines/XAS.py b/src/toolbox_scs/routines/XAS.py
index 0f483c5..63c34c2 100644
--- a/src/toolbox_scs/routines/XAS.py
+++ b/src/toolbox_scs/routines/XAS.py
@@ -174,19 +174,12 @@ def xas(nrun, bins=None, Iokey='SCS_SA3', Itkey='MCP3peaks', nrjkey='nrj',
         """ Select which fields to use as I0 and which to use as I1
         """
 
-        if 'mcp' in Iokey.lower():
-            Io_sign = -1
-        else:
-            Io_sign = 1
-
-        if 'mcp' in Itkey.lower():
-            It_sign = -1
-        else:
-            It_sign = 1
-
         if len(data) == 0:
             return absorption([], [], fluorescence)
         else:
+            Io_sign = np.sign(np.nanmean(data['Io']))
+            It_sign = np.sign(np.nanmean(data['It']))
+            
             return absorption(It_sign*data['It'], Io_sign*data['Io'],
                               fluorescence)
 
-- 
GitLab