/[PAMELA software]/tof/flight/ToFNuclei/src/ToFNuclei.cpp
ViewVC logotype

Diff of /tof/flight/ToFNuclei/src/ToFNuclei.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by pamelats, Mon Mar 2 11:42:51 2009 UTC revision 1.3 by pamelats, Thu Apr 2 11:59:16 2009 UTC
# Line 4  Line 4 
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    
# Line 460  if ((pmtadc!=1) && (pmtadc!=9) || (pmtad Line 463  if ((pmtadc!=1) && (pmtadc!=9) || (pmtad
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();
# Line 476  if ((pmtadc==1) || (pmtadc==9) || (pmtad Line 480  if ((pmtadc==1) || (pmtadc==9) || (pmtad
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                               }                               }
# Line 518  if (jj == -1) Layerinfo[ilay] = -1; Line 523  if (jj == -1) Layerinfo[ilay] = -1;
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;
# Line 906  if ((pmtadc!=4) && (pmtadc!=8) || (pmtad Line 925  if ((pmtadc!=4) && (pmtadc!=8) || (pmtad
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();
# Line 921  if ((pmtadc==4) && (pmtadc==8) || (pmtad Line 941  if ((pmtadc==4) && (pmtadc==8) || (pmtad
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                               }                               }
# Line 979  if (jj == -1) Layerinfo[ilay] = -1; Line 1000  if (jj == -1) Layerinfo[ilay] = -1;
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;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.23