4.
Energy correction
for(ihit=0; ihit<nhit; ihit++)
{
ecpath(geom,hit[ihit].i,hit[ihit].j,path);
energy =
hit[ihit].energy;
hit[ihit].energy = 0.;
hit[ihit].time = 0.;
hit[ihit].width = 0.;
/* loop for 3 axis */
npks = 0;
for(axis=0; axis<3;
axis++)
{
npks++;
peakid =
hit[ihit].peak1[axis];
fraction[axis]
= energy / peak[axis][peakid].tmp;
lat = 0.;
for(ith=0;
ith<peak[axis][peakid].stripn; ith++)
{
lat
= lat + atlen[axis][peak[axis][peakid].strip1+ith];
}
lat = lat /
peak[axis][peakid].stripn;
attn =
exp(-path[axis]/lat);
hit[ihit].energy = hit[ihit].energy + fraction[axis] *
peak[axis][peakid].energy / attn;
hit[ihit].time
= hit[ihit].time + peak[axis][peakid].time;
hit[ihit].uvw2[axis] = peak[axis][peakid].width;
hit[ihit].width
= hit[ihit].width + peak[axis][peakid].width;
}
hit[ihit].width =
hit[ihit].width / 3;
npks = MAX(npks,1);
hit[ihit].time =
hit[ihit].time / npks;
ecxyz(geom,hit[ihit].i,hit[ihit].j,hit[ihit].k,&hit[ihit].x);
}