version 1.3, 2005/09/22 02:14:53
|
version 1.12, 2006/01/21 19:39:17
|
|
|
real plab(3),ptot,etot | real plab(3),ptot,etot |
real*8 ang,angr,phi,phir,psir | real*8 ang,angr,phi,phir,psir |
real mp,ea,pa,remain | real mp,ea,pa,remain |
real r2,r3,x(4) |
real r2,r3 |
integer nt,ierri,i0,i1,i2,i3 | integer nt,ierri,i0,i1,i2,i3 |
integer i,j,k,ichoice,ichoice2,iremain | integer i,j,k,ichoice,ichoice2,iremain |
real*8 rotmat,xyz(3),xyznew(3),termang | real*8 rotmat,xyz(3),xyznew(3),termang |
|
|
real*8 xfp,yfp,tthfp,tphfp,pfp,junk2,junk3,thfp,phfp | real*8 xfp,yfp,tthfp,tphfp,pfp,junk2,junk3,thfp,phfp |
real*8 e0(10),eang(10),hang(10),targ_thick(10) | real*8 e0(10),eang(10),hang(10),targ_thick(10) |
real*8 xtgt,ytgt,thtgt,phtgt,ptgt,dptgt | real*8 xtgt,ytgt,thtgt,phtgt,ptgt,dptgt |
real xfinal,yf,ff,thetaf |
real yf,ff,thetaf |
character*80 junkline | character*80 junkline |
c | c |
|
c The following variables are the SIMC variables |
|
c |
|
real*8 x,y,z !(cm) |
|
real*8 dpp !delta p/p (%) |
|
real*8 dxdz,dydz !X,Y slope in spectrometer |
|
real*8 x_fp,y_fp,dx_fp,dy_fp !Focal plane values to return |
|
real*8 p_spec,th_spec !spectrometer setting |
|
real*8 fry !vertical position@tgt (+y=down) |
|
real*8 pathlen |
|
logical ms_flag !mult. scattering flag |
|
logical wcs_flag !wire chamber smearing flag |
|
logical decay_flag !check for particle decay |
|
logical ok_spec !true if particle makes it |
|
real*8 resmult,m2 |
|
c |
include 'fpp_local.h' | include 'fpp_local.h' |
include 'geant_local.h' | include 'geant_local.h' |
c | c |
|
|
c | c |
c write(*,*)'Back from kincalc ...' | c write(*,*)'Back from kincalc ...' |
c write(*,*)xtgt,ytgt,thtgt,phtgt,dptgt | c write(*,*)xtgt,ytgt,thtgt,phtgt,dptgt |
x(1)=tan(phtgt) |
c x(1)=tan(phtgt) |
x(2)=ytgt |
c x(2)=ytgt |
x(3)=tan(thtgt) |
c x(3)=tan(thtgt) |
x(4)=dptgt |
c x(4)=dptgt |
y_target=ytgt*100.0 | y_target=ytgt*100.0 |
xfp=xfinal(x,4)*100.0 |
c |
phfp=atan(thetaf(x,4))/3.14159265*180.0 |
c Here is where we call the SIMC routines to calculate the focal plane |
yfp=yf(x,4)*100.0 |
c quantities from the target quantities. |
thfp=atan(ff(x,4))/3.14159265*180.0 |
c |
|
c xfp=xfinal(x,4)*100.0 |
|
c phfp=atan(thetaf(x,4))/3.14159265*180.0 |
|
c yfp=yf(x,4)*100.0 |
|
c thfp=atan(ff(x,4))/3.14159265*180.0 |
|
p_spec=ptgt |
|
th_spec=hrsh_ang |
|
dpp=dptgt*100.00 |
|
x=xtgt |
|
y=ytgt |
|
z=0.0 |
|
dxdz=tan(phtgt*3.14159265/180.0) |
|
dydz=tan(thtgt*3.14159265/180.0) |
|
if(nevent.le.2)write(*,*)'******** mom = ',p_spec,' ******' |
|
c write(*,*)x,y,z |
|
c write(*,*)dxdz,dydz |
|
c |
|
c Call to SIMC routine |
|
c |
|
decay_flag=.false. |
|
wcs_flag=.false. |
|
ms_flag=.false. |
|
m2=(938.2796**2) |
|
call mc_hms (p_spec, th_spec, dpp, x, y, z, dxdz, dydz, |
|
> x_fp, dx_fp, y_fp, dy_fp, m2, |
|
> ms_flag, wcs_flag, decay_flag, resmult, fry, |
|
> ok_spec, pathlen) |
|
c write(*,*)'Momentum = ',p_spec,' Angle = ',th_spec |
|
c write(*,*)x,y,z |
|
c write(*,*)dxdz,dydz |
|
c write(6,*)x_fp,dx_fp,y_fp,dy_fp,ok_spec |
|
c write(*,*)m2,ms_flag,wcs_flag,decay_flag |
|
c write(*,*)resmult,fry,ok_spec,pathlen |
|
|
|
xfp=x_fp |
|
phfp=atan(dx_fp)/3.14159265*180.0 |
|
yfp=y_fp*100.0 |
|
thfp=atan(dy_fp)/3.14159265*180.0*100.0 |
|
c write(6,*)'x,phi,y,theta,ok_spec =' |
|
c write(6,*)xfp,phfp,yfp,thfp,ok_spec |
|
c |
|
do ii=1,20 |
|
ntuple_array(ii)=0.0 |
|
enddo |
|
ntuple_array(11)=real(xfp) |
|
ntuple_array(12)=real(yfp) |
|
ntuple_array(13)=real(thfp) |
|
ntuple_array(14)=real(phfp) |
|
c |
pcentral=ptgt | pcentral=ptgt |
pfp=dptgt | pfp=dptgt |
|
c |
|
c |
c write(*,*)'Focal plane quantities ...' | c write(*,*)'Focal plane quantities ...' |
c write(*,*)xfp,yfp,thfp,phfp,pcentral,pfp | c write(*,*)xfp,yfp,thfp,phfp,pcentral,pfp |
| |
|
|
| |
end | end |
| |
|
|
FUNCTION xfinal(X,M) |
|
DIMENSION X(M) |
|
DIMENSION XMIN(10),XMAX(10),SCALE(10),XMEAN(10) |
|
DIMENSION COEFF(36) |
|
DATA NCOEFF/ 35/ |
|
DATA AVDAT/ -0.4014709E-01/ |
|
DATA XMIN/ |
|
1 -0.54950E-01,-0.49960E-01,-0.27007E-01,-0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA XMAX/ |
|
1 0.54950E-01, 0.49960E-01, 0.27007E-01, 0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA SCALE /10*0./ |
|
DATA COEFF/ |
|
+ 0.38400409E-04,-0.12137641E-01, 0.53397477E+00,-0.39009069E-03, |
|
+ 0.10435429E-01,-0.94224121E-02,-0.69346055E-02,-0.38115609E-01, |
|
+ 0.38292725E-01, 0.10110696E-02, 0.18271961E-03, 0.29400268E-03, |
|
+ -0.42927656E-02,-0.20512815E-02,-0.27616457E-02, 0.27235001E-02, |
|
+ -0.11337849E-01, 0.70230814E-03,-0.20570597E-02, 0.41178493E-02, |
|
+ -0.51052785E-02, 0.44770536E-03,-0.17101110E-02, 0.19195752E-02, |
|
+ -0.10078174E-01,-0.98851407E-02,-0.37676771E-02,-0.75416677E-02, |
|
+ -0.47492255E-02,-0.15177650E-02,-0.19604568E-02, 0.10734685E-02, |
|
+ 0.12448666E-02, 0.16071526E-02,-0.16143038E-02, |
|
+ 0. / |
|
DATA IENTRY/0/ |
|
C |
|
IF (IENTRY.NE.0) GO TO 10 |
|
IENTRY=1 |
|
DO 5 I=1,M |
|
IF (XMIN(I).EQ.XMAX(I)) GO TO 5 |
|
SCALE(I)=2./(XMAX(I)-XMIN(I)) |
|
5 CONTINUE |
|
C |
|
10 CONTINUE |
|
C NORMALIZE VARIABLES BETWEEN -1 AND +1 |
|
X1 =1.+(X( 1)-XMAX( 1))*SCALE( 1) |
|
X2 =1.+(X( 2)-XMAX( 2))*SCALE( 2) |
|
X3 =1.+(X( 3)-XMAX( 3))*SCALE( 3) |
|
X4 =1.+(X( 4)-XMAX( 4))*SCALE( 4) |
|
C SET UP MONOMIALS FUNCTIONS |
|
X11 = X1 |
|
X12 = X11*X1 |
|
X13 = X12*X1 |
|
X14 = X13*X1 |
|
X21 = X2 |
|
X22 = X21*X2 |
|
X23 = X22*X2 |
|
X31 = X3 |
|
X32 = X31*X3 |
|
X33 = X32*X3 |
|
X34 = X33*X3 |
|
X41 = X4 |
|
X42 = X41*X4 |
|
X43 = X42*X4 |
|
C |
|
C FUNCTION |
|
C |
|
xfinal=AVDAT |
|
1 +COEFF( 1) |
|
2 +COEFF( 2)*X11 |
|
3 +COEFF( 3) *X41 |
|
4 +COEFF( 4) *X22 |
|
5 +COEFF( 5)*X12 |
|
6 +COEFF( 6) *X21*X31 |
|
7 +COEFF( 7) *X32 |
|
8 +COEFF( 8) *X42 |
|
xfinal=xfinal |
|
9 +COEFF( 9)*X11 *X41 |
|
1 +COEFF(10) *X21*X31*X41 |
|
2 +COEFF(11) *X32*X41 |
|
3 +COEFF(12)*X13 |
|
4 +COEFF(13)*X11*X22 |
|
5 +COEFF(14)*X11 *X42 |
|
6 +COEFF(15) *X22 *X41 |
|
7 +COEFF(16) *X43 |
|
8 +COEFF(17)*X11 *X32 |
|
xfinal=xfinal |
|
9 +COEFF(18)*X12 *X41 |
|
1 +COEFF(19)*X11 *X32*X41 |
|
2 +COEFF(20)*X12 *X32 |
|
3 +COEFF(21)*X14 |
|
4 +COEFF(22)*X11*X21*X31*X42 |
|
5 +COEFF(23)*X11*X22 *X42 |
|
6 +COEFF(24)*X12 *X32*X41 |
|
7 +COEFF(25)*X11*X21*X33 |
|
8 +COEFF(26)*X11*X22*X32 |
|
xfinal=xfinal |
|
9 +COEFF(27)*X11*X23*X31 |
|
1 +COEFF(28)*X13*X21*X31 |
|
2 +COEFF(29)*X13 *X34 |
|
3 +COEFF(30)*X12 *X42 |
|
4 +COEFF(31)*X13 *X41 |
|
5 +COEFF(32)*X11*X22 *X41 |
|
6 +COEFF(33) *X21*X31*X42 |
|
7 +COEFF(34) *X22 *X42 |
|
8 +COEFF(35)*X11*X21*X31*X41 |
|
C |
|
RETURN |
|
END |
|
|
|
FUNCTION thetaf(X,M) |
|
DIMENSION X(M) |
|
DIMENSION XMIN(10),XMAX(10),SCALE(10),XMEAN(10) |
|
DIMENSION COEFF(24) |
|
DATA NCOEFF/ 23/ |
|
DATA AVDAT/ -0.7228390E-02/ |
|
DATA XMIN/ |
|
1 -0.54950E-01,-0.49960E-01,-0.27007E-01,-0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA XMAX/ |
|
1 0.54950E-01, 0.49960E-01, 0.27007E-01, 0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA SCALE /10*0./ |
|
DATA COEFF/ |
|
+ 0.15936443E-04,-0.26315276E-01, 0.88069998E-01, 0.10778814E-04, |
|
+ 0.41515152E-04,-0.16201013E-02,-0.98832208E-03,-0.74026464E-02, |
|
+ 0.32462520E-02, 0.27442561E-03, 0.18035830E-03, 0.33763942E-03, |
|
+ 0.21499184E-03,-0.79507736E-04,-0.67391340E-03, 0.27072401E-03, |
|
+ -0.12083589E-02, 0.31987933E-03, 0.71742985E-03, 0.38396413E-03, |
|
+ 0.33860802E-03,-0.70859434E-03,-0.10929636E-02, |
|
+ 0. / |
|
DATA IENTRY/0/ |
|
C |
|
IF (IENTRY.NE.0) GO TO 10 |
|
IENTRY=1 |
|
DO 5 I=1,M |
|
IF (XMIN(I).EQ.XMAX(I)) GO TO 5 |
|
SCALE(I)=2./(XMAX(I)-XMIN(I)) |
|
5 CONTINUE |
|
C |
|
10 CONTINUE |
|
C NORMALIZE VARIABLES BETWEEN -1 AND +1 |
|
X1 =1.+(X( 1)-XMAX( 1))*SCALE( 1) |
|
X2 =1.+(X( 2)-XMAX( 2))*SCALE( 2) |
|
X3 =1.+(X( 3)-XMAX( 3))*SCALE( 3) |
|
X4 =1.+(X( 4)-XMAX( 4))*SCALE( 4) |
|
C SET UP MONOMIALS FUNCTIONS |
|
X11 = X1 |
|
X12 = X11*X1 |
|
X13 = X12*X1 |
|
X14 = X13*X1 |
|
X21 = X2 |
|
X22 = X21*X2 |
|
X31 = X3 |
|
X32 = X31*X3 |
|
X41 = X4 |
|
X42 = X41*X4 |
|
X43 = X42*X4 |
|
C |
|
C FUNCTION |
|
C |
|
thetaf=AVDAT |
|
1 +COEFF( 1) |
|
2 +COEFF( 2)*X11 |
|
3 +COEFF( 3) *X41 |
|
4 +COEFF( 4) *X22 |
|
5 +COEFF( 5)*X12 |
|
6 +COEFF( 6) *X21*X31 |
|
7 +COEFF( 7) *X32 |
|
8 +COEFF( 8) *X42 |
|
thetaf=thetaf |
|
9 +COEFF( 9)*X11 *X41 |
|
1 +COEFF(10) *X21*X31*X41 |
|
2 +COEFF(11) *X32*X41 |
|
3 +COEFF(12)*X13 |
|
4 +COEFF(13)*X11*X21*X31 |
|
5 +COEFF(14)*X11 *X42 |
|
6 +COEFF(15) *X22 *X41 |
|
7 +COEFF(16) *X43 |
|
8 +COEFF(17)*X11 *X32 |
|
thetaf=thetaf |
|
9 +COEFF(18)*X11*X22 *X41 |
|
1 +COEFF(19)*X12 *X32 |
|
2 +COEFF(20) *X21*X31*X42 |
|
3 +COEFF(21) *X22 *X42 |
|
4 +COEFF(22)*X14 |
|
5 +COEFF(23)*X11*X22 *X42 |
|
C |
|
RETURN |
|
END |
|
|
|
FUNCTION yf (X,M) |
|
DIMENSION X(M) |
|
DIMENSION XMIN(10),XMAX(10),SCALE(10),XMEAN(10) |
|
DIMENSION COEFF(29) |
|
DATA NCOEFF/ 28/ |
|
DATA AVDAT/ 0.0000000E+00/ |
|
DATA XMIN/ |
|
1 -0.54950E-01,-0.49960E-01,-0.27007E-01,-0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA XMAX/ |
|
1 0.54950E-01, 0.49960E-01, 0.27007E-01, 0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA SCALE /10*0./ |
|
DATA COEFF/ |
|
+ -0.34177914E-01,-0.30821124E-01,-0.54842839E-02, 0.10310492E-01, |
|
+ -0.47606803E-02,-0.49143559E-02, 0.25316872E-03,-0.39685451E-03, |
|
+ 0.25711951E-02,-0.48181722E-02,-0.33568320E-03,-0.50162729E-02, |
|
+ 0.14486529E-02, 0.61600970E-03, 0.75610601E-02, 0.18275030E-02, |
|
+ -0.28204641E-02, 0.31980342E-03, 0.72771381E-03, 0.12079661E-02, |
|
+ -0.34298492E-02,-0.27545498E-03, 0.60676772E-03, 0.10858896E-03, |
|
+ 0.10833987E-03,-0.24910837E-02, 0.28612517E-03,-0.97175332E-03, |
|
+ 0. / |
|
DATA IENTRY/0/ |
|
C |
|
IF (IENTRY.NE.0) GO TO 10 |
|
IENTRY=1 |
|
DO 5 I=1,M |
|
IF (XMIN(I).EQ.XMAX(I)) GO TO 5 |
|
SCALE(I)=2./(XMAX(I)-XMIN(I)) |
|
5 CONTINUE |
|
C |
|
10 CONTINUE |
|
C NORMALIZE VARIABLES BETWEEN -1 AND +1 |
|
X1 =1.+(X( 1)-XMAX( 1))*SCALE( 1) |
|
X2 =1.+(X( 2)-XMAX( 2))*SCALE( 2) |
|
X3 =1.+(X( 3)-XMAX( 3))*SCALE( 3) |
|
X4 =1.+(X( 4)-XMAX( 4))*SCALE( 4) |
|
C SET UP MONOMIALS FUNCTIONS |
|
X11 = X1 |
|
X12 = X11*X1 |
|
X13 = X12*X1 |
|
X21 = X2 |
|
X22 = X21*X2 |
|
X23 = X22*X2 |
|
X31 = X3 |
|
X32 = X31*X3 |
|
X33 = X32*X3 |
|
X41 = X4 |
|
X42 = X41*X4 |
|
X43 = X42*X4 |
|
C |
|
C FUNCTION |
|
C |
|
yf =AVDAT |
|
1 +COEFF( 1) *X31 |
|
2 +COEFF( 2) *X21 |
|
3 +COEFF( 3) *X21 *X41 |
|
4 +COEFF( 4) *X31*X41 |
|
5 +COEFF( 5)*X11 *X31 |
|
6 +COEFF( 6)*X11*X21 |
|
7 +COEFF( 7) *X21*X32 |
|
8 +COEFF( 8) *X22*X31 |
|
yf =yf |
|
9 +COEFF( 9) *X31*X42 |
|
1 +COEFF(10)*X11 *X31*X41 |
|
2 +COEFF(11) *X33 |
|
3 +COEFF(12)*X12 *X31 |
|
4 +COEFF(13)*X12*X21 |
|
5 +COEFF(14) *X23 |
|
6 +COEFF(15) *X21 *X42 |
|
7 +COEFF(16)*X11*X21 *X41 |
|
8 +COEFF(17)*X12 *X31*X41 |
|
yf =yf |
|
9 +COEFF(18)*X11*X21 *X42 |
|
1 +COEFF(19)*X11*X22*X31 |
|
2 +COEFF(20)*X13 *X31 |
|
3 +COEFF(21) *X21 *X43 |
|
4 +COEFF(22) *X23 *X41 |
|
5 +COEFF(23)*X11*X23 |
|
6 +COEFF(24)*X11 *X33 |
|
7 +COEFF(25)*X11 *X31*X42 |
|
8 +COEFF(26) *X31*X43 |
|
yf =yf |
|
9 +COEFF(27) *X21*X32*X41 |
|
1 +COEFF(28)*X12*X21 *X41 |
|
C |
|
RETURN |
|
END |
|
|
|
FUNCTION ff (X,M) |
|
DIMENSION X(M) |
|
DIMENSION XMIN(10),XMAX(10),SCALE(10),XMEAN(10) |
|
DIMENSION COEFF(30) |
|
DATA NCOEFF/ 29/ |
|
DATA AVDAT/ 0.0000000E+00/ |
|
DATA XMIN/ |
|
1 -0.54950E-01,-0.49960E-01,-0.27007E-01,-0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA XMAX/ |
|
1 0.54950E-01, 0.49960E-01, 0.27007E-01, 0.44894E-01, 0.00000E+00, |
|
2 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ |
|
DATA SCALE /10*0./ |
|
DATA COEFF/ |
|
+ -0.24754098E-01, 0.17713737E-01,-0.82420027E-02,-0.10785910E-01, |
|
+ 0.10717204E-01, 0.36198904E-02, 0.27313924E-02, 0.14317367E-02, |
|
+ 0.12878824E-02, 0.81612845E-04, 0.14900827E-02, 0.59537590E-02, |
|
+ 0.35487120E-02, 0.45606840E-03, 0.23320767E-02, 0.77778118E-03, |
|
+ 0.16023684E-03, 0.72187380E-04,-0.33580346E-03,-0.52348158E-03, |
|
+ -0.94971986E-03,-0.78429846E-03, 0.74010299E-04,-0.42602577E-03, |
|
+ 0.51432789E-05,-0.69699355E-03, 0.15455698E-03,-0.25401593E-03, |
|
+ -0.36630098E-03, |
|
+ 0. / |
|
DATA IENTRY/0/ |
|
C |
|
IF (IENTRY.NE.0) GO TO 10 |
|
IENTRY=1 |
|
DO 5 I=1,M |
|
IF (XMIN(I).EQ.XMAX(I)) GO TO 5 |
|
SCALE(I)=2./(XMAX(I)-XMIN(I)) |
|
5 CONTINUE |
|
C |
|
10 CONTINUE |
|
C NORMALIZE VARIABLES BETWEEN -1 AND +1 |
|
X1 =1.+(X( 1)-XMAX( 1))*SCALE( 1) |
|
X2 =1.+(X( 2)-XMAX( 2))*SCALE( 2) |
|
X3 =1.+(X( 3)-XMAX( 3))*SCALE( 3) |
|
X4 =1.+(X( 4)-XMAX( 4))*SCALE( 4) |
|
C SET UP MONOMIALS FUNCTIONS |
|
X11 = X1 |
|
X12 = X11*X1 |
|
X13 = X12*X1 |
|
X21 = X2 |
|
X22 = X21*X2 |
|
X23 = X22*X2 |
|
X31 = X3 |
|
X32 = X31*X3 |
|
X33 = X32*X3 |
|
X41 = X4 |
|
X42 = X41*X4 |
|
X43 = X42*X4 |
|
C |
|
C FUNCTION |
|
C |
|
ff =AVDAT |
|
1 +COEFF( 1) *X31 |
|
2 +COEFF( 2) *X21 |
|
3 +COEFF( 3) *X21 *X41 |
|
4 +COEFF( 4) *X31*X41 |
|
5 +COEFF( 5)*X11 *X31 |
|
6 +COEFF( 6)*X11*X21 |
|
7 +COEFF( 7) *X21*X32 |
|
8 +COEFF( 8) *X22*X31 |
|
ff =ff |
|
9 +COEFF( 9) *X31*X42 |
|
1 +COEFF(10)*X11 *X31*X41 |
|
2 +COEFF(11) *X33 |
|
3 +COEFF(12)*X12 *X31 |
|
4 +COEFF(13)*X12*X21 |
|
5 +COEFF(14) *X23 |
|
6 +COEFF(15) *X21 *X42 |
|
7 +COEFF(16)*X11*X21 *X41 |
|
8 +COEFF(17)*X12 *X31*X41 |
|
ff =ff |
|
9 +COEFF(18)*X11*X21 *X42 |
|
1 +COEFF(19)*X11*X22*X31 |
|
2 +COEFF(20)*X13 *X31 |
|
3 +COEFF(21) *X21 *X43 |
|
4 +COEFF(22)*X11*X21*X32 |
|
5 +COEFF(23)*X11*X23 |
|
6 +COEFF(24)*X11 *X33 |
|
7 +COEFF(25)*X11 *X31*X42 |
|
8 +COEFF(26) *X31*X43 |
|
ff =ff |
|
9 +COEFF(27)*X12*X21 *X41 |
|
1 +COEFF(28)*X13*X21 |
|
2 +COEFF(29) *X22*X31*X41 |
|
C |
|
RETURN |
|
END |
|
|
|
subroutine kincalc(e0,eang,hang,trg,xtgt,ytgt, | subroutine kincalc(e0,eang,hang,trg,xtgt,ytgt, |
$ thtgt,phtgt,ptgt,dptgt) | $ thtgt,phtgt,ptgt,dptgt) |
| |
|
|
c what the corresponding theta and phi are for the other arm. | c what the corresponding theta and phi are for the other arm. |
| |
if (abs(eang).gt.abs(hang)) then | if (abs(eang).gt.abs(hang)) then |
phie=-.065+rndm(1)*.130 |
c phie=-.025+rndm(1)*.050 |
thetae=-.030+rndm(2)*.060 |
c thetae=-.009+rndm(2)*.018 |
|
if(pcentral.ge.5000) then |
|
c phie=-.00+rndm(1)*.00 |
|
c thetae=-.00+rndm(2)*.00 |
|
phie=-.130+rndm(1)*.260 |
|
thetae=-.065+rndm(2)*.130 |
|
else if(pcentral.ge.3000.and.pcentral.lt.5000) then |
|
phie=-.067+rndm(1)*.135 |
|
thetae=-.034+rndm(2)*.067 |
|
else |
|
phie=-.087+rndm(1)*.174 |
|
thetae=-.044+rndm(2)*.087 |
|
endif |
|
c phie=-.00+rndm(1)*.00 |
|
c thetae=-.00+rndm(2)*.00 |
escat=mp/(1.0+mp/e0-cos(fg*eang+thetae)*cos(phie)) | escat=mp/(1.0+mp/e0-cos(fg*eang+thetae)*cos(phie)) |
pscat=sqrt(e0**2+escat**2- | pscat=sqrt(e0**2+escat**2- |
$ 2.0*e0*escat*cos(fg*eang+thetae)*cos(phie)) | $ 2.0*e0*escat*cos(fg*eang+thetae)*cos(phie)) |
|
|
else | else |
c Hadron arm defining acceptance | c Hadron arm defining acceptance |
1221 call grndm ( rndm, 3) | 1221 call grndm ( rndm, 3) |
phie=-.065+rndm(1)*.130 |
phie=-.080+rndm(1)*.160 |
thetae=-.030+rndm(2)*.060 | thetae=-.030+rndm(2)*.060 |
|
c phie=-.00+rndm(1)*.00 |
|
c thetae=-.00+rndm(2)*.00 |
escat=mp/(1.0+mp/e0-cos(fg*eang+thetae)*cos(phie)) | escat=mp/(1.0+mp/e0-cos(fg*eang+thetae)*cos(phie)) |
pscat=sqrt(e0**2+escat**2- | pscat=sqrt(e0**2+escat**2- |
$ 2.0*e0*escat*cos(fg*eang+thetae)*cos(phie)) | $ 2.0*e0*escat*cos(fg*eang+thetae)*cos(phie)) |
|
|
endif | endif |
| |
ptgt=pscat | ptgt=pscat |
|
c write(*,*)escat,eang,pscat,hang |
dptgt=(pcentral-pscat)/pcentral | dptgt=(pcentral-pscat)/pcentral |
c | c |
c Following statement to fill just the high and low dp bins | c Following statement to fill just the high and low dp bins |