COSMOS v7.655  COSMOSv7655
(AirShowerMC)
caveInteNuc.f
Go to the documentation of this file.
1 ! *****************************************************************
2 ! * *
3 ! * caveInteNuc: get average no. of interacting nucleons
4 ! * when a heavy ptcl interacts with air target
5 ! * *
6 ! *****************************************************************
7 ! Note: this interacting nucleons do not include successive
8 ! interactions; the number is smaller by <Nsuc> factor
9 ! than <N> = A sigma(pA)/sigma(A'A)
10 !
11 !
12  subroutine caveintenuc(pj, tgtMassN, avn )
13  implicit none
14 
15 #include "Zcode.h"
16 #include "Zptcl.h"
17 #include "Zheavyp.h"
18 
19  type(ptcl):: pj ! projectile heavy
20  real*8 avn ! average no. of interacting nucleons
21  integer tgtMassN ! target mass # ( # of nucleons)
22 
23  real*8 xspp, xspA, xsAA, tgtA, a3, sucave, pne, tgtZ
24  integer ihg
25 !
26  tgta = tgtmassn
27  tgtz = tgta*0.4 ! almost dummy
28  a3 = tgta**0.333333333
29  ihg = charge2heavyg(pj%charge)
30  pne = pj%fm%p(4)/heavyg2massn(ihg)
31 
32 ! call cppXsec(pne, xspp)
33 ! call cxp2xAXsec(tgtA, xspp, xspA)
34  call cinelx(pj, tgta,tgtz, xspa)
35 ! this is 0.4d0*tgtA is rather dummy
36  call caaxsec2(pj, tgta, tgtz, xsaa)
37  avn = heavyg2massn(ihg) * xspa /xsaa
38 ! this inlcude successive collision inside the target.
39 ! Cosmos needs the first collision inside the target
40 ! so divide this by the average number of successive
41 ! collisions. However, this theory has no firm basis,
42 ! sot that we put a switch do use sucave =1
43 ! get <Nsuc>
44  if(howintnuc .eq. 0) then
45  call cavenoofsucc(a3, xspp, sucave)
46  avn = avn/sucave
47  endif
48  end
subroutine cavenoofsucc(a3, sigma, aven)
Definition: caveNoOfSucC.f:12
subroutine cinelx(pj, A, Z, xs)
Definition: cinelx.f:4
subroutine caaxsec2(pj, tgA, tgZ, xs)
Definition: cAAXsec2.f:2
subroutine caveintenuc(pj, tgtMassN, avn)
Definition: caveInteNuc.f:13
Definition: Zptcl.h:75