Changed HM-configuration at FOCUS

This commit is contained in:
cvs
2003-05-09 12:24:21 +00:00
parent 47c60ba400
commit d28206f589
14 changed files with 609 additions and 396 deletions

View File

@ -22,10 +22,13 @@
#include "fortify.h"
/* change this in line with HistMem.h */
typedef int HistInt;
#include "fomerge.h"
/*================== module static data items ==========================*/
static HistInt *masterData, *upperData, *mediumData, *lowerData,
*mergedData = NULL;
@ -100,7 +103,7 @@ int initializeFM(char *mergefile)
iTest = sscanf(pBuffer,"%d",&nUpper);
if((iTest != 1) || (nUpper <= 0) )
{
fprintf(stdout,"ERROR: Invalid or corrupt merge data file");
fprintf(stdout,"ERROR: Invalid or corrupt merge data file");
return 0;
}
upperTheta = (float *)malloc(nUpper*sizeof(float));
@ -161,7 +164,7 @@ int initializeFM(char *mergefile)
timeBin = 0;
iMerged = 0;
medium =1;
upper = lower = 0;
upper = lower = 1;
fclose(fd);
return 1;
@ -171,7 +174,7 @@ int initializeFM(char *mergefile)
banks. This routine contains the knowledge how the detector banks are
laid out in the histogram returned from the histogram memory.
-------------------------------------------------------------------------*/
int setFMDataPointer(HistInt *lData, int mytimeBins)
int setFMDataPointer(HistInt *lData, int mytimeBins, int bank)
{
HistInt *dataPtr;
@ -180,37 +183,38 @@ int setFMDataPointer(HistInt *lData, int mytimeBins)
/* the first set is the medium bank */
masterData = dataPtr = lData;
if(medium)
{
mediumData = masterData;
if (bank==1){
if(medium)
{
mediumData = masterData;
}
else
{
mediumData = NULL;
}
}
else
{
mediumData = NULL;
}
/* the next set is the upper bank */
if(upper)
{
upperData = dataPtr + mytimeBins*nMedium;
dataPtr = upperData;
}
else
{
upperData = NULL;
}
if (bank==2){
if(upper)
{
upperData = masterData;
}
else
{
upperData = NULL;
}
}
/* the last is the lower bank */
if(lower)
{
lowerData = dataPtr + mytimeBins*nUpper;
dataPtr = lowerData;
}
else
{
lowerData = NULL;
if (bank==3) {
if(lower)
{
lowerData = masterData;
}
else
{
lowerData = NULL;
}
}
/* deal with data allocation for merged data */
if(mytimeBins != timeBin)
{
@ -234,6 +238,7 @@ int setFMDataPointer(HistInt *lData, int mytimeBins)
iMerged = 0;
return 1;
}
/*-----------------------------------------------------------------------*/
void setFMconfiguration(int up, int med, int low)
{
@ -253,6 +258,7 @@ static void mergeData(void)
if(!mergedData)
return;
memset(mergedData,0,nMerged*sizeof(HistInt));
for(i = 0; i < nMerged; i++)
{
startMerge = mergedData + i * timeBin;
@ -396,3 +402,5 @@ int getFMdim(int which)
assert(0);
}
}