15 #include "BlockData/cblkGene.h" 28 type(
coord):: aa, bb, cc, det, detyaxis
30 real*8 xin, yin, zin, temp
33 open(10, file=
"param")
39 read(*,*) xin, yin, zin
40 write(0,*)
' input inci pos=' 41 write(0,*) xin, yin, zin
52 det = obssites(noofsites)%pos%xyz
54 write(0, *)
' detector base pos in Exyz' 55 write(0,
'(3g17.9)') det%x, det%y, det%z
57 write(0,*)
'incident position in Exyz' 58 write(0,*) inci%pos%xyz%x, inci%pos%xyz%y,
61 write(0,*)
'incident position in Det; must be same as input ' 62 write(0,*) cc%x, cc%y, cc%z
64 call cvecprod(detzaxis, detxaxis, detyaxis)
66 write(0,*)
' detector X,Y,Z axis vecgor in Exyz' 67 write(0,
'(3g17.9)') detxaxis%x, detxaxis%y, detxaxis%z
68 write(0,
'(3g17.9)') detyaxis%x, detyaxis%y, detyaxis%z
69 write(0,
'(3g17.9)') detzaxis%x, detzaxis%y, detzaxis%z
71 temp = sqrt(xin**2 + yin**2 + zin**2)
79 call cvecprod(zprimary, detzaxis, xprimary)
81 temp= xprimary%x**2 + xprimary%y**2 + xprimary%z**2
82 if(temp .lt. 1.
e-12)
then 86 xprimary%r(1) = xprimary%r(1)/temp
87 xprimary%r(2) = xprimary%r(2)/temp
88 xprimary%r(3) = xprimary%r(3)/temp
90 call cvecprod(zprimary, xprimary, yprimary)
102 write(0,*)
' Primary system X,Y,Z axis unit vector in Exyz' 103 write(0,
'(3g17.9)') xprimary%x, xprimary%y, xprimary%z
104 write(0,
'(3g17.9)') yprimary%x, yprimary%y, yprimary%z
105 write(0,
'(3g17.9)') zprimary%x, zprimary%y, zprimary%z
107 write(0,*)
' For a given vector in the Detector system' 109 *
' take scaler product of the following unit vector to get' 110 write(0,*)
' its x value in the primary system. For y, z, use ' 111 write(0,*)
' 2nd, 3rd row' 112 write(*,
'(3g17.9)') aa%x, aa%y, aa%z
113 write(*,
'(3g17.9)') bb%x, bb%y, bb%z
114 write(*,
'(3g17.9)') cc%x, cc%y, cc%z
117 write(0,*)
' this must be the same as above' 118 write(0,
'(3g17.9)') cc%x, cc%y, cc%z
dE dx *! Nuc Int sampling table e
subroutine cmkincident(incident, fin)
subroutine cvecprod(a, b, c)
subroutine creadparam(io)
subroutine cdet2xyzd(a, b)
subroutine cinitracking(incident)
subroutine chookcerens(no, primary, angle)
subroutine cdet2xyz(det, a, b)
subroutine citransvectzx(init, zax, xax, dir1, dir2)
subroutine cxyz2det(det, a, b)