5 * Revision 1.1.1.1 1995/10/24 10:21:23 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.21 by S.Giani
12 SUBROUTINE GDECA3(XM0,XM1,XM2,XM3,PCM)
14 C. ******************************************************************
16 C. * This routine simulates three-body decays in center-of-mass. *
17 C. * Written by Jurgen Schukraft and Vincent Hedberg for R807. *
18 C. * Adapted for Geant3 by Sverker Johansson (Aug-1987). *
19 C. * (Quite extensive modifications; comments etc. are not always *
20 C. * consistent with the code anymore. ) *
22 C. * As it is, the decay is done according to pure phase-space. *
23 C. * There is code in the routine to properly treat K decays (V-A)*
24 C. * but it is not used. (Requires an additional parameter *
25 C. * in the call, to tell which type of decay.) *
27 C. * ==>Called by : GDECAY *
28 C. * Author S. Johansson ********* *
30 C. ******************************************************************
32 ***************************************************************
33 ******* original name : *******************
34 ******SUBROUTINE D E C 3 B (ID,IP,K1,K2,K3)*******************
35 ***************************************************************
36 C--------------------------------------------------------
37 C O B S O L E T E C O M M E N T ! ! !
38 C THIS ROUTINE SIMULATES THE THREE-BODY DECAYS OF:
39 C--------------------------------------------------------
40 C ID = 1 : ETA INTO PI0 + PI0 + PI0 PHASE SPACE
41 C ID = 2 : OMEGA INTO PI0 + PI- + PI+ - " -
42 C ID = 3 : ETAPR INTO PI0 + PI0 + ETA - " -
43 C ID = 4 : K+/- INTO E+/- + PI0 + NU (V-A)
44 C ID = 5 : K0L INTO E+/- + PI-/+ + NU - " -
45 C ID = 6 : D INTO E + K + NU PHASE SPACE
46 C ID = 7 : D INTO E + K* + NU - " -
47 ** (** or any other decay; input is now masses
48 ** rather than process ID S.J.
49 ** But the ID parameter could someday be useful
50 ** since it controls the non-phase-space code. ***)
51 C--------------------------------------------------------
52 C THE OUTPUT COMMON BLOCK /LAB/ PLAB(20,J) IS FILLED
53 * (** Not a common block anymore. S.J. **)
54 C ACCORDING TO THE ORDER OF THE SECONDARY PARTICLES
55 C AS THEY APPEARE IN THE COMMENTS ABOVE. FOR EXAMPLE,
56 C IN THE CASE OF ID=6 (D-MESON DECAY)
57 C J = K1 IN PLAB(20,J) CORRESPONDS TO ELECTRON,
58 C J = K2 -- " -- " -- " -- " -- K-MESON,
59 C J = K3 -- " -- " -- " -- " -- NEUTRINO
60 C--------------------------------------------------------
66 ****************************************************
67 * Translation from new to old input parameters :
69 ****************************************************
78 PI2 = 2. * 3.141592654
79 ***********************
81 C--------------------------------------------------------
82 C SIMULATION OF SECONDARY PARTICLE MOMENTA
83 C IN THE REST FRAME OF PARENT PARTICLE
84 C--------------------------------------------------------
85 T0=HM(4,ID)-HM(1,ID)-HM(2,ID)-HM(3,ID)
94 PA1=SQRT(TE**2+2.*HM(1,ID)*TE)
95 PA2=SQRT(TM**2+2.*HM(2,ID)*TM)
96 PA3=SQRT(TN**2+2.*HM(3,ID)*TN)
97 C--------------------------------------------------------
98 C CHECK OF THE MOMENTUM CONSERVATION
99 C--------------------------------------------------------
103 IF(PMAX.GE.SP-PMAX) GOTO 10
107 C--------------------------------------------------------
108 C ACCOUNTING FOR MATRIX ELEMENT (FOR ID=4 AND 5)
109 * (** Calculates correct (V-A) decay for kaons. **)
110 * (** Now inactive. Change ID to activate it. (S.J) **)
111 C--------------------------------------------------------
112 IF(ID.NE.4.AND.ID.NE.5) GOTO 20
113 EEM=((HM(4,ID)-HM(2,ID))**2+HM(1,ID)**2-
114 * HM(3,ID)**2)/(2.*(HM(4,ID)-HM(2,ID)))
115 HMMAX=EEM*(HM(4,ID)-HM(2,ID)-EEM)+
116 * 0.5*(EEM**2-HM(1,ID)**2)
117 HMA=P(4,K1)*P(4,K3)+0.25*(PA1**2+PA3**2-PA2**2)
120 IF(HMA.LT.GG*HMMAX) GOTO 10
121 C--------------------------------------------------------
122 C CALCULATIONS OF MOMENTA
123 C--------------------------------------------------------
127 STE=SQRT(ABS(1.-CTE**2))
134 CTEN=(PA2**2-PA1**2-PA3**2)/(2.*PA1*PA3)
135 STEN=SQRT(ABS(1.-CTEN**2))
139 P(1,K3)=PA3*(STEN*CFEN*CTE*CFE-STEN*SFEN*SFE+CTEN*STE*CFE)
140 P(2,K3)=PA3*(STEN*CFEN*CTE*SFE+STEN*SFEN*CFE+CTEN*STE*SFE)
141 P(3,K3)=PA3*(-STEN*CFEN*STE+CTEN*CTE)
142 P(1,K2)=-P(1,K1)-P(1,K3)
143 P(2,K2)=-P(2,K1)-P(2,K3)
144 P(3,K2)=-P(3,K1)-P(3,K3)
145 C-------------------------------------------------------
146 *** Re-translation from old to new output arrays : ***
148 ***--------------------------------------------------***