COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cDsDecay.f
Go to the documentation of this file.
1  subroutine cdsdecay(pj, a, np)
2 ! Ds+/- decay:
3 ! we consider decays with BR> 1% and with neu.
4 ! no polarization is considered.
5 ! Ds+ --> τ + neutau 5.48
6 ! φ + e+ + neue 2.39 %
7 ! η + e+ + neue+ η' + e+ + neue 2. % this included
8 ! in next
9 ! η + e+ + neue 2.29 + 2.79 = 5.08 %
10 
11 ! (PDG not understandable; e+ semileptonic means e+ neue+pi?)
12  implicit none
13 #include "Zptcl.h"
14 #include "Zcode.h"
15 
16 
17  type(ptcl),intent(in):: pj ! input. Ds
18  type(ptcl),intent(out):: a(*) ! output. produced ptcls
19  integer,intent(out):: np ! output. no. of ptcls produced
20 !
21  integer,parameter:: nbr=4 ! # of branches
22 ! br: ratio (%), the last one may be any. total is adjuested
23 ! to be 100 %
24  real(8),save::br(nbr)=(/5.48, 2.39, 5.08, 0./)
25  real(8),save:: cbr(nbr)
26  logical,save:: first = .true.
27  integer:: i, icon, charge, subcode
28  real(8):: u
29  real(8),save:: w=0.
30  integer,parameter:: jw=0
31 
32  integer,intent(out):: brinfo
33 
34  integer,save:: branch
35 
36  if( first ) then
37  cbr(1) = br(1)
38  do i = 2, nbr
39  cbr(i) = cbr(i-1) + br(i)
40  enddo
41  cbr(:) = cbr(:)/100.
42  cbr(nbr) = 1.0
43  first = .false.
44  endif
45 
46  if( pj%charge == 0 ) then
47  write(0,*) 'cDsDecay is called for charge 0 '
48  write(0,*)' code, subcode,charge=',
49  * pj%code, pj%subcode, pj%charge
50  stop
51  endif
52 
53  call rndc(u)
54 ! electron(or tau) charge
55  charge = pj%charge
56 ! neu subcode
57  subcode = -charge
58  if( u < cbr(1) ) then
59  ! 5.48 %
60  ! neutau
61  call cmkptc(kneutau, subcode, 0, a(1))
62  ! tau
63  call cmkptc(ktau, charge, charge, a(2))
64  np = 2
65  branch= 1
66 
67  elseif( u < cbr(2) ) then
68 ! φ + e+ + neue 2.39 %
69 ! neue or newebar
70  call cmkptc( kneue, subcode, 0, a(1) )
71 ! e+ or e-
72  call cmkptc( kelec, charge, charge, a(2) )
73 ! phi
74  call cmkptc( kphi, 0, 0, a(3) )
75  np = 3
76  branch = 2
77 
78  elseif( u< cbr(3)) then
79 ! η + e+ + neue 2.29 + 2.79 = 5.08 %
80 ! neue
81  call cmkptc( kneue, subcode, 0, a(1) )
82 ! e+
83  call cmkptc(kelec, charge, charge, a(2) )
84 ! eta
85  call cmkptc(keta, 0, 0, a(3))
86  np = 3
87  branch = 3
88 
89  else
90 ! neglect branches with no neu
91  np = 0
92  branch = 4
93 
94  endif
95  if( np > 0 ) then
96  if( np == 2 ) then
97  call c2bdcy( pj, a(1), a(2) )
98  ! already boosted
99  else
100  call cnbdcy(np, pj%mass, a, jw, w, icon)
101  if( icon /= 0 ) then
102  write(0,*) ' cDsDecay--> cnbdcy--> icon=',icon
103  write(0,*) ' mass =', pj%mass, ' np=', np,
104  * ' branch =', branch
105  write(0,*) ' a(1:np)%mass=', a(1:np)%mass
106  stop
107  endif
108  ! boost to pj system
109  do i = 1, np
110  call cibst1(i, pj, a(i), a(i))
111  enddo
112  endif
113  endif
114  return
115 !
116  entry cdsdecaybr(brinfo)
117  brinfo = branch
118  end
119 
120 
121 !
subroutine cdsdecay(pj, a, np)
Definition: cDsDecay.f:2
max ptcl codes in the kphi
Definition: Zcode.h:2
subroutine cibst1(init, p1, p2, po)
Definition: cibst1.f:29
max ptcl codes in the kelec
Definition: Zcode.h:2
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
Definition: cblkElemag.h:7
max ptcl codes in the kneue
Definition: Zcode.h:2
max ptcl codes in the kneutau
Definition: Zcode.h:2
subroutine cnbdcy(n, ecm, p, jw, w, icon)
Definition: cnbdcy.f:48
subroutine rndc(u)
Definition: rnd.f:91
subroutine c2bdcy(p, p1, p2)
Definition: c2bdcy.f:44
max ptcl codes in the ktau
Definition: Zcode.h:2
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