COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cgpHad.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine cgphad (massN, atomicN, pj, a, ntp)
 
subroutine cgplowexp (pj, massN, atomicN, a, ntp)
 
subroutine cghcolltype (pj, jtype)
 
subroutine cg1pi0 (pj, ic, a, ntp)
 
subroutine cg1pic (pj, ic, a, ntp)
 
subroutine cg2pi (ic, a, ntp)
 
subroutine cg3pi (ic, a, ntp)
 
subroutine cfakegh (pj, massN, atomicN, a, ntp)
 
subroutine cmkvectormeson (pj, vm, jcon)
 
subroutine cvecmesonaftercol (vm, a, nin, nout)
 
subroutine cleadingpiaftercol (pix, a, ntp)
 
subroutine cfixvectormeson (e, vm, icon)
 
subroutine cvmdcy (vm, a, np)
 

Function/Subroutine Documentation

◆ cfakegh()

subroutine cfakegh ( type(ptcl pj,
integer, intent(in)  massN,
integer, intent(in)  atomicN,
type(ptcl), dimension(*)  a,
integer, intent(out)  ntp 
)

Definition at line 374 of file cgpHad.f.

References cadjm(), chacol(), cinelx(), cleadingpiaftercol(), cmkptc(), cmkvectormeson(), cvecmesonaftercol(), kpion, and rndc().

Referenced by cgphad(), and cgplowexp().

374  use modxsecmedia
375  implicit none
376 #include "Zcode.h"
377 #include "Zptcl.h"
378 #include "Zevhnv.h"
379 #include "Zair.h"
380 
381 
382  type(ptcl):: pj ! input. photon
383  integer,intent(in):: massn ! target A
384  integer,intent(in):: atomicn ! target Z
385  type(ptcl):: a(*) ! produced ptcls
386  integer,intent(out)::ntp ! # of ptcls produced
387 
388 !
389  type(ptcl):: vm
390  integer jcon
391 
392  real(8)::u
393  real(8)::xs
394  integer nout
395  integer::pichg
396  type(ptcl):: pix
397 
398 ! make pi+ or -
399  call rndc(u)
400 
401  pix = pj
402 
403  if(activemdl == "qgsjet2") then
404  pichg = 0
405  call cmkptc(kpion, 0, 0, pix) ! can accept pi0
406  call cadjm(pix, pix) ! adjust momenutm
407  call cxsecqgs(pix, massn, xs ) ! not for xs
408  call chacol(pix, massn, atomicn, a, ntp)
409  elseif( activemdl == "epos") then
410  call chacol(pj, massn, atomicn, a, ntp)
411  elseif (activemdl /= "ad-hoc" ) then
412  if(u < 0.5 ) then
413  pichg = -1
414  else
415  pichg = 1
416  endif
417  call cmkptc(kpion, 0, pichg, pix)
418  call cadjm(pix, pix)
419 ! some model(JAM) needs xs. for safety get xs
420  call cinelx(pix, massn, atomicn, xs)
421  targetxs = xs
422  call chacol(pix, massn, atomicn, a, ntp)
423  call cleadingpiaftercol(pix, a, ntp)
424  else
425  call cmkvectormeson(pj, vm, jcon)
426  if(jcon /= 0) then
427  write(0,*) "cmkVectorMeson failed"
428  ntp=1
429  a(1) = pj
430  else
431  call chacol(vm, massn, atomicn, a, ntp)
432  call cvecmesonaftercol(vm, a, ntp, nout)
433  ntp = nout
434  endif
435  endif
436 
subroutine cinelx(pj, A, Z, xs)
Definition: cinelx.f:4
subroutine rndc(u)
Definition: rnd.f:91
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
Definition: Zglobalc.h:18
subroutine cleadingpiaftercol(pix, a, ntp)
Definition: cgpHad.f:499
subroutine cvecmesonaftercol(vm, a, nin, nout)
Definition: cgpHad.f:464
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
subroutine cadjm(p, q)
Definition: cadjm.f:14
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
subroutine chacol(pj, ia, iz, a, ntp)
Definition: chAcol.f:3
subroutine cmkvectormeson(pj, vm, jcon)
Definition: cgpHad.f:440
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cfixvectormeson()

subroutine cfixvectormeson ( real*8  e,
type(ptcl vm,
integer  icon 
)

Definition at line 532 of file cgpHad.f.

References cmkptc(), komega, kphi, krho, ksbwig(), rndc(), true, womega, wphai, and wrho.

Referenced by cmkvectormeson().

532 ! *****************************************
533  implicit none
534 
535 #include "Zptcl.h"
536 #include "Zcode.h"
537 #include "Zmass.h"
538  real*8 e
539  type(ptcl):: vm
540  integer icon
541 !
542  integer nc
543  real*8 u, amass, w
544 !
545  nc=0
546 ! *** until loop***
547  do while (.true.)
548  nc=nc+1
549  call rndc(u)
550  if(u .lt. .46) then
551  call cmkptc(krho, 0, 0, vm)
552  w=wrho
553  elseif(u .lt. .92) then
554  call cmkptc(komega, 0, 0, vm)
555  w=womega
556  else
557  call cmkptc(kphi, 0, 0, vm)
558  w=wphai
559  endif
560 ! *** until loop***
561  do while (.true.)
562  call ksbwig(vm%mass, w, amass)
563  if (amass .gt. vm%mass-w .and. amass .lt. vm%mass+w)
564  * goto 10
565  enddo
566  10 continue
567  if(e .le. amass) then
568  icon=1
569  else
570  icon=0
571  endif
572  if (icon .eq. 0 .or. nc .gt. 10)
573  * goto 100
574  enddo
575  vm%mass = amass
576  100 continue
577 
! life time in s real t0dc real t0gzaim real t0bomega real t0seethru ! decay width in GeV real * wrho
Definition: Zlife.h:2
dE dx *! Nuc Int sampling table e
Definition: cblkMuInt.h:130
! life time in s real t0dc real t0gzaim real t0bomega real t0seethru ! decay width in GeV real wphai
Definition: Zlife.h:2
max ptcl codes in the kphi
Definition: Zcode.h:2
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
Definition: cblkElemag.h:7
subroutine rndc(u)
Definition: rnd.f:91
max ptcl codes in the komega
Definition: Zcode.h:2
max ptcl codes in the krho
Definition: Zcode.h:2
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
! life time in s real t0dc real t0gzaim real t0bomega real t0seethru ! decay width in GeV real womega
Definition: Zlife.h:2
real cut integer nc
Definition: Zprivate.h:1
Definition: Zptcl.h:75
subroutine ksbwig(e0, g, e)
Definition: ksbwig.f:25
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cg1pi0()

subroutine cg1pi0 ( type(ptcl pj,
integer  ic,
type(ptcl), dimension(*)  a,
integer  ntp 
)

Definition at line 250 of file cgpHad.f.

References c2bdcp(), cmkptc(), cspiangofpin(), knuc, kpion, masp, and regptcl.

Referenced by cgplowexp().

250  implicit none
251 #include "Zptcl.h"
252 #include "Zmass.h"
253 #include "Zcode.h"
254 #include "Zevhnv.h"
255 
256  type(ptcl):: pj, a(*)
257  integer ic, ntp
258 !
259 
260  real*8 cs, tmass
261  type(ptcl):: eres
262  save
263 !
264  tmass=masp
265 ! gp-->p+pi0 or gn-->n+pi0; sample cos of pi0 in cms
266  call cspiangofpin(cmsp%mass, 1, 0, cs)
267 ! resonance energy in trs
268  eres%fm%p(1) = 0.
269  eres%fm%p(2) = 0.
270  eres%fm%p(4) = pj%fm%p(4) + tmass
271  eres%mass = cmsp%mass
272  eres%fm%p(3) = sqrt(eres%fm%p(4)**2 - eres%mass**2)
273  call cmkptc(kpion, 0, 0, a(1))
274  call cmkptc(knuc, regptcl, ic, a(2))
275  call c2bdcp(eres, a(1), cs, a(2))
276 ! call c2bdcp(Cmsp, a(1), cs, a(2))
277  ntp=2
subroutine cspiangofpin(cmsein, cn, cpi, cs)
Definition: csPiAngOfPiN.f:22
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
subroutine c2bdcp(p, p1, cst, p2)
Definition: c2bdcy.f:124
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
masp
Definition: Zmass.h:5
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cg1pic()

subroutine cg1pic ( type(ptcl pj,
integer  ic,
type(ptcl), dimension(*)  a,
integer  ntp 
)

Definition at line 281 of file cgpHad.f.

References c2bdcp(), cmkptc(), cspiangofpin(), knuc, kpion, masp, and regptcl.

Referenced by cgplowexp().

281  implicit none
282 #include "Zptcl.h"
283 #include "Zmass.h"
284 #include "Zcode.h"
285 #include "Zevhnv.h"
286 
287  type(ptcl):: pj, a(*)
288  integer ic, ntp
289 !
290 
291 
292  real*8 cs, tmass
293  type(ptcl):: eres
294  save
295 
296 ! **************
297 ! gp-->n+pi+ or gn-->p+pi-; sample cos of pi in cms
298  tmass = masp
299  call cspiangofpin(cmsp%mass, 0, 1, cs)
300  eres%fm%p(4)=pj%fm%p(4) + tmass
301  eres%mass = cmsp%mass
302  eres%fm%p(3) = sqrt(eres%fm%p(4)**2 - eres%mass**2)
303  call cmkptc(kpion, 0, ic, a(1))
304  call cmkptc(knuc, regptcl, (1-ic)/2, a(2))
305  call c2bdcp(eres, a(1), cs, a(2))
306 ! call c2bdcp(Cmsp, a(1), cs, a(2))
307  ntp=2
subroutine cspiangofpin(cmsein, cn, cpi, cs)
Definition: csPiAngOfPiN.f:22
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
subroutine c2bdcp(p, p1, cst, p2)
Definition: c2bdcy.f:124
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
masp
Definition: Zmass.h:5
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cg2pi()

subroutine cg2pi ( integer  ic,
type(ptcl), dimension(*)  a,
integer  ntp 
)

Definition at line 311 of file cgpHad.f.

References cmkptc(), cnbdcy(), knuc, kpion, and regptcl.

Referenced by cgplowexp().

311 ! **************
312 ! particles are produced in cms.
313  implicit none
314 #include "Zptcl.h"
315 #include "Zcode.h"
316 #include "Zevhnv.h"
317 
318  type(ptcl):: a(*)
319 
320  integer ic, ntp
321 
322  real*8 w
323  integer icon
324 ! gp-->p pi+ pi- or gn --> n pi+ pi-
325 
326  call cmkptc(knuc, regptcl, ic, a(1))
327  call cmkptc(kpion, 0, 1, a(2))
328  call cmkptc(kpion, 0, -1, a(3))
329 
330  call cnbdcy(3, cmsp%mass, a, 0, w, icon)
331  if(icon .eq. 1) then
332  write(0, *)
333  * ' cnbdcy fails in gp-->p pi+ pi- ',
334  * ' roots=',cmsp%mass, ' icon=',icon
335  ntp=0
336  else
337  ntp=3
338  endif
subroutine cnbdcy(n, ecm, p, jw, w, icon)
Definition: cnbdcy.f:48
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cg3pi()

subroutine cg3pi ( integer  ic,
type(ptcl), dimension(*)  a,
integer  ntp 
)

Definition at line 342 of file cgpHad.f.

References cmkptc(), cnbdcy(), knuc, kpion, and regptcl.

Referenced by cgplowexp().

342  implicit none
343 #include "Zptcl.h"
344 #include "Zmass.h"
345 #include "Zcode.h"
346 #include "Zevhnv.h"
347 
348  type(ptcl):: a(*)
349  integer ic, ntp, icon
350  real*8 w
351 !
352 ! **************
353 ! gp-->p pi+ pi- pi0 or gn-> 3pi
354 ! in cms.
355  call cmkptc(knuc, regptcl, ic, a(1))
356  call cmkptc(kpion, 0, -1, a(2))
357  call cmkptc(kpion, 0, 0, a(3))
358  call cmkptc(kpion, 0, 1, a(4))
359  call cnbdcy(4, cmsp%mass, a, 0, w, icon)
360  if(icon .eq. 1) then
361  write(0,*) ' cnbdcy fails in gp--> p + 3pi ',
362  * ' roots=', cmsp%mass, ' icon=',icon
363  ntp=0
364  else
365 ! icon =2 comes here. no problem statistically.
366 ! few percent cases for mass=1.6 to 3 GeV happens to be icon=2
367 ! (icon = 2 means rejection after 20 trials due to wight problem)
368  ntp=4
369  endif
subroutine cnbdcy(n, ecm, p, jw, w, icon)
Definition: cnbdcy.f:48
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cghcolltype()

subroutine cghcolltype ( type(ptcl pj,
integer  jtype 
)

Definition at line 201 of file cgpHad.f.

References cgppi0(), cgpxs1(), d0, and rndc().

Referenced by cgplowexp().

201  implicit none
202 #include "Zptcl.h"
203  type(ptcl):: pj
204  integer jtype
205 
206  real*8 egl, xs1, xs2, xs3, xs4, xso, xst, u
207  real*8 xs
208  if(pj%fm%p(4) .lt. 5.) then ! actually come here when < 2.5 GeV
209 ! log10(Eg/MeV); xs in micro barn
210  egl=log10(pj%fm%p(4)) + 3
211  call cgppi0(egl, xs1)
212  call cgppip(egl, xs2)
213  call cgppi2(egl, xs3)
214  call cgppi3(egl, xs4)
215  else
216  xs1=0.
217  xs2=0.
218  xs3=0.
219  xs4=0.
220  endif
221 ! gp total x-section xs in mb
222  call cgpxs1(pj%fm%p(4), xs)
223  xs=xs*1000. ! in micro barn
224  xso=max(0.d0, xs-(xs1+xs2+xs3+xs4) ) ! other channel
225  if(pj%fm%p(4) .lt. 2.5) xso=0.
226  xst=xs1+xs2+xs3+xs4+xso
227  if(xst .gt. 0.) then
228  call rndc(u)
229  if(u .lt. xs1/xst) then
230 ! gp-->p+pi0 or gn-->n+pi0
231  jtype=1
232  elseif(u .lt. (xs1+xs2)/xst) then
233 ! gp-->n+pi+ or gn-->p+pi-
234  jtype=2
235  elseif(u .lt. (xs1+xs2+xs3)/xst) then
236 ! gp-->p pi+ pi- or gn --> n pi+ pi-
237  jtype=3
238  elseif( u .lt. (xs1+xs2+xs3+xs4)/xst) then
239  jtype=4
240  else
241 ! vector meson collision
242  jtype=5
243  endif
244  else
245  jtype=0
246  endif
subroutine cgppi0(egl10, xs)
Definition: cgpxs1.f:106
subroutine rndc(u)
Definition: rnd.f:91
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
Definition: Zglobalc.h:18
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
Definition: Zptcl.h:75
subroutine cgpxs1(Eg, xs)
Definition: cgpxs1.f:3
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cgphad()

subroutine cgphad ( integer  massN,
integer  atomicN,
type(ptcl pj,
type(ptcl), dimension(*)  a,
integer  ntp 
)

Definition at line 75 of file cgpHad.f.

References cfakegh(), and cgplowexp().

Referenced by cphotop().

75  implicit none
76 #include "Zptcl.h"
77 #include "Zevhnp.h"
78 #include "Zevhnv.h"
79 #include "Zmass.h"
80 #include "Zcode.h"
81 
82  integer ntp, icin
83  type(ptcl):: pj, a(*)
84  integer massn, atomicn
85 
86  if( pj%fm%p(4) < 2.5 ) then
87  call cgplowexp(pj, massn, atomicn, a, ntp)
88  else
89  call cfakegh(pj, massn, atomicn, a, ntp)
90  endif
subroutine cgplowexp(pj, massN, atomicN, a, ntp)
Definition: cgpHad.f:95
subroutine cfakegh(pj, massN, atomicN, a, ntp)
Definition: cgpHad.f:374
real(4), save a
Definition: cNRLAtmos.f:20
Definition: Zptcl.h:75
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cgplowexp()

subroutine cgplowexp ( type(ptcl pj,
integer, intent(in)  massN,
integer, intent(in)  atomicN,
type(ptcl), dimension(*)  a,
integer, intent(out)  ntp 
)

Definition at line 95 of file cgpHad.f.

References cbst1(), cfakegh(), cfxtgtchg(), cg1pi0(), cg1pic(), cg2pi(), cg3pi(), cgeqm(), cghcolltype(), cibst1(), cmkptc(), csampfermim(), knuc, and regptcl.

Referenced by cgphad().

95 ! basically Eg < 2.5 GeV. use exp. data
96  implicit none
97 #include "Zptcl.h"
98 #include "Zevhnp.h"
99 #include "Zevhnv.h"
100 #include "Zmass.h"
101 #include "Zcode.h"
102  type(ptcl):: pj ! input projectile photon
103  integer,intent(in):: massn ! target A
104  integer,intent(in):: atomicn ! target Z
105 
106 
107  integer,intent(out):: ntp ! # of ptcls produced
108  type(ptcl):: a(*) ! output produced particles
109 
110 
111  type(ptcl)::pic
112 
113  integer ic ! target N charge
114  logical fermim
115  type(ptcl):: tgt
116  type(ptcl):: pjx
117  integer icon
118  integer jtype
119  integer k
120 
121  if( massn >= 2 ) then
122 ! fix target charge (n or p)
123  call cfxtgtchg(massn, atomicn, ic)
124  else
125  ic=atomicn
126  endif
127 ! make target
128  call cmkptc(knuc, regptcl, ic, tgt)
129  fermim=(pj%fm%p(4) -pj%mass) .lt. efermi
130  * .and. massn >= 2
131  if(fermim) then
132  call csampfermim(tgt%fm) ! 4 mom. has been set
133 ! boost the projectile into target
134 ! rest system (trs).
135  call cbst1(1, tgt, pj, pjx)
136  else
137  pjx = pj
138 ! rest target
139  tgt%fm%p(1) = 0.
140  tgt%fm%p(2) = 0.
141  tgt%fm%p(3) = 0.
142  tgt%fm%p(4) = tgt%mass
143  endif
144 ! make cm ptcl
145  call cgeqm(pj, tgt, cmsp, icon) ! not pjx
146  if(icon /= 0 ) then
147  write(0,*) ' cms cannot be formed in cgpLowExp'
148  stop
149  endif
150 ! fix collision type
151  call cghcolltype(pjx, jtype)
152  if(jtype .eq. 0) then ! will not happen
153  ntp=1 ! older version 0 and no product
154  a(1)=pj ! gamma
155  elseif(jtype .eq. 1) then
156 ! gp-->p+pi0 or gn-->n+pi0
157 ! 'a' gets particles at target rest system
158  call cg1pi0(pjx, ic, a, ntp)
159  elseif(jtype. eq. 2) then
160 ! gp-->n+pi+ or gn-->p+pi-; at target rest system
161  call cg1pic(pjx, ic, a, ntp)
162  elseif(jtype .eq. 3) then
163 ! gp-->p pi+ pi- or gn --> n pi+ pi- at CMS
164  call cg2pi(ic, a, ntp)
165  elseif(jtype .eq. 4) then
166 ! 'a' gets CMS ptcls
167  call cg3pi(ic, a, ntp)
168  elseif(jtype .eq. 5) then ! will not come in our setting
169 ! vector meson type. ptcls produced in lab.
170  call cfakegh(pj, massn, atomicn, a, ntp)
171  else
172  write(0,*) ' strage jtype=',jtype, ' from cghCollType'
173  endif
174  if(fermim .and. jtype .le. 2) then
175 ! boost ptcls back to lab.
176  do k=1, ntp
177  call cibst1(k, tgt, a(k), a(k))
178  enddo
179  elseif(jtype .eq. 3 .or. jtype .eq. 4) then
180 ! now in cms. boost to lab
181  do k =1, ntp
182  call cibst1(k, cmsp, a(k), a(k))
183  enddo
184  else
185 ! jtype =1 or 2 and fermin=F; then a is already in lab.
186  endif
subroutine cghcolltype(pj, jtype)
Definition: cgpHad.f:201
subroutine cbst1(init, p1, p2, po)
Definition: cbst1.f:54
subroutine cg2pi(ic, a, ntp)
Definition: cgpHad.f:311
subroutine cibst1(init, p1, p2, po)
Definition: cibst1.f:29
subroutine cg3pi(ic, a, ntp)
Definition: cgpHad.f:342
subroutine cgeqm(p1, p2, q, icon)
Definition: cgeqm.f:2
subroutine cfakegh(pj, massN, atomicN, a, ntp)
Definition: cgpHad.f:374
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
subroutine cg1pi0(pj, ic, a, ntp)
Definition: cgpHad.f:250
subroutine cfxtgtchg(ia, iz, tcg)
Definition: cfxTgtChg.f:2
subroutine csampfermim(t)
Definition: csampFermiM.f:2
subroutine cg1pic(pj, ic, a, ntp)
Definition: cgpHad.f:281
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
Definition: Zptcl.h:75
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cleadingpiaftercol()

subroutine cleadingpiaftercol ( type(ptcl pix,
type(ptcl), dimension(ntp)  a,
integer, intent(in)  ntp 
)

Definition at line 499 of file cgpHad.f.

References cadjm(), cmkptc(), and kpion.

Referenced by cfakegh().

499  implicit none
500 ! replace max energy pi with same type of pix
501 ! by pi0
502 #include "Zptcl.h"
503 #include "Zevhnp.h"
504 #include "Zevhnv.h"
505 #include "Zmass.h"
506 #include "Zcode.h"
507  type(ptcl):: pix
508  integer,intent(in):: ntp
509  type(ptcl):: a(ntp)
510 
511  integer i, maxi
512  real(8)::maxe
513  maxe=-1.0
514  maxi =0
515  do i = 1, ntp
516  if( pix%code == a(i)%code ) then
517  if( pix%charge == a(i)%charge ) then
518  if(maxe < a(i)%fm%p(4)) then
519  maxe = a(i)%fm%p(4)
520  maxi = i
521  endif
522  endif
523  endif
524  enddo
525  if( maxi > 0 ) then
526  call cmkptc(kpion, 0, 0, a(maxi))
527  call cadjm(a(maxi),a(maxi))
528  endif
nodes i
real(4), save a
Definition: cNRLAtmos.f:20
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
subroutine cadjm(p, q)
Definition: cadjm.f:14
Definition: Zptcl.h:75
max ptcl codes in the kpion
Definition: Zcode.h:2
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmkvectormeson()

subroutine cmkvectormeson ( type(ptcl pj,
type(ptcl vm,
integer, intent(out)  jcon 
)

Definition at line 440 of file cgpHad.f.

References cfixvectormeson().

Referenced by cfakegh().

440  implicit none
441 #include "Zptcl.h"
442 #include "Zevhnp.h"
443 #include "Zevhnv.h"
444 #include "Zmass.h"
445 #include "Zcode.h"
446  type(ptcl):: pj ! input. photon
447  type(ptcl):: vm ! output
448  integer,intent(out):: jcon !
449 
450  real(8):: p, alfa
451 ! fix vector meson (rho, omega, or phai)
452 ! 46 46 8 %
453  call cfixvectormeson(pj%fm%p(4), vm, jcon)
454 ! make vector meson proj.
455  p=sqrt(pj%fm%p(4)**2 - vm%mass**2)
456  alfa=p/pj%fm%p(4)
457  vm%fm%p(1) = pj%fm%p(1)*alfa
458  vm%fm%p(2) = pj%fm%p(2)*alfa
459  vm%fm%p(3) = pj%fm%p(3)*alfa
460  vm%fm%p(4) = pj%fm%p(4)
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
Definition: Zptcl.h:75
subroutine cfixvectormeson(e, vm, icon)
Definition: cgpHad.f:532
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cvecmesonaftercol()

subroutine cvecmesonaftercol ( type(ptcl vm,
type(ptcl), dimension(nin)  a,
integer, intent(in)  nin,
integer, intent(out)  nout 
)

Definition at line 464 of file cgpHad.f.

References cvmdcy(), and kphoton.

Referenced by cfakegh().

464  implicit none
465 #include "Zptcl.h"
466 #include "Zevhnp.h"
467 #include "Zevhnv.h"
468 #include "Zmass.h"
469 #include "Zcode.h"
470  type(ptcl):: vm ! input. vector meson
471  integer,intent(in):: nin ! # of ptcls in a
472  type(ptcl):: a(nin) ! ptcls generated by col.
473  integer,intent(out)::nout ! after vm treatment, # of ptcls in a
474  type(ptcl):: b(10)
475  integer i, nx, j
476  real(8):: p, alfa
477  nout = nin
478  do i = 1, nin
479  if( a(i)%code == vm%code ) then
480 #if VECMESDECAY == 1
481  call cvmdcy(a(i), b, nx)
482  a(i) = b(1)
483  do j = 2, nx
484  a(j+nout-1) = b(j)
485  enddo
486  nout = nout + nx -1
487 #else
488  a(i)%code = kphoton
489  a(i)%mass = 0.
490  p=a(i)%fm%p(4)
491  alfa=sqrt(dot_product( a(i)%fm%p(1:3),a(i)%fm%p(1:3)))
492  * /p
493  a(i)%fm%p(1:3) = a(i:3)%fm%p(1)/alfa
494 #endif
495  endif
496  enddo
nodes i
const int kphoton
Definition: Zcode.h:6
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
Definition: cblkHeavy.h:36
real(4), save a
Definition: cNRLAtmos.f:20
real(4), save b
Definition: cNRLAtmos.f:21
subroutine cvmdcy(vm, a, np)
Definition: cgpHad.f:583
Definition: Zptcl.h:75
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cvmdcy()

subroutine cvmdcy ( type(ptcl vm,
type(ptcl), dimension(*)  a,
integer  np 
)

Definition at line 583 of file cgpHad.f.

References comgdc(), cphidc(), crhodc(), komega, kphi, and krho.

Referenced by cvecmesonaftercol().

583  implicit none
584 #include "Zptcl.h"
585 #include "Zcode.h"
586  type(ptcl):: vm, a(*)
587  integer np
588 !
589  if(vm%code .eq. krho) then
590  call crhodc(vm, a, np)
591  elseif(vm%code .eq. komega) then
592  call comgdc(vm, a, np)
593  elseif(vm%code .eq. kphi) then
594  call cphidc(vm, a, np)
595  endif
subroutine crhodc(vm, a, np)
Definition: cvmDecay.f:4
max ptcl codes in the kphi
Definition: Zcode.h:2
max ptcl codes in the komega
Definition: Zcode.h:2
max ptcl codes in the krho
Definition: Zcode.h:2
subroutine comgdc(vm, a, np)
Definition: cvmDecay.f:39
subroutine cphidc(vm, a, np)
Definition: cvmDecay.f:134
real(4), save a
Definition: cNRLAtmos.f:20
Definition: Zptcl.h:75
Here is the call graph for this function:
Here is the caller graph for this function: