From: Maps Date: Mon, 14 Apr 2025 07:01:00 +0000 (+0200) Subject: added decoding for mim-2.1 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=72d06339c36837e069c33e64e864056d843da817;p=mimosis_chain.git added decoding for mim-2.1 --- diff --git a/analysis/rawreader/mimosis.h b/analysis/rawreader/mimosis.h index af223d6..ae047c7 100644 --- a/analysis/rawreader/mimosis.h +++ b/analysis/rawreader/mimosis.h @@ -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); + } } } diff --git a/analysis/rawreader/start.sh b/analysis/rawreader/start.sh index af12af4..900a26f 100755 --- a/analysis/rawreader/start.sh +++ b/analysis/rawreader/start.sh @@ -1,6 +1,6 @@ #!/bin/bash -sleep 8 +sleep 7 if [[ ! -v DAQOPSERVER ]]; then echo "DAQOPSERVER not set."