Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pytecm.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pytecm.f
1 
2 C*********************************************************************
3 
4 C...PYTECM
5 C...Finds the s-hat dependent eigenvalues of the inverse propagator
6 C...matrix for gamma, Z, techni-rho, and techni-omega to optimize the
7 C...phase space generation.
8 
9  SUBROUTINE pytecm(S1,S2)
10 
11 C...Double precision and integer declarations.
12  IMPLICIT DOUBLE PRECISION(a-h, o-z)
13  IMPLICIT INTEGER(i-n)
14  INTEGER pyk,pychge,pycomp
15 C...Parameter statement to help give large particle numbers.
16  parameter(ksusy1=1000000,ksusy2=2000000,ktechn=3000000,
17  &kexcit=4000000,kdimen=5000000)
18 C...Commonblocks.
19  common/pydat1/mstu(200),paru(200),mstj(200),parj(200)
20  common/pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
21  common/pypars/mstp(200),parp(200),msti(200),pari(200)
22  common/pytcsm/itcm(0:99),rtcm(0:99)
23  SAVE /pydat1/,/pydat2/,/pypars/,/pytcsm/
24 
25 C...Local variables.
26  DOUBLE PRECISION ar(4,4),wr(4),zr(4,4),zi(4,4),work(12,12),
27  &at(4,4),wi(4),fv1(4),fv2(4),fv3(4),sh,aem,tanw,ct2w,qupd,alprht,
28  &far,fao,fzr,fzo,shr,r1,r2,s1,s2,wdtp(0:400),wdte(0:400,0:5)
29  INTEGER i,j,ierr
30 
31  sh=pmas(pycomp(ktechn+113),1)**2
32  aem=pyalem(sh)
33 
34  tanw=sqrt(paru(102)/(1d0-paru(102)))
35  ct2w=(1d0-2d0*paru(102))/(2d0*paru(102)/tanw)
36  qupd=2d0*rtcm(2)-1d0
37 
38  alprht=2.91d0*(3d0/dble(itcm(1)))
39  far=sqrt(aem/alprht)
40  fao=far*qupd
41  fzr=far*ct2w
42  fzo=-fao*tanw
43 
44  ar(1,1) = sh
45  ar(2,2) = sh-pmas(23,1)**2
46  ar(3,3) = sh-pmas(pycomp(ktechn+113),1)**2
47  ar(4,4) = sh-pmas(pycomp(ktechn+223),1)**2
48  ar(1,2) = 0d0
49  ar(2,1) = 0d0
50  ar(1,3) = -sh*far
51  ar(3,1) = ar(1,3)
52  ar(1,4) = -sh*fao
53  ar(4,1) = ar(1,4)
54  ar(2,3) = -sh*fzr
55  ar(3,2) = ar(2,3)
56  ar(2,4) = -sh*fzo
57  ar(4,2) = ar(2,4)
58  ar(3,4) = 0d0
59  ar(4,3) = 0d0
60 CCCCCCCC
61  DO 110 i=1,4
62  DO 100 j=1,4
63  at(i,j)=0d0
64  100 CONTINUE
65  110 CONTINUE
66  shr=sqrt(sh)
67  CALL pywidt(23,sh,wdtp,wdte)
68  at(2,2) = wdtp(0)*shr
69  CALL pywidt(ktechn+113,sh,wdtp,wdte)
70  at(3,3) = wdtp(0)*shr
71  CALL pywidt(ktechn+223,sh,wdtp,wdte)
72  at(4,4) = wdtp(0)*shr
73 CCCC
74  CALL pyeicg(4,4,ar,at,wr,wi,0,zr,zi,fv1,fv2,fv3,ierr)
75  DO 120 i=1,4
76  wi(i)=sqrt(abs(sh-wr(i)))
77  wr(i)=abs(wr(i))
78  120 CONTINUE
79  r1=min(wr(1),wr(2),wr(3),wr(4))
80  r2=1d20
81  s1=0d0
82  s2=0d0
83  DO 130 i=1,4
84  IF(abs(wr(i)-r1).LT.1d-6) THEN
85  s1=wi(i)
86  goto 130
87  ENDIF
88  IF(wr(i).LE.r2) THEN
89  r2=wr(i)
90  s2=wi(i)
91  ENDIF
92  130 CONTINUE
93  s1=s1**2
94  s2=s2**2
95  RETURN
96  END