]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/PHOTOS/phint.F
Modified:
[u/mrichter/AliRoot.git] / TEvtGen / PHOTOS / phint.F
CommitLineData
da0e9ce3 1
2 FUNCTION PHINT(IDUM)
3C.----------------------------------------------------------------------
4C.
5C. PHINT: PHotos INTerference
6C.
7C. Purpose: Calculates interference between emission of photons from
8C. different possible chaged daughters stored in
9C. the HEP common /PHOEVT/.
10C.
11C. Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/
12C.
13C.
14C. Output Parameters:
15C.
16C.
17C. Author(s): Z. Was, Created at: 10/08/93
18C. Last Update:
19C.
20C.----------------------------------------------------------------------
21
22 IMPLICIT NONE
23 REAL*8 PHINT,phint1
24 REAL*8 PHOCHA
25 INTEGER IDUM
26 INTEGER NMXPHO
27 PARAMETER (NMXPHO=10000)
28 INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO
29 REAL*8 PPHO,VPHO
30 COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO),
31 &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO)
32 DOUBLE PRECISION MCHSQR,MNESQR
33 REAL*8 PNEUTR
34 COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5)
35 DOUBLE PRECISION COSTHG,SINTHG
36 REAL*8 XPHMAX,XPHOTO
37 COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG
38 REAL*8 MPASQR,XX,BETA,PQ1(4),PQ2(4),PPHOT(4)
39 REAL*8 SS,PP2,PP,E1,E2,Q1,Q2,COSTHE
40 LOGICAL IFINT
41 INTEGER K,IDENT
42C
43 DO K=JDAPHO(2,1),JDAPHO(1,1),-1
44 IF(IDPHO(K).NE.22) THEN
45 IDENT=K
46 GOTO 20
47 ENDIF
48 ENDDO
49 20 CONTINUE
50C check if there is a photon
51 IFINT= NPHO.GT.IDENT
52C check if it is two body + gammas reaction
53 IFINT= IFINT.AND.(IDENT-JDAPHO(1,1)).EQ.1
54C check if two body was particle antiparticle (we improve on it !
55C IFINT= IFINT.AND.IDPHO(JDAPHO(1,1)).EQ.-IDPHO(IDENT)
56C check if particles were charged
57 IFINT= IFINT.AND.abs(PHOCHA(IDPHO(IDENT))).GT.0.01D0
58C check if they have both charge
59 IFINT= IFINT.AND.
60 $ abs(PHOCHA(IDPHO(JDAPHO(1,1)))).gt.0.01D0
61C calculates interference weight contribution
62 IF(IFINT) THEN
63 MPASQR = PPHO(5,1)**2
64 XX=4.D0*MCHSQR/MPASQR*(1.-XPHOTO)/(1.-XPHOTO+(MCHSQR-MNESQR)/
65 & MPASQR)**2
66 BETA=SQRT(1.D0-XX)
67 PHINT = 2D0/(1D0+COSTHG**2*BETA**2)
68 SS =MPASQR*(1.D0-XPHOTO)
69 PP2=((SS-MCHSQR-MNESQR)**2-4*MCHSQR*MNESQR)/SS/4
70 PP =SQRT(PP2)
71 E1 =SQRT(PP2+MCHSQR)
72 E2 =SQRT(PP2+MNESQR)
73 PHINT= (E1+E2)**2/((E2+COSTHG*PP)**2+(E1-COSTHG*PP)**2)
74C
75 q1=PHOCHA(IDPHO(JDAPHO(1,1)))
76 q2=PHOCHA(IDPHO(IDENT))
77 do k=1,4
78 pq1(k)=ppho(k,JDAPHO(1,1))
79 pq2(k)=ppho(k,JDAPHO(1,1)+1)
80 pphot(k)=ppho(k,npho)
81 enddo
82 costhe=(pphot(1)*pq1(1)+pphot(2)*pq1(2)+pphot(3)*pq1(3))
83 costhe=costhe/sqrt(pq1(1)**2+pq1(2)**2+pq1(3)**2)
84 costhe=costhe/sqrt(pphot(1)**2+pphot(2)**2+pphot(3)**2)
85C
86! --- this IF checks whether JDAPHO(1,1) was MCH or MNE.
87! --- COSTHG angle (and in-generation variables) may be better choice
88! --- than costhe. note that in the formulae below amplitudes were
89! --- multiplied by (E2+COSTHG*PP)*(E1-COSTHG*PP).
90 IF (costhg*costhe.GT.0) then
91
92 PHINT= (q1*(E2+COSTHG*PP)-q2*(E1-COSTHG*PP))**2
93 & /(q1**2*(E2+COSTHG*PP)**2+q2**2*(E1-COSTHG*PP)**2)
94 ELSE
95
96 PHINT= (q1*(E1-COSTHG*PP)-q2*(E2+COSTHG*PP))**2
97 & /(q1**2*(E1-COSTHG*PP)**2+q2**2*(E2+COSTHG*PP)**2)
98 ENDIF
99 ELSE
100 PHINT = 1D0
101 ENDIF
102 phint1=1
103 END