added nchans for each dimension and edited update offsets to work better for 2d dets

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@514 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-04-16 13:39:58 +00:00
parent cec069f0e9
commit ca15ff971d
5 changed files with 91 additions and 43 deletions

View File

@ -490,6 +490,8 @@ int slsDetector::initializeDetectorSize(detectorType type) {
switch(thisDetector->myDetectorType) {
case MYTHEN:
thisDetector->nChans=128;
thisDetector->nChan[X]=128;
thisDetector->nChan[Y]=1;
thisDetector->nChips=10;
thisDetector->nDacs=6;
thisDetector->nAdcs=0;
@ -503,6 +505,8 @@ int slsDetector::initializeDetectorSize(detectorType type) {
break;
case PICASSO:
thisDetector->nChans=128;
thisDetector->nChan[X]=128;
thisDetector->nChan[Y]=1;
thisDetector->nChips=12;
thisDetector->nDacs=6;
thisDetector->nAdcs=0;
@ -512,6 +516,8 @@ int slsDetector::initializeDetectorSize(detectorType type) {
break;
case GOTTHARD:
thisDetector->nChans=128;
thisDetector->nChan[X]=128;
thisDetector->nChan[Y]=1;
thisDetector->nChips=10;
thisDetector->nDacs=8;
thisDetector->nAdcs=5;
@ -521,6 +527,8 @@ int slsDetector::initializeDetectorSize(detectorType type) {
break;
case MOENCH:
thisDetector->nChans=160*160;
thisDetector->nChan[X]=160;
thisDetector->nChan[Y]=160;
thisDetector->nChips=1;
thisDetector->nDacs=8;
thisDetector->nAdcs=1;
@ -530,7 +538,9 @@ int slsDetector::initializeDetectorSize(detectorType type) {
break;
default:
thisDetector->nChans=0;
thisDetector->nChips=0;
thisDetector->nChan[X]=0;
thisDetector->nChan[Y]=0;
thisDetector->nChips=0;
thisDetector->nDacs=0;
thisDetector->nAdcs=0;
thisDetector->nModMax[X]=0;

View File

@ -116,6 +116,8 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
int nModsMax;
/** number of channels per chip */
int nChans;
/** number of channels per chip in one direction */
int nChan[2];
/** number of chips per module*/
int nChips;
/** number of dacs per module*/
@ -564,6 +566,9 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
/** Returns the number of channels per chip (without connecting to the detector) */
int getNChans(){return thisDetector->nChans;}; //
/** Returns the number of channels per chip (without connecting to the detector) in one direction */
int getNChans(dimension d){return thisDetector->nChan[d];}; //
/** Returns the number of chips per module (without connecting to the detector) */
int getNChips(){return thisDetector->nChips;}; //
@ -575,6 +580,8 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
int getChansPerMod(int imod=0){return thisDetector->nChans*thisDetector->nChips;};
int getChansPerMod( dimension d,int imod=0){return thisDetector->nChan[d]*thisDetector->nChips;};
/** Returns the max number of modules in direction d (without connecting to the detector) */
int getNMaxMod(dimension d){return thisDetector->nModMax[d];}; //
@ -584,11 +591,11 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
int getTotalNumberOfChannels(){return thisDetector->nChans*thisDetector->nChips*thisDetector->nMods;};
int getTotalNumberOfChannels(dimension d){return thisDetector->nChans*thisDetector->nChips*thisDetector->nMod[X];};
int getTotalNumberOfChannels(dimension d){return thisDetector->nChan[d]*thisDetector->nChips*thisDetector->nMod[X];};
int getMaxNumberOfChannels(){return thisDetector->nChans*thisDetector->nChips*thisDetector->nModsMax;};
int getMaxNumberOfChannels(dimension d){return thisDetector->nChans*thisDetector->nChips*thisDetector->nModMax[d];};
int getMaxNumberOfChannels(dimension d){return thisDetector->nChan[d]*thisDetector->nChips*thisDetector->nModMax[d];};
/** Returns number of rois */
int getNRoi(){return thisDetector->nROI;};