Changed HM-configuration at FOCUS
This commit is contained in:
68
fomerge.c
68
fomerge.c
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user