From ae9b39fba326ddd6d1c591e8d10315a6b4336345 Mon Sep 17 00:00:00 2001 From: bergamaschi Date: Thu, 20 Sep 2012 15:28:54 +0000 Subject: [PATCH] now updating max number of modules when reading the number of modules git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@265 951219d9-93cf-4727-9268-0efd64621fa3 --- .../multiSlsDetector/multiSlsDetector.cpp | 16 +++++++--- .../slsDetector/slsDetector.cpp | 27 ++++++++++++++++ .../slsDetectorAnalysis/postProcessing.cpp | 32 ++++++++++++++++++- 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 003f4ea25..daa75c80f 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -2893,9 +2893,16 @@ int multiSlsDetector::getMaxMods() { for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { ret1=detectors[idet]->getMaxMods(); +#ifdef VERBOSE + cout << "detector " << idet << " maxmods " << ret1 << endl; +#endif ret+=ret1; } } +#ifdef VERBOSE + cout << "max mods is " << ret << endl; +#endif + return ret; } @@ -2948,14 +2955,15 @@ int multiSlsDetector::setNumberOfModules(int p, dimension d) { int multiSlsDetector::decodeNMod(int i, int &id, int &im) { #ifdef VERBOSE - cout << " Module " << i << " belongs to detector " << id ; + cout << " Module " << i << " belongs to detector " << id << endl;; + cout << getMaxMods(); #endif if (i<0 || i>=getMaxMods()) { id=-1; im=-1; #ifdef VERBOSE - cout << "A---------" << id << " position " << im << endl; + cout << " A---------" << id << " position " << im << endl; #endif return -1; @@ -2968,7 +2976,7 @@ int multiSlsDetector::decodeNMod(int i, int &id, int &im) { id=idet; im=i; #ifdef VERBOSE - cout << "B---------" <nMod[d]=retval; thisDetector->nMods=thisDetector->nMod[X]*thisDetector->nMod[Y]; + + + if (thisDetector->nModsMaxnMods) + thisDetector->nModsMax=thisDetector->nMods; + + if (thisDetector->nModMax[X]nMod[X]) + thisDetector->nModMax[X]=thisDetector->nMod[X]; + + if (thisDetector->nModMax[Y]nMod[Y]) + thisDetector->nModMax[Y]=thisDetector->nMod[Y]; + + + + + + + + + int dr=thisDetector->dynamicRange; if (dr==24) dr=32; @@ -2848,6 +2867,14 @@ int slsDetector::updateDetectorNoWait() { n = controlSocket->ReceiveDataOnly( &nm,sizeof(nm)); thisDetector->nMod[Y]=nm; thisDetector->nMods=thisDetector->nMod[Y]*thisDetector->nMod[X]; + if (thisDetector->nModsMaxnMods) + thisDetector->nModsMax=thisDetector->nMods; + + if (thisDetector->nModMax[X]nMod[X]) + thisDetector->nModMax[X]=thisDetector->nMod[X]; + + if (thisDetector->nModMax[Y]nMod[Y]) + thisDetector->nModMax[Y]=thisDetector->nMod[Y]; n = controlSocket->ReceiveDataOnly( &nm,sizeof(nm)); thisDetector->dynamicRange=nm; diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 48482dd03..f91b23bec 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -94,10 +94,17 @@ fname=createFileName(); if(*correctionMask&(1<0) {