2 ! common variables used in
tracking ptcls.
10 parameter( BitPhotoElec=1, BitPhoton=2, BitElectron=3,
11 * BitPositron=3, BitProton=4, BitNeutron=5, BitAntiNuc=6,
12 * BitDecay=7, BitOther=8, BitEconsv=9 )
15 parameter(MaxInte = 6) ! Max number of kinds of interactions
a particle can
16 ! take. (such
as brems, knockon, anihilation)
17 type
intinf ! Interaction information
19 real*8 thickness ! in kg/m2 set
if decay
is F
20 real*8 length ! in
m, set
if decay
is T. or eventually by cfixProc
30 ! deepest detector origin +
Offset 36 ! considered for the current particle.
42 !
if length <--> thickness conv.
is by table
43 real*8
EminAS ! minimum energy of
e for AS generation.
53 real*8
KEmin2 ! min kinetic energy
to be tracked. for skeleton/flesh use.
60 ! must be made
t, when Epics treats muon.
61 !
if Cosmos uses Epics,
this must be made
to 62 ! be t/
f depending on Epics
mode, or Cosmos mode
73 * ) ! max # of ptcls producable in coll.
74 type(
ptcl)::
Pwork(MaxPtcl) ! working array
to store ptcls.
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p *Zfirst pos xyz Zfirst pos xyz *Zfirst pos *Zfirst pos depth
! This namelist data is frequently used ! Some of them should be given mandatory namelist Param ThinSampling
real(8), parameter, public m
dE dx *! Nuc Int sampling table e
! common variables used in tracking ptcls integer * BorderL
! parameters for Elemag process(-> ---------------------------------------------- real *8 RecoilKineMinE !2 Recoil Kinetic Min Energy above which the recoil(=knock-on process) ! is treated. Below this energy, the effect is included as continuous ! energy loss. Used only if KnockOnRatio $>$ 1. ! If this is 0 or if KnockOnRatio=1, KEminObs(gamma)=KEminObs(elec) is used. ! See also KnockOnRatio. real *8 KnockOnRatio !2 KnockOnRatio *KEminoObs is used instead of RecoilKineMinE if KnockOnRatio $< $1. real *8 X0 !2 Radiation length in kg/m$^2$ for air. Normally the user should not touch this. real *8 Ecrit !2 Critical energy in GeV. \newline ! Employed only when calculating air shower size in the hybrid ! air shower generation. The value would be dependent on the ! experimental purpose. The default value, 81 MeV, is bit too ! small in many applications(The air shower size is overestimated). ! Comparisons of sizes by the hybrid method and by the full Monte ! Carlo tell that \newline ! $N_e$(full 3-D M.C) $< N_e$(hybrid AS with $E_c=81$ MeV) $< N_e$(full 1-D M.C) ! $ {\ \lower-1.2pt\vbox{\hbox{\rlap{$<$}\lower5pt\vbox{\hbox{$\sim$}}}}\ } ! N_e$(hybrid AS with $E_c={76}$ MeV) at around shower maximum. ! Hybrid AS is always essentially 1-D. logical Knockon !2 Obsolete. Don 't use this. See RecoilKineMinE ! and KnockonRatio. real *8 AnihiE !2 If E(positron) $<$ AnihiE, annihilation is considered. real *8 Es !2 Modified scattering constant. 19.3d-3 GeV real *8 MaxComptonE !2 Above this energy, Compton scattering is neglected. real *8 MaxPhotoE !2 Above this energy, photoelectric effect is neglected. real *8 MinPhotoProdE !1 Below this energy, no photo-prod of hadron. See also PhotoProd. logical PhotoProd !1 Switch. if .false., no photo prod. of hadron is considered at all. ! See also MinPhotoProdE, HowPhotoP real *8 Excom1 !2(GeV). If photon energy is<=Excom1, use XCOM data for ! compton/p.e/coherent scattering(must be< 100 GeV). real *8 Excom2 !2(GeV). If photon energy is<=Excom2, use XCOM data for ! pair creation cross-section.(must be< 100 GeV). integer Moliere !2 2$\rightarrow$ use Moliere scat.\newline ! 0$\rightarrow$ use Gaussian scattrign. \newline ! 1$\rightarrow$ use Moli\`ere scattering for non-electrons \newline ! 2$\rightarrow$ use Moli\`ere scattering for all charged ! particles. But treatment is not so rigorous as case of 3. ! \newline ! 3$\rightarrow$ use rigorus Moliere scattering. Diff. from 2 is verysmall. May be some effect in the ! core region. integer ALateCor !2 1$\rightarrow$ angular and lateral correlation is taken into account when Moliere=0 .\newline ! t$\rightarrow$ Use angular-lateral correlation by Gaussian ! approximation. No effect is seen if path length is short. !<-) ---------------------------------------------- common/Zelemagc/RecoilKineMinE
! common variables used in tracking ptcls integer AngleLimit BitPositron
latitude latitude this system is used *****************************************************************! type coord sequence union map real z z in m endmap xyz map real ! latitude in deg is to the north ! longitude in deg is to the east *h ! height in m endmap llh map real ! polar angle ! azimuthal angle *radius ! radial distance endmap sph endunion character *sys ! which system xyz
! common variables used in tracking ptcls integer AngleLimit BitPhoton
! common variables used in tracking ptcls integer Truncated
! common variables used in tracking ptcls integer AngleLimit BitProton
! common variables used in tracking ptcls integer ToInteract
! common variables used in tracking ptcls integer AngleLimit * BitNeutron
! Parameters used for hadronic cascade shower is generated newline ! For you may give as as or em as(order/case/separator insensitive) is to generate EM-cascade and AS. \newline ! Generate
! common variables used in tracking ptcls integer ToBeObserved
! common variables used in tracking ptcls integer AngleLimit parameter(ToInteract=1, ToBeObserved=2, Truncated=3, *BorderL=4, BorderH=5, Dead=6, AngleLimit=7) integer BitPhotoElec
integer Charge2heavyG charge of heavy rightarrow heavy group index conversion array integer HeavyG2massN heavy group index rightarrow mass number conversion array integer HeavyG2charge heavy group index rightarrow charge of heavy conversion array integer HeavyG2code heavy group index rightarrow particle code conversion array integer Code2massN particle code rightarrow mass number conversion array integer Code2heavyG particle code rightarrow heavy group index conversion array real *FragmentTbl the number of interacting nucleons among a projectile heavy nucleus is ! determined as the number of first collision of each interacting nucleon inside ! the nucleus If
*Zfirst p fm *Zfirst p Zfirst p code
integer maxbin nregion c minsave drx2 ! drawing region real maxdep integer maxpos integer to
! parameters for primary angle sampling(-> --------------------------------------------------- complex *16 CosZenith !1 Range of cos(zenith angle). Say,(0.5, 1.0). Used when Za2ry is 'is' ! If ObsPlane=3(spherical), real(CosZenith) must be $> $0, and means ! the zenith angle range at the incident point(not in Exyz system). ! In that case, azimuth is 0 to 2pi. complex *16 Azimuth !1 Range of azimuthal angle in deg. Say,(0, 45). Default is(0, 360). ! Can be such as(300., 390.). Used when Za1ry is 'is'\newline ! If ObsPlane=3(spherical), this is used to show the half opening angle ! range where the primary injection position is uniformly distributed ! on a sphere. The center of the opening angle is(Latit, Longit, HeightOfInj). ! In this case, for the upper opening angle, min(Imag(Azimuth), 180.) is used. character *4 Za1ry !1 Specify the primary angle sampling method by one of 'is', 'ps' or 'aps'.\newline ! "is" is isotropic. The range is by CosZenith.\newline ! "ps" is for point source(See also SourceDec)\newline ! "aps" is around point source(See also SourceDec and Ddelta) \newline ! If ObsPlane=3(spherical), this must be "is". real *8 SourceDec !1 Source declination of point source.(deg) real *8 Ddelta !1 SourceDec $\pm$ Ddelta is the region for 'aps'(deg). real *8 HeightOfInj !1 The vertical height of primary injection point(m). ! If this is $<$ deepest obs. level and zeinth angle of primary is $< 0$, ! the primary is assumed to be upgoing even if Reverse=0. ! NOTE:BorderHeightH must be given explicitly in this case. real *8 OffsetHeight !2 The vertical offset height from the deepest detector. ! The primary is directed to this height above the detector. ! If ObsPlane is 3(spherical), not used. !<-) ---------------------------------------------------- common/Zincident/Azimuth
! common variables used in tracking ptcls integer AngleLimit * BitElectron
real cut integer ncpi0 common Zuserc cut
! type magfield sequence ! Note that position vector where the magnetic field is given ! is not included here ! unit of field strength is in T(1 gauss=10 **-4 T) union map real *8 x
integer lengid integer lengdir character *dir integer kgetenv2 character *numb character *execid character *msg logical takehist save do nsites tkarspec nsites if(histdep(i) .gt. 0) then takehist
! common variables used in tracking ptcls integer BorderH
! common parameters for tracking(-> ------------------------------------- real *8 Deltpp !2 p-p xsection increases as $E^{Deltpp}$(E$>$ 100GeV) real *8 Deltpip !2 pi-p xsection increases as $E^{Deltpip}$(E$>$ 100GeV) real *8 Deltkp !2 k-p xsection increases as $E^{Deltkp}$(E$>$ 100GeV) real *8 IncreaseXsec !2 how the xsection increases. 1.0$\rightarrow$ power of E ! above ones are obsolete !<-) ----------------------------------- common/Zxsectionp/*Deltpp
! common variables used in tracking ptcls integer AngleLimit BitAntiNuc
dE dx *! Nuc Int sampling table g
! constants used for pair brem in Air real *mbtoPX0 ! mbtoPgrm x X0g If multiplied to sigma in ! we obtain probability radation length real *X0g ! radiation length in g cm real *cScrC1 ! const which appears in the complete screening ! crossection real *cScrC2 ! the other such one real too **media Zeff **Z **real *BrScrE ! below this
after any interaction(except for continuous energy ! loss by dE/dx and deflection by B or scattering)
! common variables used in tracking ptcls integer Dead
block data cblkIncident data *Za1ry is
! structure defining a particle at production ! Basic idea of what is to be contained in ! the particle structue is that dynamical ones should be included those derivable from the particle code ! is not included ******************************************************type fmom momentum sequence union map real e endmap map real * x
dE dx *! Nuc Int sampling table f
! common variables used in tracking ptcls integer AngleLimit BitOther
dE dx *! Nuc Int sampling table c
! common variables used in tracking ptcls integer AngleLimit BitDecay