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

Go to the source code of this file.

Functions/Subroutines

subroutine cmuprsmpp (Emu, prob, path)
 
subroutine cmuprsmpe (Emu, Epair)
 
subroutine cmuprsmp0 (a, b, vc, v)
 

Function/Subroutine Documentation

◆ cmuprsmp0()

subroutine cmuprsmp0 ( real*8  a,
real*8  b,
real*8  vc,
real*8  v 
)

Definition at line 50 of file cmuPrsmp.f.

References d0, false, and rndc().

Referenced by cmuprsmpe().

50 ! **********************************
51  implicit none
52 ! sample v from dv/v**(2-b)/(1+av**b)**2
53 ! This is a good approximation for pair spectrum
54 ! from muon
55  real*8 a ! input.
56  real*8 b ! input.
57  real*8 vc ! input. minimum of v
58  real*8 v ! output. sampled v
59 
60 
61  real*8 u, temp
62 
63 
64  logical ok
65 
66  ok = .false.
67  do while (.not. ok)
68  if(b .ne. 1.0d0) then
69  temp = vc**(b-1)
70  call rndc(u)
71  v = ((1-temp)*u + temp)**(1./(b-1))
72  call rndc(u)
73  ok =(u .lt. ((1.+a*temp*vc)/(1.+a*v**b))**2)
74  else
75  call rndc(u)
76  v = vc**u
77  call rndc(u)
78  ok =(u .lt. ((1.+a*vc)/(1.+a*v))**2)
79  endif
80  enddo
81 
subroutine rndc(u)
Definition: rnd.f:91
real(4), dimension(:), allocatable, save temp
Definition: cNRLAtmos.f:29
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
Definition: cblkEvhnp.h:5
real(4), save a
Definition: cNRLAtmos.f:20
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
Definition: cblkElemag.h:7
real(4), save b
Definition: cNRLAtmos.f:21
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmuprsmpe()

subroutine cmuprsmpe ( real*8  Emu,
real*8  Epair 
)

Definition at line 32 of file cmuPrsmp.f.

References cmuprsmp0(), mupa, mupb, muqb, and mura.

Referenced by cmuinte().

32  implicit none
33 #include "Zcmuint.h"
34  real*8 emu ! input. muon total energy in GeV
35  real*8 epair ! output. sampled energy loss of muon
36  ! (Epair/Emu > media.cnst.muPrVmin)
37 
38  real*8 a, b, v
39 
40  a = mupa*emu**(-0.40) + mura
41  b = mupb*emu**muqb + 0.92
42 
43  call cmuprsmp0(a, b, muprvmin, v)
44  epair = emu*v
! muon interaction related variables ! real Zeff3 ! Zeff **real muPrEmax1 integer muPrTXT ! real muBrEmax1 integer muBrTXT ! real muNEmax1 integer muNTXT ! real muNpwdEdxt real real mupb
Definition: Zcmuint.h:26
subroutine cmuprsmp0(a, b, vc, v)
Definition: cmuPrsmp.f:50
! muon interaction related variables ! real Zeff3 ! Zeff **real muPrEmax1 integer muPrTXT ! real muBrEmax1 integer muBrTXT ! real muNEmax1 integer muNTXT ! real muNpwdEdxt real real mura
Definition: Zcmuint.h:26
! muon interaction related variables ! real Zeff3 ! Zeff **real muPrEmax1 integer muPrTXT ! real muBrEmax1 integer muBrTXT ! real muNEmax1 integer muNTXT ! real muNpwdEdxt real real * mupa
Definition: Zcmuint.h:26
real(4), save a
Definition: cNRLAtmos.f:20
! muon interaction related variables ! real Zeff3 ! Zeff **real muPrEmax1 integer muPrTXT ! real muBrEmax1 integer muBrTXT ! real muNEmax1 integer muNTXT ! real muNpwdEdxt real real muqb
Definition: Zcmuint.h:26
real(4), save b
Definition: cNRLAtmos.f:21
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmuprsmpp()

subroutine cmuprsmpp ( real*8  Emu,
real*8  prob,
real*8  path 
)

Definition at line 2 of file cmuPrsmp.f.

References kintp3(), and rndc().

Referenced by csampmuint().

2  implicit none
3 #include "Zcmuint.h"
4 
5  real*8 emu ! input. muon total energy in GeV
6  real*8 prob ! output. muon pair creation prob. /X0
7  real*8 path ! output. sampled path in r%l
8  ! if Emu < media.cnst.muPrEmin, prob=0
9  ! and path becomes big
10 
11  real*8 u, ale
12 
13  if(emu .le. mupremin) then
14  prob = 0.
15  elseif(emu .le. mupremax1) then
16  ale = log10(emu)
17  call kintp3(muprtx, 1, muprtxt, muprlemin,
18  * muprdetx, ale, prob)
19  else
20 ! prob is const for v > vmin; Emu > muPrEmax1
21  prob = muprtx(muprtxt)
22  endif
23  if(prob .gt. 0.) then
24  call rndc(u)
25  path =- log(u)/prob
26  else
27  path = 1.d30
28  endif
subroutine rndc(u)
Definition: rnd.f:91
subroutine kintp3(f, intv, n, x1, h, x, ans)
Definition: kintp3.f:19
Here is the call graph for this function:
Here is the caller graph for this function: