COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cutptcl.f
Go to the documentation of this file.
1  subroutine cutptcl(proj)
2 !///////////// when the calling place of crot3mom after particle generation
3 ! is moved to somewhere after the call to chookNEPI,
4 ! we must change call cutptcl in chookNEPI (proj can be simpliy
5 ! MovedTrack.p)
6  use softenpik
7  implicit none
8 ! special purpose routine to see the importance of
9 ! energetic particles.
10 !
11 #include "Zcode.h"
12 #include "Ztrack.h"
13 #include "Ztrackp.h"
14 #include "Ztrackv.h"
15 #include "Zincidentv.h"
16 !
17 !
18  type(ptcl):: proj
19  integer:: nout
20  real(8):: E0
21  integer:: i
22  integer:: stackpos
23  type(ptcl):: Tglab, Cmsp, Pjcms
24  integer icon
25  real(8):: y, eta
26 !//////////
27  type(ptcl):: temp
28 !////////////////
29 
30  modified = .false.
31 
32  if( intinfarray(processno).process == "coll") then
33  e0lab = proj.fm.p(4)
34  if(usexincms) then
35 ! make proton (only for making CMS)
36  call cmkptc(knuc, regptcl, 1, tglab)
37  tglab.fm.p(1:3)=0.
38  tglab.fm.p(4) = tglab.mass
39 ! get cms equivlent mass and 4 momentum
40 ! call cgeqm(MovedTrack.p, Tglab, Cmsp, icon)
41  call cgeqm(proj, tglab, cmsp, icon)
42  if(icon /= 0) then
43  write(0,*) ' cms cannot be formed in cutptcl'
44  stop
45  endif
46 ! boost Pwork into CMS
47  do i =1, nproduced
48  call cbst1(i, cmsp, pwork(i), pwork(i))
49  enddo
50 ! projectile in cms
51  call cbst1(2, cmsp, proj, pjcms)
52 ! only forward X is manipulated; fwbw is not used
53  call csoftenfe(pjcms, 1, pwork, nproduced, nout) !!!!Pwork(i) bad
54  nproduced = nout
55 ! re-boost into Lab
56  do i =1, nproduced
57  call cibst1(i, cmsp, pwork(i), pwork(i))
58  enddo
59  else
60 ! in lab. do softening
61 ! call csoftenPiK(MovedTrack.p, Pwork, Nproduced, nout)
62  call csoftenpik(proj, pwork, nproduced, nout)
63 !///////////
64 ! write(0,*) ' E0=',MovedTrack.p.fm.p(4)
65 ! write(0,*) ' Npro=',Nproduced, ' nout=',nout
66 !////////////
67  nproduced = nout
68  endif
69 
70  if(special) then
71  do i = 1, nproduced
72  if( pwork(i).code == kpion .or.
73  * pwork(i).code == kkaon .or.
74  * pwork(i).code == keta ) then
75  call cyeta(pwork(i), y, eta)
76  write(*,'("xd ",2i3, 1p,3g13.4)')
77  * pwork(i).code, pwork(i).charge,
78  * pwork(i).fm.p(4)/e0lab, y, eta
79  endif
80  enddo
81  endif
82  endif
83 
84  end
subroutine csoftenpik(inciptcl, pstore, nin, nout)
Definition: csoftenPiK.f:142
subroutine cbst1(init, p1, p2, po)
Definition: cbst1.f:54
logical, save special
Definition: csoftenPiK.f:55
! 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
logical, save modified
Definition: csoftenPiK.f:102
logical, save usexincms
Definition: csoftenPiK.f:90
max ptcl codes in the kkaon
Definition: Zcode.h:2
subroutine cibst1(init, p1, p2, po)
Definition: cibst1.f:29
subroutine cutptcl(proj)
Definition: cutptcl.f:2
subroutine cgeqm(p1, p2, q, icon)
Definition: cgeqm.f:2
max ptcl codes in the kseethru ! subcode integer regptcl
Definition: Zcode.h:2
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
*Zfirst p fm *Zfirst p Zfirst p code
Definition: ZavoidUnionMap.h:1
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code knuc
Definition: cblkHeavy.h:7
*Zfirst p fm *Zfirst p Zfirst p Zfirst p *Zfirst p charge
Definition: ZavoidUnionMap.h:1
subroutine csoftenfe(inci, fwbwin, a, nin, nout)
Definition: csoftenPiK.f:563
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
subroutine cmkptc(code, subcode, charge, p)
Definition: cmkptc.f:15
max ptcl codes in the keta
Definition: Zcode.h:2
Definition: Zptcl.h:75
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.h:1
max ptcl codes in the kpion
Definition: Zcode.h:2
real(8), save e0lab
Definition: csoftenPiK.f:103
subroutine cyeta(p, y, eta)
Definition: cyeta.f:5