14 subroutine cmkptc(code, subcode, charge, p)
74 integer code, charge, subcode
79 call cshvc(code, charge, p)
82 call cshvc(code, charge, p)
85 call cshvc(code, charge, p)
89 call csmass(code, subcode, charge, p)
90 call cssubc(code, subcode, charge, p)
93 p%subcode = code2massn(code)
98 subroutine csmass(code, subcode, charge, p)
113 integer code, charge, subcode
118 real*8 mass(0:
klast, -1:1)
130 * mass(
kneue, :)/x, 0., x/,
131 * mass(
kneumu,:)/x, 0., x/,
132 * mass(
kneumu,:)/x, 0., x/,
148 * mass(
krare, :)/0., 0., 0./,
149 * mass(
kgnuc, :)/x, x, x/
153 * mass(kxic,:)/masxic, masxic0, masxic/,
155 * mass(komec0,:)/x, masomc0, x/
156 * mass(kdelta,:)/masdelta,masdelta, masdelta/
160 call cghvm(code, massn)
166 elseif(code .eq.
kgnuc)
then 169 p%mass =
masn*(subcode-charge) +
masp*charge
170 * -(15.68
d-3*subcode-18.56
d-3*(float(subcode))**0.6666
171 * -0.717
d-3 * charge**2/(float(subcode))**0.33333)
172 elseif(code .ge. 0 .and. code .le.
klast)
then 173 p%mass = mass(code, charge)
174 if(p%mass .eq. x)
then 177 *
' charge=',charge,
' invalid for csmass; code=',id
180 elseif( code .eq.
klight )
then 182 elseif( code .eq. kedepo .or. code .eq. kchgpath )
then 186 write(msg, *)
' code=',code,
' invalid to csmass' 191 subroutine cssubc(code, subcode, charge, p)
210 integer code, subcode, charge
214 if(code .ge. 1 .and. code .le.
klast)
then 219 elseif(code .eq.
kelec .or. code .eq.
kmuon )
then 222 * .or. code .eq.
knuc)
then 224 if( code .eq.
kkaon .and. charge .eq. 0 .and.
225 * subcode .ne. 0)
then 226 if(abs(subcode) .eq.
k0s .or.
227 * abs(subcode) .eq.
k0l )
then 230 write(msg,*)
'1 strange subcode=',
231 * subcode,
' to cssubc. code=', code
233 p%mass = sqrt(p%mass)
236 elseif(code .eq.
knuc .and. charge .eq. 0
237 * .and. subcode .ne. 0)
then 242 write(msg, *)
'2 strange subcode=',
243 * subcode,
' to cssubc. code=', code
247 elseif(code .eq.
kdmes)
then 248 if(subcode .ne. 0 .and. charge .eq. 0)
then 249 if(subcode .eq.
kd0 .or.
250 * subcode .eq.
kd0b)
then 259 p%subcode = code2massn(code)
262 elseif(code .eq.
ktriton )
then 265 elseif(code .eq.
kgnuc)
then 269 * subcode .eq.
antip .or.
270 * subcode .eq. 0 )
then 273 write(msg, *)
' 3 strange subcode=',
274 * subcode,
' to cssubc. code=', code
278 * code .le.
klast )
then 283 elseif( code .eq.
klight .or. code .eq. kedepo .or.
284 * code .eq. kchgpath )
then 287 elseif(code .eq.
krare)
then 290 write(msg, *)
' code=',code,
' invalid to cssubc' 296 subroutine cshvc(code, charge, p)
319 p%charge = zhvy(code) * isign(1, charge)
325 write(msg, *)
'error input code=',code,
' to cshvc' 331 subroutine cghvm(code, massn)
344 massn = code2massn(code)
346 write(msg, *)
'error input code=',code,
' to cghvm' 352 subroutine cgpid(code, id)
363 character*8 ida(
klast)
367 * ida(
knuc)/
'Nucleon'/, ida(
kneue)/
'Nue_e'/,
369 * ida(
kddb)/
'DD~'/, ida(
kdmes)/
'D_meson'/,
371 * ida(
kphi)/
'Phi'/, ida(
kgnuc)/
'Nucleus'/,
375 data ida(
kalfa)/
'Helium'/, ida(
klibe)/
'LiBeB'/,
376 * ida(
kcno)/
'CNO'/, ida(
khvy)/
'NaMgSi'/,
378 * ida(
keta+1)/
'light'/, ida(
keta+2)/
'dE'/,
379 * ida(
keta+2)/
'cpath'/
384 data ida(
kds)/
'Ds'/, ida(kxic)/
'Xic'/
385 data ida(komec0)/
'OmegaC0'/
386 if(code .ge. 1 .and. code .le.
klast)
then 389 write(msg, *)
' code=',code,
' invalid to cgpid' 409 write(msg, *)
' ---------code=',p(i)%code,
' id=', id
411 write(0, *)
' 4 momentum=',(p(i)%fm%p(j),j=1, 4),
' mass=',
414 write(msg, *)
' charge=', p(i)%charge,
' subcode=',
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
subroutine cshvc(code, charge, p)
subroutine cerrormsg(msg, needrtn)
subroutine csmass(code, subcode, charge, p)
max ptcl codes in the kgzai
max ptcl codes in the ketap
max ptcl codes in the kseethru ! subcode integer k0l
max ptcl codes in the kdmes
max ptcl codes in the kgnuc
max ptcl codes in the kseethru ! subcode integer k0s
max ptcl codes in the kphi
max ptcl codes in the klambdac
max ptcl codes in the kkaon
max ptcl codes in the kelec
max ptcl codes in the kneue
max ptcl codes in the ktriton
max ptcl codes in the kneutau
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kalfa
max ptcl codes in the komega
max ptcl codes in the kseethru ! subcode integer regptcl
max ptcl codes in the kseethru ! subcode integer kneutronb
subroutine cgpid(code, id)
max ptcl codes in the kseethru ! subcode integer kneutron
max ptcl codes in the kiron
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
max ptcl codes in the klambda
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
max ptcl codes in the krho
max ptcl codes in the kneumu
subroutine cssubc(code, subcode, charge, p)
max ptcl codes in the klight
dE dx *! Nuc Int sampling table d
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kvhvy
max ptcl codes in the knnb
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kcno
max ptcl codes in the kds
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code klibe
max ptcl codes in the ktau
max ptcl codes in the kseethru ! subcode integer kd0
subroutine cmkptc(code, subcode, charge, p)
max ptcl codes in the khvymax
max ptcl codes in the keta
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code khvy
max ptcl codes in the kseethru ! subcode integer kd0b
max ptcl codes in the klast
max ptcl codes in the kseethru ! subcode integer antip
max ptcl codes in the kpion
max ptcl codes in the ksigma
max ptcl codes in the kddb
max ptcl codes in the kdeuteron
max ptcl codes in the kmuon
max ptcl codes in the kbomega
max ptcl codes in the krare
subroutine cghvm(code, massn)