Go to the source code of this file.
◆ cmolexpb()
subroutine cmolexpb |
( |
type(xsmedia), intent(in) |
mediax, |
|
|
real*8 |
expb |
|
) |
| |
Definition at line 201 of file cSampMol.f.
References d0.
Referenced by csampmol0().
206 #include "Zglobalc.h" 212 type(xsmedia),
intent(in):: mediax
215 real*8 gbeta2, beta2, massratio2
216 common /zcmedia/ gbeta2, beta2, massratio2
218 real(8):: sum, alfai2,
temp 221 if( beta2 > 0.99 )
then 222 sum = mediax%MoliereExpb
226 temp = (trackbefmove%p%charge/137.0)**2/beta2
227 do i = 1, mediax%noOfElem
229 alfai2 = mediax%elem(
i)%Z**2 *
temp 232 * mediax%elem(
i)%No *
233 * mediax%elem(
i)%Z**0.3333*(mediax%elem(
i)%Z + 1.
d0)
234 * / (1.
d0 + 3.327
d0*alfai2)
236 sum = 6702.
d0 *sum/mediax%A
239 expb = sum *intinfarray(processno)%thickness/10. *
240 * trackbefmove%p%charge**2 /beta2
real(4), dimension(:), allocatable, save temp
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
◆ cprescatcalc()
subroutine cprescatcalc |
( |
| ) |
|
Definition at line 246 of file cSampMol.f.
References d0, kelec, and masele.
Referenced by csampmol0().
248 #include "Zglobalc.h" 254 real*8 gbeta2, beta2, massratio2
255 common /zcmedia/ gbeta2, beta2, massratio2
260 g1 = trackbefmove%p%fm%p(4)/trackbefmove%p%mass
262 g2 = movedtrack%p%fm%p(4)/trackbefmove%p%mass
263 beta2 = 1.
d0 - 1.
d0/g1/g2
266 gbeta2 =g1*g2*(beta2)**2
273 if(trackbefmove%p%code ==
kelec)
then 277 massratio2= (
masele/trackbefmove%p%mass)**2
max ptcl codes in the kelec
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
dE dx *! Nuc Int sampling table g
◆ csampmol()
subroutine csampmol |
( |
type(xsmedia), intent(in) |
mediax, |
|
|
real(8), intent(out) |
teta, |
|
|
integer, intent(out) |
cond |
|
) |
| |
Definition at line 7 of file cSampMol.f.
References csampmol0(), d0, false, rndc(), and true.
Referenced by cmulscat().
30 type(xsmedia),
intent(in):: mediax
31 real(8),
intent(out)::teta
32 integer,
intent(out)::cond
38 common /zmoliere/
b, xc2, bxc2
51 expbxc2 = exp(bxc2/16.0
d0)/1.064
d0 54 if(teta < 0.5
d0 )
then 57 ok = u**2 < (1.0
d0- teta**2/6.0
d0)
65 elseif( teta < 3.1415 )
then 66 ok = u**2 < sin(teta)/teta
76 elseif( icon == 1)
then 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
subroutine csampmol0(mediax, teta, cond)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
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
◆ csampmol0()
subroutine csampmol0 |
( |
type(xsmedia), intent(in) |
mediax, |
|
|
real(8), intent(out) |
teta, |
|
|
integer, intent(out) |
cond |
|
) |
| |
Definition at line 88 of file cSampMol.f.
References cmolexpb(), cprescatcalc(), cxaic2(), and d0.
Referenced by csampmol().
89 use cmodsampmolreduceda
99 type(xsmedia),
intent(in):: mediax
101 real(8),
intent(out)::teta
102 integer,
intent(out)::cond
107 common /zmoliere/
b, xc2, bxc2
109 real*8 gbeta2, beta2, massratio2
110 common /zcmedia/ gbeta2, beta2, massratio2
130 if(sb .lt. 1.5
d0)
then 135 call cmolblogb(sb,
b)
137 if(bxc2 > 1.0
d0)
then 143 call csampmolreduceda(
b, tetasq, cond)
145 teta = sqrt(tetasq *bxc2)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine cxaic2(mediax, xc2)
subroutine cmolexpb(mediax, expb)
◆ cxaic2()
subroutine cxaic2 |
( |
type(xsmedia), intent(in) |
mediax, |
|
|
real*8 |
xc2 |
|
) |
| |
Definition at line 157 of file cSampMol.f.
References d0, and kelec.
Referenced by csampmol0().
162 #include "Zglobalc.h" 169 type(xsmedia),
intent(in):: mediax
173 real*8 gbeta2, beta2, massratio2
174 common /zcmedia/ gbeta2, beta2, massratio2
185 if( trackbefmove%p%code ==
kelec)
then 186 xc2 = mediax%MoliereForXc2
189 xc2 = 0.6011
d0*trackbefmove%p%charge**2 * massratio2 *
196 xc2 = xc2*intinfarray(processno)%thickness/10./gbeta2
max ptcl codes in the kelec
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0