]> jspc29.x-matter.uni-frankfurt.de Git - mimosis_chain.git/commitdiff
added decoding for mim-2.1
authorMaps <maps@ikf>
Mon, 14 Apr 2025 07:01:00 +0000 (09:01 +0200)
committerMaps <maps@ikf>
Mon, 14 Apr 2025 07:01:00 +0000 (09:01 +0200)
analysis/rawreader/mimosis.h
analysis/rawreader/start.sh

index af223d69a1a5b590e28394fff34ebd32da035f76..ae047c759058da5b750fc38f54b0f9c9d2d8b0d1 100644 (file)
@@ -177,46 +177,92 @@ bool hadaq::MimosisProcessor::FirstBufferScan(const base::Buffer& buf) noexcept
 
 //Hit data - decode pixel address and save
       } else {
+        DecodePixel(data >> 16, column, row);
+        hitcount++;
+        Columns->Fill(column);
+        Matrix->Fill(column, row);
+        MatrixCurrent->Fill(column, row);
+        RegionCounts->Fill(column/16);
         
-        unsigned int dataWord = data >> 16;
-        int code = dataWord & 0b111;
+        int code = (data >> 16) & 0b111;
         
-        while (code >= 0) {
+        if ( code & 0b1) {
+          int codeTmp = 1;
+          DecodePixel(((data >> 16) + (codeTmp << 6)), column, row);
+          hitcount++;
+          Columns->Fill(column);
+          Matrix->Fill(column, row);
+          MatrixCurrent->Fill(column, row);
+          RegionCounts->Fill(column/16);
+          
+        }
         
-          DecodePixel(dataWord, column, row);
+        if ( code & 0b10 ) {
+          int codeTmp = 2;
+          DecodePixel(((data >> 16) + (codeTmp << 6)), column, row);
           hitcount++;
           Columns->Fill(column);
           Matrix->Fill(column, row);
           MatrixCurrent->Fill(column, row);
           RegionCounts->Fill(column/16);
           
-          code >> 1;
-          if (code == 0) {code = -1;}
-          dataWord = dataWord += 8;
+        }
         
+        if ( code & 0b100 ) {
+          int codeTmp = 3;
+          DecodePixel(((data >> 16) + (codeTmp << 6)), column, row);
+          hitcount++;
+          Columns->Fill(column);
+          Matrix->Fill(column, row);
+          MatrixCurrent->Fill(column, row);
+          RegionCounts->Fill(column/16);
+          
         }
-      
+        
       }
 
 //Second Hit data - decode pixel address and save
       if ((data & 0x0000FF00) != 0x0000FC00) {
+        DecodePixel(data & 0xFFFF, column, row);
+        hitcount++;
+        Columns->Fill(column);
+        Matrix->Fill(column, row);
+        MatrixCurrent->Fill(column, row);
+        RegionCounts->Fill(column/16);
         
-        unsigned int dataWord = data & 0xFFFF;
-        int code = dataWord & 0b111;
+        int code = data & 0b111;
         
-        while (code >= 0) {
+        if ( code & 0b1) {
+          int codeTmp = 1;
+          DecodePixel(((data & 0xFFFF) + (codeTmp << 6)), column, row);
+          hitcount++;
+          Columns->Fill(column);
+          Matrix->Fill(column, row);
+          MatrixCurrent->Fill(column, row);
+          RegionCounts->Fill(column/16);
+          
+        }
         
-          DecodePixel(dataWord, column, row);
+        if ( code & 0b10) {
+          int codeTmp = 2;
+          DecodePixel(((data & 0xFFFF)  + (codeTmp << 6)), column, row);
           hitcount++;
           Columns->Fill(column);
           Matrix->Fill(column, row);
           MatrixCurrent->Fill(column, row);
           RegionCounts->Fill(column/16);
           
-          code >> 1;
-          if (code == 0) {code = -1;}
-          dataWord = dataWord += 8;
+        }
         
+        if ( code & 0b100) {
+          int codeTmp = 3;
+          DecodePixel(((data & 0xFFFF) + (codeTmp << 6)), column, row);
+          hitcount++;
+          Columns->Fill(column);
+          Matrix->Fill(column, row);
+          MatrixCurrent->Fill(column, row);
+          RegionCounts->Fill(column/16);
+          
         }
       }
     }
index af12af476d94b53b0db671fddf1358f3edf15291..900a26f6333095fad3f17e1aaf4ff42e1aed88a7 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-sleep 8
+sleep 7
 
 if [[ ! -v DAQOPSERVER ]]; then
     echo "DAQOPSERVER not set."