]> jspc29.x-matter.uni-frankfurt.de Git - mimosis_chain.git/commitdiff
cleaned up and commited for push/backup
authorMaps <maps@ikf>
Fri, 29 Mar 2024 18:29:05 +0000 (19:29 +0100)
committerMaps <maps@ikf>
Fri, 29 Mar 2024 18:29:05 +0000 (19:29 +0100)
23 files changed:
.gitignore
analysis/mbs/CMakeLists.txt [new file with mode: 0644]
analysis/mbs/dabc/plugins/hadaq/hldprint.cxx [deleted file]
analysis/mbs/main.cxx [new file with mode: 0644]
analysis/rawreader/mimosis.h
analysis/scurve/fpn.py [deleted file]
analysis/scurve/libtrbnet.a [deleted file]
analysis/scurve/scurvemap.gp [deleted file]
analysis/scurve/start.sh [deleted file]
analysis/scurve/xy.py [deleted file]
analysis/scurve/xy.txt [deleted file]
dabc/EventBuilder.xml
scripts/Mimosis.pm
scripts/cli/mimosis
scripts/legacy/curves.py [moved from scripts/pulse/curves with 100% similarity]
scripts/legacy/fpn.py [moved from scripts/pulse/fpn with 100% similarity]
scripts/pulse/fit-raw.py [new file with mode: 0644]
scripts/pulse/plot-raw.py [new file with mode: 0755]
scripts/pulse/plot-root.py [new file with mode: 0755]
scripts/pulse/requirements.txt [new file with mode: 0644]
scripts/qa/DACscan.py [moved from scripts/DACscan.py with 100% similarity]
scripts/test-mask.sh [deleted file]
trbnet/start.sh

index 3f96d357c8f68c434ede1e198168437bcef8ef75..e42618c7981fa85cc9be8d5246c45e85033a91d9 100644 (file)
@@ -6,8 +6,8 @@
 *aux
 *out
 *log
+*.csv
 scratch
-git
 data/
 img/
 *.png
@@ -16,13 +16,15 @@ scripts/dac_scan/*.csv
 *.d
 *.so
 *.pcm
-hld
+*.hld
 *.hotstart
 *.kate-swp
 *GTAGS
+git/
+build/
 *GRTAGS
 *GPATH
 *.chat.swp
-*.csv
 *STATUS
-analysis/mbs/dabc*
+.venv
+WORKDIR*
diff --git a/analysis/mbs/CMakeLists.txt b/analysis/mbs/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8ce1275
--- /dev/null
@@ -0,0 +1,42 @@
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
+
+project(mimosis-scurves
+  LANGUAGES C CXX
+)
+
+add_executable(mimosis-scurves main.cxx)
+
+if(TRBNETTOOLS_DIR)
+  message(${TRBNETTOOLS_DIR})
+else()
+  message("TRBNETTOOLS_DIR not provided. Using /d/jspc85/bgutsche/trbnettools")
+  set(TRBNETTOOLS_DIR "/d/jspc85/bgutsche/trbnettools")
+endif()
+set(TRBNET_LIB_DIR ${TRBNETTOOLS_DIR}/libtrbnet/)
+set(TRBNET_INCLUDE_DIR ${TRBNETTOOLS_DIR}/libtrbnet/)
+
+if(DABC_DIR)
+  message(${DABC_DIR})
+else()
+  message("DABC_DIR not provided. Using /d/jspc37/soft/trb3/dabc")
+  set(DABC_DIR "/d/jspc37/soft/trb3/dabc")
+endif()
+set(DABC_LIB_DIR ${DABC_DIR}/lib/)
+set(DABC_INCLUDE_DIR ${DABC_DIR}/include/)
+
+include_directories(
+  ${TRBNET_INCLUDE_DIR}
+  ${DABC_INCLUDE_DIR}
+)
+
+link_directories(
+  ${TRBNET_LIB_DIR}
+  ${DABC_LIB_DIR}
+)
+
+target_link_libraries(mimosis-scurves
+  PRIVATE trbnet
+  PRIVATE DabcBase
+  PRIVATE DabcHadaq
+  PRIVATE DabcMbs
+)
diff --git a/analysis/mbs/dabc/plugins/hadaq/hldprint.cxx b/analysis/mbs/dabc/plugins/hadaq/hldprint.cxx
deleted file mode 100644 (file)
index ef6b4fd..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-#include <cstdio>
-#include <cstring>
-#include <iostream>
-#include <fstream>
-#include <vector>
-#include "hadaq/api.h"
-
-
-void await_params() {
-    std::string pipeName = "/tmp/scurveipipe";
-    FILE *iPipe = fopen(pipeName.c_str(), "r");
-
-    int buf;
-    std::string msg;
-    bool foundFrame = false;
-
-    if(iPipe == nullptr) {
-       std::printf("ERROR: Couldn't open file.\n");
-       std::exit(-1);
-    }
-
-    buf = fgetc(iPipe);
-    while(!foundFrame && buf != EOF) {
-       char c = static_cast<char>(buf);
-       msg += c;
-       auto startPos = msg.find("START");
-       auto endPos = msg.find("END");
-       if(startPos != std::string::npos && endPos != std::string::npos) {
-          foundFrame = true;
-          break;
-       }
-       buf = fgetc(iPipe);
-    }
-    std::cout << msg << '\n';
-    fclose(iPipe);
-}
-
-
-int send_ack() {
-    std::string pipeName = "/tmp/scurveapipe";
-    FILE *iPipe = fopen(pipeName.c_str(), "w");
-
-    if(iPipe == nullptr) {
-       std::printf("ERROR: Couldn't open file.\n");
-       std::exit(-1);
-    }
-
-    std::string msg("ACK");
-    fputs(msg.c_str(),iPipe);
-    fclose(iPipe);
-    return 0;
-}
-
-
-void fit(uint16_t vcasn)
-{
-   auto exec = [=]()
-   {
-      // std::ofstream fs;
-      // fs.open("params.csv");
-
-      // decltype(+SCurveRegionA) histP;
-      // switch(pulseRegion)
-      // {
-      //   case 0: histP = SCurveRegionA;
-      //   case 1: histP = SCurveRegionB;
-      //   case 2: histP = SCurveRegionC;
-      //   case 3: histP = SCurveRegionD;
-      // }
-
-      // for(int i = 1; i < 504; i++)
-      // {
-      //   for(int j = pulseColRegionLow; j<pulseColRegionHig; j++)
-      //   {
-      //     auto f1 = new TF1("f1","([0]*(1+TMath::Erf((x-[1])/(TMath::Sqrt2()*[2]))))",1,255, " ");
-      //     f1->SetParLimits(0,0,55000);
-      //     f1->SetParLimits(1,0,255);
-      //     f1->SetParameters(50000,100,10);
-      //     f1->SetParError(1, 0.1);
-
-      //     auto hist = static_cast<TH2*>(histP)->ProjectionX(" ",i*colsN+j,i*colsN+j);
-      //     int status = static_cast<TH1*>(hist)->Fit("f1","NQS");
-      //     fs << j << "\t" << i << "\t" << status << "\t" << f1->GetParameter(1) << "\t" << f1->GetParameter(2) << "\n";
-      //     std::cout << j << "\t" << i << "\t" << status << "\t" << f1->GetParameter(1) << "\t" << f1->GetParameter(2) << "\n";
-      //     delete hist;
-      //     delete f1;
-      //   }
-      // }
-      // fs.close();
-   };
-}
-
-
-int main(int argc, char* argv[])
-{
-   std::string src = argv[1];
-   hadaq::ReadoutHandle ref = hadaq::ReadoutHandle::Connect(src.c_str());
-   if (ref.null()) return 1;
-   hadaq::RawEvent *evnt = nullptr;
-
-   SCAN:
-   await_params();
-   send_ack();
-
-   while (true) {
-      evnt = ref.NextEvent(1.,-1);
-      if (!evnt) continue;
-      hadaq::RawSubevent* sub = nullptr;
-
-      while ((sub = evnt->NextSubevent(sub)) != nullptr) {
-         unsigned headersNow = 0;
-         uint32_t pulseMsg = 0;
-         unsigned size = sub->GetNrOfDataWords();
-
-         for( unsigned i = 0; i<size; i++) {
-            uint32_t data = static_cast<uint32_t>(sub->Data(i));
-
-            if((data & 0xFF000000) == 0xFE000000) {
-
-               headersNow++;
-
-               if(headersNow == 3) {
-                  pulseMsg = (data & 0xFF0000) >> 16;
-                  pulseMsg += (data & 0xFF) << 8;
-               } else if(headersNow == 4) {
-                  pulseMsg +=  data & 0xFF0000;
-                  pulseMsg += (data & 0xFF) << 24;
-
-                  if( ( ( 0x00c00000 & pulseMsg ) == 0x00c00000 ) ) {
-                     std::printf("Start region\n");
-                  } else if( ( 0x00c00000 & pulseMsg ) == 0x00400000 ) {
-                     std::printf("Start fit\n");
-                     fit(static_cast<uint16_t>(pulseMsg & 0xFF));
-                     goto SCAN;
-                  } else if( ( 0x00c00000 & pulseMsg ) == 0x00800000 ) {
-                     std::printf("Start next round\n");
-                     goto SCAN;
-                  } else if ( ( 0x00300000 & pulseMsg ) == 0x00300000 ){
-                     return 0;
-                  }
-               }
-            } else if((data & 0xFF000000) == 0xFF000000) {
-               headersNow = 0;
-            } else {
-            }
-            // std::printf("%u\t%x\n",size, sub->Data(i));
-         }
-      }
-   }
-   ref.Disconnect();
-   return 0;
-}
diff --git a/analysis/mbs/main.cxx b/analysis/mbs/main.cxx
new file mode 100644 (file)
index 0000000..a5b0fa7
--- /dev/null
@@ -0,0 +1,511 @@
+#include <cstdio>
+#include <cstring>
+#include <csignal>
+#include <unistd.h>
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <chrono>
+#include <array>
+#include <sys/stat.h>
+
+#include "hadaq/api.h"
+
+#include "trbnet.h"
+
+
+using namespace std::chrono;
+
+
+enum params {STATE, YLOW, YHIG, XLOW, XHIG, REGION, VCASN, VPHFINE};
+
+namespace Data
+{
+    std::array<uint32_t,1025*505*256> dataArray;
+    int dataFraCnt = 0;
+    int limitFra = 500;
+
+    short vphfine;
+
+    int yLow, yHig, xLow, xHig;
+    int yLowMax = 504, yHigMax = 0, xLowMax = 1024, xHigMax = 0;
+    int sLowMax = 255, sHigMax = 0;
+
+    std::string dataDir;
+
+    std::string state;
+
+    std::vector<std::string> vcasnVec;
+
+    decltype(high_resolution_clock::now()) start;
+
+    std::vector<uint32_t> mimFraCntNewVec;
+    std::vector<uint32_t> mimFraCntOldVec;
+};
+
+
+std::string pidName = "/tmp/hldprint-pid";
+
+
+void write_pid(void)
+{
+    int pid = (int)getpid();
+
+    // std::cout << pid << '\n';
+
+    FILE *pidFile = fopen(pidName.c_str(), "w");
+
+    if(pidFile == nullptr) {
+       std::printf("ERROR: Couldn't open file.\n");
+       std::exit(-1);
+    }
+
+    fprintf(pidFile, "%d",pid);
+
+    fclose(pidFile);
+}
+
+
+
+std::vector<std::string> await_params()
+{
+    std::string pipeName = "/tmp/scurveipipe";
+    FILE *iPipe = fopen(pipeName.c_str(), "r");
+
+    if(iPipe == nullptr) {
+       std::printf("ERROR: Couldn't open file.\n");
+       std::exit(-1);
+    }
+
+    int buf;
+    bool foundFrame = false, foundSta = false, foundEnd = false;
+    std::string word;
+    std::vector<std::string> values;
+
+    buf = fgetc(iPipe);
+
+    while(!foundFrame && buf != EOF)
+    {
+        char c = static_cast<char>(buf);
+
+        if(c == '-') {
+            values.push_back(word);
+            word = "";
+        } else {
+            word += c;
+        }
+
+        if(word == "START") { foundSta = true; }
+        if(word == "END") { foundEnd = true; }
+
+        buf = fgetc(iPipe);
+
+        if(foundSta && foundEnd) {
+            foundFrame = true;
+            break;
+        }
+    }
+
+    values.erase(values.begin());
+
+    // for (const auto& i: values)
+    //     std::cout << i << '\n';
+
+    fclose(iPipe);
+
+    return values;
+}
+
+
+
+int send_ack()
+{
+    std::string pipeName = "/tmp/scurveapipe";
+    FILE *iPipe = fopen(pipeName.c_str(), "w");
+
+    if(iPipe == nullptr) {
+       std::printf("ERROR: Couldn't open file.\n");
+       std::exit(-1);
+    }
+
+    std::string msg("ACK");
+    fputs(msg.c_str(),iPipe);
+    fclose(iPipe);
+    return 0;
+}
+
+
+
+void make_fit(std::string reg, std::string vcasn)
+{
+    // auto start = high_resolution_clock::now();
+
+    std::string subDir = Data::dataDir + "/" + reg + "-" + vcasn;
+
+    mkdir(subDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+
+    std::string fileName = subDir + "/" + reg + "-" + vcasn + ".csv";
+
+
+    std::ofstream file(fileName);
+    char buffer[1000000];
+    file.rdbuf()->pubsetbuf(buffer, sizeof(buffer));
+
+    for(int y = Data::yLowMax; y <= Data::yHigMax; y++) {
+        for(int x = Data::xLowMax; x <= Data::xHigMax; x++) {
+            for(int s = Data::sLowMax; s <= Data::sHigMax; s++) {
+                uint32_t v = Data::dataArray[(y*1024+x)*255+s];
+                file << v << '\t';
+                // if(v != 0) { printf("%d %d %d %d\n",y,x,s,v); }
+                Data::dataArray[(y*1024+x)*255+s] = 0;
+            }
+            file << '\n';
+        }
+    }
+    file.close();
+
+    // auto stop = high_resolution_clock::now();
+    // auto duration = duration_cast<microseconds>(stop - start);
+    // std::cout << duration.count() << std::endl;
+
+    return;
+}
+
+
+
+bool decode_pixel(const uint32_t& word, int& column, int& row, const int& region)
+{
+    const unsigned long pixelcode = (word >> 6) & 0x3ff;
+
+    unsigned long
+        side = 0,
+        topdown = 0;
+
+    if((pixelcode&3) == 0x1 || (pixelcode&3) == 0x2) side = 1;
+    if((pixelcode&3) == 0x3 || (pixelcode&3) == 0x2) topdown = 1;
+
+    row    = (pixelcode>>2)*2 + topdown;
+    column = (((word>>3)&0x7) + region*8)*2 + side;
+
+    return true;
+}
+
+
+
+void take_data(std::string src)
+{
+    hadaq::ReadoutHandle ref = hadaq::ReadoutHandle::Connect(src.c_str());
+    if (ref.null()) return;
+    hadaq::RawEvent *evnt = nullptr;
+
+    bool takeData = false;
+    int region = 0, column, row;
+    short vphfine;
+
+    while (true)
+    {
+        evnt = ref.NextEvent(1.,-1);
+        if (!evnt) continue;
+        hadaq::RawSubevent* sub = nullptr;
+
+        while ((sub = evnt->NextSubevent(sub)) != nullptr)
+        {
+            unsigned headersNow = 0;
+            uint32_t mimFraCntNew = 0;
+            uint32_t mimFraCntOld = 0;
+            bool fraFirst = true;
+            uint32_t pulseMsg = 0;
+            unsigned size = sub->GetNrOfDataWords();
+
+            for( unsigned i = 0; i<size; i++)
+            {
+                uint32_t data = static_cast<uint32_t>(sub->Data(i));
+
+                if((data & 0xFF000000) == 0xFE000000) {
+
+                    headersNow++;
+
+                    if(headersNow == 1) {
+
+                        mimFraCntNew =  (data & 0xFF0000) >> 16;
+                        mimFraCntNew += (data & 0xFF) << 8;
+
+                    } else if(headersNow == 2) {
+
+                        mimFraCntNew +=  data & 0xFF0000;
+                        mimFraCntNew += (data & 0xFF) << 24;
+
+                        if(mimFraCntNew-mimFraCntOld != 1 && !fraFirst) {
+                            Data::mimFraCntNewVec.push_back(mimFraCntNew);
+                            Data::mimFraCntOldVec.push_back(mimFraCntOld);
+                            std::printf("Found skipped mimosis frame counter:\nOld:\t%u\nNew:\t%u\n",mimFraCntOld,mimFraCntNew);
+                        }
+                        mimFraCntOld = mimFraCntNew;
+                        fraFirst = false;
+
+                    } else if(headersNow == 3) {
+
+                        pulseMsg = (data & 0xFF0000) >> 16;
+                        pulseMsg += (data & 0xFF) << 8;
+
+                        // std::printf("%u\t%x\n",size, sub->Data(i));
+
+                    } else if(headersNow == 4) {
+
+                        pulseMsg +=  data & 0xFF0000;
+                        pulseMsg += (data & 0xFF) << 24;
+                        vphfine = ( pulseMsg & 0xFF000000 ) >> 24;
+
+                        // std::printf("%u\t%x\n",size, sub->Data(i));
+                        // std::printf("%x\n", pulseMsg);
+
+                        if( ( ( 0x00c00000 & pulseMsg ) == 0x00c00000 ) &&
+                            (vphfine == Data::vphfine)) {
+
+                            takeData = true;
+                            Data::dataFraCnt++;
+
+                            if(Data::dataFraCnt >= Data::limitFra) {
+                                takeData = false;
+                                Data::dataFraCnt = 0;
+                                goto ENDFUNC;
+                            }
+
+                            Data::sLowMax = vphfine < Data::sLowMax ? vphfine : Data::sLowMax;
+                            Data::sHigMax = vphfine > Data::sHigMax ? vphfine : Data::sHigMax;
+
+                        } else if( ( 0x00c00000 & pulseMsg ) == 0x00400000 ) {
+
+                            takeData = false;
+                            goto ENDFUNC;
+
+                        } else if( ( 0x00c00000 & pulseMsg ) == 0x00000000 ) {
+                            takeData = false;
+                            //Idle
+                        }
+                    }
+
+                } else if((data & 0xFF000000) == 0xFF000000) {
+
+                    headersNow = 0;
+
+                } else {
+
+                    headersNow = 0;
+
+                    if( takeData ) {
+
+                        if( (data & 0xFF000000) == 0xFD000000 ) {
+                            const int tmp =  (data>>16) & 0xFF;
+                            if(tmp > 63) continue;
+                            region = tmp;
+
+                        } else {
+
+                            decode_pixel(data>>16,column,row,region);
+                            if(column >= Data::xLow &&
+                               column <= Data::xHig &&
+                               row >= Data::yLow &&
+                               row < Data::yHig ) {
+                                Data::dataArray[(row*1024+column)*255+vphfine] += 1;
+                                // printf("%d %d %d %d\n",row, column, vphfine, Data::dataArray[(row*1024+column)*255+vphfine]);
+                            }
+                        }
+
+                        if((data & 0x0000FF00) != 0x0000FC00) {
+
+                            decode_pixel(data&0xFFFF,column,row,region);
+
+                            if(column >= Data::xLow &&
+                               column <= Data::xHig &&
+                               row >= Data::yLow &&
+                               row < Data::yHig ) {
+                                Data::dataArray[(row*1024+column)*255+vphfine] += 1;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    ENDFUNC:
+    ref.Disconnect();
+    return;
+}
+
+
+
+void find_edge()
+{
+    using namespace Data;
+    yLowMax = yLow < yLowMax ? yLow : yLowMax;
+    yHigMax = yHig > yHigMax ? yHig : yHigMax;
+    xLowMax = xLow < xLowMax ? xLow : xLowMax;
+    xHigMax = xHig > xHigMax ? xHig : xHigMax;
+}
+
+
+
+void write_meta()
+{
+
+    std::string fileName = Data::dataDir + "/METADATA";
+    std::ofstream file(fileName);
+
+    file << "START:" << '\t' << Data::dataDir << '\n';
+
+    file << "VCASN:";
+    for(const auto& i: Data::vcasnVec) {
+        file << '\t' << i;
+    }
+    file << '\n';
+
+    file << "YMIN:" << '\t' << Data::yLowMax << '\n';
+    file << "YMAX:" << '\t' << Data::yHigMax << '\n';
+    file << "XMIN:" << '\t' << Data::xLowMax << '\n';
+    file << "XMAX:" << '\t' << Data::xHigMax << '\n';
+    file << "SMIN:" << '\t' << Data::sLowMax << '\n';
+    file << "SMAX:" << '\t' << Data::sHigMax << '\n';
+
+    file << "EXITSTATE:" << '\t' << Data::state << '\n';
+
+    auto stop = high_resolution_clock::now();
+    auto duration = duration_cast<seconds>(stop - Data::start);
+    file << "TIME(s):" << '\t' << duration.count() << '\n';
+
+    file << "COMMENT:\t<insert comment here>\n";
+
+    file.close();
+}
+
+
+
+void signal_handler( int signum )
+{
+   std::cout << "Interrupt signal (" << signum << ") received Cleaning up...\n";
+
+   if(Data::state == "TAKEDATA" ||
+      Data::state == "WAITDAQ" ||
+      Data::state == "FIT") {
+
+       std::string lastReg = "INTERRUPTED";
+       std::string lastVca = "INTERRUPTED";
+       make_fit(lastReg, lastVca);
+       std::cout << "Remining data indicated by INTERRUPTED flags.\n";
+
+   } else {
+   }
+
+   //remove pid file
+   remove(pidName.c_str());
+
+   write_meta();
+
+   std::exit(signum);
+}
+
+
+
+int main(int argc, char* argv[])
+{
+    //Read stream url
+    std::string src = argv[1];
+
+
+    //Initialize trbnet for this run
+    int trbnetState =  init_ports();
+
+
+    //Start clock to report execution time METADATA
+    Data::start = high_resolution_clock::now();
+
+
+    //Generate the PID file
+    write_pid();
+
+
+    //Register signal SIGINT and signal handler
+    signal(SIGINT, signal_handler);
+
+
+    //Declare stateVec, that will hold the
+    //informations passed from control script
+    std::vector<std::string> stateVec;
+
+
+    //Create main data dir by time stamp
+    std::time_t time = std::time(0);
+    std::tm* now = std::localtime(&time);
+
+    Data::dataDir = std::to_string(now->tm_year + 1900) + '-'
+         + std::to_string(now->tm_mon + 1) + '-'
+         + std::to_string(now->tm_mday) + '-'
+         + std::to_string(now->tm_hour) + '-'
+         + std::to_string(now->tm_min);
+
+    mkdir(Data::dataDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+
+
+    //Initialize data array with 0's
+    for(int y = 0; y <= 505; y++)
+        for(int x = 0; x <= 1025; x++)
+            for(int s = 0; s <= 256; s++)
+                Data::dataArray[(y*1024+x)*255+s] = 0;
+
+
+    //Control loop. After init phase,
+    //wait for commands from control script
+    AWAIT:
+    stateVec = await_params();
+    Data::state = stateVec[params::STATE];
+
+    if(Data::state == "TAKEDATA") {
+
+        Data::yLow = std::stoi(stateVec[params::YLOW], nullptr, 10);
+        Data::yHig = Data::yLow + std::stoi(stateVec[params::YHIG], nullptr, 10);
+        Data::xLow = std::stoi(stateVec[params::XLOW], nullptr, 10);
+        Data::xHig = std::stoi(stateVec[params::XHIG], nullptr, 10);
+
+        std::printf("Take data: ");
+        std::printf("%4d %4d %4d %4d\n", Data::yLow, Data::yHig, Data::xLow, Data::xHig);
+        find_edge();
+        send_ack();
+        take_data(src);
+        goto AWAIT;
+
+    } else if(Data::state == "WAITDAQ") {
+
+        // std::printf("At WAITDAQ.\n");
+        send_ack();
+        goto AWAIT;
+
+    } else if(Data::state == "FIT") {
+
+        std::string regStr = stateVec[params::REGION];
+        std::string vcaStr = stateVec[params::VCASN];
+        Data::vcasnVec.push_back(vcaStr);
+        std::printf("Write data: %s %s\n",regStr.c_str(),vcaStr.c_str());
+        make_fit(regStr,vcaStr);
+        send_ack();
+        goto AWAIT;
+
+    } else if(Data::state == "DONE") {
+
+        std::printf("Done.\n");
+        send_ack();
+
+        remove(pidName.c_str());
+
+        write_meta();
+
+        return 0;
+
+    } else {
+
+        std::printf("Received garbage. Exiting.\n");
+
+        remove(pidName.c_str());
+
+        return 1;
+    }
+}
index 0d5da314d369e83a794a246228173123ee819cd4..362c25be90b1a72c6df8311a4365dd4e4b619d76 100644 (file)
@@ -135,8 +135,7 @@ bool hadaq::MimosisProcessor::FirstBufferScan(const base::Buffer& buf) noexcept
       Last4096->SetBinContent(frameNumber % 4096, hitcount);
       hitcount = 0;
 
-      if (frameCounter == 1000000) {
-        std::printf("Entries: %f\n", MatrixCurrent->GetEntries());
+      if (frameCounter == 10000) {
         MatrixCurrent->Copy(*MatrixLast);
         MatrixLast->SetName("MatrixLast10000");
         MatrixCurrent->Reset();
diff --git a/analysis/scurve/fpn.py b/analysis/scurve/fpn.py
deleted file mode 100755 (executable)
index 7c7d928..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env python
-import csv
-#from scipy import special
-import matplotlib.pyplot as plt
-import numpy as np
-import pandas as pd
-
-#dataset = pd.read_csv('regA_1.csv', delimiter='\t',header=None)
-dataset = pd.read_csv('params.csv', delimiter='\t',header=None)
-values = list(dataset.columns.values)
-meansig  = np.array(dataset[values[0:5]], dtype='float32')
-
-x = np.linspace(0, 255, num=255)
-
-hist = np.zeros(255)
-
-for i in range(len(meansig)):
-    # if i > 3500:
-    #     break
-    if meansig[i,2] != 0.0 or meansig[i,3] < 0.0 or meansig[i,3] > 255 or meansig[i,4] < 1.0 or meansig[i,4] > 10.0:
-        continue
-    hist[int(meansig[i,3])] += 1
-    # plt.plot(x, 50000*(1 + special.erf((x-meansig[i,3])/(np.sqrt(2)*meansig[i,4]))))
-
-plt.bar(x,hist,width=1)
-# plt.hist(hist)
-plt.show()
diff --git a/analysis/scurve/libtrbnet.a b/analysis/scurve/libtrbnet.a
deleted file mode 100644 (file)
index f5bd46d..0000000
Binary files a/analysis/scurve/libtrbnet.a and /dev/null differ
diff --git a/analysis/scurve/scurvemap.gp b/analysis/scurve/scurvemap.gp
deleted file mode 100644 (file)
index ea39644..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-set terminal wxt size 1200,400 font "Verdana,10"
-#set pm3d
-#set view map
-#plot 'xy.txt'  matrix using 1:2:3 with image
-
-set cbrange [-1:300]
-plot 'params.csv'  using 1:2:4  with image
-pause mouse close; exit
diff --git a/analysis/scurve/start.sh b/analysis/scurve/start.sh
deleted file mode 100755 (executable)
index 3a5e1b6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-sleep 8
-
-if [[ ! -v DAQOPSERVER ]]; then
-    echo "DAQOPSERVER not set."
-elif [[ -z "$DAQOPSERVER" ]]; then
-    echo "DAQOPSERVER empty."
-elif [[ "$DAQOPSERVER" == "jspc29:150" ]]; then
-    echo "start go4 for Lab317."
-    source /d/jspc37/soft/trb3/trb3login
-    go4analysis -http 9999 -stream localhost:36789 -disable-asf
-elif [[ "$DAQOPSERVER" == "jspc29:31" ]]; then
-    echo "start go4 for Probestation."
-    source /d/jspc37/soft/trb3/trb3login
-    go4analysis -http 8031 -stream localhost:6788 -disable-asf
-else
-    echo "DAQOPSERVER unknown value."
-fi
-
-bash -i
-
diff --git a/analysis/scurve/xy.py b/analysis/scurve/xy.py
deleted file mode 100644 (file)
index 7b95f23..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-from scipy import special
-import matplotlib.pyplot as plt
-import numpy as np
-
-plt.imshow(
-    np.reshape(
-        np.genfromtxt('regA_1.csv',
-                     delimiter='\t',
-                     usecols=(4),
-                     max_rows=44*126,
-                     ),(126,44)))
-plt.show()
diff --git a/analysis/scurve/xy.txt b/analysis/scurve/xy.txt
deleted file mode 100644 (file)
index b4ecc57..0000000
+++ /dev/null
@@ -1,1803 +0,0 @@
-1802
-0 1 204.887 2.62892
-5 1 169.074 5.57744
-6 1 151.855 4.76436
-9 1 136.736 4.56072
-13 1 119.568 4.70458
-16 1 145.219 4.5904
-17 1 147.155 5.60792
-18 1 126.086 5.06185
-19 1 117.259 4.71903
-25 1 117.563 4.54783
-27 1 111.458 4.53862
-28 1 140.287 4.6406
-30 1 100.931 4.64201
-34 1 85.5817 4.62994
-38 1 119.781 5.14132
-39 1 107.719 4.73257
-43 1 82.0298 4.57845
-44 1 86.9735 4.58208
-49 1 122.629 4.96525
-53 1 75.657 4.96523
-54 1 79.9623 4.81116
-61 1 103.655 4.93159
-65 1 125.542 0.0976515
-67 1 111.253 5.37412
-70 1 81.0507 5.05282
-72 1 106.846 5.00344
-75 1 85.2735 5.04771
-76 1 106.141 5.16744
-79 1 117.197 5.345
-80 1 78.4733 5.26289
-81 1 126.153 5.71021
-82 1 117.904 6.21355
-85 1 117.899 6.04442
-87 1 115.815 6.45496
-91 1 121.038 5.71265
-96 1 91.1735 5.44282
-97 1 107.354 5.66304
-99 1 104.366 5.30868
-100 1 65.8619 5.94169
-101 1 127.716 6.39837
-104 1 141.049 6.44826
-108 1 86.3755 5.34667
-109 1 132.906 6.61403
-111 1 86.9808 5.51858
-112 1 88.2108 5.30762
-113 1 131.616 6.65229
-114 1 91.5653 5.16366
-117 1 99.4147 5.79943
-119 1 126.482 6.62938
-120 1 118.106 6.02296
-125 1 112.747 6.06742
-1 2 182.714 5.44451
-2 2 198.452 5.31695
-9 2 205.748 5.62077
-10 2 147.624 4.66194
-11 2 143.529 4.66142
-12 2 129.058 5.09867
-14 2 161.312 5.47931
-17 2 130.324 4.97377
-19 2 141.088 4.83084
-20 2 119.808 4.71585
-21 2 187.333 5.52058
-27 2 133.682 5.19765
-28 2 140.215 5.3201
-30 2 132.51 5.08485
-34 2 104.291 4.5292
-35 2 133.306 5.1552
-39 2 119.813 4.77725
-40 2 91.6107 4.86636
-41 2 120.968 5.27308
-42 2 114.817 5.10319
-45 2 112.376 5.34893
-48 2 163.66 6.56524
-50 2 200.595 6.61568
-57 2 109.931 5.24946
-61 2 107.745 5.15074
-62 2 175.737 6.57445
-64 2 95.3495 5.2498
-66 2 101.83 5.13274
-68 2 81.8209 5.07924
-74 2 117.087 5.25244
-77 2 133.268 6.32361
-81 2 143.927 6.11177
-83 2 112.773 5.45176
-85 2 96.0253 5.23114
-91 2 108.46 5.65739
-93 2 91.7139 5.26353
-95 2 89.5811 5.26521
-96 2 112.402 6.97917
-99 2 123.163 5.3475
-100 2 104.808 5.45401
-102 2 83.5607 5.15823
-103 2 78.2909 5.52383
-106 2 132.32 6.60923
-110 2 176.144 7.55793
-111 2 122.955 5.94913
-114 2 94.1672 5.61287
-117 2 90.6716 5.81997
-118 2 184.532 7.53999
-119 2 123.006 6.02927
-121 2 163.275 7.29617
-123 2 158.073 7.118
-126 2 204.087 4.92489
-0 3 204.087 4.92489
-2 3 168.472 6.44934
-3 3 161.395 5.60083
-4 3 157.444 5.00123
-5 3 173.465 5.11214
-7 3 175.243 4.95392
-11 3 136.536 4.75411
-13 3 149.605 4.76952
-18 3 121.572 4.85951
-21 3 138.406 0.0813514
-22 3 114.36 4.91102
-29 3 109.135 4.66549
-33 3 142.987 5.16253
-39 3 147.505 5.25578
-40 3 106.754 4.77456
-43 3 159.924 5.99749
-45 3 116.77 4.97733
-49 3 136.705 5.66743
-53 3 94.6123 4.9935
-55 3 133.302 5.97386
-56 3 146.11 5.61037
-57 3 107.792 5.17766
-60 3 95.2504 5.29588
-61 3 75.693 5.05075
-62 3 89.3778 5.04078
-64 3 135.738 6.06294
-67 3 115.481 5.10406
-72 3 97.726 5.11364
-75 3 118.05 5.44534
-78 3 135.802 6.63253
-81 3 88.15 5.1598
-82 3 129.168 6.15513
-86 3 89.3757 5.3035
-87 3 141.564 5.8589
-92 3 112.375 5.78766
-93 3 109.891 5.38065
-99 3 103.611 5.5107
-101 3 140.196 5.83145
-103 3 133.194 6.11167
-106 3 118.432 5.86548
-107 3 180.937 7.08133
-111 3 153.781 6.49087
-112 3 76.9185 5.41835
-115 3 107.994 5.4899
-118 3 94.5527 5.79039
-119 3 171.517 7.18343
-120 3 146.119 5.83818
-122 3 143.402 6.8133
-123 3 100.682 6.15544
-125 3 115.043 5.73156
-4 4 176.317 5.39741
-5 4 182.236 5.38413
-7 4 170.575 5.23069
-9 4 148.12 5.09748
-12 4 140.566 4.65146
-17 4 174.496 0.00420972
-18 4 166.845 5.05593
-20 4 175.646 5.41274
-29 4 118.326 4.7125
-30 4 97.6031 4.48285
-31 4 132.603 5.19623
-32 4 149.514 5.70642
-33 4 118.607 4.47627
-42 4 119.362 4.71376
-46 4 139.641 5.36148
-49 4 91.7814 4.9488
-50 4 112.781 5.38695
-52 4 105.949 4.9824
-53 4 95.144 5.23774
-64 4 131.876 5.94145
-72 4 110.29 5.33067
-74 4 77.6776 6.01851
-76 4 101.218 5.35155
-83 4 156.239 6.66254
-87 4 130.544 5.97286
-88 4 78.1687 5.41461
-89 4 107.335 5.834
-90 4 125.52 5.95508
-93 4 162.444 7.53586
-97 4 137.965 6.19714
-101 4 140.184 5.84579
-102 4 125.37 5.79077
-103 4 100.475 5.70535
-104 4 72.6036 5.56088
-106 4 140.286 6.24502
-113 4 131.236 6.07378
-114 4 93.3766 5.70558
-117 4 128.518 0.0330302
-121 4 158.319 6.95281
-124 4 143.733 6.25103
-1 5 201.607 5.72991
-2 5 187.688 5.12217
-4 5 180.102 6.20849
-6 5 156.838 5.33092
-10 5 162.556 4.99191
-13 5 156.586 5.06084
-14 5 130.292 4.75498
-17 5 140.681 4.8639
-27 5 142.835 4.97575
-29 5 127.091 4.98568
-30 5 106.622 4.59925
-31 5 112.921 4.78639
-32 5 154.964 5.81185
-35 5 114.238 4.75209
-40 5 119.667 5.21128
-41 5 100.203 4.90258
-42 5 159.384 6.43799
-44 5 124.668 5.15869
-46 5 89.7913 4.86893
-52 5 172.1 6.1554
-55 5 115.327 5.01195
-57 5 97.6178 5.18596
-58 5 84.6852 5.01429
-59 5 135.797 6.16241
-60 5 96.8537 5.2605
-61 5 89.6727 5.1155
-65 5 161.235 5.8049
-67 5 87.6532 4.93223
-69 5 85.1622 5.13139
-72 5 143.393 6.02969
-74 5 74.2379 5.40395
-75 5 114.157 5.32712
-76 5 89.2719 5.18653
-79 5 126.246 5.601
-82 5 140.835 5.92219
-92 5 108.394 5.39492
-93 5 141.514 6.25766
-95 5 133.569 5.66311
-96 5 68.3429 5.57409
-99 5 84.5801 5.50932
-100 5 119.464 5.45749
-104 5 97.7202 5.68109
-107 5 91.684 5.70258
-109 5 133.727 6.27859
-110 5 118.754 5.72364
-115 5 115.836 5.50863
-116 5 87.3238 5.64722
-123 5 74.9198 5.94019
-124 5 88.1358 5.91108
-125 5 93.5583 5.75993
-126 5 175.326 5.91378
-0 6 175.326 5.91378
-1 6 167.197 5.28491
-2 6 169.02 5.62206
-3 6 163.848 5.04628
-5 6 147.963 5.31818
-7 6 164.502 4.80041
-9 6 152.628 5.17269
-13 6 128.968 4.9353
-15 6 115.128 4.61172
-17 6 166.335 5.1692
-19 6 199.983 6.58075
-22 6 123.696 4.69142
-25 6 126.445 4.84929
-26 6 120.491 4.58241
-28 6 165.744 5.35818
-30 6 108.458 4.75289
-32 6 109.781 4.73571
-39 6 105.99 4.74766
-41 6 116.017 6.11163
-42 6 178.742 5.78793
-43 6 108.11 4.79678
-44 6 101.457 4.79156
-45 6 111.601 4.89926
-49 6 99.5783 5.19444
-55 6 212.175 7.67683
-56 6 91.9355 6.23238
-57 6 98.8008 5.36238
-59 6 154.857 5.92826
-62 6 132.281 8.76994
-65 6 158.108 6.08759
-66 6 83.1567 5.1
-67 6 100.707 5.18618
-69 6 123.989 5.63131
-71 6 128.495 5.82913
-75 6 89.8433 5.09909
-78 6 148.354 6.33047
-79 6 132.108 6.52171
-80 6 131.841 5.95909
-85 6 125.153 5.86157
-86 6 127.418 6.59116
-91 6 227.982 5.73526
-92 6 110.95 5.60442
-93 6 128.606 5.91627
-96 6 99.0581 5.6031
-99 6 85.1973 5.37041
-101 6 83.7356 5.47711
-102 6 93.0195 5.65449
-109 6 92.7344 5.92618
-110 6 131.24 5.80776
-111 6 157.09 6.8676
-120 6 76.9208 5.83979
-121 6 105.402 6.07096
-126 6 198.287 5.5102
-0 7 198.287 5.5102
-1 7 171.042 5.50187
-4 7 164.718 5.00539
-6 7 137.803 4.69126
-8 7 163.351 4.9212
-9 7 159.086 4.80471
-10 7 142.097 4.7408
-11 7 144.442 4.92833
-15 7 134.296 4.78954
-18 7 136.404 4.76351
-21 7 115.672 4.58366
-23 7 144.6 5.17777
-24 7 143.469 4.89639
-27 7 126.459 5.12063
-30 7 147.402 5.46985
-37 7 121.049 4.34323
-41 7 91.5438 4.97194
-42 7 187.288 6.20531
-44 7 126.76 4.94265
-46 7 118.788 5.04672
-55 7 129.231 5.17907
-57 7 117.781 5.65123
-58 7 98.9405 5.0501
-59 7 99.6262 5.27662
-63 7 111.799 5.15412
-64 7 86.9903 5.17765
-65 7 196.603 7.46338
-66 7 118.677 5.03877
-69 7 148.058 6.21402
-75 7 143.961 6.35032
-80 7 137.065 5.80413
-82 7 112.962 5.63842
-84 7 105.02 5.27222
-85 7 156.803 6.53847
-88 7 129.006 5.8845
-89 7 163.483 6.68052
-90 7 118.716 5.48675
-92 7 162.465 0.160591
-94 7 130.331 6.02605
-98 7 121.863 5.71169
-99 7 107.892 5.71597
-100 7 82.105 5.38358
-101 7 122.698 5.59681
-102 7 106.778 5.84931
-107 7 85.9276 5.47367
-111 7 142.299 6.67907
-112 7 88.7663 5.56803
-113 7 144.936 6.34749
-115 7 153.541 11.2562
-118 7 135.977 6.77205
-120 7 62.3184 5.83616
-123 7 85.7305 5.99155
-1 8 177.236 5.25765
-5 8 145.903 4.806
-14 8 134.579 5.2141
-15 8 120.18 4.65849
-18 8 141.124 4.68897
-19 8 132.123 5.39997
-21 8 156.553 4.96854
-27 8 130.991 5.35905
-29 8 108.753 4.99
-31 8 112.755 4.89494
-33 8 135.302 5.40136
-34 8 110.039 4.8418
-36 8 104.705 5.0711
-41 8 129.433 5.47584
-44 8 117.924 5.3039
-48 8 155.175 5.65458
-49 8 118.739 5.17974
-55 8 87.744 5.05032
-56 8 124.23 5.70268
-58 8 84.4378 5.12509
-59 8 113.756 5.35351
-60 8 85.3472 5.07646
-61 8 113.415 5.36672
-62 8 85.891 5.03078
-67 8 91.0574 5.29826
-71 8 113.557 5.57316
-72 8 94.2647 5.47827
-78 8 93.4774 5.40925
-81 8 158.025 6.27498
-82 8 89.1719 5.37559
-95 8 90.2649 5.16971
-96 8 91.7786 5.88966
-100 8 97.3477 5.99893
-101 8 161.622 6.81614
-105 8 186.403 7.42563
-106 8 93.5585 6.60595
-107 8 81.1102 5.63057
-109 8 115.223 5.74117
-110 8 180.33 7.11959
-114 8 144.527 5.82562
-115 8 88.9571 5.89976
-116 8 95.9409 6.21209
-120 8 71.3141 6.22376
-121 8 109.29 6.31976
-123 8 63.4298 6.30629
-1 9 182.818 4.90633
-2 9 174.884 5.83008
-3 9 160.091 5.06546
-4 9 150.577 5.45948
-5 9 147.828 4.971
-6 9 162.451 5.45034
-7 9 144.16 4.66122
-9 9 155.886 4.61081
-12 9 148.245 5.08894
-20 9 125.529 5.16309
-21 9 166.798 5.76651
-22 9 127.387 5.24361
-23 9 125.125 4.92349
-27 9 135.801 5.18141
-28 9 134.804 5.23876
-29 9 125.776 5.10847
-30 9 106.309 5.07307
-32 9 109.068 4.84825
-35 9 140.893 4.66249
-40 9 102.478 5.2741
-42 9 96.5653 5.10824
-43 9 134.616 5.50763
-47 9 114.152 5.17913
-50 9 86.5669 4.93553
-55 9 98.3374 6.2469
-56 9 71.5774 5.48139
-59 9 90.0081 5.49151
-60 9 87.1128 5.19626
-61 9 79.6284 5.31176
-62 9 105.873 5.39735
-65 9 118.223 5.7942
-68 9 137.971 5.62755
-71 9 91.8339 5.44705
-78 9 95.1502 5.62312
-80 9 99.4219 5.68456
-88 9 88.4418 5.56751
-89 9 131.547 6.15574
-92 9 95.5478 5.66215
-93 9 168.331 7.32253
-100 9 106.944 6.04837
-101 9 73.2395 5.71437
-102 9 73.4979 5.68816
-106 9 74.4396 3.74259
-108 9 82.9599 5.57256
-109 9 109.447 6.75742
-112 9 91.9461 5.75097
-114 9 110.48 5.85196
-115 9 156.786 6.35045
-124 9 86.4974 5.62727
-2 10 178.652 4.8761
-6 10 174.853 5.45852
-7 10 158.298 4.68408
-8 10 154.915 4.85064
-9 10 149.685 5.15226
-11 10 133.899 5.5165
-12 10 169.447 5.74583
-13 10 152.514 4.98834
-15 10 129.504 5.14771
-16 10 175.433 6.25344
-20 10 131.705 5.31245
-24 10 116.469 3.99699
-26 10 150.491 0.00320338
-29 10 110.035 4.64214
-31 10 115.993 4.79313
-36 10 94.6092 5.10946
-39 10 118.548 5.80364
-40 10 148.265 6.03051
-41 10 155.592 5.48149
-43 10 115.798 4.05315
-44 10 131.721 5.47277
-45 10 88.9766 4.98495
-50 10 105.493 5.42695
-53 10 94.6904 5.13775
-54 10 85.1893 5.02019
-55 10 84.2405 5.12698
-56 10 91.9448 5.11057
-57 10 114.517 0.065024
-59 10 126.43 5.92617
-60 10 82.8108 5.07902
-62 10 95.5623 5.32874
-64 10 149.159 5.68536
-65 10 165.189 5.96089
-69 10 146.879 5.46148
-72 10 78.5563 5.15353
-83 10 132.077 6.00871
-86 10 86.0406 5.28321
-87 10 117.061 5.84547
-92 10 147.235 5.79924
-93 10 123.753 5.85454
-98 10 124.022 6.08151
-100 10 89.0596 5.60492
-101 10 105.326 5.50206
-103 10 141.303 6.36584
-106 10 113.633 6.40789
-112 10 77.87 5.62397
-114 10 76.1467 5.64535
-120 10 86.9706 5.8321
-121 10 119.266 6.36709
-2 11 150.199 5.29151
-3 11 163.967 5.24995
-4 11 170.321 5.48565
-8 11 137.246 5.48988
-9 11 158.967 4.91326
-11 11 135.105 5.54561
-12 11 151.181 4.90873
-13 11 136.905 5.24259
-14 11 135.252 5.49235
-15 11 124.841 4.68254
-17 11 141.464 4.68086
-18 11 122.776 4.72262
-23 11 121.815 4.67421
-26 11 103.175 5.12618
-29 11 126.098 4.8977
-31 11 113.197 4.88615
-32 11 124.481 5.10289
-33 11 109.102 4.93742
-35 11 109.804 5.05074
-36 11 115.15 4.95502
-37 11 118.472 4.85182
-38 11 134.472 5.51774
-39 11 105.772 5.22269
-42 11 94.0749 5.19786
-44 11 156.74 5.63002
-45 11 92.9424 5.15032
-47 11 106.512 5.23169
-51 11 97.1243 5.60653
-54 11 112.134 5.26744
-55 11 90.0338 5.05515
-58 11 106.572 5.38565
-61 11 114.205 5.26471
-63 11 160.084 5.71776
-64 11 110.866 6.41187
-70 11 83.7304 5.17729
-72 11 65.2861 5.63057
-74 11 113.291 6.30324
-76 11 84.6364 5.28854
-77 11 119.267 5.55479
-83 11 66.2287 5.80408
-84 11 130.843 7.03257
-85 11 117.568 5.76083
-90 11 84.7451 5.58872
-91 11 81.4159 5.44957
-93 11 86.589 5.56529
-97 11 161.668 6.35338
-98 11 106.385 5.71741
-101 11 108.452 6.00901
-104 11 101.789 6.05724
-105 11 65.1338 6.19393
-109 11 80.4416 6.24798
-112 11 66.3818 6.07491
-113 11 82.2492 5.5469
-114 11 65.952 0.00770582
-115 11 79.6977 5.656
-117 11 123.231 6.41474
-126 11 218.162 6.05702
-0 12 218.162 6.05702
-1 12 156.045 5.38767
-2 12 156.304 5.03033
-3 12 144.412 5.13625
-6 12 155.279 5.23542
-7 12 148.064 5.46257
-8 12 157.147 5.25817
-9 12 168.922 4.88971
-10 12 146.305 5.62361
-12 12 164.002 5.11376
-14 12 139.388 4.92077
-15 12 152.237 5.29927
-17 12 118.794 4.38196
-18 12 134.377 4.82242
-19 12 150.42 5.67079
-20 12 121.041 4.71233
-22 12 129.34 5.24261
-24 12 154.355 5.58759
-25 12 211.142 8.05821
-26 12 160.81 5.20794
-27 12 122.669 5.13457
-29 12 116.565 4.69615
-30 12 116.466 4.72735
-33 12 113.262 4.51563
-35 12 125.706 5.23028
-36 12 164.138 5.83711
-37 12 144.788 5.53706
-39 12 97.1895 4.98789
-41 12 123.418 5.12172
-48 12 96.2277 5.2209
-50 12 94.1189 5.17842
-52 12 89.9029 5.96297
-56 12 139.986 5.85232
-57 12 117.424 5.20793
-58 12 135.223 6.17585
-59 12 103.947 5.19066
-62 12 86.1829 3.85406
-66 12 128.189 5.59246
-69 12 102.434 5.27169
-71 12 134.316 5.89993
-72 12 134.436 5.80566
-76 12 87.5875 5.30194
-94 12 74.7826 5.48623
-95 12 84.313 5.24594
-97 12 92.2549 5.6262
-98 12 91.0492 5.67826
-100 12 118.027 5.00701
-101 12 116.556 0.0837677
-106 12 139.751 6.44571
-107 12 94.4234 5.67526
-111 12 82.2684 5.61628
-113 12 182.517 6.88535
-117 12 167.847 6.62857
-118 12 132.941 5.98963
-119 12 175.274 6.97498
-121 12 163.155 6.95012
-122 12 86.2583 5.62366
-1 13 156.862 5.01598
-6 13 155.073 5.14836
-8 13 161.322 4.75016
-9 13 171.867 5.32061
-12 13 130.052 4.97546
-14 13 132.878 4.83204
-15 13 195.027 3.64764
-16 13 131.695 4.86708
-17 13 210.551 5.70324
-18 13 155.053 5.46046
-20 13 142.758 5.15448
-21 13 120.103 4.74769
-26 13 132.997 5.18099
-29 13 125.651 4.85905
-31 13 140.27 0.0881261
-33 13 91.7734 4.82285
-37 13 93.0743 4.92768
-38 13 103.222 5.09488
-40 13 188.463 5.3785
-44 13 121.385 4.95901
-46 13 127.245 5.42714
-48 13 110.493 5.05703
-51 13 139.191 5.84562
-53 13 137.428 5.6199
-57 13 125.217 5.76995
-59 13 115.361 5.38447
-61 13 81.4632 5.03483
-66 13 153.412 6.43247
-72 13 93.4831 5.28472
-77 13 78.3725 5.29642
-79 13 112.169 5.35463
-80 13 105.607 5.27625
-82 13 173.913 6.42941
-87 13 124.597 5.63215
-90 13 100.449 5.86086
-92 13 94.9681 5.65884
-94 13 86.8992 5.32937
-95 13 126.995 6.07021
-97 13 124.657 5.9817
-98 13 171.172 7.00597
-100 13 133.487 0.0468793
-101 13 113.296 5.64721
-104 13 101.704 5.38983
-105 13 141.77 6.56596
-107 13 136.064 6.90921
-108 13 85.9385 5.57219
-110 13 123.753 6.25936
-114 13 96.7647 5.88406
-119 13 85.6437 5.61356
-120 13 159.692 6.53773
-122 13 90.3509 6.0933
-124 13 155.341 6.81222
-126 13 150.622 5.52635
-0 14 150.622 5.52635
-2 14 157.048 5.27255
-3 14 185.927 4.48333
-4 14 150.817 5.43728
-8 14 144.97 5.12216
-10 14 156.815 5.0888
-11 14 150.677 5.63986
-13 14 147.877 5.4736
-14 14 109.496 0.113644
-17 14 127.266 4.73262
-22 14 115.865 4.40922
-23 14 204.052 4.33094
-27 14 138.079 5.15829
-29 14 120.924 4.88683
-31 14 117.447 4.6163
-32 14 104.961 4.86162
-35 14 153.418 5.68778
-37 14 143.493 5.32351
-38 14 138.108 5.55992
-39 14 118.008 4.7018
-40 14 169.488 5.90541
-46 14 103.196 5.01175
-47 14 91.4226 5.17383
-49 14 149.744 6.46542
-52 14 94.8567 6.485
-53 14 99.9087 5.18039
-54 14 177.17 7.05597
-60 14 137.139 5.97694
-61 14 112.206 6.51355
-64 14 138.817 7.36664
-69 14 113.748 5.31963
-70 14 76.5868 5.36718
-73 14 109.426 5.66057
-76 14 133.109 6.25064
-84 14 90.2213 5.28326
-85 14 92.9412 5.49278
-90 14 135.337 6.10406
-92 14 160.952 6.47263
-93 14 97.0143 5.54913
-95 14 208.621 6.41129
-96 14 88.6414 5.40134
-97 14 84.0684 5.5622
-98 14 103.168 5.56412
-99 14 109.64 5.6998
-102 14 101.289 5.63415
-106 14 119.646 5.9076
-108 14 88.3528 5.55687
-109 14 121.378 6.16023
-111 14 84.3673 5.47516
-113 14 123.482 6.22004
-116 14 107.164 6.10844
-118 14 125.016 6.36396
-123 14 134.358 6.44225
-126 14 172.442 5.12927
-0 15 172.442 5.12927
-1 15 168.002 4.88885
-2 15 151.501 5.38817
-3 15 149.871 5.40671
-6 15 167.821 5.02442
-8 15 146.549 5.58105
-10 15 133.064 4.936
-13 15 150.876 5.40507
-20 15 128.734 4.82359
-22 15 166.454 5.60815
-23 15 104.976 4.86862
-25 15 124.256 5.15418
-27 15 125.51 0.11703
-29 15 111.042 4.48627
-31 15 123.454 0.0866978
-40 15 107.637 5.29333
-44 15 95.814 4.94127
-47 15 150.974 5.83143
-49 15 166.506 6.38817
-52 15 125.07 5.45577
-59 15 111.538 5.41371
-60 15 115.698 5.12044
-61 15 124.462 4.72447
-64 15 111.026 5.23486
-66 15 89.7421 5.17372
-70 15 193.205 4.57336
-71 15 81.8463 4.31931
-74 15 102.446 5.26552
-76 15 110.384 5.47981
-77 15 116.638 5.44213
-79 15 122.756 5.61931
-84 15 150.512 6.80409
-85 15 107.853 5.2971
-90 15 79.5436 5.59932
-91 15 88.4102 5.54352
-93 15 90.8221 5.42585
-99 15 84.3132 10.4631
-102 15 87.6206 5.49558
-105 15 117.598 5.87054
-106 15 93.3226 5.53409
-114 15 96.8241 5.79501
-117 15 116.829 5.74406
-118 15 112.765 5.79962
-120 15 136.53 6.6956
-123 15 89.5117 6.15744
-1 16 149.586 5.50101
-2 16 153.185 5.51934
-4 16 159.174 5.70326
-7 16 149.859 5.05259
-9 16 135.053 4.89109
-11 16 120.527 0.0459701
-12 16 130.357 4.735
-16 16 142.44 4.71917
-17 16 141.035 4.91557
-20 16 129.671 4.82744
-23 16 150.529 5.18672
-34 16 191.842 5.57484
-36 16 117.456 4.85176
-37 16 95.088 4.86125
-38 16 141.746 5.53175
-39 16 159.892 6.13352
-43 16 118.886 5.30941
-44 16 122.12 5.02148
-46 16 94.7099 4.97622
-49 16 137.15 5.36368
-50 16 87.2951 4.76601
-52 16 176.012 5.41025
-53 16 143.684 6.01798
-57 16 152.754 6.26205
-58 16 118.803 5.56603
-70 16 136.386 6.18235
-77 16 177.178 5.83276
-79 16 145.243 6.32271
-87 16 109.23 5.28563
-95 16 92.9765 5.29723
-97 16 146.341 6.54588
-103 16 67.0781 5.8407
-104 16 74.6689 5.56971
-105 16 154.567 7.22683
-106 16 111.894 5.95352
-110 16 130.142 5.9982
-112 16 93.0591 5.66731
-115 16 113.4 5.80273
-118 16 113.522 6.05605
-122 16 132.315 7.15229
-124 16 83.2528 5.65264
-126 16 164.339 5.65613
-0 17 164.339 5.65613
-3 17 158.339 5.7376
-4 17 147.932 4.92924
-6 17 177.626 4.95638
-9 17 133.976 4.99307
-13 17 133.352 4.93366
-15 17 158.821 5.38286
-16 17 119.167 4.61565
-18 17 127.115 4.52805
-24 17 127.835 5.20422
-25 17 123.844 4.75343
-26 17 139.112 5.2759
-32 17 113.53 4.81099
-33 17 111.125 4.90942
-37 17 150.736 5.46923
-38 17 87.6989 4.39602
-42 17 155.351 5.84156
-44 17 88.1776 4.62669
-50 17 100.732 5.02669
-57 17 120.18 5.0389
-60 17 96.5599 5.38573
-61 17 84.3191 5.04098
-76 17 165.139 6.30877
-77 17 102.836 5.44811
-78 17 189.077 6.62525
-79 17 128.061 5.72397
-80 17 75.2897 5.33695
-81 17 110.092 5.74463
-83 17 132.624 6.23839
-84 17 110.363 5.65253
-85 17 80.0509 5.29788
-87 17 120.935 6.1957
-89 17 96.7553 5.59466
-90 17 126.618 5.8079
-91 17 113.717 5.5733
-93 17 117.236 6.52629
-94 17 156.691 7.34582
-95 17 139.466 6.5127
-96 17 116.623 5.83757
-97 17 138.683 6.64632
-105 17 112.139 5.74254
-108 17 158.839 6.65621
-109 17 225.925 7.74187
-110 17 69.9301 5.89917
-114 17 79.0263 5.69294
-117 17 88.87 5.79746
-121 17 105.594 5.97562
-123 17 144.906 6.72345
-124 17 150.117 6.57394
-126 17 150.576 5.12928
-0 18 150.576 5.12928
-4 18 150.25 5.01379
-7 18 136.595 4.86163
-9 18 132.641 4.85517
-10 18 138.694 4.67577
-13 18 130.824 4.78101
-14 18 146.13 4.9096
-16 18 122.257 4.44587
-26 18 123.728 4.63215
-27 18 112.32 4.67527
-32 18 112.448 5.15625
-37 18 144.374 5.11107
-39 18 139.171 5.42015
-42 18 120.932 4.96265
-44 18 94.0136 4.95016
-45 18 117.685 4.87809
-49 18 98.7308 5.09524
-51 18 83.5507 4.82664
-54 18 155.615 6.21839
-58 18 142.603 6.25841
-60 18 111.411 5.27577
-61 18 128.192 5.60039
-64 18 121.972 5.755
-65 18 79.7435 5.08194
-66 18 108.534 5.89882
-69 18 94.2525 5.25549
-70 18 109.479 0.0910515
-73 18 169.216 6.60974
-74 18 107.995 5.40506
-78 18 120.036 5.70517
-79 18 160.569 6.64422
-81 18 84.3507 5.31234
-82 18 92.4203 5.74894
-84 18 95.8109 5.51481
-85 18 157.812 7.1395
-86 18 83.6691 5.18021
-87 18 127.681 5.54421
-88 18 102.468 5.63776
-89 18 110.094 5.66247
-93 18 126.846 5.95144
-94 18 150.01 6.51175
-95 18 133.839 6.45723
-101 18 143.288 6.41724
-102 18 108.737 5.59883
-107 18 166.286 6.84005
-109 18 114.323 6.00618
-112 18 118.201 5.03922
-113 18 136.957 0.0566004
-114 18 149.474 7.72143
-115 18 99.5167 5.83842
-116 18 128.296 6.64628
-120 18 120.786 5.87821
-123 18 103.866 5.7759
-124 18 187.522 6.91608
-126 18 151.258 5.05641
-0 19 151.258 5.05641
-3 19 181.586 4.92887
-4 19 156.26 5.87928
-9 19 127.815 4.58353
-17 19 142.698 5.45812
-19 19 154.804 5.59005
-22 19 120.478 0.0453386
-23 19 129.856 4.98356
-28 19 156.229 5.78716
-31 19 150.594 6.50517
-32 19 115.349 4.78726
-35 19 124.614 4.67815
-36 19 145.467 5.65779
-37 19 112.065 4.91849
-38 19 102.519 5.53834
-42 19 95.672 5.06168
-48 19 83.4336 4.75275
-49 19 116.936 5.02688
-50 19 98.5707 5.00618
-52 19 108.415 5.05071
-53 19 104.478 5.15581
-55 19 134.756 5.60587
-59 19 112.812 5.54628
-61 19 127.538 5.38065
-65 19 138.659 6.06629
-68 19 154.304 6.88672
-74 19 155.667 6.33027
-75 19 125.52 5.87476
-82 19 87.297 5.31999
-87 19 115.111 5.48084
-89 19 90.2948 0.0889318
-90 19 156.49 6.68039
-97 19 181.259 6.05259
-98 19 153.97 7.01874
-100 19 82.9229 5.57676
-101 19 107.328 5.8761
-102 19 237.07 7.7941
-106 19 185.608 6.44534
-109 19 139.05 6.50669
-110 19 77.6546 5.69732
-112 19 128.501 6.27137
-114 19 152.379 6.98661
-117 19 116.117 4.06441
-118 19 192.567 6.92933
-120 19 152.932 7.16903
-123 19 90.2054 6.03619
-2 20 133.721 5.09639
-3 20 144.986 5.01151
-6 20 137.211 4.82549
-9 20 127.391 4.58905
-10 20 170.773 5.12187
-11 20 223.934 6.43887
-12 20 144.42 4.86266
-16 20 139.725 4.78211
-17 20 161.376 5.03185
-18 20 122.87 4.1961
-19 20 166.117 5.2826
-20 20 165.579 5.79476
-21 20 157.624 5.31467
-24 20 127.462 0.0387928
-26 20 184.785 5.89519
-27 20 132.17 4.55631
-28 20 116.923 4.40032
-29 20 108.674 4.52099
-31 20 124.03 4.66632
-32 20 114.863 4.57943
-35 20 93.6392 5.04408
-37 20 101.322 4.50821
-38 20 105.42 4.42452
-39 20 210.7 7.81543
-41 20 158.643 6.18235
-44 20 134.098 6.37673
-55 20 107.879 5.98539
-59 20 112.633 6.19205
-64 20 97.5968 5.24272
-65 20 100.92 4.98137
-66 20 117.21 5.28906
-68 20 86.3578 5.18126
-71 20 87.649 5.67097
-73 20 139.015 6.47872
-75 20 133.329 6.76608
-76 20 110.815 5.07719
-77 20 134.912 6.85945
-78 20 93.4582 5.43462
-83 20 137.897 5.97452
-85 20 88.124 5.38211
-86 20 75.5225 5.45084
-90 20 116.37 5.52396
-92 20 133.81 6.63816
-93 20 143.122 6.38041
-94 20 213.277 6.58582
-95 20 108.691 5.2243
-97 20 175.277 7.01487
-100 20 124.179 5.9065
-102 20 109.66 5.43708
-107 20 111.719 5.49521
-109 20 161.557 6.69612
-112 20 112.78 5.4832
-113 20 152.511 7.05377
-114 20 125.824 5.88424
-115 20 65.9672 5.73239
-117 20 160.143 7.15568
-123 20 142.63 6.68048
-125 20 130.275 6.40877
-2 21 142.02 5.09378
-3 21 134.572 4.67663
-6 21 151.087 5.05463
-7 21 143.974 5.00968
-8 21 167.699 5.11734
-10 21 145.519 0.0853995
-15 21 147.173 5.07169
-25 21 144.356 5.07191
-26 21 152.864 5.61456
-31 21 110.721 4.3798
-32 21 108.48 0.0214691
-35 21 124.148 4.89902
-43 21 209.588 7.84451
-45 21 143.793 5.75157
-51 21 83.0615 5.43844
-56 21 109.763 4.95239
-58 21 93.6529 5.31533
-60 21 92.2915 5.45073
-61 21 114.032 5.19005
-65 21 150.892 6.22387
-66 21 154.141 6.01599
-69 21 87.5071 5.58583
-70 21 143.729 6.32976
-72 21 88.1549 5.65033
-73 21 120.414 5.77207
-78 21 79.7008 5.58871
-80 21 88.3769 5.79956
-81 21 70.8898 4.71293
-85 21 81.5083 5.53794
-87 21 90.8136 5.89448
-88 21 126.112 5.62444
-89 21 132.83 6.03504
-91 21 134.391 6.43873
-92 21 135.331 6.06488
-94 21 110.689 5.2698
-95 21 145.265 6.60975
-97 21 127.251 5.79843
-98 21 112.323 5.25889
-99 21 138.423 6.33747
-101 21 168.7 6.95913
-103 21 162.494 6.59642
-106 21 205.247 8.30559
-111 21 189.154 8.49446
-112 21 77.2978 5.81802
-116 21 132.478 6.37253
-117 21 69.9642 6.04163
-121 21 89.5937 6.42544
-122 21 124.006 5.84415
-123 21 137.237 6.34176
-124 21 99.176 5.95573
-125 21 124.104 6.35092
-126 21 151.445 5.38801
-0 22 151.445 5.38801
-2 22 185.848 5.2372
-4 22 142.538 5.10067
-6 22 173.88 5.21991
-7 22 180.13 5.04209
-8 22 126.356 4.40203
-9 22 145.365 4.93547
-12 22 117.476 4.35959
-13 22 134.488 5.0166
-14 22 240.672 6.37012
-15 22 140.136 5.08601
-17 22 128.361 4.96136
-27 22 146.62 5.20146
-28 22 125.42 4.67108
-31 22 121.734 4.6798
-36 22 99.4848 4.62048
-38 22 127.74 4.90072
-40 22 108.976 4.5894
-45 22 173.119 6.08287
-46 22 203.2 7.26049
-47 22 198.106 7.39251
-52 22 123.579 5.54738
-53 22 160.109 6.02569
-54 22 88.8071 5.66951
-55 22 106.511 4.78352
-57 22 134.182 5.53683
-65 22 132.467 5.48117
-66 22 93.1924 5.44759
-67 22 113.532 5.17562
-71 22 101.408 5.0243
-74 22 148.087 6.60449
-77 22 90.8924 5.74623
-82 22 120.486 5.21003
-83 22 136.692 6.44546
-84 22 116.211 5.31461
-92 22 163.148 7.08076
-95 22 68.5004 0.0829071
-97 22 140.875 6.24313
-99 22 105.742 5.11685
-106 22 107.142 5.60369
-109 22 172.3 6.207
-111 22 121.367 5.32956
-113 22 127.494 0.0244966
-124 22 180.217 6.96974
-126 22 162.222 4.97536
-0 23 162.222 4.97536
-1 23 153.103 5.12144
-2 23 214.097 5.72531
-3 23 142.021 5.09166
-8 23 164.706 4.86014
-9 23 134.981 4.84675
-10 23 234.519 6.98367
-12 23 117.867 4.33344
-13 23 178.405 5.3554
-15 23 124.451 4.26916
-16 23 162.675 4.92262
-19 23 120.7 4.68515
-21 23 137.164 3.42522
-22 23 116.613 4.568
-23 23 118.31 4.76905
-24 23 118.144 4.47288
-25 23 143.539 5.48838
-27 23 139.662 5.11594
-28 23 120.729 4.38247
-37 23 118.162 4.67961
-44 23 167.432 6.32321
-48 23 144.9 5.96417
-52 23 220.108 7.49082
-53 23 83.0796 5.52421
-59 23 107.909 5.86026
-60 23 132.489 5.61291
-63 23 95.7257 5.19644
-66 23 122.551 5.3959
-67 23 134.83 5.72192
-68 23 159.367 6.19266
-71 23 87.4977 5.69601
-72 23 161.001 6.62079
-74 23 122.268 5.4702
-78 23 110.047 5.15306
-79 23 132.104 5.85368
-85 23 117.314 5.07601
-90 23 92.465 6.03202
-91 23 87.906 5.92307
-92 23 67.2075 5.58173
-93 23 112.164 5.89652
-94 23 96.9787 5.75625
-95 23 130.066 5.90486
-97 23 109.904 5.80399
-100 23 83.0757 5.81375
-101 23 93.6679 6.03703
-104 23 168.024 6.55364
-106 23 147.873 6.75784
-111 23 162.029 6.63512
-113 23 182.193 7.6098
-115 23 117.984 5.60395
-116 23 125.548 6.28425
-119 23 157.576 6.68001
-122 23 119.023 6.02148
-123 23 117.761 5.16571
-125 23 96.3429 6.19452
-126 23 175.468 4.80526
-0 24 175.468 4.80526
-3 24 141.285 4.5621
-5 24 186.494 5.64246
-8 24 147.465 0.0450767
-11 24 178.178 5.46797
-12 24 144.874 4.85877
-15 24 172.54 5.39778
-17 24 137.829 4.88724
-19 24 180.687 6.29415
-20 24 122.055 4.97847
-22 24 119.324 4.78068
-24 24 136.146 5.16417
-25 24 131.427 5.47917
-26 24 99.7818 5.01602
-28 24 108.322 4.80944
-30 24 111.078 4.61762
-31 24 126.252 5.40819
-35 24 85.9632 5.10634
-36 24 128.293 5.94601
-38 24 104.648 5.1226
-40 24 97.6988 5.27987
-41 24 102.626 4.32637
-43 24 125.151 5.89369
-49 24 136.134 5.45494
-55 24 83.3688 5.11295
-57 24 116.84 5.37012
-60 24 139.165 6.00564
-62 24 86.9141 5.43147
-65 24 116.487 5.47957
-66 24 119.712 5.4295
-68 24 106.948 5.40945
-69 24 121.012 5.83931
-70 24 113.146 5.26177
-72 24 81.8917 5.22643
-74 24 149.63 6.18405
-75 24 107.515 5.65206
-79 24 215.153 7.23825
-86 24 90.1198 5.66201
-87 24 87.4116 6.87882
-88 24 103.431 7.14939
-91 24 171.48 0.00871558
-94 24 188.984 7.41603
-99 24 112.302 5.79085
-100 24 110.517 6.04601
-104 24 78.8696 5.61275
-106 24 115.112 5.81028
-110 24 93.9938 5.99294
-111 24 131.799 6.31415
-115 24 96.2808 6.23951
-117 24 72.7253 5.65305
-119 24 134.634 6.4451
-120 24 96.1542 5.93209
-123 24 132.755 6.59564
-125 24 84.7137 5.88107
-126 24 143.868 4.64116
-0 25 143.868 4.64116
-3 25 139.911 4.30668
-6 25 144.552 4.69096
-7 25 182.23 5.5893
-9 25 120.509 4.85191
-12 25 151.957 5.6806
-16 25 114.092 4.3806
-17 25 125.248 5.17332
-28 25 119.868 4.93827
-29 25 129.323 5.66982
-32 25 163.782 5.61672
-36 25 123.445 5.25992
-37 25 101.564 5.06863
-39 25 139.025 5.33338
-40 25 130.431 6.33018
-42 25 87.5394 5.04466
-44 25 116.24 4.97507
-45 25 146.626 6.02137
-50 25 164.499 6.6814
-53 25 108.178 5.41636
-54 25 166.024 6.53044
-55 25 120.481 5.72966
-56 25 151.237 6.21502
-58 25 97.8462 5.27907
-60 25 117.086 5.47636
-63 25 125.087 6.4809
-64 25 106.383 5.36982
-66 25 82.8955 5.13399
-69 25 88.9587 5.36723
-71 25 133.081 6.18701
-77 25 150.381 6.37451
-82 25 160.971 6.52607
-84 25 82.6087 5.18773
-85 25 111.277 6.12039
-86 25 144.229 5.7589
-87 25 164.504 0.0199831
-88 25 83.6238 5.58198
-89 25 68.8364 5.75417
-90 25 148.052 6.65938
-91 25 98.2378 6.18852
-93 25 122.465 6.00181
-96 25 88.574 5.75743
-100 25 130.949 6.74498
-101 25 104.454 5.6286
-102 25 121.513 6.13046
-103 25 95.4702 6.14346
-107 25 115.599 6.06724
-108 25 88.6496 5.82064
-110 25 125.452 6.48433
-111 25 140.881 6.14622
-113 25 143.532 6.28227
-114 25 138.581 5.40953
-115 25 139.823 5.66487
-116 25 64.3359 6.03504
-117 25 157.009 8.01794
-118 25 82.5236 5.56321
-119 25 151.287 6.64594
-120 25 147.931 6.76325
-122 25 84.5546 6.29164
-125 25 105.345 6.19713
-1 26 171.036 5.57521
-2 26 141.63 4.12834
-3 26 158.641 4.95355
-4 26 136.491 5.91518
-6 26 208.697 5.99162
-7 26 152.215 5.27273
-8 26 245.249 9.69631
-12 26 117.802 4.61351
-16 26 129.867 5.42832
-20 26 131.273 5.58842
-21 26 121.209 4.96915
-23 26 150.124 6.26256
-24 26 114.314 4.53257
-27 26 141.098 4.95669
-28 26 130.932 5.87865
-34 26 103.065 4.89955
-37 26 123.622 5.42459
-40 26 95.3384 5.30854
-44 26 106.06 5.35507
-49 26 136.857 5.95156
-50 26 143.08 5.74565
-51 26 112.225 5.10173
-52 26 108.058 5.12134
-54 26 90.8282 5.40798
-57 26 128.156 6.22697
-58 26 82.3597 5.07333
-62 26 92.2982 5.57223
-64 26 136.742 5.91864
-65 26 105.963 3.68138
-67 26 150.347 6.35884
-69 26 73.335 5.30352
-71 26 129.392 6.40176
-72 26 111.493 5.62515
-73 26 93.6628 5.63596
-81 26 122.349 5.62666
-83 26 74.4196 5.37234
-90 26 116.996 5.90405
-91 26 136.549 6.29577
-92 26 143.959 6.56
-98 26 148.351 6.10196
-102 26 102.699 5.67979
-104 26 115.571 5.9969
-106 26 87.6351 5.71391
-107 26 142.943 5.93308
-110 26 164.972 7.22587
-111 26 127.776 6.57669
-113 26 116.517 6.06405
-116 26 106.245 6.11927
-117 26 91.4931 6.09182
-123 26 133.931 6.93258
-125 26 121.966 6.37322
-1 27 170.867 5.34432
-3 27 183.676 5.0861
-4 27 147.743 4.92707
-5 27 151.274 5.08251
-6 27 151.108 4.92138
-7 27 133.292 5.43907
-9 27 128.688 5.43099
-10 27 121.042 4.93728
-18 27 139.234 4.8064
-19 27 148.882 5.31413
-22 27 138.514 4.89299
-24 27 151.423 5.64256
-27 27 102.209 5.07635
-29 27 171.366 6.38765
-30 27 116.467 5.27807
-31 27 147.254 5.47997
-32 27 183.734 6.20519
-40 27 132.755 5.117
-41 27 97.9873 5.4754
-44 27 95.8698 5.46837
-45 27 146.481 5.25004
-50 27 120.486 5.41164
-53 27 89.1897 5.39511
-54 27 96.5128 5.303
-61 27 155.034 5.83551
-62 27 135.051 5.89411
-64 27 102.416 5.54187
-65 27 218.547 9.56871
-66 27 162.83 6.53931
-68 27 106.15 5.68289
-70 27 153.992 6.22714
-71 27 112.608 5.46352
-74 27 147.884 6.45569
-78 27 100.311 5.41329
-79 27 132.85 6.58522
-81 27 107.702 5.654
-85 27 139.056 5.86011
-89 27 230.261 8.34979
-90 27 67.5965 5.94215
-95 27 164.289 6.71229
-97 27 75.2391 5.67052
-99 27 107.048 5.78905
-100 27 90.6126 5.86946
-102 27 88.4655 5.72931
-104 27 248.965 6.24505
-105 27 83.9252 5.8551
-108 27 123.004 5.3571
-109 27 179.98 7.75457
-113 27 175.87 6.6884
-115 27 93.7641 6.00269
-118 27 123.451 6.47725
-121 27 99.3903 5.928
-126 27 156.451 4.69896
-0 28 156.451 4.69896
-1 28 150.037 4.87705
-2 28 138.485 4.29407
-5 28 136.182 4.63294
-7 28 131.042 4.83701
-11 28 124.691 4.59421
-13 28 136.514 4.59207
-15 28 115.998 4.66609
-17 28 154.445 0.106313
-19 28 133.535 4.80535
-21 28 115.366 4.85508
-22 28 109.942 5.15984
-23 28 119.407 5.07389
-25 28 124.109 5.13192
-31 28 90.146 5.03821
-32 28 120.366 5.23457
-33 28 160.088 5.98108
-36 28 132.416 5.40828
-39 28 156.474 0.0160699
-42 28 99.7361 5.35301
-44 28 136.678 5.21963
-45 28 110.478 5.41793
-46 28 216.243 0.322749
-48 28 123.82 5.46508
-49 28 175.662 6.30837
-52 28 84.7319 5.285
-54 28 91.6706 5.47182
-55 28 85.7569 4.96775
-60 28 94.1037 5.34655
-62 28 136.103 5.44649
-63 28 112.057 5.96824
-74 28 210.708 8.17822
-75 28 75.6258 5.44531
-76 28 140.556 6.09497
-78 28 83.3846 5.506
-79 28 137.317 5.43986
-84 28 89.8044 5.77351
-93 28 83.1307 5.7397
-97 28 90.466 5.72083
-99 28 84.0206 5.45415
-101 28 116.561 5.86782
-103 28 79.7994 5.49112
-105 28 152.505 7.15727
-108 28 75.8564 5.55912
-109 28 100.449 0.0507707
-110 28 90.5746 6.1351
-117 28 98.1332 6.18417
-122 28 167.867 5.94859
-123 28 112.146 6.3071
-124 28 116.489 6.3319
-126 28 137.886 4.41245
-0 29 137.886 4.41245
-1 29 172.971 5.18816
-2 29 132.52 4.42589
-3 29 152.089 4.87424
-5 29 169.975 5.23088
-8 29 123.102 4.91996
-13 29 117.088 4.83668
-14 29 112.395 4.83853
-17 29 145.77 4.95834
-19 29 134.739 4.67501
-21 29 144.981 5.16095
-23 29 130.799 4.88447
-28 29 110.918 4.93336
-29 29 171.154 6.46963
-31 29 130.521 5.219
-32 29 93.6487 5.1519
-36 29 97.6882 5.18481
-40 29 93.4354 5.61175
-43 29 96.5984 6.14831
-44 29 87.0751 5.101
-50 29 125.027 5.36201
-52 29 114.512 5.54342
-58 29 130.739 6.50208
-61 29 95.0252 5.55279
-65 29 112.577 5.37083
-66 29 215.117 8.01154
-67 29 115.624 5.99204
-68 29 111.522 5.5168
-70 29 129.681 5.64084
-72 29 111.367 5.53906
-73 29 102.713 5.61086
-76 29 157.3 5.43918
-77 29 143.08 5.72786
-82 29 97.4923 5.65204
-86 29 88.4645 5.64941
-87 29 168.399 6.68936
-94 29 125.181 5.91641
-103 29 145.341 6.116
-105 29 128.26 6.71143
-106 29 141.867 6.31855
-108 29 116.751 6.20278
-110 29 162.246 7.80871
-111 29 107.718 6.00985
-113 29 114.29 5.75782
-114 29 82.1781 5.77444
-115 29 93.8073 5.97122
-116 29 120.313 6.13088
-118 29 152.59 6.80861
-120 29 139.034 6.35232
-121 29 119.7 6.39432
-123 29 114.615 6.15872
-124 29 81.9485 6.03447
-125 29 142.797 6.38572
-126 29 157.669 4.57161
-0 30 157.669 4.57161
-1 30 134.083 4.65122
-3 30 143.454 4.79853
-4 30 143.361 0.131078
-8 30 126.875 4.569
-11 30 116.914 4.951
-15 30 147.535 5.96863
-16 30 170.968 5.82811
-17 30 131.253 4.71045
-18 30 124.073 5.07983
-23 30 150.281 5.46987
-24 30 191.417 7.26922
-27 30 143.63 5.28346
-28 30 103.397 5.0602
-33 30 108.456 4.99256
-38 30 126.202 5.35744
-39 30 130.81 5.28774
-46 30 143.434 6.0833
-47 30 163.408 6.1013
-50 30 118.451 5.76908
-51 30 94.6404 5.63862
-54 30 131.891 5.45323
-56 30 84.5751 5.15234
-58 30 112.407 5.46015
-60 30 102.955 5.33616
-67 30 258.541 11.8249
-69 30 127.859 5.83632
-71 30 216.888 8.02661
-72 30 131.14 6.88636
-75 30 123.937 6.11748
-78 30 92.2556 5.81109
-80 30 135.401 5.97055
-81 30 194.489 7.66073
-82 30 88.0831 8.12252
-84 30 70.157 5.35287
-85 30 93.9193 5.62342
-89 30 149.355 6.66372
-90 30 77.3676 6.05011
-92 30 152.304 6.74235
-95 30 140.063 6.11613
-96 30 61.407 5.88915
-100 30 106.052 5.91734
-101 30 132.904 5.63034
-105 30 96.5971 6.04729
-106 30 94.1713 5.96059
-109 30 150.016 6.82495
-110 30 109.915 6.02404
-111 30 121.757 6.17702
-113 30 128.008 9.67752
-117 30 130.973 6.06039
-123 30 129.194 6.43591
-124 30 137.006 6.01379
-1 31 147.933 4.87809
-2 31 155.271 4.67257
-4 31 144.868 4.73066
-5 31 146.167 5.02899
-7 31 141.775 4.73265
-8 31 120.122 4.81328
-10 31 153.212 5.03383
-13 31 115.925 4.92929
-14 31 135.447 4.59198
-19 31 122.743 5.15414
-23 31 163.631 5.80553
-24 31 115.574 5.12501
-25 31 125.395 5.46936
-28 31 117.307 5.04682
-30 31 103.506 5.36292
-32 31 121.54 5.05422
-38 31 113.263 5.22796
-41 31 90.4751 5.45679
-42 31 125.682 5.58078
-44 31 110.065 5.18761
-45 31 131.782 5.18845
-46 31 98.3861 5.2076
-52 31 88.1043 5.1562
-53 31 115.169 5.36165
-54 31 86.4747 0.0394927
-55 31 135.81 5.80253
-56 31 130.637 5.79369
-57 31 142.252 5.86293
-60 31 160.944 6.1136
-61 31 71.4598 5.27948
-63 31 120.507 5.47736
-65 31 119.045 5.58287
-68 31 110.959 5.51682
-69 31 123.745 5.80769
-73 31 105.957 5.75284
-74 31 138.425 4.70865
-75 31 74.4157 5.65617
-79 31 90.5673 5.67035
-84 31 132.843 5.30935
-85 31 108.955 5.56743
-89 31 133.611 6.15626
-91 31 82.4953 0.0285886
-93 31 149.874 6.76065
-94 31 127.326 6.31678
-97 31 127.082 6.23921
-98 31 114.147 5.90786
-100 31 71.8323 5.66899
-102 31 112.824 5.73769
-103 31 106.488 0.0206728
-104 31 120.779 6.11341
-105 31 89.6896 6.58345
-109 31 135.689 6.18291
-110 31 143.553 6.34086
-112 31 148.307 6.80965
-119 31 155.352 8.64755
-121 31 129.533 6.28527
-122 31 203.052 8.20826
-123 31 87.6451 6.83985
-1 32 140.636 4.54504
-2 32 159.987 5.1928
-5 32 139.963 4.76394
-8 32 127.479 4.96903
-14 32 116.712 3.84167
-20 32 109.539 4.81822
-21 32 118.724 4.28057
-24 32 120.522 0.0261262
-25 32 132.955 5.42581
-26 32 124.083 5.1393
-28 32 84.5939 5.02253
-29 32 114.306 4.39845
-30 32 128.949 5.87005
-31 32 109.839 4.89874
-32 32 106.506 5.10447
-33 32 130.531 5.39035
-36 32 103.472 5.17606
-37 32 126.748 5.373
-38 32 118.436 4.53958
-40 32 147.666 6.01852
-43 32 114.707 4.73091
-44 32 89.5379 5.2575
-49 32 85.9601 5.29448
-50 32 110.048 5.10794
-51 32 89.4383 5.82173
-52 32 87.0331 5.26892
-59 32 158.88 6.33499
-61 32 140.751 5.66941
-63 32 177.203 6.30774
-65 32 78.5946 5.33485
-66 32 89.4617 5.45247
-69 32 78.5796 5.14905
-71 32 83.2118 5.50508
-72 32 142.664 6.75162
-78 32 91.2503 5.6047
-79 32 116.047 5.02277
-81 32 86.6995 5.65651
-83 32 108.795 5.65212
-85 32 124.39 5.45873
-90 32 142.884 6.15534
-91 32 148.824 6.63559
-92 32 86.4748 5.51143
-96 32 100.757 5.66315
-102 32 107.181 5.84595
-103 32 92.7976 5.92824
-104 32 138.378 6.48003
-109 32 109.755 5.90302
-110 32 70.2835 5.74153
-112 32 116.815 5.02341
-115 32 118.167 5.51179
-116 32 100.127 7.2698
-117 32 104.576 6.09195
-118 32 81.8317 6.31085
-123 32 96.5412 6.19554
-124 32 121.694 5.81981
-125 32 165.612 7.10429
-2 33 145.457 0.053851
-3 33 145.255 4.7231
-4 33 121.635 4.42433
-12 33 151.292 5.14176
-16 33 114.47 4.01834
-17 33 118.799 4.40066
-18 33 105.676 5.18431
-20 33 112.845 4.85412
-25 33 122.054 4.51022
-26 33 119.282 4.66606
-28 33 130.895 5.65025
-29 33 142.537 5.05583
-31 33 206.555 7.64247
-34 33 141.393 4.4707
-39 33 130.227 5.63432
-40 33 116.639 4.78172
-41 33 142.443 5.56564
-42 33 137.34 5.51043
-50 33 124.102 6.0761
-51 33 111.279 4.94731
-53 33 147.281 6.13274
-57 33 142.217 6.71429
-59 33 92.714 5.42325
-61 33 114.683 4.48258
-65 33 113.357 4.89666
-69 33 99.9641 5.58204
-70 33 102.258 5.53413
-71 33 94.7015 5.89837
-75 33 121.188 5.34625
-78 33 79.5597 5.4768
-80 33 129.407 6.31494
-82 33 124.454 5.60221
-84 33 109.382 5.57869
-88 33 140.373 6.71406
-92 33 138.863 6.41834
-99 33 116.586 5.31964
-102 33 87.6955 5.77733
-107 33 70.2698 5.76613
-109 33 123.86 5.8937
-110 33 115.685 6.31652
-111 33 110.177 5.92501
-112 33 110.827 5.62965
-115 33 147.062 6.57861
-117 33 144.727 6.59036
-120 33 142.089 6.52892
-123 33 98.794 5.9974
-124 33 158.578 7.21932
-2 34 133.366 5.21982
-3 34 137.104 4.96968
-6 34 135.404 5.20719
-8 34 147.774 4.96305
-9 34 117.553 4.07053
-10 34 150.515 4.92054
-16 34 92.6938 5.00762
-17 34 186.19 5.74058
-18 34 109.313 4.19136
-20 34 147.71 5.07623
-21 34 138.715 4.63922
-22 34 121.643 4.51399
-25 34 113.065 4.44184
-29 34 119.297 4.73987
-30 34 118.256 4.3183
-33 34 104.951 5.15901
-36 34 140.469 5.461
-37 34 88.829 5.17206
-40 34 91.3284 5.25252
-42 34 95.8971 5.52607
-45 34 113.202 5.07036
-50 34 98.6718 6.54462
-53 34 111.018 5.18849
-54 34 106.523 5.41723
-56 34 76.2317 5.00472
-58 34 94.1397 5.83095
-60 34 128.827 6.06601
-62 34 88.642 3.99104
-64 34 112.374 5.07848
-67 34 125.149 5.75932
-69 34 71.5033 5.14849
-70 34 136.515 5.78343
-75 34 138.373 5.57791
-77 34 83.7507 5.6685
-85 34 120.83 5.41788
-87 34 139.036 6.15402
-88 34 119.875 5.58957
-89 34 148.228 6.56474
-90 34 118.295 5.11749
-93 34 92.769 3.50785
-96 34 170.597 6.83201
-97 34 133.28 6.55013
-98 34 167.014 7.08856
-101 34 83.6767 5.87292
-104 34 92.412 5.51776
-105 34 88.515 6.03894
-107 34 94.4555 5.99784
-109 34 116.558 5.60545
-112 34 175.543 7.31124
-113 34 129.336 6.62921
-116 34 137.705 6.11059
-119 34 105.668 6.04751
-120 34 59.0625 6.51839
-1 35 135.849 5.03956
-2 35 144.485 4.67443
-4 35 127.673 5.20076
-8 35 126.76 5.00747
-9 35 116.093 3.94568
-13 35 147.527 0.0506317
-17 35 103.649 5.08178
-22 35 116.682 4.04988
-23 35 186.604 6.73423
-29 35 122.356 4.60928
-32 35 159.483 0.00254279
-37 35 158.029 5.76387
-38 35 111.928 4.44467
-39 35 85.1859 5.0433
-41 35 89.5225 5.55417
-43 35 152.951 5.95576
-45 35 172.058 6.48836
-48 35 86.2137 5.3178
-50 35 129.141 6.02219
-52 35 163.727 7.57636
-55 35 143.762 5.77108
-57 35 126.097 5.75676
-59 35 147.122 5.58852
-61 35 132.77 5.85168
-65 35 149.345 5.92855
-68 35 101.689 5.62663
-69 35 111.221 4.83411
-72 35 112.054 2.52427
-73 35 172.042 7.23042
-75 35 86.0156 5.51889
-79 35 137.745 6.09797
-82 35 88.6149 5.73109
-86 35 125.988 6.01374
-88 35 79.2929 5.63238
-90 35 103.757 5.62592
-92 35 95.301 5.93959
-93 35 166.267 7.26977
-94 35 150.137 6.40534
-95 35 96.4402 5.68433
-98 35 70.7737 5.48491
-109 35 134.361 4.46818
-110 35 86.8804 5.7169
-112 35 89.2885 5.82215
-115 35 181.982 7.65881
-116 35 134.783 6.58781
-121 35 151.26 6.87471
-122 35 171.408 7.85642
-124 35 93.2318 5.96423
-126 35 68.8638 5.88717
-0 36 68.8638 5.88717
index f4a89ea5425c19d5f42a535f7df1142da749d06f..5b48c880a3863c96e0962e89bce1d3b800e310e7 100644 (file)
@@ -69,6 +69,7 @@ When starting analysis from the go4 gui, one should specify stream server with p
     <!-- Thread name="*" publ="true" prof="true"/ -->
     
     <MemoryPool name="Pool">
+       <!-- <BufferSize value="80000"/> -->
        <BufferSize value="2000000"/>
        <NumBuffers value="1000"/>
     </MemoryPool>
index cfb37205f698b85f97eb35090aefed310599eb8c..1c5f2ca7522ff4edb79fa30adac37c9f93cba3ee 100755 (executable)
@@ -523,11 +523,11 @@ set multiplot layout 2,2;
 set key Left left top box;
 set xlabel \\"set.\\";
 set ylabel \\"[mV]\\";
-array names0[7] = [\\"VCASP\\", \\"VCASNA\\", \\"VCASNB\\", \\"VCASNC\\", \\"VCASND\\", \\"VCASN2\\", \\"VCLIP\\"];
+array names0[7] = [\\"VCASND\\", \\"VCASN2\\", \\"VCASP\\", \\"VCLIP\\", \\"VCASNA\\", \\"VCASNB\\", \\"VCASNC\\"];
 plot for [i=0:6] \\"$vmon_file_n\\" using 2:3 index i with l title names0[i+1];
-array names1[3] = [\\"IBIAS\\", \\"ITHR\\", \\"IDB\\"];
+array names1[3] = [\\"IBIAS\\", \\"IDB\\", \\"ITHR\\"];
 plot for [i=0:2] \\"$imon_file_n\\" using 2:3 index i with l title names1[i+1];
-array names2[3] = [\\"VRESET\\", \\"VPH\\", \\"VPL\\"];
+array names2[3] = [\\"VPH\\", \\"VPL\\", \\"VRESET\\"];
 plot for [i=0:2] \\"$other_file_n\\" using 2:3 index i with l title names2[i+1];"
 END_MESSAGE
     system $message_png;
@@ -698,8 +698,9 @@ sub mimosis_dacscan_sf
 
 sub send_params_scurve
 {
-    my ($yi, $rowTrain) = @_;
-    my $frameWr = "START-" . $yi . "-" . $rowTrain . "-END";
+    my ($state, $yi, $rowTrain, $xLow, $xHig, $region, $vcasn, $vphfine) = @_;
+    $vphfine = defined $vphfine ? $vphfine : 0;
+    my $frameWr = "START-" . $state . "-" . $yi . "-" . $rowTrain . "-" . $xLow . "-" . $xHig . "-" . $region . "-" . $vcasn . "-" . $vphfine . "-END";
     my $pipeNameWr = "/tmp/scurveipipe";
     my $fdPipeWr = POSIX::open($pipeNameWr, &POSIX::O_WRONLY);
     POSIX::write($fdPipeWr,$frameWr,length($frameWr));
@@ -708,6 +709,22 @@ sub send_params_scurve
 
 
 
+sub kill_proc_by_pid_file
+{
+    my ($pidName) = @_;
+
+    my $pidFile = POSIX::open($pidName, &POSIX::O_RDONLY) or die "hldprint already killed probably\n";
+    my $buf;
+    my $bytes = POSIX::read($pidFile,$buf,10);
+    POSIX::close($pidFile);
+
+    kill 15, $buf;
+
+    unlink($pidName) or die "Can't delete $pidName: $!\n";
+}
+
+
+
 sub await_ack
 {
     my $pipeNameRd = "/tmp/scurveapipe";
@@ -723,7 +740,6 @@ sub await_ack
         }
     }
     POSIX::close($fdPipeRd);
-    print "ACK received\n";
 }
 
 
@@ -755,7 +771,7 @@ sub mimosis_scan_region
     defined $fpga or die "Mimosis::mimosis_scan_region: Must provide $fpga.";
     defined $region or die "Mimosis::mimosis_scan_region: Must provide $region.";
 
-    my %collim = (
+    my %colLim = (
         'A' => [   0, 127 ],
         'B' => [ 128, 511 ],
         'C' => [ 512, 895 ],
@@ -805,6 +821,7 @@ sub mimosis_scan_region
           $yOff+=$yTra ) {
 
         my $y = $yOff;
+
         for ( ;
               $y < $yOff+$yTra && $y <= $yEnd;
               $y+=1 ) {
@@ -821,33 +838,150 @@ sub mimosis_scan_region
             Mimosis::mimosis_instr_write( $fpga,  0x3e ); usleep($slow); #INSTR unselect all pixels
         }
 
-        send_params_scurve($yOff, $yTra);
+        unless($pulseonly)
+        {
+            my $yTraSend = $yEnd-$yOff<$yTra ? $yEnd-$yOff : $yTra;
+            send_params_scurve("TAKEDATA", $yOff, $yTraSend, $colLim{$region}[0], $colLim{$region}[1], $region, 0);
+            await_ack();
+
+            my $setCnt = 0;
+            for my $set (reverse ($setSta .. $setEnd) )
+            {
+                $setCnt = $setCnt + 1;
+                if( ($setCnt-1)%$setDiv != 0) { next; }
+
+                send_params_scurve("NEXTVPH", 0, 0, 0, 0, 0, 0, $set);
+                await_ack();
+
+                my $pulseMsg = ($set << 24) + 0x00c00000;
+                trb_register_write_mem( $fpga, 0xa209, 0, [ $pulseMsg ], 1 ); usleep($slow);
+                # Mimosis::mimosis_register_write( $fpga, 0x0046, $set, $a ); usleep($setTime);
+                Mimosis::mimosis_register_write( $fpga, 0x0046, $set, $a );
+
+                if( $printset || $printall ) { printf("set: $set\n"); }
+            }
+
+            Mimosis::mimosis_instr_write( $fpga, 0x3f ); usleep($slow);
+            Mimosis::mimosis_instr_write( $fpga, 0x04 ); usleep($slow); #INSTR set mask pulse
+            Mimosis::mimosis_instr_write( $fpga, 0x3e ); usleep($slow); #INSTR set mask pulse
+
+            trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00400000 ], 1 ); usleep($slow);
+            send_params_scurve("WAITDAQ", 0, 0, 0, 0, 0, 0);
+            await_ack();
+            trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00000000 ], 1 ); usleep($slow);
+        }
+    }
+}
+
+
+
+sub mimosis_scan_pixel
+{
+    my %params = @_;
+    my $fpga = $params{'fpga'};
+    my $x = $params{'x'};
+    my $y = $params{'y'};
+    my $add = $params{'add'};
+    my $pulseonly = $params{'pulseonly'};
+    my $setSta = $params{'firstset'};
+    my $setEnd = $params{'lastset'};
+    my $setDiv = $params{'setdiv'};
+    my $setTime = $params{'settime'};
+    my $slow = $params{'slow'};
+    my $a = $params{'a'};
+    my $printset = $params{'printset'};
+    my $printall = $params{'printall'};
+    my $analogAlimA = $params{'analogAlimA'};
+    my $analogAlimB = $params{'analogAlimB'};
+    my $analogDlimA = $params{'analogDlimA'};
+    my $analogDlimB = $params{'analogDlimB'};
+    my $modpulse = $params{'modpulse'};
+
+    defined $fpga or die "Mimosis::mimosis_scan_region: Must provide --fpga.";
+    defined $x or die "Mimosis::mimosis_scan_region: Must provide --x.";
+    defined $y or die "Mimosis::mimosis_scan_region: Must provide --y.";
+
+    $setSta = defined $setSta ? $setSta : 0x0;
+    $setEnd = defined $setEnd ? $setEnd : 0xff;
+    $setDiv = defined $setDiv ? $setDiv : 1;
+    $setTime = defined $setTime ? $setTime : 1000;
+    $slow = defined $slow ? $slow : 10000;
+    $a = defined $a ? $a : 0;
+    $printset = defined $printset ? 1 : 0;
+    $printall = defined $printall ? 1 : 0;
+    $pixpulseA_A = defined $pixpulseA_A ? $pixpulseA_A : 25;
+    $pixpulseA_B = defined $pixpulseA_B ? $pixpulseA_B : 75;
+    $pixpulseD_A = defined $pixpulseD_A ? $pixpulseD_A : 0;
+    $pixpulseD_B = defined $pixpulseD_B ? $pixpulseD_B : 0;
+    $modpulse = defined $modpulse ? $modpulse : 3;
+
+    Mimosis::mimosis_register_write( $fpga, 0x0020, 0x40, $a ); usleep($slow); #EN_PIXELMASK to 0 for pulse
+
+    unless(defined $add)
+    {
+        Mimosis::mimosis_instr_write( $fpga,  0x3f ); usleep($slow); #INSTR select all pixels
+        Mimosis::mimosis_instr_write( $fpga,  0x04 ); usleep($slow); #INSTR reset mask
+        Mimosis::mimosis_instr_write( $fpga,  0x3e ); usleep($slow); #INSTR unselect all pixels
+    }
+
+    Mimosis::mimosis_register_write( $fpga, 0x0066,   $pixpulseA_A & 0x00ff       , $a ); usleep($slow); #analog pulsing pulse A, limit A
+    Mimosis::mimosis_register_write( $fpga, 0x0166, ( $pixpulseA_A & 0xff00 ) >> 8, $a ); usleep($slow);
+    Mimosis::mimosis_register_write( $fpga, 0x0076,   $pixpulseA_B & 0x00ff       , $a ); usleep($slow); # analog pulsing pulse A, limit B
+    Mimosis::mimosis_register_write( $fpga, 0x0176, ( $pixpulseA_B & 0xff00 ) >> 8, $a ); usleep($slow);
+    Mimosis::mimosis_register_write( $fpga, 0x0067,   $pixpulseD_A & 0x00ff       , $a ); usleep($slow); # analog pulsing pulse D, limit A
+    Mimosis::mimosis_register_write( $fpga, 0x0167, ( $pixpulseD_A & 0xff00 ) >> 8, $a ); usleep($slow);
+    Mimosis::mimosis_register_write( $fpga, 0x0077,   $pixpulseD_B & 0x00ff       , $a ); usleep($slow); # analog pulsing pulse D, limit B
+    Mimosis::mimosis_register_write( $fpga, 0x0177, ( $pixpulseD_B & 0xff00 ) >> 8, $a ); usleep($slow);
+    Mimosis::mimosis_register_write( $fpga, 0x007d, $modpulse, $a ); usleep($slow); #set modpulse. possible values: 1f/1, 1f/2, 1f/4, 1f/8, 1f/16, 1f/32, 1f/64, 1f/128
+
+    {
+        my $regAdd = $x/16;  #region address
+        my $regBit   = ($x/2)%8;  #double column in region
+        my $regWord = $regAdd << 8;
+        if    (($x%2 == 1)) { $regWord += 0x82; }
+        elsif (($x%2 == 0)) { $regWord += 0x81; }
+        Mimosis::mimosis_register_write( $fpga, $regWord, ( 0x1 << $regBit ), $a ); usleep($slow);
+    }
+
+    {
+        my $regAdd = $y/8;
+        my $regBit   = $y%8;
+        my $regWord = ( $regAdd << 8 ) + 0x84;
+        Mimosis::mimosis_register_write( $fpga, $regWord, ( 0x1 << $regBit ), $a ); usleep($slow);
+    }
+
+    Mimosis::mimosis_instr_write( $fpga,  0x05 ); usleep($slow); #INSTR set mask pulse
+    Mimosis::mimosis_register_write( $fpga, 0x4087, 0x0, $a ); usleep($slow); #unselect all pixels (register wise)
+
+    unless($pulseonly)
+    {
+        send_params_scurve("TAKEDATA", $y, 1, $x, $x+1, 0, 0);
         await_ack();
 
-        # unless($pulseonly)
-        # {
-        #     # my $setCnt = 0;
-        #     for my $set (reverse ($setSta .. $setEnd) )
-        #     {
-        #         # $setCnt = $setCnt + 1;
-        #         # if( ($setCnt-1)%$setDiv != 0) { next; }
-
-        #         my $pulseMsg = ($set << 24) + 0x00c00000;
-        #         trb_register_write_mem( $fpga, 0xa209, 0, [ $pulseMsg ], 1 ); usleep($slow);
-        #         Mimosis::mimosis_register_write( $fpga, 0x0046, $set, $a ); usleep($setTime);
-
-        #         if( $printset || $printall ) { printf("set: $set\n"); }
-        #     }
-
-        #     Mimosis::mimosis_instr_write( $fpga, 0x3f ); usleep($slow);
-        #     Mimosis::mimosis_instr_write( $fpga, 0x04 ); usleep($slow); #INSTR set mask pulse
-        #     Mimosis::mimosis_instr_write( $fpga, 0x3e ); usleep($slow); #INSTR set mask pulse
-        # }
-        # indicate end of current rows
-        if($y == $yEnd) {
-            trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00800000 ], 1 ); usleep($slow);
-            print "check\n";
+        my $setCnt = 0;
+        for my $set (reverse ($setSta .. $setEnd) )
+        {
+            $setCnt = $setCnt + 1;
+            if( ($setCnt-1)%$setDiv != 0) { next; }
+
+            my $pulseMsg = ($set << 24) + 0x00c00000;
+            trb_register_write_mem( $fpga, 0xa209, 0, [ $pulseMsg ], 1 ); usleep($slow);
+            Mimosis::mimosis_register_write( $fpga, 0x0046, $set, $a ); usleep($setTime);
+
+            if( $printset || $printall ) { printf("set: $set\n"); }
         }
+
+        unless(defined $add)
+        {
+            Mimosis::mimosis_instr_write( $fpga,  0x3f ); usleep($slow); #INSTR select all pixels
+            Mimosis::mimosis_instr_write( $fpga,  0x04 ); usleep($slow); #INSTR reset mask
+            Mimosis::mimosis_instr_write( $fpga,  0x3e ); usleep($slow); #INSTR unselect all pixels
+        }
+
+        trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00400000 ], 1 ); usleep($slow);
+        send_params_scurve("WAITDAQ", 0, 0, 0, 0, 0, 0);
+        await_ack();
+        trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00000000 ], 1 ); usleep($slow);
     }
 }
 
@@ -870,7 +1004,6 @@ sub mimosis_mask
     my $square = $params{'square'};
     my $printall = $params{'printall'};
 
-
     defined $fpga or die "Mimosis::mimosis_mask: Must provide $fpga.";
 
     $slow = defined $slow ? $slow : 10000;
@@ -1131,6 +1264,9 @@ sub help_scurves {
 
 usage: mimosis [GLOBAL OPTIONS] scurves [COMMAND OPTIONS]
 
+The data will be priveded in a folder in the current directory with the time started as name.
+The data is sorted by the VCASN, if --vcasn is not provided, or by
+
 GLOBAL OPTIONS are:
     -f, --fpga=HEX      ->  Hex address of the FPGA. Defaults to 0xa000.
     -s, --slow=NUM      ->  Execute I2C commands with a pause of NUM microseconds in between.
@@ -1138,33 +1274,35 @@ GLOBAL OPTIONS are:
     -h, --help          ->  Print this or <command> specific help.
 
 COMMAND OPTIONS are:
-        --colpix X       ->  x value of a single pixel to pulse.
-        --rowpix Y       ->  y value of a single pixel to pulse.
-        --pulseonly      ->  if set, mark specified pixels only for pulsing and dont do a scan.
-    -r, --region A|B|C|D ->  Region to pulse.
+    -r, --region A|B|C|D ->  Region to pulse. Most be provided.
+
         --firstrow Y     ->  First row to scan.
         --lastrow Y      ->  Last row to scan.
         --rowdiv ROWDIV  ->  Just pulse every ROWDIV row.
-        --firstcol X     ->  First column to scan.
-        --lastcol X      ->  Last column to scan.
-        --coldiv COLDIV  ->  Just pulse every COLDIV column.
+        --nrows N        ->  How many rows to pulse at once. Default depends on region. For A,D: N = 4, for B,D: N = 2.
+
         --firstset S     ->  Start s-curve scan at VPH_FINE=S
         --lastset S      ->  Stop s-curve scan at VPH_FINE=S
         --setdiv SETDIV  ->  Just use every SETDIV value of VPH_FINE.
         --settime T      ->  Take data for each VPH_FINE for T milliseconds.
-        --vcasn A|B|C|D  ->  VACSN to vary. Default is the same as specified with --region.
+
         --firstvcasn V   ->  Start s-curve taking with VCASN=V.
         --lastvcasn V    ->  Stop s-curve taking at VCASN=V.
         --vcasndiv V     ->  Take s-curve every V steps.
-        --nrows N        ->  How many rows to pulse at once. Default depends on region. For A,D: N = 4, for B,D: N = 2.
+
+        --pulseonly      ->  If set, mark specified pixels only for pulsing and dont do a scan.
+        --modpulse MOD   ->  Exponent of the power of two, which gives the divider of the frames to pulse.
+
+        --printdac       ->  Print the current setting of the DAC.
         --printset       ->  Print the current VPH_FINE setting.
         --printrow       ->  Print current row to set.
     -p, --printall       ->  Print all informations available.
+
         --analogAlimA    ->  Not implemented yet.
         --analogAlimB    ->  Not implemented yet.
         --analogDlimA    ->  Not implemented yet.
         --analogDlimB    ->  Not implemented yet.
-        --modpulse MOD   ->  Exponent of the power of two, which gives the divider of the frames to pulse.
+
     -h, --help           ->  Print this help.
 END_MESSAGE
 
index 2645c2f296e8f4175ddb839e2f4817e3ceda1b98..c7ef7f5d3016dc086a2a0e64929503781b34ac77 100755 (executable)
@@ -9,7 +9,10 @@ use Data::Dump qw(dump);
 use File::Copy;
 
 
-$SIG{INT} = sub { die "\nAbort.\n" };
+$SIG{INT} = sub {
+    Mimosis::kill_proc_by_pid_file("/tmp/hldprint-pid");
+    die "\nAbort.\n"
+};
 
 
 #global
@@ -22,10 +25,10 @@ my ( $printall_load, $printwrong_load );
 my ( $ikf, $name, $imagefileonly, $cleanup_dacscan, $printall_dacscan );
 
 #scurves
-my ( $colpix_scurves,      $rowpix_scurves,      $pulseOnlySc,   $regionSc,
+my ( $pulseOnlySc,   $regionSc, $xSc, $ySc, $addSc, $resetSc,
      $yStaSc,    $yEndSc,     $yStepSc,
      $setStaSc,    $setEndSc,
-     $setStepSc,      $vcasnSc,       $vcasnStaSc,  $vcasnEndSc,
+     $setStepSc,     $vcasnSc, $vcasnStaSc,  $vcasnEndSc,
      $vcasnStepSc,   $setTimeSc,     $yTraSc,  $printSetSc, $printDacSc,
      $printRowSc,    $printAllSc,    $analogAlimASc,
      $analogAlimBSc, $analogDlimASc, $analogDlimBSc, $modpulseSc );
@@ -71,10 +74,12 @@ my $res = GetOptions (
         },
         scurves => {
             options => {
-                "colpix=s"          => \$colpix_scurves,
-                "rowpix=s"          => \$rowpix_scurves,
                 "pulseonly"         => \$pulseOnlySc,
                 "region|r=s"        => \$regionSc,
+                "x=s"               => \$xSc,
+                "y=s"               => \$ySc,
+                "add"               => \$addSc,
+                "reset"             => \$resetSc,
                 "firstrow=s"        => \$yStaSc,
                 "lastrow=s"         => \$yEndSc,
                 "rowdiv=s"          => \$yStepSc,
@@ -257,14 +262,16 @@ elsif( $res->{subcommand}[0] eq 'scurves' )
 
     if( defined $regionSc )
     {
-        $vcasnSc = defined $vcasnSc ? $vcasnSc : $regionSc;
-        my $vcasnStr = $regCharToStr{$vcasnSc};
+        my $vcasnStr = $regCharToStr{$regionSc};
         my $vcasnVal = Mimosis::mimosis_register_read( $fpga, $dacs{$vcasnStr}, $a );
         $vcasnStaSc = defined $vcasnStaSc ? $vcasnStaSc : $vcasnVal;
         $vcasnEndSc = defined $vcasnEndSc ? $vcasnEndSc : $vcasnStaSc;
         $vcasnStepSc = defined $vcasnStepSc ? $vcasnStepSc : 1;
 
-        # system("/d/jspc37/mimosis/analysis/mbs/dabc/build/bin/hldprint mbss://localhost:36789 &");
+        unless($pulseOnlySc)
+        {
+            system("/d/jspc37/mimosis/analysis/mbs/dabc/build/bin/hldprint mbss://localhost:36789 &");
+        }
 
         for ( my $vcasnSet = $vcasnStaSc;
               $vcasnSet <= $vcasnEndSc;
@@ -279,6 +286,7 @@ elsif( $res->{subcommand}[0] eq 'scurves' )
                 slow        => $slow,
                 a           => $a,
                 pulseonly   => $pulseOnlySc,
+                add         => $addSc,
                 region      => $regionSc,
                 firstrow    => $yStaSc,
                 lastrow     => $yEndSc,
@@ -297,11 +305,82 @@ elsif( $res->{subcommand}[0] eq 'scurves' )
                 analogDlimB => $analogDlimBSc,
                 modpulse    => $modpulseSc,
             );
-            trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00400000 + ($vcasnSet & 0xFF) ], 1 ); usleep($slow);
+
+            unless($pulseOnlySc)
+            {
+                Mimosis::send_params_scurve("FIT", 0,0,0,0,$regCharToStr{$regionSc},$vcasnSet);
+                Mimosis::await_ack();
+            }
         }
 
-        trb_register_write_mem( $fpga, 0xa209, 0, [ 0x00300000 ], 1 ); usleep($s);
+        unless($pulseOnlySc)
+        {
+            Mimosis::send_params_scurve("DONE", 0,0,0,0,0,0);
+            Mimosis::await_ack();
+            Mimosis::kill_proc_by_pid_file("/tmp/hldprint-pid");
+        }
         exit 0;
+
+    } elsif (defined $xSc && defined $ySc && defined $vcasnSc) {
+
+        my $vcasnVal = Mimosis::mimosis_register_read( $fpga, $dacs{$vcasnSc}, $a );
+        $vcasnStaSc = defined $vcasnStaSc ? $vcasnStaSc : $vcasnVal;
+        $vcasnEndSc = defined $vcasnEndSc ? $vcasnEndSc : $vcasnStaSc;
+        $vcasnStepSc = defined $vcasnStepSc ? $vcasnStepSc : 1;
+
+        unless($pulseOnlySc)
+        {
+            system("/d/jspc37/mimosis/analysis/mbs/dabc/build/bin/hldprint mbss://localhost:36789 &");
+        }
+
+        for ( my $vcasnSet = $vcasnStaSc;
+              $vcasnSet <= $vcasnEndSc;
+              $vcasnSet += $vcasnStepSc ) {
+            #set vcasn
+            Mimosis::mimosis_register_write( $fpga, $dacs{$vcasnSc}, $vcasnSet, $a ); usleep($slow);
+
+            if( $printDacSc || $printAllSc ) { printf("dac: $vcasnSet\n"); }
+
+            Mimosis::mimosis_scan_pixel(
+                fpga        => $fpga,
+                slow        => $slow,
+                a           => $a,
+                x           => $xSc,
+                y           => $ySc,
+                pulseonly   => $pulseOnlySc,
+                firstset    => $setStaSc,
+                lastset     => $setEndSc,
+                setdiv      => $setStepSc,
+                settime     => $setTimeSc,
+                printset    => $printSetSc,
+                printrow    => $printRowSc,
+                printall    => $printAllSc,
+                analogAlimA => $analogAlimASc,
+                analogAlimB => $analogAlimBSc,
+                analogDlimA => $analogDlimASc,
+                analogDlimB => $analogDlimBSc,
+                modpulse    => $modpulseSc,
+            );
+
+            unless($pulseOnlySc)
+            {
+                Mimosis::send_params_scurve("FIT", 0,0,0,0,$vcasnSc,$vcasnSet);
+                Mimosis::await_ack();
+            }
+        }
+
+        unless($pulseOnlySc)
+        {
+            Mimosis::send_params_scurve("DONE", 0,0,0,0,0,0);
+            Mimosis::await_ack();
+            Mimosis::kill_proc_by_pid_file("/tmp/hldprint-pid");
+        }
+        exit 0;
+
+    } else {
+
+        print "Mimosis::mimosis_scan_region: Must provide --region A|B|C|D or --x X and --y Y.\n";
+        exit 1;
     }
 }
 
similarity index 100%
rename from scripts/pulse/fpn
rename to scripts/legacy/fpn.py
diff --git a/scripts/pulse/fit-raw.py b/scripts/pulse/fit-raw.py
new file mode 100644 (file)
index 0000000..535e4ab
--- /dev/null
@@ -0,0 +1,74 @@
+import numpy as np
+import matplotlib.pyplot as plt
+import pandas as pd
+from scipy.optimize import curve_fit
+from scipy import special
+import sys
+
+
+
+def error_func(x, mean, sig, ampl):
+    return ampl*(1 + special.erf((x-mean)/(np.sqrt(2*sig))))
+
+
+
+def gauss_func(x, mean, sig, ampl):
+    return ampl*np.exp(-1*(((x-mean)**2)/(2*sig**2)))
+
+
+
+f =  sys.argv[1]
+df = pd.read_csv(f, delimiter='\t',header=None)
+
+x = np.linspace(0, 255, num=255)
+
+fpn = np.zeros(255)
+
+for i in range(len(df.loc[:])):
+
+    xS = []
+    for j in range(255):
+        if df.loc[i][j] != 0:
+            xS.append(j)
+
+    print(xS)
+
+    if sum(df.loc[i][0:255]) != 0:
+
+        hist = df.loc[i][0:255]
+
+        guess = [130, 25, 400]
+        params = []
+        try:
+            params, tmp  = curve_fit(error_func, x, hist)
+            print(params)
+        except RuntimeError:
+            continue
+
+        mean = int(round(params[0]))
+        if mean < 255 and mean >= 0:
+            fpn[mean] += 1
+
+        plt.bar(x,hist,width=1)
+        plt.plot(x,error_func(x,params[0],params[1],params[2]),color="red")
+
+        plt.savefig("raw-fit-" + str(i) + ".png")
+        plt.clf()
+        plt.cla()
+        plt.close()
+
+
+# plot fpn
+params = []
+#guess = [75, 25, 10]
+guess = [10, 10, 10]
+params, tmp = curve_fit(gauss_func, x, fpn,guess)
+print("\n\nFPN: " + str(params[1]) + "\n\n")
+print(params)
+print()
+print()
+
+plt.bar(x,fpn,width=1)
+plt.plot(x,gauss_func(x,params[0],params[1],params[2]),color="red")
+plt.savefig("fpn.png")
+
diff --git a/scripts/pulse/plot-raw.py b/scripts/pulse/plot-raw.py
new file mode 100755 (executable)
index 0000000..82fc7e5
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+import matplotlib.pyplot as plt
+import numpy as np
+import pandas as pd
+import sys
+
+f =  sys.argv[1]
+df = pd.read_csv(f, delimiter='\t',header=None)
+
+x = np.linspace(0, 255, num=255)
+
+for i in range(len(df.loc[:])):
+    if sum(df.loc[i][0:255]) != 0:
+        hist = df.loc[i][0:255]
+        plt.bar(x,hist,width=1)
+        plt.savefig("fpn-" + str(i) + ".png")
+        plt.clf()
+        plt.cla()
+        plt.close()
diff --git a/scripts/pulse/plot-root.py b/scripts/pulse/plot-root.py
new file mode 100755 (executable)
index 0000000..70b658d
--- /dev/null
@@ -0,0 +1,83 @@
+import matplotlib.pylab as plt
+import numpy as np
+import os
+import re
+import uproot
+import sys
+
+
+allData = np.zeros(1024*504*256)
+
+xLow = 512
+xHig = 890
+yLow = 100
+yHig = 400
+
+
+
+def dir_to_scurves(dataDir):
+
+    p = re.compile('VPH_fine_(.*)_VTH')
+    vphArr = []
+
+    for f in os.listdir(dataDir):
+
+        print(f)
+        vph = int(p.findall(f)[0])
+        if vph not in vphArr:
+            vphArr.append(vph)
+
+        if f.endswith(".root"):
+
+            fullName = os.path.join(dataDir, f)
+            infile = uproot.open(fullName)
+            matrix = infile['h2_integrated_frame_matrix;1'].values()
+
+            for x in range(len(matrix)):
+                if x > xLow and x < xHig:
+                    for y in range(len(matrix[x])):
+                        if y > yLow and y < yHig:
+                            allData[(y*1024+x)*256+vph] = matrix[x][y]
+
+            # plt.imshow(matrix, interpolation='none')
+            # plt.savefig(os.path.basename(fullName) + ".png")
+
+    vphArr.sort()
+    return vphArr
+
+
+
+#dataDir =  sys.argv[1]
+
+#dataDir = '/d/pepper/maps/ben/BackupMIMOSIS1SCurves/MIMOSIS1_DataConverter_unix/outputData/run_9412004/'
+dataDir = '/d/pepper/maps/ben/BackupMIMOSIS1SCurves/MIMOSIS1_DataConverter_unix/outputData/run_413137/'
+
+vphfine = dir_to_scurves(dataDir)
+
+
+for x in range(1024):
+    if x > xLow and x < xHig:
+        for y in range(504):
+            if y > yLow and y < yHig:
+
+                arr = []
+                s = 0
+                for i in vphfine:
+                    val = allData[(y*1024+x)*256+i]
+                    arr.append(val)
+                    s += val
+
+                if s < 50:
+                    continue
+
+                plt.bar(vphfine,arr,width=1)
+                plt.savefig("raw-" + str(x) + "-" + str(y) + ".png")
+                plt.clf()
+                plt.cla()
+                plt.close()
+
+
+
+# fileName = '/d/pepper/maps/ben/BackupMIMOSIS1SCurves/MIMOSIS1_DataConverter_unix/outputData/run_9412004/mimosis1_run9412004_VBB_3000_VPH_fine_65_VTH_106_noPLL.root'
+# print(infile.classnames())
+# events = infile['h2_integrated_frame_matrix;1'].all_members
diff --git a/scripts/pulse/requirements.txt b/scripts/pulse/requirements.txt
new file mode 100644 (file)
index 0000000..b56483f
--- /dev/null
@@ -0,0 +1,22 @@
+awkward==2.6.2
+awkward-cpp==30
+contourpy==1.2.0
+cramjam==2.8.3
+cycler==0.12.1
+fonttools==4.50.0
+fsspec==2024.3.1
+importlib_metadata==7.1.0
+kiwisolver==1.4.5
+matplotlib==3.8.3
+numpy==1.26.4
+packaging==24.0
+pandas==2.2.1
+pillow==10.2.0
+pyparsing==3.1.2
+python-dateutil==2.9.0.post0
+pytz==2024.1
+scipy==1.12.0
+six==1.16.0
+tzdata==2024.1
+uproot==5.3.2
+zipp==3.18.1
similarity index 100%
rename from scripts/DACscan.py
rename to scripts/qa/DACscan.py
diff --git a/scripts/test-mask.sh b/scripts/test-mask.sh
deleted file mode 100755 (executable)
index 4e0042f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-fpga=0xa100
-
-mimosis -f "${fpga}" -a reg 0x0020 0x42
-mimosis -f "${fpga}" -a instr 0x3f
-mimosis -f "${fpga}" -a instr 0x04
-mimosis -f "${fpga}" -a instr 0x3e
-mimosis -f "${fpga}" -a reg 0x0066 0x19 #analog pulsing pulse A, limit A
-mimosis -f "${fpga}" -a reg 0x0166 0x00
-mimosis -f "${fpga}" -a reg 0x0076 0x4b # analog pulsing pulse A, limit B
-mimosis -f "${fpga}" -a reg 0x0176 0x00
-mimosis -f "${fpga}" -a reg 0x0067 0x00 # analog pulsing pulse D, limit A
-mimosis -f "${fpga}" -a reg 0x0167 0x00
-mimosis -f "${fpga}" -a reg 0x0077 0x00 # analog pulsing pulse D, limit B
-mimosis -f "${fpga}" -a reg 0x0177 0x00
-mimosis -f "${fpga}" -a reg 0x007d 0x03 #set modpulse. possible values: 1f/1, 1f/2, 1f/4, 1f/8, 1f/16, 1f/32, 1f/64, 1f/128
-mimosis -f "${fpga}" -a instr 0x27      #select all columns
-mimosis -f "${fpga}" -a reg 0x0584 0xff #select some rows
-mimosis -f "${fpga}" -a instr 0x05        #INSTR set mask pulse
-mimosis -f "${fpga}" -a instr 0x3e        #INSTR unselect all pixels
-mimosis -f "${fpga}" -a reg 0x4087 0x0  #unselect all pixels (register wise)
-
-# mimosis -f "${fpga}" -a instr 0x3e        #INSTR unselect all pixels
-# mimosis -f "${fpga}" -a reg 0x4087 0x0  #unselect all pixels (register wise)
-# mimosis -f "${fpga}" -a instr 0x27        #select all columns
-# mimosis -f "${fpga}" -a reg 0x0584 0xff #select some rows
-# mimosis -f "${fpga}" -a instr 0x05        #INSTR set mask pulse
-# mimosis -f "${fpga}" -a instr 0x3e        #INSTR unselect all pixels
-# mimosis -f "${fpga}" -a reg 0x4087 0x0  #unselect all pixels (register wise)
index f628a4696ea1d75ab48d6c36a95ab367ee396c69..efad7cddb0d9a87d766ef892398bd83dca6881b6 100755 (executable)
@@ -29,5 +29,3 @@ trbcmd w 0xfe82 0xde05 0x100  #Mimosis reset
 echo "done"
 
 trbcmd i 0xffff
-
-bash -i