mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-12 21:07:13 +02:00
client gives now 3d positions of detector to be configured in udp header, only in jungfrau firmware till now
This commit is contained in:
@ -116,6 +116,8 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1)
|
||||
thisMultiDetector->onlineFlag = ONLINE_FLAG;
|
||||
thisMultiDetector->receiverOnlineFlag = OFFLINE_FLAG;
|
||||
thisMultiDetector->numberOfDetectors=0;
|
||||
thisMultiDetector->numberOfDetector[X]=0;
|
||||
thisMultiDetector->numberOfDetector[Y]=0;
|
||||
for (int id=0; id<MAXDET; ++id) {
|
||||
thisMultiDetector->detectorIds[id]=-1;
|
||||
thisMultiDetector->offsetX[id]=0;
|
||||
@ -433,6 +435,8 @@ void multiSlsDetector::updateOffsets(){//cannot paralllize due to slsdetector ca
|
||||
thisMultiDetector->numberOfChannel[Y] = 0;
|
||||
thisMultiDetector->maxNumberOfChannel[X] = 0;
|
||||
thisMultiDetector->maxNumberOfChannel[Y] = 0;
|
||||
thisMultiDetector->numberOfDetector[X] = 0;
|
||||
thisMultiDetector->numberOfDetector[Y] = 0;
|
||||
|
||||
|
||||
for (int i=0; i<thisMultiDetector->numberOfDetectors; ++i) {
|
||||
@ -455,6 +459,8 @@ void multiSlsDetector::updateOffsets(){//cannot paralllize due to slsdetector ca
|
||||
numY += detectors[i]->getTotalNumberOfChannels(Y);
|
||||
maxX += detectors[i]->getMaxNumberOfChannels(X);
|
||||
maxY += detectors[i]->getMaxNumberOfChannels(Y);
|
||||
++thisMultiDetector->numberOfDetector[X];
|
||||
++thisMultiDetector->numberOfDetector[Y];
|
||||
#ifdef VERBOSE
|
||||
cout<<"incrementing in both direction"<<endl;
|
||||
#endif
|
||||
@ -466,6 +472,7 @@ void multiSlsDetector::updateOffsets(){//cannot paralllize due to slsdetector ca
|
||||
prevChanY = detectors[i]->getTotalNumberOfChannels(Y);
|
||||
numY += detectors[i]->getTotalNumberOfChannels(Y);
|
||||
maxY += detectors[i]->getMaxNumberOfChannels(Y);
|
||||
++thisMultiDetector->numberOfDetector[Y];
|
||||
#ifdef VERBOSE
|
||||
cout<<"incrementing in y direction"<<endl;
|
||||
#endif
|
||||
@ -483,6 +490,7 @@ void multiSlsDetector::updateOffsets(){//cannot paralllize due to slsdetector ca
|
||||
prevChanX = detectors[i]->getTotalNumberOfChannels(X);
|
||||
numX += detectors[i]->getTotalNumberOfChannels(X);
|
||||
maxX += detectors[i]->getMaxNumberOfChannels(X);
|
||||
++thisMultiDetector->numberOfDetector[X];
|
||||
#ifdef VERBOSE
|
||||
cout<<"incrementing in x direction"<<endl;
|
||||
#endif
|
||||
@ -791,24 +799,6 @@ int multiSlsDetector::addSlsDetector(detectorType t, int pos) {
|
||||
|
||||
|
||||
|
||||
void multiSlsDetector::getNumberOfDetectors(int& nx, int& ny) {
|
||||
nx = 0; ny = 0;
|
||||
|
||||
int offsetx = -1, offsety = -1;
|
||||
for (int i = 0; i < thisMultiDetector->numberOfDetectors; ++i) {
|
||||
if (thisMultiDetector->offsetX[i] > offsetx) {
|
||||
++nx;
|
||||
offsetx = thisMultiDetector->offsetX[i];
|
||||
}
|
||||
if (thisMultiDetector->offsetY[i] > offsety) {
|
||||
++ny;
|
||||
offsety = thisMultiDetector->offsetY[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int multiSlsDetector::getDetectorOffset(int pos, int &ox, int &oy) {
|
||||
ox=-1;
|
||||
|
@ -67,6 +67,9 @@ class multiSlsDetector : public slsDetectorUtils {
|
||||
/** Number of detectors operated at once */
|
||||
int numberOfDetectors;
|
||||
|
||||
/** Number of detectors operated at once */
|
||||
int numberOfDetector[2];
|
||||
|
||||
/** Ids of the detectors to be operated at once */
|
||||
int detectorIds[MAXDET];
|
||||
|
||||
@ -329,11 +332,17 @@ class multiSlsDetector : public slsDetectorUtils {
|
||||
\returns number of detectors */
|
||||
int getNumberOfDetectors() {return thisMultiDetector->numberOfDetectors;};
|
||||
|
||||
/**returns number of detectors in dimension d
|
||||
* \param d dimension d
|
||||
* \returns number of detectors in dimension d
|
||||
*/
|
||||
int getNumberOfDetectors(dimension d) {return thisMultiDetector->numberOfDetector[d];};
|
||||
|
||||
/** returns the number of detectors in each direction
|
||||
\param nx number of detectors in x direction
|
||||
\param ny number of detectors in y direction
|
||||
*/
|
||||
void getNumberOfDetectors(int& nx, int& ny);
|
||||
void getNumberOfDetectors(int& nx, int& ny){nx=thisMultiDetector->numberOfDetector[X];ny=thisMultiDetector->numberOfDetector[Y];};
|
||||
|
||||
int getMaxMods();
|
||||
int getNMods();
|
||||
|
Reference in New Issue
Block a user