5#include "tpcclibConfig.h"
40 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
58 if(c2>=abss->
tacNr) {
return(3);}
63 for(
int i=0; i<abss->
sampleNr; i++) {
64 if(abss->
c[c1].
y[i]>0.0) m1++;
65 if(abss->
c[c2].
y[i]>0.0) m2++;
66 if(abss->
c[c1].
y[i]>0.0 || abss->
c[c2].
y[i]>0.0) m++;
95 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
113 if(c2>=abss->
tacNr) {
return(3);}
118 for(
int i=0; i<abss->
sampleNr; i++) {
119 if(abss->
c[c1].
y[i]>abss->
c[c2].
y[i] && abss->
c[c1].
y[i]>0.0) m1++;
120 if(abss->
c[c2].
y[i]>abss->
c[c1].
y[i] && abss->
c[c2].
y[i]>0.0) m2++;
143 if(ratio!=NULL) *ratio=nan(
"");
146 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
164 if(c2>=abss->
tacNr) {
return(3);}
167 double s1, s2, v1, v2, fdur, r;
170 for(
int i=0; i<abss->
sampleNr; i++) {
171 fdur=abss->
x2[i]-abss->
x1[i];
if(!(fdur>0.0))
continue;
172 v1=abss->
c[c1].
y[i]/fdur; v2=abss->
c[c2].
y[i]/fdur;
173 if(!isfinite(v1) || !isfinite(v2))
continue;
179 r=s1/s2;
if(!isfinite(r)) {
return(5);}
180 if(ratio!=NULL) *ratio=r;
201 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
209 if(channel!=1 && channel!=2)
return(3);
210 if(!isfinite(ratio) || ratio<=0.0)
return(4);
221 if(c2>=abss->
tacNr) {
return(5);}
228 abss->
c[c1].
y[i]=f*abss->
c[c2].
y[i];
232 abss->
c[c2].
y[i]=f*abss->
c[c1].
y[i];
249 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
267 if(c2>=abss->
tacNr) {
return(3);}
271 for(
int i=0; i<abss->
sampleNr; i++) {
272 fdur=abss->
x2[i]-abss->
x1[i];
if(!(fdur>0.0))
continue;
273 abss->
c[c1].
y[i]/=fdur;
274 abss->
c[c2].
y[i]/=fdur;
299 if(abss==NULL || abss->
tacNr<1 || abss->
sampleNr<1)
return(1);
307 if(mean==NULL)
return(3);
318 if(c2>=abss->
tacNr) {
return(3);}
324 for(
int i=0; i<abss->
sampleNr; i++) mean[i]=abss->
c[c2].
y[i];
329 for(
int i=0; i<abss->
sampleNr; i++) {
330 mean[i]=0.5*(abss->
c[c1].
y[i]+abss->
c[c2].
y[i]);
int abssAboveZero(TAC *abss, int *n1, int *n2, int *n)
int abssHigherCounts(TAC *abss, int *n1, int *n2)
int abssFixChannel(TAC *abss, int channel, double ratio)
int abssCalculateRatio(TAC *abss, double *ratio, int *n)
int abssChannelMean(TAC *abss, double *mean)
int abssCalculateCps(TAC *abss)
Header file for libtpcabss.
Header file for library libtpcextensions.
@ TAC_FORMAT_ABSS_ALLOGG
ALLOGG ABSS data; reading supported.
@ TAC_FORMAT_ABSS_GEMS
GEMS ABSS data; reading supported.
@ TAC_FORMAT_ABSS_ALLOGG_OLD
ALLOGG ABSS data (old format); reading supported.
@ TAC_FORMAT_ABSS_SCANDITRONICS
Scanditronics ABSS data; reading supported.