From e044341d53138ccbaef144457165b0fd1dc5a5b4 Mon Sep 17 00:00:00 2001
From: Mario <mario@champ.hep.sci.osaka-u.ac.jp>
Date: Sun, 23 May 2021 21:26:16 +0900
Subject: [PATCH] some improvements to the parameter optimizer

---
 configs/so_optimizer.json    | 31 +++++++++++++++++++++++++++++--
 libDCS/parameterOptimizer.py | 15 +++++++--------
 2 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/configs/so_optimizer.json b/configs/so_optimizer.json
index ac1543d..dc562f5 100644
--- a/configs/so_optimizer.json
+++ b/configs/so_optimizer.json
@@ -3,6 +3,33 @@
     "repetitions": 2,
     "parameters":
     [
+        {
+            "name": "CmlTapBias0",
+            "min": 500,
+            "max": 800,
+            "step": 100
+        },
+        {
+            "name": "CmlTapBias1",
+            "min": 100,
+            "max": 300,
+            "step": 100
+        }
+    ],
+    "examples":
+    [
+        {
+            "name": "CmlTapBias0",
+            "min": 300,
+            "max": 900,
+            "step": 100
+        },
+        {
+            "name": "CmlTapBias1",
+            "min": 0,
+            "max": 400,
+            "step": 100
+        },
         {
             "name": "SldoAnalogTrim",
             "min": 20,
@@ -11,8 +38,8 @@
         },
         {
             "name": "SldoDigitalTrim",
-            "min": 19,
-            "max": 27,
+            "min": 20,
+            "max": 26,
             "step": 1
         }
     ]
diff --git a/libDCS/parameterOptimizer.py b/libDCS/parameterOptimizer.py
index 9cf0a22..4034538 100644
--- a/libDCS/parameterOptimizer.py
+++ b/libDCS/parameterOptimizer.py
@@ -58,7 +58,7 @@ def whereToGoNext(x, y, M):
                     except:
                         pass
 
-        if radius >= max(len(M), len(M[0])): 
+        if radius > max(len(M), len(M[0])): 
             print("scan finished")
             return None, None
         radius += 1
@@ -154,14 +154,15 @@ def find(args):
     os.environ['SO_RUNNUMBER'] = "optimizer"
     os.environ['TIMEFILE'] = "/dev/null"
 
-    # power cycle
-    if args.powercycle:
-        os.system("python3 libDCS/qaqc.py -e " + args.equip + " -c " + args.channel + " power-off")
-        os.system("python3 libDCS/qaqc.py -e " + args.equip + " -c " + args.channel + " power-on")
-    
+
     # Run first 3 digital scans
     for i in range(3):
         
+        # power cycle
+        if args.powercycle:
+            os.system("python3 libDCS/qaqc.py -e " + args.equip + " -c " + args.channel + " power-off")
+            os.system("python3 libDCS/qaqc.py -e " + args.equip + " -c " + args.channel + " power-on")
+        
         # change yarr chip cfg
         updatecfg(args, chipName, name_v1, name_v2, v1range, v2range, xtest0[i], ytest0[i])
 
@@ -279,8 +280,6 @@ def find(args):
 
         print("")
         print(t)
-        
-        sleep(0.5)
 
 
 
-- 
GitLab