4 subroutine cs2lp(proj, trgt, icon)
29 type(
ptcl):: proj, trgt
33 real*8 xpmin, xpmax, xtmin, xtmax, c2, dest1,
53 noferm = trgt%fm%p(4) .eq. trgt%mass
57 call cgeqm(pjlab, tglab, cmsp, icon)
59 write(msg, *)
' cms cannot be formed in cs2lp; proj and ',
69 call cbst0(1, gc, pjlab, pjcms)
71 call cbst0(2, gc, tglab, tgcms)
76 call cbst1(1, tglab, pjlab, pjtatr)
79 call cbst1(1, pjlab, tglab, tgpatr )
81 call cgextx(xpmin, xpmax, xtmin, xtmax)
82 if(xpmin .ge. xpmax .or. xtmin .ge. xtmax)
then 98 call cslp(pjtatr, xpmin, xpmax, rpjtatr)
101 call cslp(tgpatr, xtmin, xtmax, rtgpatr)
120 call crot3vec(pjtatr%fm, rpjtatr%fm, rpjtatr%fm)
121 call crot3vec(tgpatr%fm, rtgpatr%fm, rtgpatr%fm)
129 call cibst1(1, tglab, rpjtatr, rpjlab)
132 call cbst1(1, cmsp, rpjlab, rpjcms)
134 dest1= pjcms%fm%p(4) - rpjcms%fm%p(4)
137 call cibst1(1, pjlab, rtgpatr, rtglab)
139 call cbst1(1, cmsp, rtglab, rtgcms)
141 dest2=tgcms%fm%p(4) - rtgcms%fm%p(4)
144 if( count .gt. maxtry)
then 151 missingp%fm%p(1) = - (rpjcms%fm%p(1) + rtgcms%fm%p(1))
152 missingp%fm%p(2) = - (rpjcms%fm%p(2) + rtgcms%fm%p(2))
153 missingp%fm%p(3) = - (rpjcms%fm%p(3) + rtgcms%fm%p(3))
154 missingp%fm%p(4) = cmsp%mass - rpjcms%fm%p(4) - rtgcms%fm%p(4)
155 missingp%mass = missingp%fm%p(4)**2
156 * -(missingp%fm%p(1)**2 + missingp%fm%p(2)**2 +
157 * missingp%fm%p(3)**2)
158 if(missingp%mass .lt. maslimit2 )
then 160 if(count .gt. maxtry)
then 165 missingp%mass = sqrt(missingp%mass)
172 subroutine cgextx(xpmin, xpmax, xtmin, xtmax)
191 real *8 xpmin, xpmax, xtmin, xtmax
195 type(
ptcl):: temp, temp2, temp3
201 rest%fm%p(4) = rest%mass
204 call cibst1(1, cmsp, rest, temp)
205 temp%mass = rest%mass
207 call cbst1(1, tglab, temp, temp2)
208 xpmin= temp2%fm%p(4)/pjtatr%fm%p(4)
212 temp%fm%p(4) =max(temp%fm%p(4) -
maspic, pjlab%mass)
213 call cadjm(temp, temp)
215 call cibst1(1, cmsp, temp, temp2)
216 temp2%mass=pjlab%mass
218 call cbst1(1, tglab, temp2, temp3)
219 xpmax= temp3%fm%p(4)/pjtatr%fm%p(4)
224 rest%mass = tglab%mass
225 rest%fm%p(4) = rest%mass
226 call cibst1(1, cmsp, rest, temp)
227 temp%mass = tglab%mass
229 call cbst1(1, pjlab, temp, temp2)
230 xtmin = temp2%fm%p(4)/tgpatr%fm%p(4)
234 temp%fm%p(4) = max(temp%fm%p(4) -
maspic, tglab%mass)
236 call cibst1(1, cmsp, temp, temp2)
237 temp2%mass = tglab%mass
239 call cbst1(1, pjlab, temp2, temp3)
240 xtmax = temp3%fm%p(4)/tgpatr%fm%p(4)
251 subroutine cslp(p, akmin, akmax, a)
268 real*8 xp, avpt, ptn, tmsq, u, akmin, akmax
285 tmsq=ptn**2 + p%mass**2
286 call cslpx(p, tmsq, akmin, akmax, xp, notfirst, icon)
289 if(icon .eq. 0 .and. xp-akmin .lt. .2 )
then 291 if(ptn .gt. avpt)
then 293 if(u .gt. avpt/ptn)
then 299 if(icon .eq. 0 .or. nc .gt. 20)
goto 5
305 a%fm%p(4)=p%fm%p(4)*xp
311 a%fm%p(3) = sqrt(a%fm%p(4)**2 - a%mass**2 - ptn**2)
331 #include "Zcinippxc.h" 353 #include "Zcinippxc.h" 372 subroutine cfclp(pj, xp, p)
384 common /zchgex/ pnchgex
395 if(k0 .eq.
kpion)
then 401 if(u .gt. 0.35* rf )
then 405 if(pj%charge .eq. 0)
then 416 if(u .lt. rf*0.30)
then 417 p%charge = -pj%charge
423 elseif(k0 .eq.
kkaon)
then 426 if(u .gt. 0.35*rf)
then 431 p%subcode = pj%subcode
433 elseif(k0 .eq.
knuc)
then 435 if( .not. pnchgex )
then 439 if(pj%charge .eq. 0)
then 440 if(pj%subcode .eq.
regptcl)
then 447 p%subcode = pj%subcode
450 elseif(k0 .eq.
krho)
then 452 elseif(k0 .eq.
komega)
then 454 elseif(k0 .eq.
kphi)
then 456 elseif(k0 .eq.
keta)
then 464 subroutine cslpx(pj, tmsq, akmin, akmax, x, notfirst, icon)
486 #include "Zcinippxc.h" 490 common /zchgex/ pnchgex
493 real*8 tmsq, x, akmin, akmax
494 real*8 umin, umax, temp1, temp2
497 logical lessInela/.false./, makeless, notfirst
501 if(pj%fm%p(4)**2 .le. tmsq)
then 503 elseif(.not. lessinela)
then 505 if(pj%code .ne.
knuc)
then 516 u=(umax-umin)*u + umin
518 if(pj%code .eq.
knuc)
then 521 if(uc .lt. ceneuc)
then 523 x=(ppsxn(i+1) - ppsxn(i))*nx*(u- (i-1)*
dx)
536 if(pj%code .ne.
knuc)
then 543 x = ( (akmax**temp1 - temp2 )*u + temp2 )**(1./temp1)
545 if((pj%fm%p(4)*x)**2 .le. tmsq)
then 554 entry cslpx2(makeless)
566 subroutine cslppt(pj, avpt, ptn)
580 avpt=226.
d-3* pj%fm%p(4)**0.1
d0 582 pw=2.59
d0/pj%fm%p(4)**0.1
d0 584 call ksgmrm(pw, avpt, ptn)
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
subroutine cerrormsg(msg, needrtn)
subroutine cbst1(init, p1, p2, po)
subroutine ksgmrm(s, av, x)
integer npitbl real *nx dx real dx
max ptcl codes in the kphi
max ptcl codes in the kkaon
subroutine cslpx(pj, tmsq, akmin, akmax, x, notfirst, icon)
subroutine cibst1(init, p1, p2, po)
block data cblkElemag data *AnihiE ! Eposi< 1 TeV, anihilation considered *X0/365.667/, ! radiation length of air in kg/m2 *Ecrit/81.e-3/, ! critical energy of air in GeV *MaxComptonE/1./, ! compton is considered below 1 GeV *MaxPhotoE/1.e-3/, ! above this, PhotoElectric effect neg. *MinPhotoProdE/153.e-3/, ! below 153 MeV, no gp --> hadrons ! scattering const not MeV *Knockon true
subroutine cfclp(pj, xp, p)
subroutine cbst0(init, gb, p, po)
subroutine cgeqm(p1, p2, q, icon)
max ptcl codes in the komega
max ptcl codes in the kseethru ! subcode integer regptcl
subroutine cgextx(xpmin, xpmax, xtmin, xtmax)
integer npitbl real *nx dx real intendndx(n) real *8 ndndxn(n)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine cxtulnpi(x, ux)
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
max ptcl codes in the krho
subroutine cslppt(pj, avpt, ptn)
dE dx *! Nuc Int sampling table d
integer npitbl real *nx dx real ppsx
integer npitbl real *nx dx real * intendndx2
subroutine cs2lp(proj, trgt, icon)
integer npitbl real *nx dx real pipsx
subroutine crot3vec(zax, vec1, vec2)
block data cblkElemag data *AnihiE ! Eposi< 1 TeV, anihilation considered *X0/365.667/, ! radiation length of air in kg/m2 *Ecrit/81.e-3/, ! critical energy of air in GeV *MaxComptonE/1./, ! compton is considered below 1 GeV *MaxPhotoE/1.e-3/, ! above this, PhotoElectric effect neg. *MinPhotoProdE/153.e-3/, ! below 153 MeV, no gp --> hadrons ! scattering const not MeV *Knockon ! knockon is considered Obsolete *PhotoProd false
max ptcl codes in the keta
subroutine cslp(p, akmin, akmax, a)
max ptcl codes in the kpion