]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | |
2 | FUNCTION PHINT(IDUM) | |
3 | C.---------------------------------------------------------------------- | |
4 | C. | |
5 | C. PHINT: PHotos INTerference | |
6 | C. | |
7 | C. Purpose: Calculates interference between emission of photons from | |
8 | C. different possible chaged daughters stored in | |
9 | C. the HEP common /PHOEVT/. | |
10 | C. | |
11 | C. Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/ | |
12 | C. | |
13 | C. | |
14 | C. Output Parameters: | |
15 | C. | |
16 | C. | |
17 | C. Author(s): Z. Was, Created at: 10/08/93 | |
18 | C. Last Update: | |
19 | C. | |
20 | C.---------------------------------------------------------------------- | |
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 | |
42 | C | |
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 | |
50 | C check if there is a photon | |
51 | IFINT= NPHO.GT.IDENT | |
52 | C check if it is two body + gammas reaction | |
53 | IFINT= IFINT.AND.(IDENT-JDAPHO(1,1)).EQ.1 | |
54 | C check if two body was particle antiparticle (we improve on it ! | |
55 | C IFINT= IFINT.AND.IDPHO(JDAPHO(1,1)).EQ.-IDPHO(IDENT) | |
56 | C check if particles were charged | |
57 | IFINT= IFINT.AND.abs(PHOCHA(IDPHO(IDENT))).GT.0.01D0 | |
58 | C check if they have both charge | |
59 | IFINT= IFINT.AND. | |
60 | $ abs(PHOCHA(IDPHO(JDAPHO(1,1)))).gt.0.01D0 | |
61 | C 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) | |
74 | C | |
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) | |
85 | C | |
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 |