| 44 |
C measurements, reject if > 10 sigma, calculate chi2 and "quality" |
C measurements, reject if > 10 sigma, calculate chi2 and "quality" |
| 45 |
C beta is taken as good if chi2<20 and quality>10 |
C beta is taken as good if chi2<20 and quality>10 |
| 46 |
C The function "newbeta" is located in "tofl2com.for" |
C The function "newbeta" is located in "tofl2com.for" |
| 47 |
C |
C mar-08 WM: Call to "newbeta" changed, now a flag tells the function if the |
| 48 |
|
C call comes from "tofl2com" or form "toftrack" |
| 49 |
|
C mar-08 WM: Bug found in dEdx if check_charge>1 |
| 50 |
|
C apr-08 WM: Bug found in S22 artificial ADC, mismatch found between the track |
| 51 |
|
C length from DOTRACK2 and "GetLength" method for 4 combinations |
| 52 |
C**************************************************************************** |
C**************************************************************************** |
| 53 |
IMPLICIT NONE |
IMPLICIT NONE |
| 54 |
C |
C |
| 669 |
tof22(left,i,iadc) = xkorr/cos(theta) |
tof22(left,i,iadc) = xkorr/cos(theta) |
| 670 |
adcflag(ch22a(i),hb22a(i)) = 1 |
adcflag(ch22a(i),hb22a(i)) = 1 |
| 671 |
endif |
endif |
| 672 |
if ((tdc(ch22a(i),hb22b(i)).lt.4095).AND. |
if ((tdc(ch22b(i),hb22b(i)).lt.4095).AND. |
| 673 |
& (adc(ch22b(i),hb22b(i)).eq.4095)) then |
& (adc(ch22b(i),hb22b(i)).eq.4095)) then |
| 674 |
phi = atan(tan(THYOUT(4))/tan(THXOUT(4))) |
phi = atan(tan(THYOUT(4))/tan(THXOUT(4))) |
| 675 |
theta = atan(tan(THXOUT(4))/cos(phi)) |
theta = atan(tan(THXOUT(4))/cos(phi)) |
| 1082 |
if (tof11(left,i,iadc).lt.3786) then |
if (tof11(left,i,iadc).lt.3786) then |
| 1083 |
tof11(left,i,iadc) = tof11(left,i,iadc)*cos(theta) |
tof11(left,i,iadc) = tof11(left,i,iadc)*cos(theta) |
| 1084 |
xkorr = atten(left,11,i,yhelp) |
xkorr = atten(left,11,i,yhelp) |
| 1085 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1086 |
adc_c(ch11a(i),hb11a(i))=tof11(left,i,iadc)/xkorr |
adc_c(ch11a(i),hb11a(i))=tof11(left,i,iadc)/xkorr |
| 1087 |
endif |
endif |
| 1088 |
|
|
| 1090 |
if (tof11(right,i,iadc).lt.3786) then |
if (tof11(right,i,iadc).lt.3786) then |
| 1091 |
tof11(right,i,iadc) = tof11(right,i,iadc)*cos(theta) |
tof11(right,i,iadc) = tof11(right,i,iadc)*cos(theta) |
| 1092 |
xkorr = atten(right,11,i,yhelp) |
xkorr = atten(right,11,i,yhelp) |
| 1093 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1094 |
adc_c(ch11b(i),hb11b(i))=tof11(right,i,iadc)/xkorr |
adc_c(ch11b(i),hb11b(i))=tof11(right,i,iadc)/xkorr |
| 1095 |
endif |
endif |
| 1096 |
ENDIF |
ENDIF |
| 1105 |
if (tof12(left,i,iadc).lt.3786) then |
if (tof12(left,i,iadc).lt.3786) then |
| 1106 |
tof12(left,i,iadc) = tof12(left,i,iadc)*cos(theta) |
tof12(left,i,iadc) = tof12(left,i,iadc)*cos(theta) |
| 1107 |
xkorr = atten(left,12,i,xhelp) |
xkorr = atten(left,12,i,xhelp) |
| 1108 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1109 |
adc_c(ch12a(i),hb12a(i))=tof12(left,i,iadc)/xkorr |
adc_c(ch12a(i),hb12a(i))=tof12(left,i,iadc)/xkorr |
| 1110 |
endif |
endif |
| 1111 |
|
|
| 1112 |
if (tof12(right,i,iadc).lt.3786) then |
if (tof12(right,i,iadc).lt.3786) then |
| 1113 |
tof12(right,i,iadc) = tof12(right,i,iadc)*cos(theta) |
tof12(right,i,iadc) = tof12(right,i,iadc)*cos(theta) |
| 1114 |
xkorr = atten(right,12,i,xhelp) |
xkorr = atten(right,12,i,xhelp) |
| 1115 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1116 |
adc_c(ch12b(i),hb12b(i))=tof12(right,i,iadc)/xkorr |
adc_c(ch12b(i),hb12b(i))=tof12(right,i,iadc)/xkorr |
| 1117 |
endif |
endif |
| 1118 |
ENDIF |
ENDIF |
| 1128 |
if (tof21(left,i,iadc).lt.3786) then |
if (tof21(left,i,iadc).lt.3786) then |
| 1129 |
tof21(left,i,iadc) = tof21(left,i,iadc)*cos(theta) |
tof21(left,i,iadc) = tof21(left,i,iadc)*cos(theta) |
| 1130 |
xkorr = atten(left,21,i,xhelp) |
xkorr = atten(left,21,i,xhelp) |
| 1131 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1132 |
adc_c(ch21a(i),hb21a(i))=tof21(left,i,iadc)/xkorr |
adc_c(ch21a(i),hb21a(i))=tof21(left,i,iadc)/xkorr |
| 1133 |
endif |
endif |
| 1134 |
|
|
| 1135 |
if (tof21(right,i,iadc).lt.3786) then |
if (tof21(right,i,iadc).lt.3786) then |
| 1136 |
tof21(right,i,iadc) = tof21(right,i,iadc)*cos(theta) |
tof21(right,i,iadc) = tof21(right,i,iadc)*cos(theta) |
| 1137 |
xkorr = atten(right,21,i,xhelp) |
xkorr = atten(right,21,i,xhelp) |
| 1138 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1139 |
adc_c(ch21b(i),hb21b(i))=tof21(right,i,iadc)/xkorr |
adc_c(ch21b(i),hb21b(i))=tof21(right,i,iadc)/xkorr |
| 1140 |
endif |
endif |
| 1141 |
ENDIF |
ENDIF |
| 1149 |
if (tof22(left,i,iadc).lt.3786) then |
if (tof22(left,i,iadc).lt.3786) then |
| 1150 |
tof22(left,i,iadc) = tof22(left,i,iadc)*cos(theta) |
tof22(left,i,iadc) = tof22(left,i,iadc)*cos(theta) |
| 1151 |
xkorr = atten(left,22,i,yhelp) |
xkorr = atten(left,22,i,yhelp) |
| 1152 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1153 |
adc_c(ch22a(i),hb22a(i))=tof22(left,i,iadc)/xkorr |
adc_c(ch22a(i),hb22a(i))=tof22(left,i,iadc)/xkorr |
| 1154 |
endif |
endif |
| 1155 |
|
|
| 1156 |
if (tof22(right,i,iadc).lt.3786) then |
if (tof22(right,i,iadc).lt.3786) then |
| 1157 |
tof22(right,i,iadc) = tof22(right,i,iadc)*cos(theta) |
tof22(right,i,iadc) = tof22(right,i,iadc)*cos(theta) |
| 1158 |
xkorr = atten(right,22,i,yhelp) |
xkorr = atten(right,22,i,yhelp) |
| 1159 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1160 |
adc_c(ch22b(i),hb22b(i))=tof22(right,i,iadc)/xkorr |
adc_c(ch22b(i),hb22b(i))=tof22(right,i,iadc)/xkorr |
| 1161 |
endif |
endif |
| 1162 |
ENDIF |
ENDIF |
| 1173 |
if (tof31(left,i,iadc).lt.3786) then |
if (tof31(left,i,iadc).lt.3786) then |
| 1174 |
tof31(left,i,iadc) = tof31(left,i,iadc)*cos(theta) |
tof31(left,i,iadc) = tof31(left,i,iadc)*cos(theta) |
| 1175 |
xkorr = atten(left,31,i,yhelp) |
xkorr = atten(left,31,i,yhelp) |
| 1176 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1177 |
adc_c(ch31a(i),hb31a(i))=tof31(left,i,iadc)/xkorr |
adc_c(ch31a(i),hb31a(i))=tof31(left,i,iadc)/xkorr |
| 1178 |
endif |
endif |
| 1179 |
|
|
| 1180 |
if (tof31(right,i,iadc).lt.3786) then |
if (tof31(right,i,iadc).lt.3786) then |
| 1181 |
tof31(right,i,iadc) = tof31(right,i,iadc)*cos(theta) |
tof31(right,i,iadc) = tof31(right,i,iadc)*cos(theta) |
| 1182 |
xkorr = atten(right,31,i,yhelp) |
xkorr = atten(right,31,i,yhelp) |
| 1183 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1184 |
adc_c(ch31b(i),hb31b(i))=tof31(right,i,iadc)/xkorr |
adc_c(ch31b(i),hb31b(i))=tof31(right,i,iadc)/xkorr |
| 1185 |
endif |
endif |
| 1186 |
ENDIF |
ENDIF |
| 1194 |
if (tof32(left,i,iadc).lt.3786) then |
if (tof32(left,i,iadc).lt.3786) then |
| 1195 |
tof32(left,i,iadc) = tof32(left,i,iadc)*cos(theta) |
tof32(left,i,iadc) = tof32(left,i,iadc)*cos(theta) |
| 1196 |
xkorr = atten(left,32,i,xhelp) |
xkorr = atten(left,32,i,xhelp) |
| 1197 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1198 |
adc_c(ch32a(i),hb32a(i))=tof32(left,i,iadc)/xkorr |
adc_c(ch32a(i),hb32a(i))=tof32(left,i,iadc)/xkorr |
| 1199 |
endif |
endif |
| 1200 |
|
|
| 1201 |
if (tof32(right,i,iadc).lt.3786) then |
if (tof32(right,i,iadc).lt.3786) then |
| 1202 |
tof32(right,i,iadc) = tof32(right,i,iadc)*cos(theta) |
tof32(right,i,iadc) = tof32(right,i,iadc)*cos(theta) |
| 1203 |
xkorr = atten(right,32,i,xhelp) |
xkorr = atten(right,32,i,xhelp) |
| 1204 |
if (iz.le.1) xkorr=xkorr/hepratio |
xkorr=xkorr/hepratio |
| 1205 |
adc_c(ch32b(i),hb32b(i))=tof32(right,i,iadc)/xkorr |
adc_c(ch32b(i),hb32b(i))=tof32(right,i,iadc)/xkorr |
| 1206 |
endif |
endif |
| 1207 |
ENDIF |
ENDIF |
| 1492 |
dl = dl + TLOUT(i) |
dl = dl + TLOUT(i) |
| 1493 |
ENDDO |
ENDDO |
| 1494 |
F = dl/dist |
F = dl/dist |
| 1495 |
|
|
| 1496 |
|
C WM workaround |
| 1497 |
|
dl = dl - 0.06*F |
| 1498 |
|
F = dl/dist |
| 1499 |
|
|
| 1500 |
C IF (tof22_i.GT.none_find.AND.tof31_i.GT.none_find) THEN |
C IF (tof22_i.GT.none_find.AND.tof31_i.GT.none_find) THEN |
| 1501 |
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. |
| 1540 |
dl = dl + TLOUT(i) |
dl = dl + TLOUT(i) |
| 1541 |
ENDDO |
ENDDO |
| 1542 |
F = dl/dist |
F = dl/dist |
| 1543 |
|
|
| 1544 |
|
C WM workaround |
| 1545 |
|
dl = dl - 0.06*F |
| 1546 |
|
F = dl/dist |
| 1547 |
|
|
| 1548 |
|
|
| 1549 |
C IF (tof22_i.GT.none_find.AND.tof32_i.GT.none_find) THEN |
C IF (tof22_i.GT.none_find.AND.tof32_i.GT.none_find) THEN |
| 1550 |
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. |
| 1590 |
ENDDO |
ENDDO |
| 1591 |
F = dl/dist |
F = dl/dist |
| 1592 |
|
|
| 1593 |
|
C WM workaround |
| 1594 |
|
dl = dl - 0.442*F |
| 1595 |
|
F = dl/dist |
| 1596 |
|
|
| 1597 |
C IF (tof11_i.GT.none_find.AND.tof21_i.GT.none_find) THEN |
C IF (tof11_i.GT.none_find.AND.tof21_i.GT.none_find) THEN |
| 1598 |
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. |
| 1599 |
& (ytofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN |
& (ytofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN |
| 1682 |
ENDDO |
ENDDO |
| 1683 |
F = dl/dist |
F = dl/dist |
| 1684 |
|
|
| 1685 |
|
C WM workaround |
| 1686 |
|
dl = dl - 0.442*F |
| 1687 |
|
F = dl/dist |
| 1688 |
|
|
| 1689 |
C IF (tof12_i.GT.none_find.AND.tof21_i.GT.none_find) THEN |
C IF (tof12_i.GT.none_find.AND.tof21_i.GT.none_find) THEN |
| 1690 |
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. |
| 1691 |
& (xtofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN |
& (xtofpos(1).NE.101.).AND.(xtofpos(2).NE.101.)) THEN |
| 1786 |
C if (icount.gt.0) beta_mean=sxw/sw |
C if (icount.gt.0) beta_mean=sxw/sw |
| 1787 |
C beta_a(13) = beta_mean |
C beta_a(13) = beta_mean |
| 1788 |
C |
C |
| 1789 |
|
|
| 1790 |
C------- New mean beta calculation |
C------- New mean beta calculation |
| 1791 |
|
|
| 1792 |
do i=1,12 |
do i=1,12 |
| 1793 |
btemp(i) = beta_a(i) |
btemp(i) = beta_a(i) |
| 1794 |
enddo |
enddo |
| 1795 |
|
|
| 1796 |
beta_a(13)=newbeta(btemp,hitvec,10.,10.,20.) |
beta_a(13)=newbeta(2,btemp,hitvec,10.,10.,20.) |
| 1797 |
|
|
| 1798 |
C------- |
C------- |
| 1799 |
|
|
| 1825 |
c write(*,*) ytr_tof |
c write(*,*) ytr_tof |
| 1826 |
|
|
| 1827 |
|
|
|
|
|
| 1828 |
RETURN |
RETURN |
| 1829 |
END |
END |
| 1830 |
|
|
| 1833 |
|
|
| 1834 |
C------------------------------------------------------------------ |
C------------------------------------------------------------------ |
| 1835 |
|
|
| 1836 |
|
|