3 !
this is Primary
class data type definition
4 !
Note that primary angle information
is not here.
10 * maxErgUnit ! max # of energy unit symbols
26 integer label ! composition label number
27 character*12 symb !
'P',
'gamma' etc
28 character*3 eunit !
'GeV' etc
29 character*4 etype !
'KE/n' etc
30 character*1 diff_or_inte !
'd' or
'i' 31 real*8 flatterer ! dI/dE*
E**flatterer
36 ! dI/dE *
E**flatterer
37 ! above:
from input table directly
38 ! below: made by subroutines
44 ! integral flux >
E at segment left value
47 integer no_of_seg ! no of segments given
48 real*8 inte_value ! integral flux
from min.
E 52 ! type(histgl):: comphist
54 ! *******************************************
59 integer no_of_comps ! how many diff. compositions
60 integer NoOfSamplings ! total number of samplings including ones discarded by cutoff
62 ! discarded ones due
to cutoff. 2
is only for
66 integer label ! sampled primary label
67 real*8 sampled_e ! sampled energy(or momentum)
as 69 ! in total energy in GeV, it
is the
70 ! same
as particle.fm.
e
dE dx *! Nuc Int sampling table e
block data cblkMuInt integer i ! Pair total X sec data(MuPrTX(i), i=1, 38)/1 0.431132E-02
! this is Primary class data type definition Note that primary angle information is not here integer NoOfSymbols max of primary type symbols ! max ! max ! at a time *maxErgUnit ! max parameter(NoOfSymbols=67, *maxSegments=MAX_SEGMENTS, *maxNoOfComps=MAX_NO_OF_COMPS, *maxErgUnit=7) ! type component ! 1 component of 1ry sequence integer label ! composition label number character *12 symb ! 'P'
! 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
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
! this is Primary class data type definition Note that primary angle information is not here integer NoOfSymbols max of primary type symbols * maxSegments
integer maxbin nregion c minsave drx2 ! drawing region real maxdep integer maxpos integer to
! this is to treat the stange code generated in Lund Fritiof ! If you find that you can get reliable events by discarding ! events with such strange then you may define ! the machine definition here ! If you want to discard the strange code events but ! want to be define below ! if you want discard the strage code events without ! any define below If DEBUG_STRANGECODE is you should not give the below ! if none of above two is defined
! 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
real cut integer ncpi0 common Zuserc cut
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
! 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
integer maxbin nregion c minsave drx2 ! drawing region real maxdep integer maxpos integer from
! this is Primary class data type definition Note that primary angle information is not here integer NoOfSymbols max of primary type symbols ! max * maxNoOfComps
block data cblkIncident data *Za1ry is
*Zfirst p fm *Zfirst p Zfirst p Zfirst p subcode
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 Note