18 #include "Zmanagerp.h" 21 #include "Zprimaryv.h" 28 if( desteventno(2) .lt. 0)
then 29 if(abs(desteventno(2)) .le. prim%NoOfSamplings)
then 41 prim%NoOfSamplings = prim%NoOfSamplings + 1
42 prim%NoOfSampComp(prim%label, 1) =
43 * prim%NoOfSampComp(prim%label, 1) +1
51 #include "Zprimaryv.h" 53 prim%NoOfSampComp(prim%label, 2) =
54 * prim%NoOfSampComp(prim%label, 2) +1
74 do while (u .gt. prm%cummInteFlux(i) )
77 prm%label = prm%each(i)%label
79 call csampprm1(prm%each(prm%label), p_or_e)
82 prm%sampled_e = p_or_e
92 real*8 e1temp, ombeta, u
95 if( each%no_of_seg .eq. 0)
then 100 do while (u .gt. each%norm_inte(i))
104 if(each%diff_or_inte .eq.
'd')
then 105 ombeta = (1.
d0 - each%beta(i))
107 if(abs(ombeta) .gt. 1.
d-6)
then 108 e1temp = each%energy(i)**ombeta
109 p_or_e =( u* (each%energy(i+1)**ombeta - e1temp) +
110 * e1temp )** (1.
d0/ombeta)
112 p_or_e =( each%energy(i)/each%energy(i+1) )**u
115 elseif(each%diff_or_inte .eq.
'i')
then 117 p_or_e = each%energy(i)* (1.
d0 -
118 * u*(1.
d0 - each%norm_inte(i+1)/each%norm_inte(i)))
119 * **(-1.
d0/each%beta(i))
121 write(*, *)
' invlid diff_or_inte=',each%diff_or_inte,
122 *
' for primary=',each%symb
134 #include "Zprimary.h" 142 real(8),
parameter::hbarc=197.0e6*1
e-15/1.
e-9
143 real(8),
parameter::hc=hbarc*2*3.14159
145 ingev= e_or_p * comp%togev
151 if(comp%code .eq.
kmuon)
then 156 if(comp%etype .eq.
'e/p' .or.
157 * comp%etype .eq.
'e')
then 158 aptcl%fm%p(4) = ingev
160 elseif(comp%etype .eq.
'p/p' .or.
161 * comp%etype .eq.
'p')
then 162 aptcl%fm%p(4) = sqrt(aptcl%mass**2 +
164 elseif(comp%etype .eq.
'ke/p' .or.
165 * comp%etype .eq.
'ke')
then 166 aptcl%fm%p(4) = ingev + aptcl%mass
167 elseif(comp%etype .eq.
'e/n')
then 169 if(code .eq.
kgnuc)
then 170 aptcl%fm%p(4) = aptcl%subcode * ingev
171 elseif(code .ge.
kalfa .and.
173 call cghvm(code, massn)
174 aptcl%fm%p(4) = massn * ingev
176 aptcl%fm%p(4) = ingev
178 elseif(comp%etype .eq.
'ke/n')
then 180 if(code .eq.
kgnuc)
then 181 aptcl%fm%p(4) = aptcl%subcode * ingev +
183 elseif(code .ge.
kalfa .and.
185 call cghvm(code, massn)
186 aptcl%fm%p(4) = massn * ingev +
189 aptcl%fm%p(4) = ingev +
192 elseif(comp%etype .eq.
'p/n')
then 194 if(code .eq.
kgnuc)
then 196 * sqrt( (aptcl%subcode * ingev) **2 +
198 elseif(code .ge.
kalfa .and.
200 call cghvm(code, massn)
202 * sqrt( (massn * ingev) **2 +
205 aptcl%fm%p(4) = sqrt(ingev**2 +
208 elseif(comp%etype .eq.
'rig')
then 210 * ( ingev*aptcl%charge)**2 + aptcl%mass**2 )
211 elseif(comp%etype ==
'nm' )
then 212 if(comp%code /=
klight )
then 213 write(0,*)
' nm unit can be used only for light' 216 aptcl%fm%p(4) = hc/e_or_p
218 write(*, *)
' energy type=', comp%etype,
219 *
' invalid. label=', comp%label,
' symb =',
223 if(comp%code ==
klight .and. comp%etype /=
'nm' )
then 225 aptcl%fm%p(4) = aptcl%fm%p(4)*1.d9
235 #include "Zprimary.h" 253 if(comp%etype .eq.
'e/p' .or.
254 * comp%etype .eq.
'e')
then 256 elseif(comp%etype .eq.
'p/p' .or.
257 * comp%etype .eq.
'p')
then 258 ex = sqrt(e**2 - aptcl%mass**2)
260 elseif(comp%etype .eq.
'ke/p' .or.
261 * comp%etype .eq.
'ke')
then 264 elseif(comp%etype .eq.
'e/n')
then 266 if(code .eq.
kgnuc)
then 268 elseif(code .ge.
kalfa .and.
270 call cghvm(code, massn)
275 elseif(comp%etype .eq.
'ke/n')
then 277 if( code .eq.
kgnuc )
then 278 ex =( e - aptcl%mass)/aptcl%subcode
279 elseif(code .ge.
kalfa .and.
281 call cghvm(code, massn)
282 ex =( e - aptcl%mass)/massn
286 elseif(comp%etype .eq.
'p/n')
then 288 if( code .eq.
kgnuc)
then 289 ex =sqrt( e**2 - aptcl%mass **2)/aptcl%subcode
290 elseif(code .ge.
kalfa .and.
292 call cghvm(code, massn)
293 ex =sqrt( e**2 - aptcl%mass **2)/massn
295 ex = sqrt(e**2 - aptcl%mass**2)
297 elseif(comp%etype .eq.
'rig')
then 298 ex = sqrt( e**2 - aptcl%mass**2) /aptcl%charge
300 write(*, *)
' energy type=', comp%etype,
301 *
' invalid. label=', comp%label,
' symb =',
305 e_or_p = ex/ comp%togev
317 #include "Zprimary.h" 318 #include "Zprimaryv.h" 332 #include "Zprimary.h" 336 p_or_e = prm%sampled_e
349 #include "Zprimary.h" 350 #include "Zprimaryv.h" 358 #include "Zmanagerp.h" 369 #include "Zprimary.h" 382 #include "Zprimary.h" 383 #include "Zprimaryv.h" subroutine cqprimlabel(label)
subroutine csampprm1(each, p_or_e)
dE dx *! Nuc Int sampling table e
subroutine csetmuonpol(val)
max ptcl codes in the kgnuc
subroutine cqnoofprim(no)
subroutine cconv_prim_e2(comp, E, e_or_p)
subroutine cqprimlabel0(prm, label)
subroutine cconv_prim_e(comp, e_or_p, aPtcl)
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kalfa
subroutine csampprm0(prm)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine cqprimary(prm)
max ptcl codes in the klight
dE dx *! Nuc Int sampling table d
subroutine cmkptc(code, subcode, charge, p)
max ptcl codes in the khvymax
subroutine cqprime(p_or_e)
subroutine csampprimary(p, fin)
subroutine cqprime0(prm, p_or_e)
max ptcl codes in the kmuon
subroutine cghvm(code, massn)