33 for(
int fi=0; fi<image->
dimt; fi++) {
35 if(image->
end[fi]>0.0) {
43 if(mode==0) lambda=-lambda;
44 if(fi==image->
dimt-1 && image->
end[fi]<=0.0)
return(3);
47 if(
IMG_TEST) printf(
"applied_dc_factor[%d] := %g\n", fi+1, cf);
55 for(
int pi=0; pi<image->
dimz; pi++)
56 for(
int i=0; i<image->
dimy; i++)
57 for(
int j=0; j<image->
dimx; j++)
58 image->
m[pi][i][j][fi]*=cf;
93 float lambda, cf, dur;
100 if(mode!=0 && image->
end[image->
dimt-1]<=0.0)
return(3);
103 for(
int fi=0; fi<image->
dimt; fi++) {
107 dur=image->
end[fi]-image->
start[fi];
108 if(image->
end[fi]>0.0) {
146 if(verbose>0) printf(
"imgBranchingCorrection(*img, %d, %d, *status)\n",
149 if(status!=NULL) strcpy(status,
"invalid input");
152 if(verbose>0) printf(
"Error: unknown isotope.\n");
153 if(status!=NULL) strcpy(status,
"unknown isotope");
159 if(bf<=0.0 || bf>=1.0) {
161 if(verbose>2) printf(
"isotope := %d\n", isotope);
164 if(bf<=0.0 || bf>=1.0) {
165 if(verbose>0) printf(
"Error: branching fraction unknown for the isotope.\n");
166 if(status!=NULL) strcpy(status,
"branching fraction unknown for the isotope");
171 if(mode==0) cf=bf;
else cf=1.0/bf;
173 if(verbose>1) printf(
"multiplying data by %g\n", cf);
174 for(
int fi=0; fi<image->
dimt; fi++) {
175 for(
int pi=0; pi<image->
dimz; pi++)
176 for(
int i=0; i<image->
dimy; i++)
177 for(
int j=0; j<image->
dimx; j++)
178 image->
m[pi][i][j][fi]*=cf;
186 if(status!=NULL) strcpy(status,
"ok");
float branchingFraction(int isotope)
double hl2lambda(double halflife)
char * hlIsotopeCode(int isotope)
float hlLambda2factor_float(float lambda, float frametime, float framedur)
int hlIsotopeFromHalflife(double halflife)
char * imgIsotope(IMG *img)
int imgBranchingCorrection(IMG *image, int mode, int verbose, char *status)
int imgSetDecayCorrFactors(IMG *image, int mode)
int imgDecayCorrection(IMG *image, int mode)
Header file for libtpcimgio.
#define IMG_STATUS_OCCUPIED
#define IMG_DC_NONCORRECTED