Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pyrvgw.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pyrvgw.f
1 
2 C*********************************************************************
3 
4 C...PYRVGW
5 C...Generalized Matrix Element for R-Violating 3-body widths.
6 C...P. Z. Skands
7  SUBROUTINE pyrvgw(KFIN,ID1,ID2,ID3,XLAM)
8 
9  IMPLICIT DOUBLE PRECISION (a-h,o-z)
10  IMPLICIT integer(i-n)
11  parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
12  &kexcit=4000000,kdimen=5000000)
13  parameter(eps=1d-4)
14  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
15  common/pyrvnv/ab(2,16,2),rms(0:3),res(6,2),intres(6,3),idr,idr2
16  & ,dcmass,kfr(3)
17  common/pyssmt/zmix(4,4),umix(2,2),vmix(2,2),smz(4),smw(2),
18  & sfmix(16,4),zmixi(4,4),umixi(2,2),vmixi(2,2)
19  DOUBLE PRECISION xlim(3,3)
20  INTEGER kc(0:3), pycomp
21  LOGICAL dcmass, dcheck(6)
22  SAVE /pydat2/,/pyrvnv/,/pyssmt/
23 
24  xlam = 0d0
25 
26  kc(0) = pycomp(kfin)
27  kc(1) = pycomp(id1)
28  kc(2) = pycomp(id2)
29  kc(3) = pycomp(id3)
30  rms(0) = pmas(kc(0),1)
31  rms(1) = pymrun(id1,pmas(kc(1),1)**2)
32  rms(2) = pymrun(id2,pmas(kc(2),1)**2)
33  rms(3) = pymrun(id3,pmas(kc(3),1)**2)
34 C...INITIALIZE OUTER INTEGRATION LIMITS AND KINEMATICS CHECK
35  xlim(1,1)=(rms(1)+rms(2))**2
36  xlim(1,2)=(rms(0)-rms(3))**2
37  xlim(1,3)=xlim(1,2)-xlim(1,1)
38  xlim(2,1)=(rms(2)+rms(3))**2
39  xlim(2,2)=(rms(0)-rms(1))**2
40  xlim(2,3)=xlim(2,2)-xlim(2,1)
41  xlim(3,1)=(rms(1)+rms(3))**2
42  xlim(3,2)=(rms(0)-rms(2))**2
43  xlim(3,3)=xlim(3,2)-xlim(3,1)
44 C...Check Phase Space
45  IF (xlim(1,3).LT.0d0.OR.xlim(2,3).LT.0d0.OR.xlim(3,3).LT.0d0) THEN
46  RETURN
47  ENDIF
48 
49 C...INITIALIZE RESONANCE INFORMATION
50  DO 110 jres = 1,3
51  DO 100 imass = 1,2
52  ires = 2*(jres-1)+imass
53  intres(ires,1) = 0
54  dcheck(ires) =.false.
55 C...NO RIGHT-HANDED NEUTRINOS
56  IF (((imass.EQ.2).AND.((iabs(kfr(jres)).EQ.12).or
57  & .(iabs(kfr(jres)).EQ.14).OR.(iabs(kfr(jres)).EQ.16))).or
58  & .kfr(jres).EQ.0) goto 100
59  res(ires,1) = pmas(pycomp(imass*ksusy1+iabs(kfr(jres))),1)
60  res(ires,2) = pmas(pycomp(imass*ksusy1+iabs(kfr(jres))),2)
61  intres(ires,1) = iabs(kfr(jres))
62  intres(ires,2) = imass
63  IF (kfr(jres).LT.0) intres(ires,3) = 1
64  IF (kfr(jres).GT.0) intres(ires,3) = 0
65  100 CONTINUE
66  110 CONTINUE
67 
68 C...SUM OVER DIAGRAMS AND INTEGRATE OVER PHASE SPACE
69 
70 C...RESONANCE CONTRIBUTIONS
71 C...(Only sum contributions where the resonance is off shell).
72 C...Store whether diagram on/off in DCHECK.
73 C...LOOP OVER MASS STATES
74  DO 120 j=1,2
75  idr=j
76  tmix = sfmix(intres(idr,1),2*j+intres(idr,3)-1)**2
77  IF ((rms(0).LT.(rms(1)+res(idr,1)).OR.(res(idr,1).LT.(rms(2)
78  & +rms(3)))).AND.tmix.GT.eps.AND.intres(idr,1).NE.0) THEN
79  dcheck(idr) =.true.
80  xlam = xlam + tmix * pyrvi1(2,3,1)
81  ENDIF
82 
83  idr=j+2
84  tmix = sfmix(intres(idr,1),2*j+intres(idr,3)-1)**2
85  IF ((rms(0).LT.(rms(2)+res(idr,1)).OR.(res(idr,1).LT.(rms(1)
86  & +rms(3)))).AND.tmix.GT.eps.AND.intres(idr,1).NE.0) THEN
87  dcheck(idr) =.true.
88  xlam = xlam + tmix * pyrvi1(1,3,2)
89  ENDIF
90 
91  idr=j+4
92  tmix = sfmix(intres(idr,1),2*j+intres(idr,3)-1)**2
93  IF ((rms(0).LT.(rms(3)+res(idr,1)).OR.(res(idr,1).LT.(rms(1)
94  & +rms(2)))).AND.tmix.GT.eps.AND.intres(idr,1).NE.0) THEN
95  dcheck(idr) =.true.
96  xlam = xlam + tmix * pyrvi1(1,2,3)
97  ENDIF
98  120 CONTINUE
99 C... L-R INTERFERENCES
100 C... (Only add contributions where both contributing diagrams
101 C... are non-resonant).
102  idr=1
103  IF (dcheck(1).AND.dcheck(2)) THEN
104 C...Bug corrected 11/12 2001. Skands.
105  xlam = xlam + 2d0 * pyrvi2(2,3,1)
106  & * sfmix(intres(1,1),2+intres(1,3)-1)
107  & * sfmix(intres(2,1),4+intres(2,3)-1)
108  ENDIF
109 
110  idr=3
111  IF (dcheck(3).AND.dcheck(4)) THEN
112  xlam = xlam + 2d0 * pyrvi2(1,3,2)
113  & * sfmix(intres(3,1),2+intres(3,3)-1)
114  & * sfmix(intres(4,1),4+intres(4,3)-1)
115  ENDIF
116 
117  idr=5
118  IF (dcheck(5).AND.dcheck(6)) THEN
119  xlam = xlam + 2d0 * pyrvi2(1,2,3)
120  & * sfmix(intres(5,1),2+intres(5,3)-1)
121  & * sfmix(intres(6,1),4+intres(6,3)-1)
122  ENDIF
123 C... TRUE INTERFERENCES
124 C... (Only add contributions where both contributing diagrams
125 C... are non-resonant).
126  pref=-2d0
127  IF ((kfin-ksusy1).EQ.24.OR.(kfin-ksusy1).EQ.37) pref=2d0
128  DO 140 ikr1 = 1,2
129  DO 130 ikr2 = 1,2
130  idr = ikr1+2
131  idr2 = ikr2
132  IF (dcheck(idr).AND.dcheck(idr2)) THEN
133  xlam = xlam + pref*pyrvi3(1,3,2) *
134  & sfmix(intres(idr,1),2*ikr1+intres(idr,3)-1)
135  & *sfmix(intres(idr2,1),2*ikr2+intres(idr2,3)-1)
136  ENDIF
137 
138  idr = ikr1+4
139  idr2 = ikr2
140  IF (dcheck(idr).AND.dcheck(idr2)) THEN
141  xlam = xlam + pref*pyrvi3(1,2,3) *
142  & sfmix(intres(idr,1),2*ikr1+intres(idr,3)-1)
143  & *sfmix(intres(idr2,1),2*ikr2+intres(idr2,3)-1)
144  ENDIF
145 
146  idr = ikr1+4
147  idr2 = ikr2+2
148  IF (dcheck(idr).AND.dcheck(idr2)) THEN
149  xlam = xlam + pref*pyrvi3(2,1,3) *
150  & sfmix(intres(idr,1),2*ikr1+intres(idr,3)-1)
151  & *sfmix(intres(idr2,1),2*ikr2+intres(idr2,3)-1)
152  ENDIF
153  130 CONTINUE
154  140 CONTINUE
155 
156  RETURN
157  END