/[PAMELA software]/DarthVader/ToFLevel2/src/tofl2com.for
ViewVC logotype

Diff of /DarthVader/ToFLevel2/src/tofl2com.for

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

revision 1.9 by pamelats, Thu Nov 27 13:47:54 2008 UTC revision 1.15 by mocchiut, Thu Jan 16 15:29:35 2014 UTC
# Line 31  C             call comes from "tofl2com" Line 31  C             call comes from "tofl2com"
31  C  mar-08 WM: Bug found in dEdx if check_charge>1  C  mar-08 WM: Bug found in dEdx if check_charge>1
32  C  oct-08 WM: Calculation of zenith angle debugged, sometimes strange values  C  oct-08 WM: Calculation of zenith angle debugged, sometimes strange values
33  C             were possible  C             were possible
34    C  nov-09 WM: the dEdx part ("adctof_c") moved to the new dEdx routine from Napoli
35    C  feb-10 WM: k1 values now for Z=1, Z=2, Z>2, k2 values are fix
36  C******************************************************************************  C******************************************************************************
37    
38        INTEGER FUNCTION TOFL2COM()        INTEGER FUNCTION TOFL2COM()
# Line 52  C     Line 54  C    
54        REAL dx,dy,dr,ds        REAL dx,dy,dr,ds
55        REAL yhelp,yhelp1,yhelp2,xhelp,xhelp1,xhelp2        REAL yhelp,yhelp1,yhelp2,xhelp,xhelp1,xhelp2
56        REAL c1,c2        REAL c1,c2
57          REAL dist
58    
59  C      REAL sw,sxw,w_i  C      REAL sw,sxw,w_i
60  C      INTEGER icount  C      INTEGER icount
# Line 104  c     second index : 1... number of padd Line 107  c     second index : 1... number of padd
107    
108                
109        REAL theta13        REAL theta13
110  C--   DATA ZTOF/53.74,53.04,23.94,23.44,-23.49,-24.34/ !Sergio 9.05.2006  
111    c      DOUBLE PRECISION ZTOF(6)
112          REAL ZTOF(6) !EM GCC4.7
113          DATA ZTOF/53.74,53.04,23.94,23.44,-23.49,-24.34/ !Sergio 9.05.2006
114    
115        REAL tofarm12        REAL tofarm12
116        PARAMETER (tofarm12 = 29.70) ! from 53.39 to 23.69        PARAMETER (tofarm12 = 29.70) ! from 53.39 to 23.69
117        REAL tofarm23                REAL tofarm23        
118        PARAMETER (tofarm23 = 47.61)  ! from 23.69 to -23.92        PARAMETER (tofarm23 = 47.61)  ! from 23.69 to -23.92
119        REAL tofarm13        REAL tofarm13
120        PARAMETER (tofarm13 = 77.31)  ! from 53.39 to -23.92        PARAMETER (tofarm13 = 77.31)  ! from 53.39 to -23.92
# Line 120  C--   DATA ZTOF/53.74,53.04,23.94,23.44, Line 127  C--   DATA ZTOF/53.74,53.04,23.94,23.44,
127        REAL atten,pc_adc,check_charge,newbeta        REAL atten,pc_adc,check_charge,newbeta
128    
129        INTEGER IZ        INTEGER IZ
       REAL k1corrA1,k1corrB1,k1corrC1  
130    
131    
132        INTEGER ifst        INTEGER ifst
# Line 156  C     ratio between helium and proton ca Line 162  C     ratio between helium and proton ca
162         itdc = 1         itdc = 1
163         iadc = 2         iadc = 2
164    
 C--- These are the corrections to the k1-value for Z>2 particles  
        k1corrA1 = 0.  
        k1corrB1 = -5.0  
        k1corrC1=  8.0  
   
   
165          ENDIF          ENDIF
166  C---------------------------------------------------------------------  C---------------------------------------------------------------------
167    
# Line 636  C-----------------------------S3 ------- Line 636  C-----------------------------S3 -------
636  C----------------------------------------------------------------------  C----------------------------------------------------------------------
637  C---------------------  zenith angle theta  ---------------------------  C---------------------  zenith angle theta  ---------------------------
638  C----------------------------------------------------------------------  C----------------------------------------------------------------------
 C-----------------------------  old  ----------------------------------  
 c      dx=0.  
 c      dy=0.  
 c      dr=0.  
 c      theta13 = 0.  
 c  
 c         IF ((tof12_i.GT.none_find).AND.(tof32_i.GT.none_find))  
 c     &        dx  = xtofpos(1) - xtofpos(3)  
 c         IF ((tof11_i.GT.none_find).AND.(tof31_i.GT.none_find))  
 c     &        dy  = ytofpos(1) - ytofpos(3)  
 c         dr = sqrt(dx*dx+dy*dy)  
 c         theta13 = atan(dr/tofarm13)  
 c  
 c  
 C-----------------------------  new  ------------------------------  
639    
640         xhelp1=0.         xhelp1=0.
641         if (tof11_i.GT.none_find) xhelp1=tof11_x(tof11_i)         if (tof11_i.GT.none_find) xhelp1=tof11_x(tof11_i)
# Line 690  C--- the k1 constants in the beta calcul Line 675  C--- the k1 constants in the beta calcul
675  C----------------------------------------------------------------------  C----------------------------------------------------------------------
676    
677           iz = int(check_charge(theta13,hitvec))           iz = int(check_charge(theta13,hitvec))
678  c         write(*,*) 'charge in tofl2com',iz  C         write(*,*) 'charge in tofl2com',iz
679    
680  C--------------------------------------------------------------------  C--------------------------------------------------------------------
681  C---- if TDCleft.and.TDCright and NO ADC insert artificial ADC  C---- if TDCleft.and.TDCright and NO ADC insert artificial ADC
# Line 958  C---- Line 943  C----
943           tdc_c(ch32b(i),hb32b(i))=tof32(right,i,itdc)           tdc_c(ch32b(i),hb32b(i))=tof32(right,i,itdc)
944                                               ENDIF                                               ENDIF
945        ENDDO        ENDDO
946                  
947    
948  C---------------------------------------------------------------  C---------------------------------------------------------------
949  C--- calculate track position in paddle using timing difference  C--- calculate track position in paddle using timing difference
# Line 1070  C-------------------  improved calculati Line 1055  C-------------------  improved calculati
1055    
1056    
1057  C------------------------------------------------------------------  C------------------------------------------------------------------
1058  C----------------------------------------------------------------------  C------------------------------------------------------------------
1059  C------------------angle and ADC(x) correction  C-------angle and ADC(x) correction: moved to new dEdx routine
1060  C----------------------------------------------------------------------  C------------------------------------------------------------------
1061  C-----------------------------S1 --------------------------------  C------------------------------------------------------------------
 c middle y (or x) position of the upper and middle ToF-Paddle  
 c       DATA tof11_x/ -17.85,-12.75,-7.65,-2.55,2.55,7.65,12.75,17.85/  
 c       DATA tof12_y/ -13.75,-8.25,-2.75,2.75,8.25,13.75/  
 c       DATA tof21_y/  3.75,-3.75/     ! paddles in different order  
 c       DATA tof22_x/ -4.5,4.5/  
 c       DATA tof31_x/ -6.0,0.,6.0/  
 c       DATA tof32_y/ -5.0,0.0,5.0/  
   
       yhelp=0.  
 c      yhelp=100.  
       if (tof12_i.GT.none_find) yhelp=tof12_y(tof12_i)  
       if (ytofpos(1).lt.100)  yhelp=ytofpos(1)  
   
       IF (tof11_i.GT.none_find.AND.abs(yhelp).lt.100) THEN  
   
          i = tof11_i  
          if (tof11(left,i,iadc).lt.3786) then  
 c          if (adc(ch11a(i),hb11a(i)).lt.4095) then  
             tof11(left,i,iadc) = tof11(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,11,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch11a(i),hb11a(i))=tof11(left,i,iadc)/xkorr  
          endif  
   
          if (tof11(right,i,iadc).lt.3786) then  
 c          if (adc(ch11b(i),hb11b(i)).lt.4095) then  
             tof11(right,i,iadc) = tof11(right,i,iadc)*cos(theta13)  
             xkorr = atten(right,11,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch11b(i),hb11b(i))=tof11(right,i,iadc)/xkorr  
          endif  
       ENDIF  
   
       xhelp=0.  
 c      xhelp=100.  
       if (tof11_i.GT.none_find) xhelp=tof11_x(tof11_i)  
       if (xtofpos(1).lt.100)  xhelp=xtofpos(1)  
   
       IF (tof12_i.GT.none_find.AND.abs(xhelp).lt.100) THEN  
   
          i = tof12_i  
          if (tof12(left,i,iadc).lt.3786) then  
 c          if (adc(ch12a(i),hb12a(i)).lt.4095) then  
             tof12(left,i,iadc) = tof12(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,12,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch12a(i),hb12a(i))=tof12(left,i,iadc)/xkorr  
          endif  
   
          if (tof12(right,i,iadc).lt.3786) then  
 c          if (adc(ch12b(i),hb12b(i)).lt.4095) then  
             tof12(right,i,iadc) = tof12(right,i,iadc)*cos(theta13)  
             xkorr = atten(right,12,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch12b(i),hb12b(i))=tof12(right,i,iadc)/xkorr  
          endif  
       ENDIF  
   
 C-----------------------------S2 --------------------------------  
   
       xhelp=0.  
 c      xhelp=100.  
       if (tof22_i.GT.none_find) xhelp=tof22_x(tof22_i)  
       if (xtofpos(2).lt.100)  xhelp=xtofpos(2)  
   
       IF (tof21_i.GT.none_find.AND.abs(xhelp).lt.100) THEN  
   
          i = tof21_i  
          if (tof21(left,i,iadc).lt.3786) then  
 c          if (adc(ch21a(i),hb21a(i)).lt.4095) then  
             tof21(left,i,iadc) = tof21(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,21,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch21a(i),hb21a(i))=tof21(left,i,iadc)/xkorr  
          endif  
   
          if (tof21(right,i,iadc).lt.3786) then  
 c          if (adc(ch21b(i),hb21b(i)).lt.4095) then  
             tof21(right,i,iadc) = tof21(right,i,iadc)*cos(theta13)  
             xkorr=adcx21(right,i,1)*exp(xhelp/adcx21(right,i,2))  
             xkorr = atten(right,21,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch21b(i),hb21b(i))=tof21(right,i,iadc)/xkorr  
          endif  
       ENDIF  
   
   
       yhelp=0.  
 c      yhelp=100.  
       if (tof21_i.GT.none_find) yhelp=tof21_y(tof21_i)  
       if (ytofpos(2).lt.100)  yhelp=ytofpos(2)  
   
       IF (tof22_i.GT.none_find.AND.abs(yhelp).lt.100) THEN  
   
          i = tof22_i  
          if (tof22(left,i,iadc).lt.3786) then  
 c          if (adc(ch22a(i),hb22a(i)).lt.4095) then  
             tof22(left,i,iadc) = tof22(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,22,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch22a(i),hb22a(i))=tof22(left,i,iadc)/xkorr  
          endif  
   
          if (tof22(right,i,iadc).lt.3786) then  
 c          if (adc(ch22b(i),hb22b(i)).lt.4095) then  
             tof22(right,i,iadc) = tof22(right,i,iadc)*cos(theta13)  
             xkorr = atten(right,22,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch22b(i),hb22b(i))=tof22(right,i,iadc)/xkorr  
          endif  
       ENDIF  
   
 C-----------------------------S3 --------------------------------  
   
       yhelp=0.  
 c      yhelp=100.  
       if (tof32_i.GT.none_find) yhelp=tof32_y(tof32_i)  
       if (ytofpos(3).lt.100)  yhelp=ytofpos(3)  
   
       IF (tof31_i.GT.none_find.AND.abs(yhelp).lt.100) THEN  
   
          i = tof31_i  
          if (tof31(left,i,iadc).lt.3786) then  
 c          if (adc(ch31a(i),hb31a(i)).lt.4095) then  
             tof31(left,i,iadc) = tof31(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,31,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch31a(i),hb31a(i))=tof31(left,i,iadc)/xkorr  
          endif  
   
          if (tof31(right,i,iadc).lt.3786) then  
 c          if (adc(ch31b(i),hb31b(i)).lt.4095) then  
             tof31(right,i,iadc) = tof31(right,i,iadc)*cos(theta13)  
             xkorr = atten(right,31,i,yhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch31b(i),hb31b(i))=tof31(right,i,iadc)/xkorr  
          endif  
       ENDIF  
   
       xhelp=0.  
 c      xhelp=100.  
       if (tof31_i.GT.none_find) xhelp=tof31_x(tof31_i)  
       if (xtofpos(3).lt.100)  xhelp=xtofpos(3)  
   
       IF (tof32_i.GT.none_find.AND.abs(xhelp).lt.100) THEN  
   
          i = tof32_i  
          if (tof32(left,i,iadc).lt.3786) then  
 c          if (adc(ch32a(i),hb32a(i)).lt.4095) then  
             tof32(left,i,iadc) = tof32(left,i,iadc)*cos(theta13)  
             xkorr = atten(left,32,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch32a(i),hb32a(i))=tof32(left,i,iadc)/xkorr  
          endif  
   
          if (tof32(right,i,iadc).lt.3786) then  
 c          if (adc(ch32b(i),hb32b(i)).lt.4095) then  
             tof32(right,i,iadc) = tof32(right,i,iadc)*cos(theta13)  
             xkorr = atten(right,32,i,xhelp)  
             xkorr=xkorr/hepratio  
             adctof_c(ch32b(i),hb32b(i))=tof32(right,i,iadc)/xkorr  
          endif  
       ENDIF  
1062    
1063  C--------------------------------------------------------------------  C--------------------------------------------------------------------
1064  C----------------------calculate Beta  ------------------------------  C----------------------calculate Beta  ------------------------------
# Line 1251  C     since TDC resolution varies slight Line 1073  C     since TDC resolution varies slight
1073    
1074  C     S11 - S31  C     S11 - S31
1075    
1076          dist = ZTOF(1) - ZTOF(5)
1077          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1078    
1079         IF ((tof11_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.         IF ((tof11_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.
1080       &    (ytofpos(1).NE.101.).AND.(ytofpos(3).NE.101.)) THEN       &    (ytofpos(1).NE.101.).AND.(ytofpos(3).NE.101.)) THEN
1081           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)
1082           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)
1083           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1084           ihelp=(tof11_i-1)*3+tof31_i           ihelp=(tof11_i-1)*3+tof31_i
1085           c1 = k_S11S31(1,ihelp)           if (iz.le.1) c1 = k_S11S31(1,ihelp)
1086           if (iz.gt.2) c1 = c1 + k1corrA1           if (iz.eq.2) c1 = k_S11S31(2,ihelp)
1087           c2 = k_S11S31(2,ihelp)           if (iz.gt.2) c1 = k_S11S31(3,ihelp)
1088           betatof_a(1) = c2/(cos(theta13)*(ds-c1))           betatof_a(1) = c2/(cos(theta13)*(ds-c1))
1089    
1090  C------- ToF Mask - S11 - S31  C------- ToF Mask - S11 - S31
# Line 1280  C------- Line 1105  C-------
1105                
1106  C     S11 - S32  C     S11 - S32
1107    
1108          dist = ZTOF(1) - ZTOF(6)
1109          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1110    
1111         IF ((tof11_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.         IF ((tof11_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.
1112       &    (ytofpos(1).NE.101.).AND.(xtofpos(3).NE.101.)) THEN       &    (ytofpos(1).NE.101.).AND.(xtofpos(3).NE.101.)) THEN
1113           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)
1114           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)
1115           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1116           ihelp=(tof11_i-1)*3+tof32_i           ihelp=(tof11_i-1)*3+tof32_i
1117           c1 = k_S11S32(1,ihelp)           if (iz.le.1) c1 = k_S11S32(1,ihelp)
1118           if (iz.gt.2) c1 = c1 + k1corrA1           if (iz.eq.2) c1 = k_S11S32(2,ihelp)
1119           c2 = k_S11S32(2,ihelp)           if (iz.gt.2) c1 = k_S11S32(3,ihelp)
1120           betatof_a(2) = c2/(cos(theta13)*(ds-c1))           betatof_a(2) = c2/(cos(theta13)*(ds-c1))
1121    
1122  C------- ToF Mask - S11 - S32  C------- ToF Mask - S11 - S32
# Line 1309  C------- Line 1137  C-------
1137                
1138  C     S12 - S31  C     S12 - S31
1139    
1140          dist = ZTOF(2) - ZTOF(5)
1141          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1142    
1143         IF ((tof12_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.         IF ((tof12_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.
1144       &    (xtofpos(1).NE.101.).AND.(ytofpos(3).NE.101.)) THEN       &    (xtofpos(1).NE.101.).AND.(ytofpos(3).NE.101.)) THEN
1145           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)
1146           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)
1147           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1148           ihelp=(tof12_i-1)*3+tof31_i           ihelp=(tof12_i-1)*3+tof31_i
1149           c1 = k_S12S31(1,ihelp)           if (iz.le.1) c1 = k_S12S31(1,ihelp)
1150           if (iz.gt.2) c1 = c1 + k1corrA1           if (iz.eq.2) c1 = k_S12S31(2,ihelp)
1151           c2 = k_S12S31(2,ihelp)           if (iz.gt.2) c1 = k_S12S31(3,ihelp)
1152           betatof_a(3) = c2/(cos(theta13)*(ds-c1))           betatof_a(3) = c2/(cos(theta13)*(ds-c1))
1153    
1154  C------- ToF Mask - S12 - S31  C------- ToF Mask - S12 - S31
# Line 1338  C------- Line 1169  C-------
1169                            
1170  C     S12 - S32  C     S12 - S32
1171    
1172          dist = ZTOF(2) - ZTOF(6)
1173          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1174    
1175         IF ((tof12_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.         IF ((tof12_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.
1176       &    (xtofpos(1).NE.101.).AND.(xtofpos(3).NE.101.)) THEN       &    (xtofpos(1).NE.101.).AND.(xtofpos(3).NE.101.)) THEN
1177           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)
1178           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)
1179           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1180           ihelp=(tof12_i-1)*3+tof32_i           ihelp=(tof12_i-1)*3+tof32_i
1181           c1 = k_S12S32(1,ihelp)           if (iz.le.1) c1 = k_S12S32(1,ihelp)
1182           if (iz.gt.2) c1 = c1 + k1corrA1           if (iz.eq.2) c1 = k_S12S32(2,ihelp)
1183           c2 = k_S12S32(2,ihelp)           if (iz.gt.2) c1 = k_S12S32(3,ihelp)
1184           betatof_a(4) = c2/(cos(theta13)*(ds-c1))           betatof_a(4) = c2/(cos(theta13)*(ds-c1))
1185    
1186  C------- ToF Mask - S12 - S32  C------- ToF Mask - S12 - S32
# Line 1367  C------- Line 1201  C-------
1201    
1202  C     S21 - S31  C     S21 - S31
1203    
1204          dist = ZTOF(3) - ZTOF(5)
1205          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1206    
1207         IF ((tof21_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.         IF ((tof21_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.
1208       &    (xtofpos(2).NE.101.).AND.(ytofpos(3).NE.101.)) THEN       &    (xtofpos(2).NE.101.).AND.(ytofpos(3).NE.101.)) THEN
1209           xhelp1 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)           xhelp1 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)
1210           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)
1211           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1212           ihelp=(tof21_i-1)*3+tof31_i           ihelp=(tof21_i-1)*3+tof31_i
1213           c1 = k_S21S31(1,ihelp)           if (iz.le.1) c1 = k_S21S31(1,ihelp)
1214           if (iz.gt.2) c1 = c1 + k1corrB1           if (iz.eq.2) c1 = k_S21S31(2,ihelp)
1215           c2 = k_S21S31(2,ihelp)           if (iz.gt.2) c1 = k_S21S31(3,ihelp)
1216           betatof_a(5) = c2/(cos(theta13)*(ds-c1))           betatof_a(5) = c2/(cos(theta13)*(ds-c1))
1217    
1218  C------- ToF Mask - S21 - S31  C------- ToF Mask - S21 - S31
# Line 1396  C------- Line 1233  C-------
1233    
1234  C     S21 - S32  C     S21 - S32
1235    
1236          dist = ZTOF(3) - ZTOF(6)
1237          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1238    
1239    
1240         IF ((tof21_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.         IF ((tof21_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.
1241       &    (xtofpos(2).NE.101.).AND.(xtofpos(3).NE.101.)) THEN       &    (xtofpos(2).NE.101.).AND.(xtofpos(3).NE.101.)) THEN
1242           xhelp1 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)           xhelp1 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)
1243           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)
1244           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1245           ihelp=(tof21_i-1)*3+tof32_i           ihelp=(tof21_i-1)*3+tof32_i
1246           c1 = k_S21S32(1,ihelp)           if (iz.le.1) c1 = k_S21S32(1,ihelp)
1247           if (iz.gt.2) c1 = c1 + k1corrB1           if (iz.eq.2) c1 = k_S21S32(2,ihelp)
1248           c2 = k_S21S32(2,ihelp)           if (iz.gt.2) c1 = k_S21S32(3,ihelp)
1249           betatof_a(6) = c2/(cos(theta13)*(ds-c1))           betatof_a(6) = c2/(cos(theta13)*(ds-c1))
1250                                        
1251  C------- ToF Mask - S21 - S32  C------- ToF Mask - S21 - S32
# Line 1425  C------- Line 1266  C-------
1266    
1267  C     S22 - S31  C     S22 - S31
1268    
1269          dist = ZTOF(4) - ZTOF(5)
1270          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1271    
1272         IF ((tof22_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.         IF ((tof22_i.GT.none_find).AND.(tof31_i.GT.none_find).AND.
1273       &    (ytofpos(2).NE.101.).AND.(ytofpos(3).NE.101.)) THEN       &    (ytofpos(2).NE.101.).AND.(ytofpos(3).NE.101.)) THEN
1274           xhelp1 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)           xhelp1 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)
1275           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)           xhelp2 = tof31(1,tof31_i,itdc)+tof31(2,tof31_i,itdc)
1276           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1277           ihelp=(tof22_i-1)*3+tof31_i           ihelp=(tof22_i-1)*3+tof31_i
1278           c1 = k_S22S31(1,ihelp)           if (iz.le.1) c1 = k_S22S31(1,ihelp)
1279           if (iz.gt.2) c1 = c1 + k1corrB1           if (iz.eq.2) c1 = k_S22S31(2,ihelp)
1280           c2 = k_S22S31(2,ihelp)           if (iz.gt.2) c1 = k_S22S31(3,ihelp)
1281           betatof_a(7) = c2/(cos(theta13)*(ds-c1))           betatof_a(7) = c2/(cos(theta13)*(ds-c1))
1282    
1283  C------- ToF Mask - S22 - S31  C------- ToF Mask - S22 - S31
# Line 1454  C-------           Line 1298  C-------          
1298                
1299  C     S22 - S32  C     S22 - S32
1300    
1301          dist = ZTOF(4) - ZTOF(6)
1302          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1303    
1304         IF ((tof22_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.         IF ((tof22_i.GT.none_find).AND.(tof32_i.GT.none_find).AND.
1305       &    (ytofpos(2).NE.101.).AND.(xtofpos(3).NE.101.)) THEN       &    (ytofpos(2).NE.101.).AND.(xtofpos(3).NE.101.)) THEN
1306           xhelp1 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)           xhelp1 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)
1307           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)           xhelp2 = tof32(1,tof32_i,itdc)+tof32(2,tof32_i,itdc)
1308           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1309           ihelp=(tof22_i-1)*3+tof32_i           ihelp=(tof22_i-1)*3+tof32_i
1310           c1 = k_S22S32(1,ihelp)           if (iz.le.1) c1 = k_S22S32(1,ihelp)
1311           if (iz.gt.2) c1 = c1 + k1corrB1           if (iz.eq.2) c1 = k_S22S32(2,ihelp)
1312           c2 = k_S22S32(2,ihelp)           if (iz.gt.2) c1 = k_S22S32(3,ihelp)
1313           betatof_a(8) = c2/(cos(theta13)*(ds-c1))           betatof_a(8) = c2/(cos(theta13)*(ds-c1))
1314    
1315  C------- ToF Mask - S22 - S32  C------- ToF Mask - S22 - S32
# Line 1483  C-------   Line 1330  C-------  
1330    
1331  C     S11 - S21  C     S11 - S21
1332    
1333          dist = ZTOF(1) - ZTOF(3)
1334          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1335    
1336         IF ((tof11_i.GT.none_find).AND.(tof21_i.GT.none_find).AND.         IF ((tof11_i.GT.none_find).AND.(tof21_i.GT.none_find).AND.
1337       &    (ytofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN       &    (ytofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN
1338           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)
1339           xhelp2 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)           xhelp2 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)
1340           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1341           ihelp=(tof11_i-1)*2+tof21_i           ihelp=(tof11_i-1)*2+tof21_i
1342           c1 = k_S11S21(1,ihelp)           if (iz.le.1) c1 = k_S11S21(1,ihelp)
1343           if (iz.gt.2) c1 = c1 + k1corrC1           if (iz.eq.2) c1 = k_S11S21(2,ihelp)
1344           c2 = k_S11S21(2,ihelp)           if (iz.gt.2) c1 = k_S11S21(3,ihelp)
1345           betatof_a(9) = c2/(cos(theta13)*(ds-c1))           betatof_a(9) = c2/(cos(theta13)*(ds-c1))
1346    
1347  C------- ToF Mask - S11 - S21  C------- ToF Mask - S11 - S21
# Line 1512  C-------   Line 1362  C-------  
1362                
1363  C     S11 - S22  C     S11 - S22
1364    
1365          dist = ZTOF(1) - ZTOF(4)
1366          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1367    
1368         IF ((tof11_i.GT.none_find).AND.(tof22_i.GT.none_find).AND.         IF ((tof11_i.GT.none_find).AND.(tof22_i.GT.none_find).AND.
1369       &    (ytofpos(1).NE.101.).AND.(ytofpos(2).NE.101.)) THEN       &    (ytofpos(1).NE.101.).AND.(ytofpos(2).NE.101.)) THEN
1370           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)           xhelp1 = tof11(1,tof11_i,itdc)+tof11(2,tof11_i,itdc)
1371           xhelp2 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)           xhelp2 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)
1372           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1373           ihelp=(tof11_i-1)*2+tof22_i           ihelp=(tof11_i-1)*2+tof22_i
1374           c1 = k_S11S22(1,ihelp)           if (iz.le.1) c1 = k_S11S22(1,ihelp)
1375           if (iz.gt.2) c1 = c1 + k1corrC1           if (iz.eq.2) c1 = k_S11S22(2,ihelp)
1376           c2 = k_S11S22(2,ihelp)           if (iz.gt.2) c1 = k_S11S22(3,ihelp)
1377           betatof_a(10) = c2/(cos(theta13)*(ds-c1))           betatof_a(10) = c2/(cos(theta13)*(ds-c1))
1378    
1379  C------- ToF Mask - S11 - S22  C------- ToF Mask - S11 - S22
# Line 1541  C-------   Line 1394  C-------  
1394    
1395  C     S12 - S21  C     S12 - S21
1396    
1397          dist = ZTOF(2) - ZTOF(3)
1398          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1399    
1400         IF ((tof12_i.GT.none_find).AND.(tof21_i.GT.none_find).AND.         IF ((tof12_i.GT.none_find).AND.(tof21_i.GT.none_find).AND.
1401       &    (xtofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN       &    (xtofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN
1402           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)
1403           xhelp2 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)           xhelp2 = tof21(1,tof21_i,itdc)+tof21(2,tof21_i,itdc)
1404           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1405           ihelp=(tof12_i-1)*2+tof21_i           ihelp=(tof12_i-1)*2+tof21_i
1406           c1 = k_S12S21(1,ihelp)           if (iz.le.1) c1 = k_S12S21(1,ihelp)
1407           if (iz.gt.2) c1 = c1 + k1corrC1           if (iz.eq.2) c1 = k_S12S21(2,ihelp)
1408           c2 = k_S12S21(2,ihelp)           if (iz.gt.2) c1 = k_S12S21(3,ihelp)
1409           betatof_a(11) = c2/(cos(theta13)*(ds-c1))           betatof_a(11) = c2/(cos(theta13)*(ds-c1))
1410    
1411  C------- ToF Mask - S12 - S21  C------- ToF Mask - S12 - S21
# Line 1570  C-------   Line 1426  C-------  
1426    
1427  C     S12 - S22  C     S12 - S22
1428    
1429          dist = ZTOF(2) - ZTOF(4)
1430          c2 = (2.*0.01*dist)/(3.E08*50.E-12  )
1431    
1432         IF ((tof12_i.GT.none_find).AND.(tof22_i.GT.none_find).AND.         IF ((tof12_i.GT.none_find).AND.(tof22_i.GT.none_find).AND.
1433       &    (xtofpos(1).NE.101.).AND.(ytofpos(2).NE.101.)) THEN       &    (xtofpos(1).NE.101.).AND.(ytofpos(2).NE.101.)) THEN
1434           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)           xhelp1 = tof12(1,tof12_i,itdc)+tof12(2,tof12_i,itdc)
1435           xhelp2 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)           xhelp2 = tof22(1,tof22_i,itdc)+tof22(2,tof22_i,itdc)
1436           ds = xhelp1-xhelp2           ds = xhelp1-xhelp2
1437           ihelp=(tof12_i-1)*2+tof22_i           ihelp=(tof12_i-1)*2+tof22_i
1438           c1 = k_S12S22(1,ihelp)           if (iz.le.1) c1 = k_S12S22(1,ihelp)
1439           if (iz.gt.2) c1 = c1 + k1corrC1           if (iz.eq.2) c1 = k_S12S22(2,ihelp)
1440           c2 = k_S12S22(2,ihelp)           if (iz.gt.2) c1 = k_S12S22(3,ihelp)
1441           betatof_a(12) = c2/(cos(theta13)*(ds-c1))           betatof_a(12) = c2/(cos(theta13)*(ds-c1))
1442    
1443  C------- ToF Mask - S12 - S22  C------- ToF Mask - S12 - S22
# Line 1609  C         if ((betatof_a(i).gt.-1.5).and Line 1468  C         if ((betatof_a(i).gt.-1.5).and
1468  C            icount= icount+1  C            icount= icount+1
1469  C            if (i.le.4) w_i=1./(0.13**2.)  C            if (i.le.4) w_i=1./(0.13**2.)
1470  C            if ((i.ge.5).and.(i.le.8)) w_i=1./(0.16**2.)  C            if ((i.ge.5).and.(i.le.8)) w_i=1./(0.16**2.)
1471  C           if (i.ge.9) w_i=1./(0.25**2.)     ! to be checked  C         if (i.ge.9) w_i=1./(0.25**2.)     ! to be checked
1472  C            sxw=sxw + betatof_a(i)*w_i  C            sxw=sxw + betatof_a(i)*w_i
1473  C            sw =sw + w_i  C            sw =sw + w_i
1474  C         endif  C         endif
# Line 1639  c      write(*,*) ytofpos Line 1498  c      write(*,*) ytofpos
1498  c      write(*,*) xtr_tof  c      write(*,*) xtr_tof
1499  c      write(*,*) ytr_tof  c      write(*,*) ytr_tof
1500                
1501   100  continue  c 100  continue
1502            continue
1503    
1504  C  C
1505        RETURN        RETURN
# Line 1783  C k2 constant is taken to be the standar Line 1643  C k2 constant is taken to be the standar
1643          REAL  a1,a2          REAL  a1,a2
1644          INTEGER jj          INTEGER jj
1645    
1646    c get rid of warnings EMILIANO
1647            i = 0
1648            slope = 0
1649            offset = 0
1650            none_find = 0
1651            none_ev = 0
1652            adc_ev = 0
1653            tdc_ev = 0
1654            iadc = 0
1655            itdc = 0
1656            right = 0
1657            left = 0
1658            tof12_y(1) = tof12_y(1)
1659            tof11_x(1) = tof11_x(1)
1660            tof21_y(1) = tof21_y(1)
1661            tof22_x(1) = tof22_x(1)
1662            tof32_y(1) = tof32_y(1)
1663            tof31_x(1) = tof31_x(1)
1664    c get rid of warnings
1665    
1666  C-----------------------------------------------------------  C-----------------------------------------------------------
1667  C--- get data  C--- get data
1668  C-----------------------------------------------------------  C-----------------------------------------------------------
# Line 2009  C----  calculate  beta mean, only downwa Line 1889  C----  calculate  beta mean, only downwa
1889    
1890          if (sw.gt.0) beta_mean_tof=sxw/sw;          if (sw.gt.0) beta_mean_tof=sxw/sw;
1891    
1892  c        write(*,*) 'beta_mean_tof ',beta_mean_tof  C        write(*,*) 'beta_mean_tof ',beta_mean_tof
1893    
1894          beta_help = beta_mean_tof  !  pow(beta_mean_tof,1.0) gave best results          beta_help = beta_mean_tof  !  pow(beta_mean_tof,1.0) gave best results
1895    
# Line 2138  C  no beta found? Sum up geometric means Line 2018  C  no beta found? Sum up geometric means
2018    
2019                                    endif  ! beta_mean_tof.eq.100.                                    endif  ! beta_mean_tof.eq.100.
2020    
2021  c        write(*,*) 'in function charge: ',charge  C        write(*,*) 'in function charge: ',beta_mean_tof,charge
2022    
2023          check_charge = charge          check_charge = charge
2024    
2025    
# Line 2158  C*************************************** Line 2039  C***************************************
2039          REAL resmax,qualitycut,chi2cut          REAL resmax,qualitycut,chi2cut
2040          REAL w_i(12),w_il(6),quality,res,betachi,beta_mean_inv          REAL w_i(12),w_il(6),quality,res,betachi,beta_mean_inv
2041          REAL sw,sxw,b(12),beta_mean,chi2,xhelp          REAL sw,sxw,b(12),beta_mean,chi2,xhelp
2042          REAL tdcfl(4,12)  c        REAL tdcfl(4,12)
2043            INTEGER tdcfl(4,12) !EM GCC4.7
2044    
2045          INTEGER iflag,icount,hitvec(6)          INTEGER iflag,icount,hitvec(6)
2046    
# Line 2166  C*************************************** Line 2048  C***************************************
2048          DATA itop /1,1,2,2,3,3,4,4,1,1,2,2/          DATA itop /1,1,2,2,3,3,4,4,1,1,2,2/
2049          DATA ibot /5,6,5,6,5,6,5,6,3,4,3,4/          DATA ibot /5,6,5,6,5,6,5,6,3,4,3,4/
2050    
2051    
2052    c get rid of warnings EMILIANO
2053            slope = 0
2054            offset = 0
2055            none_find = 0
2056            none_ev = 0
2057            adc_ev = 0
2058            tdc_ev = 0
2059            iadc = 0
2060            itdc = 0
2061            right = 0
2062            left = 0
2063            tof12_y(1) = tof12_y(1)
2064            tof11_x(1) = tof11_x(1)
2065            tof21_y(1) = tof21_y(1)
2066            tof22_x(1) = tof22_x(1)
2067            tof32_y(1) = tof32_y(1)
2068            tof31_x(1) = tof31_x(1)
2069    c get rid of warnings
2070    
2071  C====================================================================  C====================================================================
2072    
2073          tof11_i = hitvec(1)          tof11_i = hitvec(1)

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.23