6 subroutine csampmol(mediax, teta, cond)
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 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)
156 subroutine cxaic2(mediax, xc2)
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
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
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 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
subroutine cxaic2(mediax, xc2)
subroutine csampmol(mediax, teta, cond)
subroutine cmolexpb(mediax, expb)
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