From 1edb1e881637ee7df0caa8fc2ac633e2b66c87a1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Mon, 7 Sep 2020 13:03:15 +0200 Subject: [PATCH] GUI: adding 1D detectors by default in x direction, others in y dir (#164) --- slsDetectorSoftware/src/DetectorImpl.cpp | 30 +++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index a080b8d27..b576b0237 100644 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -288,16 +288,30 @@ void DetectorImpl::updateDetectorSize() { LOG(logDEBUG) << "Updating Multi-Detector Size: " << size(); const slsDetectorDefs::xy det_size = detectors[0]->getNumberOfChannels(); - + int maxx = multi_shm()->numberOfChannels.x; int maxy = multi_shm()->numberOfChannels.y; - if (maxy == 0) { - maxy = det_size.y * size(); + int ndetx = 0, ndety = 0; + // 1d, add detectors along x axis + if (det_size.y == 1) { + if (maxx == 0) { + maxx = det_size.x * size(); + } + ndetx = maxx / det_size.x; + ndety = size() / ndetx; + if ((maxx % det_size.x) > 0) { + ++ndety; + } } - - int ndety = maxy / det_size.y; - int ndetx = size() / ndety; - if ((maxy % det_size.y) > 0) { - ++ndetx; + // 2d, add detectors along y axis (due to eiger top/bottom) + else { + if (maxy == 0) { + maxy = det_size.y * size(); + } + ndety = maxy / det_size.y; + ndetx = size() / ndety; + if ((maxy % det_size.y) > 0) { + ++ndetx; + } } multi_shm()->numberOfDetector.x = ndetx;