4 |
// by "Set_Beta" (ToFNuclei.h), the code is used as before. |
// by "Set_Beta" (ToFNuclei.h), the code is used as before. |
5 |
// If beta_in was set by the user using "Set_Beta", this beta |
// If beta_in was set by the user using "Set_Beta", this beta |
6 |
// is taken for the calculations. |
// is taken for the calculations. |
7 |
//26-feb-2009: Inserted S115B calibartions from Lucia |
//26-feb-2009: Inserted S115B calibrations from Lucia |
8 |
// |
// |
9 |
|
//02-apr-2009: bug found in some "if" statemnts for the |
10 |
|
// "Layercharge" definition, but only important if ADC=4095 |
11 |
|
// |
12 |
//***************************************************** |
//***************************************************** |
13 |
#include <ToFNuclei.h> |
#include <ToFNuclei.h> |
14 |
|
|
463 |
TGraph *gr2 = new TGraph(n1,x1,y1); |
TGraph *gr2 = new TGraph(n1,x1,y1); |
464 |
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
465 |
chelp = spl2->Eval(ym); |
chelp = spl2->Eval(ym); |
466 |
|
if (chelp<0.) chelp=0.0001; //WM new |
467 |
charge = TMath::Sqrt(chelp); |
charge = TMath::Sqrt(chelp); |
468 |
gr2->Delete(); |
gr2->Delete(); |
469 |
spl2->Delete(); |
spl2->Delete(); |
480 |
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
481 |
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
482 |
chelp = m*ym + b; |
chelp = m*ym + b; |
483 |
|
if (chelp<0.) chelp=0.0001; //WM new |
484 |
charge= TMath::Sqrt(chelp); |
charge= TMath::Sqrt(chelp); |
485 |
PMTcharge_arr[pmtadc] = charge; |
PMTcharge_arr[pmtadc] = charge; |
486 |
} |
} |
523 |
|
|
524 |
if (jj != -1) { |
if (jj != -1) { |
525 |
Int_t ih = ihelp_a[ilay] + 2*jj; |
Int_t ih = ihelp_a[ilay] + 2*jj; |
526 |
|
|
527 |
|
// New WM |
528 |
|
Int_t igood1=0; |
529 |
|
Int_t igood2=0; |
530 |
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; |
531 |
|
if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; |
532 |
|
|
533 |
|
if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.)) xhelp = 0.; |
534 |
|
if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
535 |
|
if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; |
536 |
|
if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; |
537 |
|
|
538 |
|
|
539 |
|
/* |
540 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
541 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
542 |
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
543 |
|
*/ |
544 |
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
545 |
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
546 |
if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
925 |
TGraph *gr2 = new TGraph(n1,x1,y1); |
TGraph *gr2 = new TGraph(n1,x1,y1); |
926 |
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
927 |
chelp = spl2->Eval(ym); |
chelp = spl2->Eval(ym); |
928 |
|
if (chelp<0.) chelp=0.0001; //WM new |
929 |
charge = TMath::Sqrt(chelp); |
charge = TMath::Sqrt(chelp); |
930 |
|
|
931 |
gr2->Delete(); |
gr2->Delete(); |
941 |
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
942 |
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
943 |
chelp = m*ym + b; |
chelp = m*ym + b; |
944 |
|
if (chelp<0.) chelp=0.0001; //WM new |
945 |
charge= TMath::Sqrt(chelp); |
charge= TMath::Sqrt(chelp); |
946 |
PMTcharge_arr[pmtadc] = charge; |
PMTcharge_arr[pmtadc] = charge; |
947 |
} |
} |
1000 |
|
|
1001 |
if (jj != -1) { |
if (jj != -1) { |
1002 |
Int_t ih = ihelp_a[ilay] + 2*jj; |
Int_t ih = ihelp_a[ilay] + 2*jj; |
1003 |
|
|
1004 |
|
// New WM |
1005 |
|
Int_t igood1=0; |
1006 |
|
Int_t igood2=0; |
1007 |
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; |
1008 |
|
if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; |
1009 |
|
|
1010 |
|
if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.)) xhelp = 0.; |
1011 |
|
if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
1012 |
|
if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; |
1013 |
|
if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; |
1014 |
|
|
1015 |
|
|
1016 |
|
/* |
1017 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
1018 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
1019 |
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
1020 |
|
*/ |
1021 |
|
|
1022 |
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
1023 |
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |