00001 #if defined (ALEPH)
00002 C=============================================================
00003 #endif
00004 SUBROUTINE JAKER(JAK)
00005 C *********************
00006 C
00007 C **********************************************************************
00008 C *
00009 #if defined (ALEPH)
00010 C *********TAUOLA LIBRARY: VERSION 2.5 ******** *
00011 C **************DECEMBER 1993****************** *
00012 #else
00013 C *********TAUOLA LIBRARY: VERSION 2.6 ******** *
00014 C **************August 1995****************** *
00015 #endif
00016 C ** AUTHORS: S.JADACH, Z.WAS ***** *
00017 C ** R. DECKER, M. JEZABEK, J.H.KUEHN, ***** *
00018 C ********AVAILABLE FROM: WASM AT CERNVM ****** *
00019 C *******PUBLISHED IN COMP. PHYS. COMM.******** *
00020 C *** PREPRINT CERN-TH-5856 SEPTEMBER 1990 **** *
00021 C *** PREPRINT CERN-TH-6195 OCTOBER 1991 **** *
00022 C *** PREPRINT CERN-TH-6793 NOVEMBER 1992 **** *
00023 C **********************************************************************
00024 C
00025 C ----------------------------------------------------------------------
00026 c SUBROUTINE JAKER,
00027 C CHOOSES DECAY MODE ACCORDING TO LIST OF BRANCHING RATIOS
00028 C JAK=1 ELECTRON MODE
00029 C JAK=2 MUON MODE
00030 C JAK=3 PION MODE
00031 C JAK=4 RHO MODE
00032 C JAK=5 A1 MODE
00033 C JAK=6 K MODE
00034 C JAK=7 K* MODE
00035 #if defined (ALEPH)
00036 C JAK=8-13 npi modes
00037 C JAK=14-19 KKpi & Kpipi modes
00038 C JAK=20-21 eta pi pi; gamma pi pi modes
00039 #else
00040 C JAK=8 nPI MODE
00041 #endif
00042 C
00043 C called by : DEXAY
00044 C ----------------------------------------------------------------------
00045 COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN
00046 #if defined (ALEPH)
00047 #else
00048 C REAL CUMUL(20)
00049 #endif
00050 REAL CUMUL(30),RRR(1)
00051 C
00052 IF(NCHAN.LE.0.OR.NCHAN.GT.30) GOTO 902
00053 CALL RANMAR(RRR,1)
00054 SUM=0
00055 DO 20 I=1,NCHAN
00056 SUM=SUM+GAMPRT(I)
00057 20 CUMUL(I)=SUM
00058 DO 25 I=NCHAN,1,-1
00059 IF(RRR(1).LT.CUMUL(I)/CUMUL(NCHAN)) JI=I
00060 25 CONTINUE
00061 JAK=JLIST(JI)
00062 RETURN
00063 902 PRINT 9020
00064 9020 FORMAT(' ----- JAKER: WRONG NCHAN')
00065 STOP
00066 END
00067 SUBROUTINE DEKAY(KTO,HX)
00068 C ***********************
00069 C THIS DEKAY IS IN SPIRIT OF THE 'DECAY' WHICH
00070 C WAS INCLUDED IN KORAL-B PROGRAM, COMP. PHYS. COMMUN.
00071 C VOL. 36 (1985) 191, SEE COMMENTS ON GENERAL PHILOSOPHY THERE.
00072 C KTO=0 INITIALISATION (OBLIGATORY)
00073 C KTO=1,11 DENOTES TAU+ AND KTO=2,12 TAU-
00074 C DEKAY(1,H) AND DEKAY(2,H) IS CALLED INTERNALLY BY MC GENERATOR.
00075 C H DENOTES THE POLARIMETRIC VECTOR, USED BY THE HOST PROGRAM FOR
00076 C CALCULATION OF THE SPIN WEIGHT.
00077 C USER MAY OPTIONALLY CALL DEKAY(11,H) DEKAY(12,H) IN ORDER
00078 C TO TRANSFORM DECAY PRODUCTS TO CMS AND WRITE LUND RECORD IN /LUJETS/.
00079 C KTO=100, PRINT FINAL REPORT (OPTIONAL).
00080 C DECAY MODES:
00081 C JAK=1 ELECTRON DECAY
00082 C JAK=2 MU DECAY
00083 C JAK=3 PI DECAY
00084 C JAK=4 RHO DECAY
00085 C JAK=5 A1 DECAY
00086 C JAK=6 K DECAY
00087 C JAK=7 K* DECAY
00088 #if defined (ALEPH)
00089 C JAK= 8-13 npi modes
00090 C JAK=14-19 KKpi & Kpipi modes
00091 C JAK=20-21 eta pi pi; gamma pi pi modes
00092 C JAK=0 INCLUSIVE: JAK=1-21
00093 #else
00094 C JAK=8 NPI DECAY
00095 C JAK=0 INCLUSIVE: JAK=1,2,3,4,5,6,7,8
00096 #endif
00097 REAL H(4)
00098 REAL*8 HX(4)
00099 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00100 #if defined (ALEPH)
00101 COMMON / IDFC / IDFF
00102 #else
00103 COMMON / IDFC / IDF
00104 #endif
00105 COMMON /TAUPOS/ NP1,NP2
00106 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00107 REAL*4 GAMPMC ,GAMPER
00108 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00109 #if defined (ALEPH)
00110 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00111 #else
00112 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00113 #endif
00114 & ,NAMES
00115 CHARACTER NAMES(NMODE)*31
00116 COMMON / INOUT / INUT,IOUT
00117 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4),HDUM(4)
00118 REAL PDUMX(4,9)
00119 DATA IWARM/0/
00120 KTOM=KTO
00121 #if defined (ALEPH)
00122 IDF =IDFF
00123 #endif
00124 IF(KTO.EQ.-1) THEN
00125 C ==================
00126 C INITIALISATION OR REINITIALISATION
00127 C first or second tau positions in HEPEVT as in KORALB/Z
00128 NP1=3
00129 NP2=4
00130 KTOM=1
00131 IF (IWARM.EQ.1) X=5/(IWARM-1)
00132 IWARM=1
00133 WRITE(IOUT,7001) JAK1,JAK2
00134 NEVTOT=0
00135 NEV1=0
00136 NEV2=0
00137 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00138 CALL DADMEL(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00139 CALL DADMMU(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00140 CALL DADMPI(-1,IDUM,PDUM,PDUM1,PDUM2)
00141 CALL DADMRO(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00142 CALL DADMAA(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM)
00143 CALL DADMKK(-1,IDUM,PDUM,PDUM1,PDUM2)
00144 CALL DADMKS(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM)
00145 CALL DADNEW(-1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM)
00146 ENDIF
00147 DO 21 I=1,30
00148 NEVDEC(I)=0
00149 GAMPMC(I)=0
00150 21 GAMPER(I)=0
00151 ELSEIF(KTO.EQ.1) THEN
00152 C =====================
00153 C DECAY OF TAU+ IN THE TAU REST FRAME
00154 NEVTOT=NEVTOT+1
00155 IF(IWARM.EQ.0) GOTO 902
00156 ISGN= IDF/IABS(IDF)
00157 #if defined (CePeCe)
00158 #elif defined (ALEPH)
00159 #else
00160 C AJWMOD to change BRs depending on sign:
00161 CALL TAURDF(KTO)
00162 #endif
00163 CALL DEKAY1(0,H,ISGN)
00164 ELSEIF(KTO.EQ.2) THEN
00165 C =================================
00166 C DECAY OF TAU- IN THE TAU REST FRAME
00167 NEVTOT=NEVTOT+1
00168 IF(IWARM.EQ.0) GOTO 902
00169 ISGN=-IDF/IABS(IDF)
00170 #if defined (CePeCe)
00171 #elif defined (ALEPH)
00172 #else
00173 C AJWMOD to change BRs depending on sign:
00174 CALL TAURDF(KTO)
00175 #endif
00176 CALL DEKAY2(0,H,ISGN)
00177 ELSEIF(KTO.EQ.11) THEN
00178 C ======================
00179 C REST OF DECAY PROCEDURE FOR ACCEPTED TAU+ DECAY
00180 NEV1=NEV1+1
00181 ISGN= IDF/IABS(IDF)
00182 CALL DEKAY1(1,H,ISGN)
00183 ELSEIF(KTO.EQ.12) THEN
00184 C ======================
00185 C REST OF DECAY PROCEDURE FOR ACCEPTED TAU- DECAY
00186 NEV2=NEV2+1
00187 ISGN=-IDF/IABS(IDF)
00188 CALL DEKAY2(1,H,ISGN)
00189 ELSEIF(KTO.EQ.100) THEN
00190 C =======================
00191 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00192 CALL DADMEL( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00193 CALL DADMMU( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00194 CALL DADMPI( 1,IDUM,PDUM,PDUM1,PDUM2)
00195 CALL DADMRO( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00196 CALL DADMAA( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM)
00197 CALL DADMKK( 1,IDUM,PDUM,PDUM1,PDUM2)
00198 CALL DADMKS( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM)
00199 CALL DADNEW( 1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM)
00200 WRITE(IOUT,7010) NEV1,NEV2,NEVTOT
00201 WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7)
00202 WRITE(IOUT,7012)
00203 $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE)
00204 WRITE(IOUT,7013)
00205 ENDIF
00206 ELSE
00207 C ====
00208 GOTO 910
00209 ENDIF
00210 C =====
00211 DO 78 K=1,4
00212 78 HX(K)=H(K)
00213 RETURN
00214 7001 FORMAT(///1X,15(5H*****)
00215 #if defined (ALEPH)
00216 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.5 ******',9X,1H*,
00217 $ /,' *', 25X,'*DEC 1993; ALEPH fixes introd. dec 98 *',9X,1H*,
00218 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00219 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00220 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00221 $ /,' *', 25X,'Physics initialization by ALEPH collab ',9X,1H*,
00222 $ /,' *', 25X,'it is suggested to use this version ',9X,1H*,
00223 $ /,' *', 25X,' with the help of the collab. advice ',9X,1H*,
00224 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00225 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00226 #elif defined (CLEO)
00227 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00228 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00229 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00230 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00231 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00232 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00233 $ /,' *', 25X,' Physics initialization by CLEO collab ',9X,1H*,
00234 $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*,
00235 $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*,
00236 $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*,
00237 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00238 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00239 #else
00240 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00241 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00242 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00243 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00244 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00245 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00246 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00247 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00248 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00249 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00250 #endif
00251 $ /,' *', 25X,'****DEKAY ROUTINE: INITIALIZATION******',9X,1H*,
00252 $ /,' *',I20 ,5X,'JAK1 = DECAY MODE TAU+ ',9X,1H*,
00253 $ /,' *',I20 ,5X,'JAK2 = DECAY MODE TAU- ',9X,1H*,
00254 $ /,1X,15(5H*****)/)
00255 7010 FORMAT(///1X,15(5H*****)
00256 #if defined (ALEPH)
00257 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.5 ******',9X,1H*,
00258 $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*,
00259 #else
00260 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00261 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00262 #endif
00263 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00264 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00265 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00266 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00267 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00268 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00269 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00270 $ /,' *', 25X,'*****DEKAY ROUTINE: FINAL REPORT*******',9X,1H*,
00271 $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*,
00272 $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*,
00273 $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*,
00274 $ /,' *',' NOEVTS ',
00275 $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*)
00276 7011 FORMAT(1X,'*'
00277 $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H*
00278 $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H*
00279 $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H*
00280 $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H*
00281 $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H*
00282 $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H*
00283 $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*)
00284 7012 FORMAT(1X,'*'
00285 $ ,I10,2F12.7,A31 ,8X,1H*)
00286 7013 FORMAT(1X,'*'
00287 $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H*
00288 $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H*
00289 $ /,1X,15(5H*****)/)
00290 902 PRINT 9020
00291 9020 FORMAT(' ----- DEKAY: LACK OF INITIALISATION')
00292 STOP
00293 910 PRINT 9100
00294 9100 FORMAT(' ----- DEKAY: WRONG VALUE OF KTO ')
00295 STOP
00296 END
00297 SUBROUTINE DEKAY1(IMOD,HH,ISGN)
00298 C *******************************
00299 C THIS ROUTINE SIMULATES TAU+ DECAY
00300 #if defined (ALEPH)
00301 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00302 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00303 REAL*4 GAMPMC ,GAMPER
00304 COMMON / DECP4 / PP1(4),PP2(4),KFF1,KFF2
00305 REAL*4 PP1 ,PP2
00306 INTEGER KFF1,KFF2
00307 #else
00308 COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2
00309 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00310 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00311 REAL*4 GAMPMC ,GAMPER
00312 #endif
00313 REAL HH(4)
00314 REAL HV(4),PNU(4),PPI(4)
00315 REAL PWB(4),PMU(4),PNM(4)
00316 REAL PRHO(4),PIC(4),PIZ(4)
00317 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00318 REAL PKK(4),PKS(4)
00319 REAL PNPI(4,9)
00320 REAL PHOT(4)
00321 REAL PDUM(4)
00322 DATA NEV,NPRIN/0,10/
00323 KTO=1
00324 IF(JAK1.EQ.-1) RETURN
00325 IMD=IMOD
00326 IF(IMD.EQ.0) THEN
00327 C =================
00328 JAK=JAK1
00329 IF(JAK1.EQ.0) CALL JAKER(JAK)
00330 IF(JAK.EQ.1) THEN
00331 CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00332 ELSEIF(JAK.EQ.2) THEN
00333 CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00334 ELSEIF(JAK.EQ.3) THEN
00335 CALL DADMPI(0, ISGN,HV,PPI,PNU)
00336 ELSEIF(JAK.EQ.4) THEN
00337 CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ)
00338 ELSEIF(JAK.EQ.5) THEN
00339 CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00340 ELSEIF(JAK.EQ.6) THEN
00341 CALL DADMKK(0, ISGN,HV,PKK,PNU)
00342 ELSEIF(JAK.EQ.7) THEN
00343 CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST)
00344 ELSE
00345 CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7)
00346 ENDIF
00347 DO 33 I=1,3
00348 33 HH(I)=HV(I)
00349 HH(4)=1.0
00350
00351 ELSEIF(IMD.EQ.1) THEN
00352 C =====================
00353 NEV=NEV+1
00354 IF (JAK.LT.31) THEN
00355 NEVDEC(JAK)=NEVDEC(JAK)+1
00356 ENDIF
00357 DO 34 I=1,4
00358 34 PDUM(I)=.0
00359 IF(JAK.EQ.1) THEN
00360 CALL DWLUEL(1,ISGN,PNU,PWB,PMU,PNM)
00361 CALL DWRPH(KTOM,PHOT)
00362 DO 10 I=1,4
00363 10 PP1(I)=PMU(I)
00364
00365 ELSEIF(JAK.EQ.2) THEN
00366 CALL DWLUMU(1,ISGN,PNU,PWB,PMU,PNM)
00367 CALL DWRPH(KTOM,PHOT)
00368 DO 20 I=1,4
00369 20 PP1(I)=PMU(I)
00370
00371 ELSEIF(JAK.EQ.3) THEN
00372 CALL DWLUPI(1,ISGN,PPI,PNU)
00373 DO 30 I=1,4
00374 30 PP1(I)=PPI(I)
00375
00376 ELSEIF(JAK.EQ.4) THEN
00377 CALL DWLURO(1,ISGN,PNU,PRHO,PIC,PIZ)
00378 DO 40 I=1,4
00379 40 PP1(I)=PRHO(I)
00380
00381 ELSEIF(JAK.EQ.5) THEN
00382 CALL DWLUAA(1,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00383 DO 50 I=1,4
00384 50 PP1(I)=PAA(I)
00385 ELSEIF(JAK.EQ.6) THEN
00386 CALL DWLUKK(1,ISGN,PKK,PNU)
00387 DO 60 I=1,4
00388 60 PP1(I)=PKK(I)
00389 ELSEIF(JAK.EQ.7) THEN
00390 CALL DWLUKS(1,ISGN,PNU,PKS,PKK,PPI,JKST)
00391 DO 70 I=1,4
00392 70 PP1(I)=PKS(I)
00393 ELSE
00394 CAM MULTIPION DECAY
00395 CALL DWLNEW(1,ISGN,PNU,PWB,PNPI,JAK)
00396 DO 80 I=1,4
00397 80 PP1(I)=PWB(I)
00398 ENDIF
00399
00400 ENDIF
00401 C =====
00402 END
00403 SUBROUTINE DEKAY2(IMOD,HH,ISGN)
00404 C *******************************
00405 C THIS ROUTINE SIMULATES TAU- DECAY
00406 #if defined (ALEPH)
00407 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00408 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00409 REAL*4 GAMPMC ,GAMPER
00410 COMMON / DECP4 / PP1(4),PP2(4),KFF1,KFF2
00411 REAL*4 PP1 ,PP2
00412 INTEGER KFF1,KFF2
00413 #else
00414 COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2
00415 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00416 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00417 REAL*4 GAMPMC ,GAMPER
00418 #endif
00419 REAL HH(4)
00420 REAL HV(4),PNU(4),PPI(4)
00421 REAL PWB(4),PMU(4),PNM(4)
00422 REAL PRHO(4),PIC(4),PIZ(4)
00423 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00424 REAL PKK(4),PKS(4)
00425 REAL PNPI(4,9)
00426 REAL PHOT(4)
00427 REAL PDUM(4)
00428 DATA NEV,NPRIN/0,10/
00429 KTO=2
00430 IF(JAK2.EQ.-1) RETURN
00431 IMD=IMOD
00432 IF(IMD.EQ.0) THEN
00433 C =================
00434 JAK=JAK2
00435 IF(JAK2.EQ.0) CALL JAKER(JAK)
00436 IF(JAK.EQ.1) THEN
00437 CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00438 ELSEIF(JAK.EQ.2) THEN
00439 CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT)
00440 ELSEIF(JAK.EQ.3) THEN
00441 CALL DADMPI(0, ISGN,HV,PPI,PNU)
00442 ELSEIF(JAK.EQ.4) THEN
00443 CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ)
00444 ELSEIF(JAK.EQ.5) THEN
00445 CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00446 ELSEIF(JAK.EQ.6) THEN
00447 CALL DADMKK(0, ISGN,HV,PKK,PNU)
00448 ELSEIF(JAK.EQ.7) THEN
00449 CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST)
00450 ELSE
00451 CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7)
00452 ENDIF
00453 DO 33 I=1,3
00454 33 HH(I)=HV(I)
00455 HH(4)=1.0
00456 ELSEIF(IMD.EQ.1) THEN
00457 C =====================
00458 NEV=NEV+1
00459 IF (JAK.LT.31) THEN
00460 NEVDEC(JAK)=NEVDEC(JAK)+1
00461 ENDIF
00462 DO 34 I=1,4
00463 34 PDUM(I)=.0
00464 IF(JAK.EQ.1) THEN
00465 CALL DWLUEL(2,ISGN,PNU,PWB,PMU,PNM)
00466 CALL DWRPH(KTOM,PHOT)
00467 DO 10 I=1,4
00468 10 PP2(I)=PMU(I)
00469
00470 ELSEIF(JAK.EQ.2) THEN
00471 CALL DWLUMU(2,ISGN,PNU,PWB,PMU,PNM)
00472 CALL DWRPH(KTOM,PHOT)
00473 DO 20 I=1,4
00474 20 PP2(I)=PMU(I)
00475
00476 ELSEIF(JAK.EQ.3) THEN
00477 CALL DWLUPI(2,ISGN,PPI,PNU)
00478 DO 30 I=1,4
00479 30 PP2(I)=PPI(I)
00480
00481 ELSEIF(JAK.EQ.4) THEN
00482 CALL DWLURO(2,ISGN,PNU,PRHO,PIC,PIZ)
00483 DO 40 I=1,4
00484 40 PP2(I)=PRHO(I)
00485
00486 ELSEIF(JAK.EQ.5) THEN
00487 CALL DWLUAA(2,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00488 DO 50 I=1,4
00489 50 PP2(I)=PAA(I)
00490 ELSEIF(JAK.EQ.6) THEN
00491 CALL DWLUKK(2,ISGN,PKK,PNU)
00492 DO 60 I=1,4
00493 60 PP1(I)=PKK(I)
00494 ELSEIF(JAK.EQ.7) THEN
00495 CALL DWLUKS(2,ISGN,PNU,PKS,PKK,PPI,JKST)
00496 DO 70 I=1,4
00497 70 PP1(I)=PKS(I)
00498 ELSE
00499 CAM MULTIPION DECAY
00500 CALL DWLNEW(2,ISGN,PNU,PWB,PNPI,JAK)
00501 DO 80 I=1,4
00502 80 PP1(I)=PWB(I)
00503 ENDIF
00504 C
00505 ENDIF
00506 C =====
00507 END
00508 SUBROUTINE DEXAY(KTO,POL)
00509 C ----------------------------------------------------------------------
00510 C THIS 'DEXAY' IS A ROUTINE WHICH GENERATES DECAY OF THE SINGLE
00511 C POLARIZED TAU, POL IS A POLARIZATION VECTOR (NOT A POLARIMETER
00512 C VECTOR AS IN DEKAY) OF THE TAU AND IT IS AN INPUT PARAMETER.
00513 C KTO=0 INITIALISATION (OBLIGATORY)
00514 C KTO=1 DENOTES TAU+ AND KTO=2 TAU-
00515 C DEXAY(1,POL) AND DEXAY(2,POL) ARE CALLED INTERNALLY BY MC GENERATOR.
00516 C DECAY PRODUCTS ARE TRANSFORMED READILY
00517 C TO CMS AND WRITEN IN THE LUND RECORD IN /LUJETS/
00518 C KTO=100, PRINT FINAL REPORT (OPTIONAL).
00519 C
00520 C called by : KORALZ
00521 C ----------------------------------------------------------------------
00522 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00523 REAL*4 GAMPMC ,GAMPER
00524 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
00525 COMMON / IDFC / IDFF
00526 COMMON /TAUPOS/ NP1,NP2
00527 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
00528 #if defined (ALEPH)
00529 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00530 #else
00531 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
00532 #endif
00533 & ,NAMES
00534 CHARACTER NAMES(NMODE)*31
00535 COMMON / INOUT / INUT,IOUT
00536 REAL POL(4)
00537 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00538 REAL PDUM(4)
00539 REAL PDUMI(4,9)
00540 DATA IWARM/0/
00541 KTOM=KTO
00542 C
00543 IF(KTO.EQ.-1) THEN
00544 C ==================
00545
00546 C INITIALISATION OR REINITIALISATION
00547 C first or second tau positions in HEPEVT as in KORALB/Z
00548 NP1=3
00549 NP2=4
00550 IWARM=1
00551 WRITE(IOUT, 7001) JAK1,JAK2
00552 NEVTOT=0
00553 NEV1=0
00554 NEV2=0
00555 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00556 CALL DEXEL(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00557 CALL DEXMU(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00558 CALL DEXPI(-1,IDUM,PDUM,PDUM1,PDUM2)
00559 CALL DEXRO(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00560 CALL DEXAA(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM)
00561 CALL DEXKK(-1,IDUM,PDUM,PDUM1,PDUM2)
00562 CALL DEXKS(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM)
00563 CALL DEXNEW(-1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM)
00564 ENDIF
00565 DO 21 I=1,30
00566 NEVDEC(I)=0
00567 GAMPMC(I)=0
00568 21 GAMPER(I)=0
00569 ELSEIF(KTO.EQ.1) THEN
00570 C =====================
00571 C DECAY OF TAU+ IN THE TAU REST FRAME
00572 NEVTOT=NEVTOT+1
00573 NEV1=NEV1+1
00574 IF(IWARM.EQ.0) GOTO 902
00575 ISGN=IDFF/IABS(IDFF)
00576 CAM CALL DEXAY1(POL,ISGN)
00577 CALL DEXAY1(KTO,JAK1,JAKP,POL,ISGN)
00578 ELSEIF(KTO.EQ.2) THEN
00579 C =================================
00580 C DECAY OF TAU- IN THE TAU REST FRAME
00581 NEVTOT=NEVTOT+1
00582 NEV2=NEV2+1
00583 IF(IWARM.EQ.0) GOTO 902
00584 ISGN=-IDFF/IABS(IDFF)
00585 CAM CALL DEXAY2(POL,ISGN)
00586 CALL DEXAY1(KTO,JAK2,JAKM,POL,ISGN)
00587 ELSEIF(KTO.EQ.100) THEN
00588 C =======================
00589 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN
00590 CALL DEXEL( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00591 CALL DEXMU( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00592 CALL DEXPI( 1,IDUM,PDUM,PDUM1,PDUM2)
00593 CALL DEXRO( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4)
00594 CALL DEXAA( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM)
00595 CALL DEXKK( 1,IDUM,PDUM,PDUM1,PDUM2)
00596 CALL DEXKS( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM)
00597 CALL DEXNEW( 1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM)
00598 WRITE(IOUT,7010) NEV1,NEV2,NEVTOT
00599 WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7)
00600 WRITE(IOUT,7012)
00601 $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE)
00602 WRITE(IOUT,7013)
00603 ENDIF
00604 ELSE
00605 GOTO 910
00606 ENDIF
00607 RETURN
00608 7001 FORMAT(///1X,15(5H*****)
00609 #if defined (ALEPH)
00610 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.5 ******',9X,1H*,
00611 $ /,' *', 25X,'*DEC 1993; ALEPH fixes introd. dec 98 *',9X,1H*,
00612 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00613 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00614 $ /,' *', 25X,'Physics initialization by ALEPH collab ',9X,1H*,
00615 $ /,' *', 25X,'it is suggested to use this version ',9X,1H*,
00616 $ /,' *', 25X,' with the help of the collab. advice ',9X,1H*,
00617 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00618 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00619 #elif defined (CLEO)
00620 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00621 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00622 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00623 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00624 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00625 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00626 $ /,' *', 25X,' Physics initialization by CLEO collab ',9X,1H*,
00627 $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*,
00628 $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*,
00629 $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*,
00630 $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*,
00631 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00632 #else
00633 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00634 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00635 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00636 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00637 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00638 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00639 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00640 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00641 #endif
00642 $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*,
00643 $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*,
00644 $ /,' *', 25X,'******DEXAY ROUTINE: INITIALIZATION****',9X,1H*
00645 $ /,' *',I20 ,5X,'JAK1 = DECAY MODE FERMION1 (TAU+) ',9X,1H*
00646 $ /,' *',I20 ,5X,'JAK2 = DECAY MODE FERMION2 (TAU-) ',9X,1H*
00647 $ /,1X,15(5H*****)/)
00648 CHBU format 7010 had more than 19 continuation lines
00649 CHBU split into two
00650 7010 FORMAT(///1X,15(5H*****)
00651 #if defined (ALEPH)
00652 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.5 ******',9X,1H*,
00653 $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*,
00654 #else
00655 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.6 ******',9X,1H*,
00656 $ /,' *', 25X,'***********August 1995***************',9X,1H*,
00657 #endif
00658 $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*,
00659 $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*,
00660 $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*,
00661 $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*,
00662 $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*,
00663 $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*,
00664 $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*,
00665 $ /,' *', 25X,'******DEXAY ROUTINE: FINAL REPORT******',9X,1H*
00666 $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*
00667 $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*
00668 $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*
00669 $ /,' *',' NOEVTS ',
00670 $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*)
00671 7011 FORMAT(1X,'*'
00672 $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H*
00673 $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H*
00674 $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H*
00675 $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H*
00676 $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H*
00677 $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H*
00678 $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*)
00679 7012 FORMAT(1X,'*'
00680 $ ,I10,2F12.7,A31 ,8X,1H*)
00681 7013 FORMAT(1X,'*'
00682 $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H*
00683 $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H*
00684 $ /,1X,15(5H*****)/)
00685 902 WRITE(IOUT, 9020)
00686 9020 FORMAT(' ----- DEXAY: LACK OF INITIALISATION')
00687 STOP
00688 910 WRITE(IOUT, 9100)
00689 9100 FORMAT(' ----- DEXAY: WRONG VALUE OF KTO ')
00690 STOP
00691 END
00692 SUBROUTINE DEXAY1(KTO,JAKIN,JAK,POL,ISGN)
00693 C ---------------------------------------------------------------------
00694 C THIS ROUTINE SIMULATES TAU+- DECAY
00695 C
00696 C called by : DEXAY
00697 C ---------------------------------------------------------------------
00698 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00699 REAL*4 GAMPMC ,GAMPER
00700 COMMON / INOUT / INUT,IOUT
00701 REAL POL(4),POLAR(4)
00702 REAL PNU(4),PPI(4)
00703 REAL PRHO(4),PIC(4),PIZ(4)
00704 REAL PWB(4),PMU(4),PNM(4)
00705 REAL PAA(4),PIM1(4),PIM2(4),PIPL(4)
00706 REAL PKK(4),PKS(4)
00707 REAL PNPI(4,9)
00708 REAL PHOT(4)
00709 REAL PDUM(4)
00710 C
00711 IF(JAKIN.EQ.-1) RETURN
00712 DO 33 I=1,3
00713 33 POLAR(I)=POL(I)
00714 POLAR(4)=0.
00715 DO 34 I=1,4
00716 34 PDUM(I)=.0
00717 JAK=JAKIN
00718 IF(JAK.EQ.0) CALL JAKER(JAK)
00719 CAM
00720 IF(JAK.EQ.1) THEN
00721 CALL DEXEL(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT)
00722 CALL DWLUEL(KTO,ISGN,PNU,PWB,PMU,PNM)
00723 CALL DWRPH(KTO,PHOT )
00724 ELSEIF(JAK.EQ.2) THEN
00725 CALL DEXMU(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT)
00726 CALL DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM)
00727 CALL DWRPH(KTO,PHOT )
00728 ELSEIF(JAK.EQ.3) THEN
00729 CALL DEXPI(0, ISGN,POLAR,PPI,PNU)
00730 CALL DWLUPI(KTO,ISGN,PPI,PNU)
00731 ELSEIF(JAK.EQ.4) THEN
00732 CALL DEXRO(0, ISGN,POLAR,PNU,PRHO,PIC,PIZ)
00733 CALL DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ)
00734 ELSEIF(JAK.EQ.5) THEN
00735 CALL DEXAA(0, ISGN,POLAR,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00736 CALL DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
00737 ELSEIF(JAK.EQ.6) THEN
00738 CALL DEXKK(0, ISGN,POLAR,PKK,PNU)
00739 CALL DWLUKK(KTO,ISGN,PKK,PNU)
00740 ELSEIF(JAK.EQ.7) THEN
00741 CALL DEXKS(0, ISGN,POLAR,PNU,PKS,PKK,PPI,JKST)
00742 CALL DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
00743 ELSE
00744 JNPI=JAK-7
00745 CALL DEXNEW(0, ISGN,POLAR,PNU,PWB,PNPI,JNPI)
00746 CALL DWLNEW(KTO,ISGN,PNU,PWB,PNPI,JAK)
00747 ENDIF
00748 NEVDEC(JAK)=NEVDEC(JAK)+1
00749 END
00750 SUBROUTINE DEXEL(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
00751 C ----------------------------------------------------------------------
00752 C THIS SIMULATES TAU DECAY IN TAU REST FRAME
00753 C INTO ELECTRON AND TWO NEUTRINOS
00754 C
00755 C called by : DEXAY,DEXAY1
00756 C ----------------------------------------------------------------------
00757 REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1)
00758 DATA IWARM/0/
00759 C
00760 IF(MODE.EQ.-1) THEN
00761 C ===================
00762 IWARM=1
00763 CALL DADMEL( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00764 CC CALL HBOOK1(813,'WEIGHT DISTRIBUTION DEXEL $',100,0,2)
00765 C
00766 ELSEIF(MODE.EQ. 0) THEN
00767 C =======================
00768 300 CONTINUE
00769 IF(IWARM.EQ.0) GOTO 902
00770 CALL DADMEL( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00771 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
00772 CC CALL HFILL(813,WT)
00773 CALL RANMAR(RN,1)
00774 IF(RN(1).GT.WT) GOTO 300
00775 C
00776 ELSEIF(MODE.EQ. 1) THEN
00777 C =======================
00778 CALL DADMEL( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00779 CC CALL HPRINT(813)
00780 ENDIF
00781 C =====
00782 RETURN
00783 902 PRINT 9020
00784 9020 FORMAT(' ----- DEXEL: LACK OF INITIALISATION')
00785 STOP
00786 END
00787 SUBROUTINE DEXMU(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
00788 C ----------------------------------------------------------------------
00789 C THIS SIMULATES TAU DECAY IN ITS REST FRAME
00790 C INTO MUON AND TWO NEUTRINOS
00791 C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
00792 C PWB W-BOSON
00793 C Q1 MUON
00794 C Q2 MUON-NEUTRINO
00795 C ----------------------------------------------------------------------
00796 COMMON / INOUT / INUT,IOUT
00797 REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1)
00798 DATA IWARM/0/
00799 C
00800 IF(MODE.EQ.-1) THEN
00801 C ===================
00802 IWARM=1
00803 CALL DADMMU( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00804 CC CALL HBOOK1(814,'WEIGHT DISTRIBUTION DEXMU $',100,0,2)
00805 C
00806 ELSEIF(MODE.EQ. 0) THEN
00807 C =======================
00808 300 CONTINUE
00809 IF(IWARM.EQ.0) GOTO 902
00810 CALL DADMMU( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00811 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
00812 CC CALL HFILL(814,WT)
00813 CALL RANMAR(RN,1)
00814 IF(RN(1).GT.WT) GOTO 300
00815 C
00816 ELSEIF(MODE.EQ. 1) THEN
00817 C =======================
00818 CALL DADMMU( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH)
00819 CC CALL HPRINT(814)
00820 ENDIF
00821 C =====
00822 RETURN
00823 902 WRITE(IOUT, 9020)
00824 9020 FORMAT(' ----- DEXMU: LACK OF INITIALISATION')
00825 STOP
00826 END
00827 SUBROUTINE DADMEL(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
00828 C ----------------------------------------------------------------------
00829 C
00830 C called by : DEXEL,(DEKAY,DEKAY1)
00831 C ----------------------------------------------------------------------
00832 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00833 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00834 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00835 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00836 * ,AMK,AMKZ,AMKST,GAMKST
00837 C
00838 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00839 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00840 * ,AMK,AMKZ,AMKST,GAMKST
00841 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00842 REAL*4 GAMPMC ,GAMPER
00843 #if defined (ALEPH)
00844 #else
00845 REAL*4 PHX(4)
00846 #endif
00847 COMMON / INOUT / INUT,IOUT
00848 #if defined (ALEPH)
00849 REAL*4 PHX(4)
00850 #else
00851 #endif
00852 REAL HHV(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4)
00853 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00854 REAL*4 RRR(3)
00855 REAL*8 SWT, SSWT
00856 DATA PI /3.141592653589793238462643/
00857 DATA IWARM/0/
00858 C
00859 IF(MODE.EQ.-1) THEN
00860 C ===================
00861 IWARM=1
00862 NEVRAW=0
00863 NEVACC=0
00864 NEVOVR=0
00865 SWT=0
00866 SSWT=0
00867 WTMAX=1E-20
00868 DO 15 I=1,500
00869 CALL DPHSEL(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00870 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
00871 15 CONTINUE
00872 CC CALL HBOOK1(803,'WEIGHT DISTRIBUTION DADMEL $',100,0,2)
00873 C
00874 ELSEIF(MODE.EQ. 0) THEN
00875 C =======================
00876 300 CONTINUE
00877 IF(IWARM.EQ.0) GOTO 902
00878 NEVRAW=NEVRAW+1
00879 CALL DPHSEL(WT,HV,PNU,PWB,Q1,Q2,PHX)
00880 CC CALL HFILL(803,WT/WTMAX)
00881 SWT=SWT+WT
00882 SSWT=SSWT+WT**2
00883 CALL RANMAR(RRR,3)
00884 RN=RRR(1)
00885 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
00886 IF(RN*WTMAX.GT.WT) GOTO 300
00887 C ROTATIONS TO BASIC TAU REST FRAME
00888 RR2=RRR(2)
00889 COSTHE=-1.+2.*RR2
00890 THET=ACOS(COSTHE)
00891 RR3=RRR(3)
00892 PHI =2*PI*RR3
00893 CALL ROTOR2(THET,PNU,PNU)
00894 CALL ROTOR3( PHI,PNU,PNU)
00895 CALL ROTOR2(THET,PWB,PWB)
00896 CALL ROTOR3( PHI,PWB,PWB)
00897 CALL ROTOR2(THET,Q1,Q1)
00898 CALL ROTOR3( PHI,Q1,Q1)
00899 CALL ROTOR2(THET,Q2,Q2)
00900 CALL ROTOR3( PHI,Q2,Q2)
00901 CALL ROTOR2(THET,HV,HV)
00902 CALL ROTOR3( PHI,HV,HV)
00903 CALL ROTOR2(THET,PHX,PHX)
00904 CALL ROTOR3( PHI,PHX,PHX)
00905 DO 44,I=1,3
00906 44 HHV(I)=-ISGN*HV(I)
00907 NEVACC=NEVACC+1
00908 C
00909 ELSEIF(MODE.EQ. 1) THEN
00910 C =======================
00911 IF(NEVRAW.EQ.0) RETURN
00912 PARGAM=SWT/FLOAT(NEVRAW+1)
00913 ERROR=0
00914 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
00915 RAT=PARGAM/GAMEL
00916 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
00917 CC CALL HPRINT(803)
00918 GAMPMC(1)=RAT
00919 GAMPER(1)=ERROR
00920 CAM NEVDEC(1)=NEVACC
00921 ENDIF
00922 C =====
00923 RETURN
00924 7010 FORMAT(///1X,15(5H*****)
00925 $ /,' *', 25X,'******** DADMEL FINAL REPORT ******** ',9X,1H*
00926 $ /,' *',I20 ,5X,'NEVRAW = NO. OF EL DECAYS TOTAL ',9X,1H*
00927 $ /,' *',I20 ,5X,'NEVACC = NO. OF EL DECS. ACCEPTED ',9X,1H*
00928 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
00929 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9X,1H*
00930 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
00931 $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
00932 $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H*
00933 $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H*
00934 $ /,1X,15(5H*****)/)
00935 902 WRITE(IOUT, 9020)
00936 9020 FORMAT(' ----- DADMEL: LACK OF INITIALISATION')
00937 STOP
00938 END
00939 SUBROUTINE DADMMU(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
00940 C ----------------------------------------------------------------------
00941 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00942 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00943 * ,AMK,AMKZ,AMKST,GAMKST
00944 C
00945 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
00946 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
00947 * ,AMK,AMKZ,AMKST,GAMKST
00948 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00949 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
00950 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
00951 REAL*4 GAMPMC ,GAMPER
00952 COMMON / INOUT / INUT,IOUT
00953 REAL*4 PHX(4)
00954 REAL HHV(4),HV(4),PNU(4),PWB(4),Q1(4),Q2(4)
00955 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
00956 REAL*4 RRR(3)
00957 REAL*8 SWT, SSWT
00958 DATA PI /3.141592653589793238462643/
00959 DATA IWARM /0/
00960 C
00961 IF(MODE.EQ.-1) THEN
00962 C ===================
00963 IWARM=1
00964 NEVRAW=0
00965 NEVACC=0
00966 NEVOVR=0
00967 SWT=0
00968 SSWT=0
00969 WTMAX=1E-20
00970 DO 15 I=1,500
00971 CALL DPHSMU(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5)
00972 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
00973 15 CONTINUE
00974 CC CALL HBOOK1(802,'WEIGHT DISTRIBUTION DADMMU $',100,0,2)
00975 C
00976 ELSEIF(MODE.EQ. 0) THEN
00977 C =======================
00978 300 CONTINUE
00979 IF(IWARM.EQ.0) GOTO 902
00980 NEVRAW=NEVRAW+1
00981 CALL DPHSMU(WT,HV,PNU,PWB,Q1,Q2,PHX)
00982 CC CALL HFILL(802,WT/WTMAX)
00983 SWT=SWT+WT
00984 SSWT=SSWT+WT**2
00985 CALL RANMAR(RRR,3)
00986 RN=RRR(1)
00987 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
00988 IF(RN*WTMAX.GT.WT) GOTO 300
00989 C ROTATIONS TO BASIC TAU REST FRAME
00990 COSTHE=-1.+2.*RRR(2)
00991 THET=ACOS(COSTHE)
00992 PHI =2*PI*RRR(3)
00993 CALL ROTOR2(THET,PNU,PNU)
00994 CALL ROTOR3( PHI,PNU,PNU)
00995 CALL ROTOR2(THET,PWB,PWB)
00996 CALL ROTOR3( PHI,PWB,PWB)
00997 CALL ROTOR2(THET,Q1,Q1)
00998 CALL ROTOR3( PHI,Q1,Q1)
00999 CALL ROTOR2(THET,Q2,Q2)
01000 CALL ROTOR3( PHI,Q2,Q2)
01001 CALL ROTOR2(THET,HV,HV)
01002 CALL ROTOR3( PHI,HV,HV)
01003 CALL ROTOR2(THET,PHX,PHX)
01004 CALL ROTOR3( PHI,PHX,PHX)
01005 DO 44,I=1,3
01006 44 HHV(I)=-ISGN*HV(I)
01007 NEVACC=NEVACC+1
01008 C
01009 ELSEIF(MODE.EQ. 1) THEN
01010 C =======================
01011 IF(NEVRAW.EQ.0) RETURN
01012 PARGAM=SWT/FLOAT(NEVRAW+1)
01013 ERROR=0
01014 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
01015 RAT=PARGAM/GAMEL
01016 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
01017 CC CALL HPRINT(802)
01018 GAMPMC(2)=RAT
01019 GAMPER(2)=ERROR
01020 CAM NEVDEC(2)=NEVACC
01021 ENDIF
01022 C =====
01023 RETURN
01024 7010 FORMAT(///1X,15(5H*****)
01025 $ /,' *', 25X,'******** DADMMU FINAL REPORT ******** ',9X,1H*
01026 $ /,' *',I20 ,5X,'NEVRAW = NO. OF MU DECAYS TOTAL ',9X,1H*
01027 $ /,' *',I20 ,5X,'NEVACC = NO. OF MU DECS. ACCEPTED ',9X,1H*
01028 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
01029 $ /,' *',E20.5,5X,'PARTIAL WTDTH (MU DECAY) IN GEV UNITS ',9X,1H*
01030 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01031 $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
01032 $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H*
01033 $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H*
01034 $ /,1X,15(5H*****)/)
01035 902 WRITE(IOUT, 9020)
01036 9020 FORMAT(' ----- DADMMU: LACK OF INITIALISATION')
01037 STOP
01038 END
01039 SUBROUTINE DPHSEL(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
01040 C XNX,XNA was flipped in parameters of dphsel and dphsmu
01041 C *********************************************************************
01042 C * ELECTRON DECAY MODE *
01043 C *********************************************************************
01044 REAL*4 PHX(4)
01045 REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4)
01046 REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
01047 REAL*8 DGAMT
01048 IELMU=1
01049 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
01050 DO 7 K=1,4
01051 HVX(K)=HV(K)
01052 PHX(K)=PH(K)
01053 PAAX(K)=PAA(K)
01054 XAX(K)=XA(K)
01055 QPX(K)=QP(K)
01056 XNX(K)=XN(K)
01057 7 CONTINUE
01058 DGAMX=DGAMT
01059 END
01060 SUBROUTINE DPHSMU(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
01061 C XNX,XNA was flipped in parameters of dphsel and dphsmu
01062 C *********************************************************************
01063 C * MUON DECAY MODE *
01064 C *********************************************************************
01065 REAL*4 PHX(4)
01066 REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4)
01067 REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
01068 REAL*8 DGAMT
01069 IELMU=2
01070 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
01071 DO 7 K=1,4
01072 HVX(K)=HV(K)
01073 PHX(K)=PH(K)
01074 PAAX(K)=PAA(K)
01075 XAX(K)=XA(K)
01076 QPX(K)=QP(K)
01077 XNX(K)=XN(K)
01078 7 CONTINUE
01079 DGAMX=DGAMT
01080 END
01081 SUBROUTINE DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
01082 IMPLICIT REAL*8 (A-H,O-Z)
01083 C ----------------------------------------------------------------------
01084 * IT SIMULATES E,MU CHANNELS OF TAU DECAY IN ITS REST FRAME WITH
01085 * QED ORDER ALPHA CORRECTIONS
01086 C ----------------------------------------------------------------------
01087 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01088 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01089 * ,AMK,AMKZ,AMKST,GAMKST
01090 C
01091 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01092 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01093 * ,AMK,AMKZ,AMKST,GAMKST
01094 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01095 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01096 #if defined (ALEPH)
01097 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01098 REAL*4 GAMPMC ,GAMPER
01099 #endif
01100 COMMON / INOUT / INUT,IOUT
01101 COMMON / TAURAD / XK0DEC,ITDKRC
01102 REAL*8 XK0DEC
01103 REAL*8 HV(4),PT(4),PH(4),PAA(4),XA(4),QP(4),XN(4)
01104 REAL*8 PR(4)
01105 REAL*4 RRR(6)
01106 LOGICAL IHARD
01107 DATA PI /3.141592653589793238462643D0/
01108 #if defined (CLEO)
01109 C AJWMOD to satisfy compiler, comment out this unused function.
01110 #else
01111 XLAM(X,Y,Z)=SQRT((X-Y-Z)**2-4.0*Y*Z)
01112 #endif
01113 C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY
01114 C
01115 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
01116 C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P)
01117 PHSPAC=1./2**17/PI**8
01118 AMTAX=AMTAU
01119 C TAU MOMENTUM
01120 PT(1)=0.D0
01121 PT(2)=0.D0
01122 PT(3)=0.D0
01123 PT(4)=AMTAX
01124 C
01125 CALL RANMAR(RRR,6)
01126 C
01127 IF (IELMU.EQ.1) THEN
01128 AMU=AMEL
01129 ELSE
01130 AMU=AMMU
01131 ENDIF
01132 C
01133 PRHARD=0.30D0
01134 IF ( ITDKRC.EQ.0) PRHARD=0D0
01135 PRSOFT=1.-PRHARD
01136 IF(PRSOFT.LT.0.1) THEN
01137 PRINT *, 'ERROR IN DRCMU; PRSOFT=',PRSOFT
01138 STOP
01139 ENDIF
01140 C
01141 RR5=RRR(5)
01142 IHARD=(RR5.GT.PRSOFT)
01143 IF (IHARD) THEN
01144 C TAU DECAY TO 'TAU+photon'
01145 RR1=RRR(1)
01146 AMS1=(AMU+AMNUTA)**2
01147 AMS2=(AMTAX)**2
01148 XK1=1-AMS1/AMS2
01149 XL1=LOG(XK1/2/XK0DEC)
01150 XL0=LOG(2*XK0DEC)
01151 XK=EXP(XL1*RR1+XL0)
01152 AM3SQ=(1-XK)*AMS2
01153 AM3 =SQRT(AM3SQ)
01154 PHSPAC=PHSPAC*AMS2*XL1*XK
01155 PHSPAC=PHSPAC/PRHARD
01156 ELSE
01157 AM3=AMTAX
01158 PHSPAC=PHSPAC*2**6*PI**3
01159 PHSPAC=PHSPAC/PRSOFT
01160 ENDIF
01161 C MASS OF NEUTRINA SYSTEM
01162 RR2=RRR(2)
01163 AMS1=(AMNUTA)**2
01164 AMS2=(AM3-AMU)**2
01165 CAM
01166 CAM
01167 * FLAT PHASE SPACE;
01168 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
01169 AM2 =SQRT(AM2SQ)
01170 PHSPAC=PHSPAC*(AMS2-AMS1)
01171 * NEUTRINA REST FRAME, DEFINE XN AND XA
01172 ENQ1=(AM2SQ+AMNUTA**2)/(2*AM2)
01173 ENQ2=(AM2SQ-AMNUTA**2)/(2*AM2)
01174 PPI= ENQ1**2-AMNUTA**2
01175 PPPI=SQRT(ABS(ENQ1**2-AMNUTA**2))
01176 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2)
01177 * NU TAU IN NUNU REST FRAME
01178 CALL SPHERD(PPPI,XN)
01179 XN(4)=ENQ1
01180 * NU LIGHT IN NUNU REST FRAME
01181 DO 30 I=1,3
01182 30 XA(I)=-XN(I)
01183 XA(4)=ENQ2
01184 * TAU-prim REST FRAME, DEFINE QP (muon
01185 * NUNU MOMENTUM
01186 PR(1)=0
01187 PR(2)=0
01188 PR(4)=1.D0/(2*AM3)*(AM3**2+AM2**2-AMU**2)
01189 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
01190 PPI = PR(4)**2-AM2**2
01191 * MUON MOMENTUM
01192 QP(1)=0
01193 QP(2)=0
01194 QP(4)=1.D0/(2*AM3)*(AM3**2-AM2**2+AMU**2)
01195 QP(3)=-PR(3)
01196 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AM3)
01197 * NEUTRINA BOOSTED FROM THEIR FRAME TO TAU-prim REST FRAME
01198 EXE=(PR(4)+PR(3))/AM2
01199 CALL BOSTD3(EXE,XN,XN)
01200 CALL BOSTD3(EXE,XA,XA)
01201 RR3=RRR(3)
01202 RR4=RRR(4)
01203 IF (IHARD) THEN
01204 EPS=4*(AMU/AMTAX)**2
01205 XL1=LOG((2+EPS)/EPS)
01206 XL0=LOG(EPS)
01207 ETA =EXP(XL1*RR3+XL0)
01208 CTHET=1+EPS-ETA
01209 THET =ACOS(CTHET)
01210 PHSPAC=PHSPAC*XL1/2*ETA
01211 PHI = 2*PI*RR4
01212 CALL ROTPOX(THET,PHI,XN)
01213 CALL ROTPOX(THET,PHI,XA)
01214 CALL ROTPOX(THET,PHI,QP)
01215 CALL ROTPOX(THET,PHI,PR)
01216 C
01217 * NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA
01218 * tau-prim MOMENTUM
01219 PAA(1)=0
01220 PAA(2)=0
01221 PAA(4)=1/(2*AMTAX)*(AMTAX**2+AM3**2)
01222 PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2))
01223 PPI = PAA(4)**2-AM3**2
01224 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAX)
01225 * GAMMA MOMENTUM
01226 PH(1)=0
01227 PH(2)=0
01228 PH(4)=PAA(3)
01229 PH(3)=-PAA(3)
01230 * ALL MOMENTA BOOSTED FROM TAU-prim REST FRAME TO TAU REST FRAME
01231 * Z-AXIS ANTIPARALLEL TO PHOTON MOMENTUM
01232 EXE=(PAA(4)+PAA(3))/AM3
01233 CALL BOSTD3(EXE,XN,XN)
01234 CALL BOSTD3(EXE,XA,XA)
01235 CALL BOSTD3(EXE,QP,QP)
01236 CALL BOSTD3(EXE,PR,PR)
01237 ELSE
01238 THET =ACOS(-1.+2*RR3)
01239 PHI = 2*PI*RR4
01240 CALL ROTPOX(THET,PHI,XN)
01241 CALL ROTPOX(THET,PHI,XA)
01242 CALL ROTPOX(THET,PHI,QP)
01243 CALL ROTPOX(THET,PHI,PR)
01244 C
01245 * NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA
01246 * tau-prim MOMENTUM
01247 PAA(1)=0
01248 PAA(2)=0
01249 PAA(4)=AMTAX
01250 PAA(3)=0
01251 * GAMMA MOMENTUM
01252 PH(1)=0
01253 PH(2)=0
01254 PH(4)=0
01255 PH(3)=0
01256 ENDIF
01257 C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE
01258 CALL DAMPRY(ITDKRC,XK0DEC,PH,XA,QP,XN,AMPLIT,HV)
01259 DGAMT=1/(2.*AMTAX)*AMPLIT*PHSPAC
01260 END
01261 SUBROUTINE DAMPRY(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV)
01262 IMPLICIT REAL*8 (A-H,O-Z)
01263 C ----------------------------------------------------------------------
01264 C IT CALCULATES MATRIX ELEMENT FOR THE
01265 C TAU --> MU(E) NU NUBAR DECAY MODE
01266 C INCLUDING COMPLETE ORDER ALPHA QED CORRECTIONS.
01267 C ----------------------------------------------------------------------
01268 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01269 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01270 * ,AMK,AMKZ,AMKST,GAMKST
01271 C
01272 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01273 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01274 * ,AMK,AMKZ,AMKST,GAMKST
01275 REAL*8 HV(4),QP(4),XN(4),XA(4),XK(4)
01276 C
01277 HV(4)=1.D0
01278 AK0=XK0DEC*AMTAU
01279 IF(XK(4).LT.0.1D0*AK0) THEN
01280 AMPLIT=THB(ITDKRC,QP,XN,XA,AK0,HV)
01281 ELSE
01282 AMPLIT=SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV)
01283 ENDIF
01284 RETURN
01285 END
01286 FUNCTION SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV)
01287 C
01288 C **********************************************************************
01289 C REAL PHOTON MATRIX ELEMENT SQUARED *
01290 C PARAMETERS: *
01291 C HV- POLARIMETRIC FOUR-VECTOR OF TAU *
01292 C QP,XN,XA,XK - 4-momenta of electron (muon), NU, NUBAR and PHOTON *
01293 C All four-vectors in TAU rest frame (in GeV) *
01294 C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS (GEV) *
01295 C SQM2 - value for S=0 *
01296 C see Eqs. (2.9)-(2.10) from CJK ( Nucl.Phys.B(1991) ) *
01297 C **********************************************************************
01298 C
01299 IMPLICIT REAL*8(A-H,O-Z)
01300 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01301 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01302 * ,AMK,AMKZ,AMKST,GAMKST
01303 C
01304 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01305 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01306 * ,AMK,AMKZ,AMKST,GAMKST
01307 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01308 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01309 COMMON / QEDPRM /ALFINV,ALFPI,XK0
01310 REAL*8 ALFINV,ALFPI,XK0
01311 REAL*8 QP(4),XN(4),XA(4),XK(4)
01312 REAL*8 R(4)
01313 REAL*8 HV(4)
01314 REAL*8 S0(3),RXA(3),RXK(3),RQP(3)
01315 DATA PI /3.141592653589793238462643D0/
01316 C
01317 TMASS=AMTAU
01318 GF=GFERMI
01319 ALPHAI=ALFINV
01320 TMASS2=TMASS**2
01321 EMASS2=QP(4)**2-QP(1)**2-QP(2)**2-QP(3)**2
01322 R(4)=TMASS
01323 C SCALAR PRODUCTS OF FOUR-MOMENTA
01324 DO 7 I=1,3
01325 R(1)=0.D0
01326 R(2)=0.D0
01327 R(3)=0.D0
01328 R(I)=TMASS
01329 RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3)
01330 C RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3)
01331 RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3)
01332 RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3)
01333 7 CONTINUE
01334 QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3)
01335 QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3)
01336 QPXK=QP(4)*XK(4)-QP(1)*XK(1)-QP(2)*XK(2)-QP(3)*XK(3)
01337 c XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3)
01338 XNXK=XN(4)*XK(4)-XN(1)*XK(1)-XN(2)*XK(2)-XN(3)*XK(3)
01339 XAXK=XA(4)*XK(4)-XA(1)*XK(1)-XA(2)*XK(2)-XA(3)*XK(3)
01340 TXN=TMASS*XN(4)
01341 TXA=TMASS*XA(4)
01342 TQP=TMASS*QP(4)
01343 TXK=TMASS*XK(4)
01344 C
01345 X= XNXK/QPXN
01346 Z= TXK/TQP
01347 A= 1+X
01348 B= 1+ X*(1+Z)/2+Z/2
01349 S1= QPXN*TXA*( -EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B-
01350 $TMASS2/TXK**2) +
01351 $QPXN/TXK**2* ( TMASS2*XAXK - TXA*TXK+ XAXK*TXK) -
01352 $TXA*TXN/TXK - QPXN/(QPXK*TXK)* (TQP*XAXK-TXK*QPXA)
01353 CONST4=256*PI/ALPHAI*GF**2
01354 IF (ITDKRC.EQ.0) CONST4=0D0
01355 SQM2=S1*CONST4
01356 DO 5 I=1,3
01357 S0(I) = QPXN*RXA(I)*(-EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B-
01358 $ TMASS2/TXK**2) +
01359 $ QPXN/TXK**2* (TMASS2*XAXK - TXA*RXK(I)+ XAXK*RXK(I))-
01360 $ RXA(I)*TXN/TXK - QPXN/(QPXK*TXK)*(RQP(I)*XAXK- RXK(I)*QPXA)
01361 5 HV(I)=S0(I)/S1-1.D0
01362 RETURN
01363 END
01364 FUNCTION THB(ITDKRC,QP,XN,XA,AK0,HV)
01365 C
01366 C **********************************************************************
01367 C BORN +VIRTUAL+SOFT PHOTON MATRIX ELEMENT**2 O(ALPHA) *
01368 C PARAMETERS: *
01369 C HV- POLARIMETRIC FOUR-VECTOR OF TAU *
01370 C QP,XN,XA - FOUR-MOMENTA OF ELECTRON (MUON), NU AND NUBAR IN GEV *
01371 C ALL FOUR-VECTORS IN TAU REST FRAME *
01372 C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS *
01373 C THB - VALUE FOR S=0 *
01374 C SEE EQS. (2.2),(2.4)-(2.5) FROM CJK (NUCL.PHYS.B351(1991)70 *
01375 C AND (C.2) FROM JK (NUCL.PHYS.B320(1991)20 ) *
01376 C **********************************************************************
01377 C
01378 IMPLICIT REAL*8(A-H,O-Z)
01379 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01380 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01381 * ,AMK,AMKZ,AMKST,GAMKST
01382 C
01383 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01384 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01385 * ,AMK,AMKZ,AMKST,GAMKST
01386 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01387 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01388 COMMON / QEDPRM /ALFINV,ALFPI,XK0
01389 REAL*8 ALFINV,ALFPI,XK0
01390 DIMENSION QP(4),XN(4),XA(4)
01391 REAL*8 HV(4)
01392 DIMENSION R(4)
01393 REAL*8 RXA(3),RXN(3),RQP(3)
01394 REAL*8 BORNPL(3),AM3POL(3),XM3POL(3)
01395 DATA PI /3.141592653589793238462643D0/
01396 C
01397 TMASS=AMTAU
01398 GF=GFERMI
01399 ALPHAI=ALFINV
01400 C
01401 TMASS2=TMASS**2
01402 R(4)=TMASS
01403 DO 7 I=1,3
01404 R(1)=0.D0
01405 R(2)=0.D0
01406 R(3)=0.D0
01407 R(I)=TMASS
01408 RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3)
01409 RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3)
01410 C RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3)
01411 RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3)
01412 7 CONTINUE
01413 C QUASI TWO-BODY VARIABLES
01414 U0=QP(4)/TMASS
01415 U3=SQRT(QP(1)**2+QP(2)**2+QP(3)**2)/TMASS
01416 W3=U3
01417 W0=(XN(4)+XA(4))/TMASS
01418 UP=U0+U3
01419 UM=U0-U3
01420 WP=W0+W3
01421 WM=W0-W3
01422 YU=LOG(UP/UM)/2
01423 YW=LOG(WP/WM)/2
01424 EPS2=U0**2-U3**2
01425 EPS=SQRT(EPS2)
01426 Y=W0**2-W3**2
01427 AL=AK0/TMASS
01428 C FORMFACTORS
01429 F0=2*U0/U3*( DILOGT(1-(UM*WM/(UP*WP)))- DILOGT(1-WM/WP) +
01430 $DILOGT(1-UM/UP) -2*YU+ 2*LOG(UP)*(YW+YU) ) +
01431 $1/Y* ( 2*U3*YU + (1-EPS2- 2*Y)*LOG(EPS) ) +
01432 $ 2 - 4*(U0/U3*YU -1)* LOG(2*AL)
01433 FP= YU/(2*U3)*(1 + (1-EPS2)/Y ) + LOG(EPS)/Y
01434 FM= YU/(2*U3)*(1 - (1-EPS2)/Y ) - LOG(EPS)/Y
01435 F3= EPS2*(FP+FM)/2
01436 C SCALAR PRODUCTS OF FOUR-MOMENTA
01437 QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3)
01438 QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3)
01439 XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3)
01440 TXN=TMASS*XN(4)
01441 TXA=TMASS*XA(4)
01442 TQP=TMASS*QP(4)
01443 C DECAY DIFFERENTIAL WIDTH WITHOUT AND WITH POLARIZATION
01444 CONST3=1/(2*ALPHAI*PI)*64*GF**2
01445 IF (ITDKRC.EQ.0) CONST3=0D0
01446 XM3= -( F0* QPXN*TXA + FP*EPS2* TXN*TXA +
01447 $FM* QPXN*QPXA + F3* TMASS2*XNXA )
01448 AM3=XM3*CONST3
01449 C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY
01450 BRAK= (GV+GA)**2*TQP*XNXA+(GV-GA)**2*TXA*QPXN
01451 & -(GV**2-GA**2)*TMASS*AMNUTA*QPXA
01452 BORN= 32*(GFERMI**2/2.)*BRAK
01453 DO 5 I=1,3
01454 XM3POL(I)= -( F0* QPXN*RXA(I) + FP*EPS2* TXN*RXA(I) +
01455 $ FM* QPXN* (QPXA + (RXA(I)*TQP-TXA*RQP(I))/TMASS2 ) +
01456 $ F3* (TMASS2*XNXA +TXN*RXA(I) -RXN(I)*TXA) )
01457 AM3POL(I)=XM3POL(I)*CONST3
01458 C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY
01459 BORNPL(I)=BORN+(
01460 & (GV+GA)**2*TMASS*XNXA*QP(I)
01461 & -(GV-GA)**2*TMASS*QPXN*XA(I)
01462 & +(GV**2-GA**2)*AMNUTA*TXA*QP(I)
01463 & -(GV**2-GA**2)*AMNUTA*TQP*XA(I) )*
01464 & 32*(GFERMI**2/2.)
01465 5 HV(I)=(BORNPL(I)+AM3POL(I))/(BORN+AM3)-1.D0
01466 THB=BORN+AM3
01467 IF (THB/BORN.LT.0.1D0) THEN
01468 PRINT *, 'ERROR IN THB, THB/BORN=',THB/BORN
01469 #if defined (CLEO)
01470 THB=0.D0
01471 #else
01472 STOP
01473 #endif
01474 ENDIF
01475 RETURN
01476 END
01477 SUBROUTINE DEXPI(MODE,ISGN,POL,PPI,PNU)
01478 C ----------------------------------------------------------------------
01479 C TAU DECAY INTO PION AND TAU-NEUTRINO
01480 C IN TAU REST FRAME
01481 C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
01482 C PPI PION CHARGED
01483 C ----------------------------------------------------------------------
01484 REAL POL(4),HV(4),PNU(4),PPI(4),RN(1)
01485 CC
01486 IF(MODE.EQ.-1) THEN
01487 C ===================
01488 CALL DADMPI(-1,ISGN,HV,PPI,PNU)
01489 CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2)
01490
01491 ELSEIF(MODE.EQ. 0) THEN
01492 C =======================
01493 300 CONTINUE
01494 CALL DADMPI( 0,ISGN,HV,PPI,PNU)
01495 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01496 CC CALL HFILL(815,WT)
01497 CALL RANMAR(RN,1)
01498 IF(RN(1).GT.WT) GOTO 300
01499 C
01500 ELSEIF(MODE.EQ. 1) THEN
01501 C =======================
01502 CALL DADMPI( 1,ISGN,HV,PPI,PNU)
01503 CC CALL HPRINT(815)
01504 ENDIF
01505 C =====
01506 RETURN
01507 END
01508 SUBROUTINE DADMPI(MODE,ISGN,HV,PPI,PNU)
01509 C ----------------------------------------------------------------------
01510 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01511 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01512 * ,AMK,AMKZ,AMKST,GAMKST
01513 C
01514 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01515 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01516 * ,AMK,AMKZ,AMKST,GAMKST
01517 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01518 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01519 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01520 REAL*4 GAMPMC ,GAMPER
01521 COMMON / INOUT / INUT,IOUT
01522 REAL PPI(4),PNU(4),HV(4)
01523 DATA PI /3.141592653589793238462643/
01524 C
01525 IF(MODE.EQ.-1) THEN
01526 C ===================
01527 NEVTOT=0
01528 ELSEIF(MODE.EQ. 0) THEN
01529 C =======================
01530 NEVTOT=NEVTOT+1
01531 EPI= (AMTAU**2+AMPI**2-AMNUTA**2)/(2*AMTAU)
01532 ENU= (AMTAU**2-AMPI**2+AMNUTA**2)/(2*AMTAU)
01533 XPI= SQRT(EPI**2-AMPI**2)
01534 C PI MOMENTUM
01535 CALL SPHERA(XPI,PPI)
01536 PPI(4)=EPI
01537 C TAU-NEUTRINO MOMENTUM
01538 DO 30 I=1,3
01539 30 PNU(I)=-PPI(I)
01540 PNU(4)=ENU
01541 PXQ=AMTAU*EPI
01542 PXN=AMTAU*ENU
01543 QXN=PPI(4)*PNU(4)-PPI(1)*PNU(1)-PPI(2)*PNU(2)-PPI(3)*PNU(3)
01544 BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMPI**2*PXN)
01545 & +(GV**2-GA**2)*AMTAU*AMNUTA*AMPI**2
01546 DO 40 I=1,3
01547 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PPI(I)*QXN-PNU(I)*AMPI**2)/BRAK
01548 HV(4)=1
01549 C
01550 ELSEIF(MODE.EQ. 1) THEN
01551 C =======================
01552 IF(NEVTOT.EQ.0) RETURN
01553 FPI=0.1284
01554 C GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3*
01555 C * (BRAK/AMTAU**4)**2
01556 CZW 7.02.93 here was an error affecting non standard model
01557 C configurations only
01558 GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3*
01559 $ (BRAK/AMTAU**4)*
01560 $ SQRT((AMTAU**2-AMPI**2-AMNUTA**2)**2
01561 $ -4*AMPI**2*AMNUTA**2 )/AMTAU**2
01562 ERROR=0
01563 RAT=GAMM/GAMEL
01564 WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR
01565 GAMPMC(3)=RAT
01566 GAMPER(3)=ERROR
01567 CAM NEVDEC(3)=NEVTOT
01568 ENDIF
01569 C =====
01570 RETURN
01571 7010 FORMAT(///1X,15(5H*****)
01572 $ /,' *', 25X,'******** DADMPI FINAL REPORT ******** ',9X,1H*
01573 $ /,' *',I20 ,5X,'NEVTOT = NO. OF PI DECAYS TOTAL ',9X,1H*
01574 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9X,1H*
01575 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01576 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H*
01577 $ /,1X,15(5H*****)/)
01578 END
01579 SUBROUTINE DEXRO(MODE,ISGN,POL,PNU,PRO,PIC,PIZ)
01580 C ----------------------------------------------------------------------
01581 C THIS SIMULATES TAU DECAY IN TAU REST FRAME
01582 C INTO NU RHO, NEXT RHO DECAYS INTO PION PAIR.
01583 C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
01584 C PRO RHO
01585 C PIC PION CHARGED
01586 C PIZ PION ZERO
01587 C ----------------------------------------------------------------------
01588 COMMON / INOUT / INUT,IOUT
01589 REAL POL(4),HV(4),PRO(4),PNU(4),PIC(4),PIZ(4),RN(1)
01590 DATA IWARM/0/
01591 C
01592 IF(MODE.EQ.-1) THEN
01593 C ===================
01594 IWARM=1
01595 CALL DADMRO( -1,ISGN,HV,PNU,PRO,PIC,PIZ)
01596 CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXRO $',100,0,2)
01597 CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXRO $',100,0,2)
01598 C
01599 ELSEIF(MODE.EQ. 0) THEN
01600 C =======================
01601 300 CONTINUE
01602 IF(IWARM.EQ.0) GOTO 902
01603 CALL DADMRO( 0,ISGN,HV,PNU,PRO,PIC,PIZ)
01604 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01605 CC CALL HFILL(816,WT)
01606 CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2
01607 CC CALL HFILL(916,XHELP)
01608 CALL RANMAR(RN,1)
01609 IF(RN(1).GT.WT) GOTO 300
01610 C
01611 ELSEIF(MODE.EQ. 1) THEN
01612 C =======================
01613 CALL DADMRO( 1,ISGN,HV,PNU,PRO,PIC,PIZ)
01614 CC CALL HPRINT(816)
01615 CC CALL HPRINT(916)
01616 ENDIF
01617 C =====
01618 RETURN
01619 902 WRITE(IOUT, 9020)
01620 9020 FORMAT(' ----- DEXRO: LACK OF INITIALISATION')
01621 STOP
01622 END
01623 SUBROUTINE DADMRO(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ)
01624 C ----------------------------------------------------------------------
01625 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01626 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01627 * ,AMK,AMKZ,AMKST,GAMKST
01628 C
01629 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01630 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01631 * ,AMK,AMKZ,AMKST,GAMKST
01632 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01633 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01634 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01635 REAL*4 GAMPMC ,GAMPER
01636 COMMON / INOUT / INUT,IOUT
01637 REAL HHV(4)
01638 REAL HV(4),PRO(4),PNU(4),PIC(4),PIZ(4)
01639 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4)
01640 REAL*4 RRR(3)
01641 REAL*8 SWT, SSWT
01642 DATA PI /3.141592653589793238462643/
01643 DATA IWARM/0/
01644 C
01645 IF(MODE.EQ.-1) THEN
01646 C ===================
01647 IWARM=1
01648 NEVRAW=0
01649 NEVACC=0
01650 NEVOVR=0
01651 SWT=0
01652 SSWT=0
01653 WTMAX=1E-20
01654 DO 15 I=1,500
01655 CALL DPHSRO(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4)
01656 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
01657 15 CONTINUE
01658 CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMRO $',100,0,2)
01659 CC PRINT 7003,WTMAX
01660 C
01661 ELSEIF(MODE.EQ. 0) THEN
01662 C =======================
01663 300 CONTINUE
01664 IF(IWARM.EQ.0) GOTO 902
01665 CALL DPHSRO(WT,HV,PNU,PRO,PIC,PIZ)
01666 CC CALL HFILL(801,WT/WTMAX)
01667 NEVRAW=NEVRAW+1
01668 SWT=SWT+WT
01669 SSWT=SSWT+WT**2
01670 CALL RANMAR(RRR,3)
01671 RN=RRR(1)
01672 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
01673 IF(RN*WTMAX.GT.WT) GOTO 300
01674 C ROTATIONS TO BASIC TAU REST FRAME
01675 COSTHE=-1.+2.*RRR(2)
01676 THET=ACOS(COSTHE)
01677 PHI =2*PI*RRR(3)
01678 CALL ROTOR2(THET,PNU,PNU)
01679 CALL ROTOR3( PHI,PNU,PNU)
01680 CALL ROTOR2(THET,PRO,PRO)
01681 CALL ROTOR3( PHI,PRO,PRO)
01682 CALL ROTOR2(THET,PIC,PIC)
01683 CALL ROTOR3( PHI,PIC,PIC)
01684 CALL ROTOR2(THET,PIZ,PIZ)
01685 CALL ROTOR3( PHI,PIZ,PIZ)
01686 CALL ROTOR2(THET,HV,HV)
01687 CALL ROTOR3( PHI,HV,HV)
01688 DO 44 I=1,3
01689 44 HHV(I)=-ISGN*HV(I)
01690 NEVACC=NEVACC+1
01691 C
01692 ELSEIF(MODE.EQ. 1) THEN
01693 C =======================
01694 IF(NEVRAW.EQ.0) RETURN
01695 PARGAM=SWT/FLOAT(NEVRAW+1)
01696 ERROR=0
01697 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
01698 RAT=PARGAM/GAMEL
01699 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
01700 CC CALL HPRINT(801)
01701 GAMPMC(4)=RAT
01702 GAMPER(4)=ERROR
01703 CAM NEVDEC(4)=NEVACC
01704 ENDIF
01705 C =====
01706 RETURN
01707 7003 FORMAT(///1X,15(5H*****)
01708 $ /,' *', 25X,'******** DADMRO INITIALISATION ********',9X,1H*
01709 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
01710 $ /,1X,15(5H*****)/)
01711 7010 FORMAT(///1X,15(5H*****)
01712 $ /,' *', 25X,'******** DADMRO FINAL REPORT ******** ',9X,1H*
01713 $ /,' *',I20 ,5X,'NEVRAW = NO. OF RHO DECAYS TOTAL ',9X,1H*
01714 $ /,' *',I20 ,5X,'NEVACC = NO. OF RHO DECS. ACCEPTED ',9X,1H*
01715 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
01716 $ /,' *',E20.5,5X,'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9X,1H*
01717 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01718 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
01719 $ /,1X,15(5H*****)/)
01720 902 WRITE(IOUT, 9020)
01721 9020 FORMAT(' ----- DADMRO: LACK OF INITIALISATION')
01722 STOP
01723 END
01724 SUBROUTINE DPHSRO(DGAMT,HV,PN,PR,PIC,PIZ)
01725 C ----------------------------------------------------------------------
01726 C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH
01727 C Z-AXIS ALONG RHO MOMENTUM
01728 C ----------------------------------------------------------------------
01729 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01730 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01731 * ,AMK,AMKZ,AMKST,GAMKST
01732 C
01733 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01734 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01735 * ,AMK,AMKZ,AMKST,GAMKST
01736 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01737 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01738 REAL HV(4),PT(4),PN(4),PR(4),PIC(4),PIZ(4),QQ(4),RR1(1)
01739 DATA PI /3.141592653589793238462643/
01740 DATA ICONT /0/
01741 C
01742 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
01743 PHSPAC=1./2**11/PI**5
01744 C TAU MOMENTUM
01745 PT(1)=0.
01746 PT(2)=0.
01747 PT(3)=0.
01748 PT(4)=AMTAU
01749 C MASS OF (REAL/VIRTUAL) RHO
01750 AMS1=(AMPI+AMPIZ)**2
01751 AMS2=(AMTAU-AMNUTA)**2
01752 C FLAT PHASE SPACE
01753 #if defined (ALEPH)
01754 C AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
01755 #else
01756 C AMX2=AMS1+ RR1*(AMS2-AMS1)
01757 #endif
01758 C AMX=SQRT(AMX2)
01759 C PHSPAC=PHSPAC*(AMS2-AMS1)
01760 C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE
01761 ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO)
01762 ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO)
01763 CAM
01764 100 CONTINUE
01765 CALL RANMAR(RR1,1)
01766 ALP=ALP1+RR1(1)*(ALP2-ALP1)
01767 AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP)
01768 AMX=SQRT(AMX2)
01769 IF(AMX.LT.2.*AMPI) GO TO 100
01770 CAM
01771 PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO)
01772 PHSPAC=PHSPAC*(ALP2-ALP1)
01773 C
01774 C TAU-NEUTRINO MOMENTUM
01775 PN(1)=0
01776 PN(2)=0
01777 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
01778 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
01779 C RHO MOMENTUM
01780 PR(1)=0
01781 PR(2)=0
01782 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
01783 PR(3)=-PN(3)
01784 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU)
01785 C
01786 CAM
01787 ENQ1=(AMX2+AMPI**2-AMPIZ**2)/(2.*AMX)
01788 ENQ2=(AMX2-AMPI**2+AMPIZ**2)/(2.*AMX)
01789 PPPI=SQRT((ENQ1-AMPI)*(ENQ1+AMPI))
01790 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
01791 C CHARGED PI MOMENTUM IN RHO REST FRAME
01792 CALL SPHERA(PPPI,PIC)
01793 PIC(4)=ENQ1
01794 C NEUTRAL PI MOMENTUM IN RHO REST FRAME
01795 DO 20 I=1,3
01796 20 PIZ(I)=-PIC(I)
01797 PIZ(4)=ENQ2
01798 EXE=(PR(4)+PR(3))/AMX
01799 C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME
01800 CALL BOSTR3(EXE,PIC,PIC)
01801 CALL BOSTR3(EXE,PIZ,PIZ)
01802 DO 30 I=1,4
01803 30 QQ(I)=PIC(I)-PIZ(I)
01804 C AMPLITUDE
01805 PRODPQ=PT(4)*QQ(4)
01806 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
01807 PRODPN=PT(4)*PN(4)
01808 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
01809 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
01810 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
01811 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRHO(AMX)
01812 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
01813 DO 40 I=1,3
01814 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
01815 RETURN
01816 END
01817 SUBROUTINE DEXAA(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01818 C ----------------------------------------------------------------------
01819 * THIS SIMULATES TAU DECAY IN TAU REST FRAME
01820 * INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI.
01821 * OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
01822 * PAA A1
01823 * PIM1 PION MINUS (OR PI0) 1 (FOR TAU MINUS)
01824 * PIM2 PION MINUS (OR PI0) 2
01825 * PIPL PION PLUS (OR PI-)
01826 * (PIPL,PIM1) FORM A RHO
01827 C ----------------------------------------------------------------------
01828 COMMON / INOUT / INUT,IOUT
01829 REAL POL(4),HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4),RN(1)
01830 DATA IWARM/0/
01831 C
01832 IF(MODE.EQ.-1) THEN
01833 C ===================
01834 IWARM=1
01835 CALL DADMAA( -1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01836 CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXAA $',100,-2.,2.)
01837 C
01838 ELSEIF(MODE.EQ. 0) THEN
01839 * =======================
01840 300 CONTINUE
01841 IF(IWARM.EQ.0) GOTO 902
01842 CALL DADMAA( 0,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01843 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
01844 CC CALL HFILL(816,WT)
01845 CALL RANMAR(RN,1)
01846 IF(RN(1).GT.WT) GOTO 300
01847 C
01848 ELSEIF(MODE.EQ. 1) THEN
01849 * =======================
01850 CALL DADMAA( 1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01851 CC CALL HPRINT(816)
01852 ENDIF
01853 C =====
01854 RETURN
01855 902 WRITE(IOUT, 9020)
01856 9020 FORMAT(' ----- DEXAA: LACK OF INITIALISATION')
01857 STOP
01858 END
01859 SUBROUTINE DADMAA(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01860 C ----------------------------------------------------------------------
01861 * A1 DECAY UNWEIGHTED EVENTS
01862 C ----------------------------------------------------------------------
01863 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01864 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01865 * ,AMK,AMKZ,AMKST,GAMKST
01866 C
01867 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01868 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01869 * ,AMK,AMKZ,AMKST,GAMKST
01870 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01871 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
01872 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
01873 REAL*4 GAMPMC ,GAMPER
01874 COMMON / INOUT / INUT,IOUT
01875 REAL HHV(4)
01876 REAL HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4)
01877 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4)
01878 REAL*4 RRR(3)
01879 REAL*8 SWT, SSWT
01880 DATA PI /3.141592653589793238462643/
01881 DATA IWARM/0/
01882 C
01883 IF(MODE.EQ.-1) THEN
01884 C ===================
01885 IWARM=1
01886 NEVRAW=0
01887 NEVACC=0
01888 NEVOVR=0
01889 SWT=0
01890 SSWT=0
01891 WTMAX=1E-20
01892 DO 15 I=1,500
01893 CALL DPHSAA(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JAA)
01894 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
01895 15 CONTINUE
01896 CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMAA $',100,0,2)
01897 C
01898 ELSEIF(MODE.EQ. 0) THEN
01899 C =======================
01900 300 CONTINUE
01901 IF(IWARM.EQ.0) GOTO 902
01902 CALL DPHSAA(WT,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
01903 CC CALL HFILL(801,WT/WTMAX)
01904 NEVRAW=NEVRAW+1
01905 SWT=SWT+WT
01906 #if defined (ALEPH)
01907 SSWT=SSWT+WT**2
01908 #else
01909 ccM.S.>>>>>>
01910 cc SSWT=SSWT+WT**2
01911 SSWT=SSWT+dble(WT)**2
01912 ccM.S.<<<<<<
01913 #endif
01914 CALL RANMAR(RRR,3)
01915 RN=RRR(1)
01916 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
01917 IF(RN*WTMAX.GT.WT) GOTO 300
01918 C ROTATIONS TO BASIC TAU REST FRAME
01919 COSTHE=-1.+2.*RRR(2)
01920 THET=ACOS(COSTHE)
01921 PHI =2*PI*RRR(3)
01922 CALL ROTPOL(THET,PHI,PNU)
01923 CALL ROTPOL(THET,PHI,PAA)
01924 CALL ROTPOL(THET,PHI,PIM1)
01925 CALL ROTPOL(THET,PHI,PIM2)
01926 CALL ROTPOL(THET,PHI,PIPL)
01927 CALL ROTPOL(THET,PHI,HV)
01928 DO 44 I=1,3
01929 44 HHV(I)=-ISGN*HV(I)
01930 NEVACC=NEVACC+1
01931 C
01932 ELSEIF(MODE.EQ. 1) THEN
01933 C =======================
01934 IF(NEVRAW.EQ.0) RETURN
01935 PARGAM=SWT/FLOAT(NEVRAW+1)
01936 ERROR=0
01937 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
01938 RAT=PARGAM/GAMEL
01939 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
01940 CC CALL HPRINT(801)
01941 GAMPMC(5)=RAT
01942 GAMPER(5)=ERROR
01943 CAM NEVDEC(5)=NEVACC
01944 ENDIF
01945 C =====
01946 RETURN
01947 7003 FORMAT(///1X,15(5H*****)
01948 $ /,' *', 25X,'******** DADMAA INITIALISATION ********',9X,1H*
01949 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
01950 $ /,1X,15(5H*****)/)
01951 7010 FORMAT(///1X,15(5H*****)
01952 $ /,' *', 25X,'******** DADMAA FINAL REPORT ******** ',9X,1H*
01953 $ /,' *',I20 ,5X,'NEVRAW = NO. OF A1 DECAYS TOTAL ',9X,1H*
01954 $ /,' *',I20 ,5X,'NEVACC = NO. OF A1 DECS. ACCEPTED ',9X,1H*
01955 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
01956 $ /,' *',E20.5,5X,'PARTIAL WTDTH (A1 DECAY) IN GEV UNITS ',9X,1H*
01957 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
01958 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
01959 $ /,1X,15(5H*****)/)
01960 902 WRITE(IOUT, 9020)
01961 9020 FORMAT(' ----- DADMAA: LACK OF INITIALISATION')
01962 STOP
01963 END
01964 SUBROUTINE DPHSAA(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA)
01965 C ----------------------------------------------------------------------
01966 * IT SIMULATES A1 DECAY IN TAU REST FRAME WITH
01967 * Z-AXIS ALONG A1 MOMENTUM
01968 C ----------------------------------------------------------------------
01969 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01970 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01971 * ,AMK,AMKZ,AMKST,GAMKST
01972 C
01973 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
01974 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
01975 * ,AMK,AMKZ,AMKST,GAMKST
01976 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
01977 REAL*4 BRA1,BRK0,BRK0B,BRKS
01978 REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
01979
01980
01981 REAL*4 RRR(1)
01982 C MATRIX ELEMENT NUMBER:
01983 MNUM=0
01984 C TYPE OF THE GENERATION:
01985 KEYT=1
01986 CALL RANMAR(RRR,1)
01987 RMOD=RRR(1)
01988 IF (RMOD.LT.BRA1) THEN
01989 JAA=1
01990 AMP1=AMPI
01991 AMP2=AMPI
01992 AMP3=AMPI
01993 ELSE
01994 JAA=2
01995 AMP1=AMPIZ
01996 AMP2=AMPIZ
01997 AMP3=AMPI
01998 ENDIF
01999 CALL
02000 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM)
02001 END
02002 SUBROUTINE DEXKK(MODE,ISGN,POL,PKK,PNU)
02003 C ----------------------------------------------------------------------
02004 C TAU DECAY INTO KAON AND TAU-NEUTRINO
02005 C IN TAU REST FRAME
02006 C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
02007 C PKK KAON CHARGED
02008 C ----------------------------------------------------------------------
02009 REAL POL(4),HV(4),PNU(4),PKK(4),RN(1)
02010 C
02011 IF(MODE.EQ.-1) THEN
02012 C ===================
02013 CALL DADMKK(-1,ISGN,HV,PKK,PNU)
02014 CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2)
02015 C
02016 ELSEIF(MODE.EQ. 0) THEN
02017 C =======================
02018 300 CONTINUE
02019 CALL DADMKK( 0,ISGN,HV,PKK,PNU)
02020 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
02021 CC CALL HFILL(815,WT)
02022 CALL RANMAR(RN,1)
02023 IF(RN(1).GT.WT) GOTO 300
02024 C
02025 ELSEIF(MODE.EQ. 1) THEN
02026 C =======================
02027 CALL DADMKK( 1,ISGN,HV,PKK,PNU)
02028 CC CALL HPRINT(815)
02029 ENDIF
02030 C =====
02031 RETURN
02032 END
02033 SUBROUTINE DADMKK(MODE,ISGN,HV,PKK,PNU)
02034 C ----------------------------------------------------------------------
02035 C FZ
02036 #if defined (ALEPH)
02037 #else
02038 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02039 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02040 #endif
02041 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02042 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02043 * ,AMK,AMKZ,AMKST,GAMKST
02044 C
02045 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02046 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02047 * ,AMK,AMKZ,AMKST,GAMKST
02048 #if defined (ALEPH)
02049 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02050 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02051 #else
02052 #endif
02053 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
02054 REAL*4 GAMPMC ,GAMPER
02055 COMMON / INOUT / INUT,IOUT
02056 REAL PKK(4),PNU(4),HV(4)
02057 DATA PI /3.141592653589793238462643/
02058 C
02059 IF(MODE.EQ.-1) THEN
02060 C ===================
02061 NEVTOT=0
02062 ELSEIF(MODE.EQ. 0) THEN
02063 C =======================
02064 NEVTOT=NEVTOT+1
02065 EKK= (AMTAU**2+AMK**2-AMNUTA**2)/(2*AMTAU)
02066 ENU= (AMTAU**2-AMK**2+AMNUTA**2)/(2*AMTAU)
02067 XKK= SQRT(EKK**2-AMK**2)
02068 C K MOMENTUM
02069 CALL SPHERA(XKK,PKK)
02070 PKK(4)=EKK
02071 C TAU-NEUTRINO MOMENTUM
02072 DO 30 I=1,3
02073 30 PNU(I)=-PKK(I)
02074 PNU(4)=ENU
02075 PXQ=AMTAU*EKK
02076 PXN=AMTAU*ENU
02077 QXN=PKK(4)*PNU(4)-PKK(1)*PNU(1)-PKK(2)*PNU(2)-PKK(3)*PNU(3)
02078 BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMK**2*PXN)
02079 & +(GV**2-GA**2)*AMTAU*AMNUTA*AMK**2
02080 DO 40 I=1,3
02081 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PKK(I)*QXN-PNU(I)*AMK**2)/BRAK
02082 HV(4)=1
02083 C
02084 ELSEIF(MODE.EQ. 1) THEN
02085 C =======================
02086 IF(NEVTOT.EQ.0) RETURN
02087 FKK=0.0354
02088 CFZ THERE WAS BRAK/AMTAU**4 BEFORE
02089 C GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3*
02090 C * (BRAK/AMTAU**4)**2
02091 CZW 7.02.93 here was an error affecting non standard model
02092 C configurations only
02093 GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3*
02094 $ (BRAK/AMTAU**4)*
02095 $ SQRT((AMTAU**2-AMK**2-AMNUTA**2)**2
02096 $ -4*AMK**2*AMNUTA**2 )/AMTAU**2
02097 ERROR=0
02098
02099 ERROR=0
02100 RAT=GAMM/GAMEL
02101 WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR
02102 GAMPMC(6)=RAT
02103 GAMPER(6)=ERROR
02104 CAM NEVDEC(6)=NEVTOT
02105 ENDIF
02106 C =====
02107 RETURN
02108 7010 FORMAT(///1X,15(5H*****)
02109 $ /,' *', 25X,'******** DADMKK FINAL REPORT ********',9X,1H*
02110 $ /,' *',I20 ,5X,'NEVTOT = NO. OF K DECAYS TOTAL ',9X,1H*,
02111 $ /,' *',E20.5,5X,'PARTIAL WTDTH ( K DECAY) IN GEV UNITS ',9X,1H*,
02112 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
02113 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H*
02114 $ /,1X,15(5H*****)/)
02115 END
02116 SUBROUTINE DEXKS(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST)
02117 C ----------------------------------------------------------------------
02118 C THIS SIMULATES TAU DECAY IN TAU REST FRAME
02119 C INTO NU K*, THEN K* DECAYS INTO PI0,K+-(JKST=20)
02120 C OR PI+-,K0(JKST=10).
02121 C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
02122 C PKS K* CHARGED
02123 C PK0 K ZERO
02124 C PKC K CHARGED
02125 C PIC PION CHARGED
02126 C PIZ PION ZERO
02127 C ----------------------------------------------------------------------
02128 COMMON / INOUT / INUT,IOUT
02129 REAL POL(4),HV(4),PKS(4),PNU(4),PKK(4),PPI(4),RN(1)
02130 DATA IWARM/0/
02131 C
02132 IF(MODE.EQ.-1) THEN
02133 C ===================
02134 IWARM=1
02135 CFZ INITIALISATION DONE WITH THE GHARGED PION NEUTRAL KAON MODE(JKST=10
02136 CALL DADMKS( -1,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02137 CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXKS $',100,0,2)
02138 CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXKS $',100,0,2)
02139 C
02140 ELSEIF(MODE.EQ. 0) THEN
02141 C =======================
02142 300 CONTINUE
02143 IF(IWARM.EQ.0) GOTO 902
02144 CALL DADMKS( 0,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02145 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
02146 CC CALL HFILL(816,WT)
02147 CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2
02148 CC CALL HFILL(916,XHELP)
02149 CALL RANMAR(RN,1)
02150 IF(RN(1).GT.WT) GOTO 300
02151 C
02152 ELSEIF(MODE.EQ. 1) THEN
02153 C ======================================
02154 CALL DADMKS( 1,ISGN,HV,PNU,PKS,PKK,PPI,JKST)
02155 CC CALL HPRINT(816)
02156 CC CALL HPRINT(916)
02157 ENDIF
02158 C =====
02159 RETURN
02160 902 WRITE(IOUT, 9020)
02161 9020 FORMAT(' ----- DEXKS: LACK OF INITIALISATION')
02162 STOP
02163 END
02164 SUBROUTINE DADMKS(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST)
02165 C ----------------------------------------------------------------------
02166 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02167 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02168 * ,AMK,AMKZ,AMKST,GAMKST
02169 C
02170 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02171 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02172 * ,AMK,AMKZ,AMKST,GAMKST
02173 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02174 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02175 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
02176 REAL*4 GAMPMC ,GAMPER
02177 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
02178 REAL*4 BRA1,BRK0,BRK0B,BRKS
02179 COMMON / INOUT / INUT,IOUT
02180 REAL HHV(4)
02181 REAL HV(4),PKS(4),PNU(4),PKK(4),PPI(4)
02182 REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4)
02183 REAL*4 RRR(3),RMOD(1)
02184 REAL*8 SWT, SSWT
02185 DATA PI /3.141592653589793238462643/
02186 DATA IWARM/0/
02187 C
02188 IF(MODE.EQ.-1) THEN
02189 C ===================
02190 IWARM=1
02191 NEVRAW=0
02192 NEVACC=0
02193 NEVOVR=0
02194 SWT=0
02195 SSWT=0
02196 WTMAX=1E-20
02197 DO 15 I=1,500
02198 C THE INITIALISATION IS DONE WITH THE 66.7% MODE
02199 JKST=10
02200 CALL DPHSKS(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,JKST)
02201 IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2
02202 15 CONTINUE
02203 CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMKS $',100,0,2)
02204 CC PRINT 7003,WTMAX
02205 CC CALL HBOOK1(112,'-------- K* MASS -------- $',100,0.,2.)
02206 ELSEIF(MODE.EQ. 0) THEN
02207 C =====================================
02208 IF(IWARM.EQ.0) GOTO 902
02209 C HERE WE CHOOSE RANDOMLY BETWEEN K0 PI+_ (66.7%)
02210 C AND K+_ PI0 (33.3%)
02211 DEC1=BRKS
02212 400 CONTINUE
02213 CALL RANMAR(RMOD,1)
02214 IF(RMOD(1).LT.DEC1) THEN
02215 JKST=10
02216 ELSE
02217 JKST=20
02218 ENDIF
02219 CALL DPHSKS(WT,HV,PNU,PKS,PKK,PPI,JKST)
02220 CALL RANMAR(RRR,3)
02221 RN=RRR(1)
02222 IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1
02223 NEVRAW=NEVRAW+1
02224 SWT=SWT+WT
02225 SSWT=SSWT+WT**2
02226 IF(RN*WTMAX.GT.WT) GOTO 400
02227 C ROTATIONS TO BASIC TAU REST FRAME
02228 COSTHE=-1.+2.*RRR(2)
02229 THET=ACOS(COSTHE)
02230 PHI =2*PI*RRR(3)
02231 CALL ROTOR2(THET,PNU,PNU)
02232 CALL ROTOR3( PHI,PNU,PNU)
02233 CALL ROTOR2(THET,PKS,PKS)
02234 CALL ROTOR3( PHI,PKS,PKS)
02235 CALL ROTOR2(THET,PKK,PKK)
02236 CALL ROTOR3(PHI,PKK,PKK)
02237 CALL ROTOR2(THET,PPI,PPI)
02238 CALL ROTOR3( PHI,PPI,PPI)
02239 CALL ROTOR2(THET,HV,HV)
02240 CALL ROTOR3( PHI,HV,HV)
02241 DO 44 I=1,3
02242 44 HHV(I)=-ISGN*HV(I)
02243 NEVACC=NEVACC+1
02244 C
02245 ELSEIF(MODE.EQ. 1) THEN
02246 C =======================
02247 IF(NEVRAW.EQ.0) RETURN
02248 PARGAM=SWT/FLOAT(NEVRAW+1)
02249 ERROR=0
02250 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW))
02251 RAT=PARGAM/GAMEL
02252 WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR
02253 CC CALL HPRINT(801)
02254 GAMPMC(7)=RAT
02255 GAMPER(7)=ERROR
02256 CAM NEVDEC(7)=NEVACC
02257 ENDIF
02258 C =====
02259 RETURN
02260 7003 FORMAT(///1X,15(5H*****)
02261 $ /,' *', 25X,'******** DADMKS INITIALISATION ********',9X,1H*
02262 $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*
02263 $ /,1X,15(5H*****)/)
02264 7010 FORMAT(///1X,15(5H*****)
02265 $ /,' *', 25X,'******** DADMKS FINAL REPORT ********',9X,1H*
02266 $ /,' *',I20 ,5X,'NEVRAW = NO. OF K* DECAYS TOTAL ',9X,1H*,
02267 $ /,' *',I20 ,5X,'NEVACC = NO. OF K* DECS. ACCEPTED ',9X,1H*,
02268 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
02269 $ /,' *',E20.5,5X,'PARTIAL WTDTH (K* DECAY) IN GEV UNITS ',9X,1H*,
02270 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
02271 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
02272 $ /,1X,15(5H*****)/)
02273 902 WRITE(IOUT, 9020)
02274 9020 FORMAT(' ----- DADMKS: LACK OF INITIALISATION')
02275 STOP
02276 END
02277 SUBROUTINE DPHSKS(DGAMT,HV,PN,PKS,PKK,PPI,JKST)
02278 C ----------------------------------------------------------------------
02279 C IT SIMULATES KAON* DECAY IN TAU REST FRAME WITH
02280 C Z-AXIS ALONG KAON* MOMENTUM
02281 C JKST=10 FOR K* --->K0 + PI+-
02282 C JKST=20 FOR K* --->K+- + PI0
02283 C ----------------------------------------------------------------------
02284 #if defined (ALEPH)
02285 #else
02286 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02287 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02288 #endif
02289 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02290 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02291 * ,AMK,AMKZ,AMKST,GAMKST
02292 C
02293 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02294 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02295 * ,AMK,AMKZ,AMKST,GAMKST
02296 #if defined (ALEPH)
02297 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02298 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02299 #else
02300 #endif
02301 REAL HV(4),PT(4),PN(4),PKS(4),PKK(4),PPI(4),QQ(4),RR1(1)
02302 #if defined (ALEPH)
02303 cam COMPLEX BWIGS
02304 COMPLEX BWIGM
02305 #else
02306 COMPLEX BWIGS
02307 #endif
02308 DATA PI /3.141592653589793238462643/
02309 C
02310 DATA ICONT /0/
02311 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
02312 PHSPAC=1./2**11/PI**5
02313 C TAU MOMENTUM
02314 PT(1)=0.
02315 PT(2)=0.
02316 PT(3)=0.
02317 PT(4)=AMTAU
02318 CALL RANMAR(RR1,1)
02319 C HERE BEGIN THE K0,PI+_ DECAY
02320 IF(JKST.EQ.10)THEN
02321 C ==================
02322 C MASS OF (REAL/VIRTUAL) K*
02323 AMS1=(AMPI+AMKZ)**2
02324 AMS2=(AMTAU-AMNUTA)**2
02325 C FLAT PHASE SPACE
02326 C AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
02327 C AMX=SQRT(AMX2)
02328 C PHSPAC=PHSPAC*(AMS2-AMS1)
02329 C PHASE SPACE WITH SAMPLING FOR K* RESONANCE
02330 ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST)
02331 ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST)
02332 ALP=ALP1+RR1(1)*(ALP2-ALP1)
02333 AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP)
02334 AMX=SQRT(AMX2)
02335 PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2)
02336 & /(AMKST*GAMKST)
02337 PHSPAC=PHSPAC*(ALP2-ALP1)
02338 C
02339 C TAU-NEUTRINO MOMENTUM
02340 PN(1)=0
02341 PN(2)=0
02342 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
02343 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02344 C
02345 C K* MOMENTUM
02346 PKS(1)=0
02347 PKS(2)=0
02348 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
02349 PKS(3)=-PN(3)
02350 PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU)
02351 C
02352 CAM
02353 ENPI=( AMX**2+AMPI**2-AMKZ**2 ) / ( 2*AMX )
02354 PPPI=SQRT((ENPI-AMPI)*(ENPI+AMPI))
02355 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
02356 C CHARGED PI MOMENTUM IN KAON* REST FRAME
02357 CALL SPHERA(PPPI,PPI)
02358 PPI(4)=ENPI
02359 C NEUTRAL KAON MOMENTUM IN K* REST FRAME
02360 DO 20 I=1,3
02361 20 PKK(I)=-PPI(I)
02362 PKK(4)=( AMX**2+AMKZ**2-AMPI**2 ) / ( 2*AMX )
02363 EXE=(PKS(4)+PKS(3))/AMX
02364 C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME
02365 CALL BOSTR3(EXE,PPI,PPI)
02366 CALL BOSTR3(EXE,PKK,PKK)
02367 DO 30 I=1,4
02368 30 QQ(I)=PPI(I)-PKK(I)
02369 C QQ transverse to PKS
02370 PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1)
02371 QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1)
02372 DO 31 I=1,4
02373 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD
02374 C AMPLITUDE
02375 PRODPQ=PT(4)*QQ(4)
02376 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
02377 PRODPN=PT(4)*PN(4)
02378 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
02379 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
02380 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
02381 C A SIMPLE BREIT-WIGNER IS CHOSEN FOR K* RESONANCE
02382 #if defined (ALEPH)
02383 cam FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02384 FKS=CABS(BWIGM(AMX2,AMKST,GAMKST,AMPI,AMKZ))**2
02385 #else
02386 FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02387 #endif
02388 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS
02389 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
02390 DO 40 I=1,3
02391 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
02392 C
02393 C HERE BEGIN THE K+-,PI0 DECAY
02394 ELSEIF(JKST.EQ.20)THEN
02395 C ======================
02396 C MASS OF (REAL/VIRTUAL) K*
02397 AMS1=(AMPIZ+AMK)**2
02398 AMS2=(AMTAU-AMNUTA)**2
02399 C FLAT PHASE SPACE
02400 #if defined (ALEPH)
02401 C AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
02402 #else
02403 C AMX2=AMS1+ RR1*(AMS2-AMS1)
02404 #endif
02405 C AMX=SQRT(AMX2)
02406 C PHSPAC=PHSPAC*(AMS2-AMS1)
02407 C PHASE SPACE WITH SAMPLING FOR K* RESONANCE
02408 ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST)
02409 ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST)
02410 ALP=ALP1+RR1(1)*(ALP2-ALP1)
02411 AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP)
02412 AMX=SQRT(AMX2)
02413 PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2)
02414 & /(AMKST*GAMKST)
02415 PHSPAC=PHSPAC*(ALP2-ALP1)
02416 C
02417 C TAU-NEUTRINO MOMENTUM
02418 PN(1)=0
02419 PN(2)=0
02420 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
02421 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02422 C KAON* MOMENTUM
02423 PKS(1)=0
02424 PKS(2)=0
02425 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
02426 PKS(3)=-PN(3)
02427 PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU)
02428 C
02429 CAM
02430 ENPI=( AMX**2+AMPIZ**2-AMK**2 ) / ( 2*AMX )
02431 PPPI=SQRT((ENPI-AMPIZ)*(ENPI+AMPIZ))
02432 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
02433 C NEUTRAL PI MOMENTUM IN K* REST FRAME
02434 CALL SPHERA(PPPI,PPI)
02435 PPI(4)=ENPI
02436 C CHARGED KAON MOMENTUM IN K* REST FRAME
02437 DO 50 I=1,3
02438 50 PKK(I)=-PPI(I)
02439 PKK(4)=( AMX**2+AMK**2-AMPIZ**2 ) / ( 2*AMX )
02440 EXE=(PKS(4)+PKS(3))/AMX
02441 C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME
02442 CALL BOSTR3(EXE,PPI,PPI)
02443 CALL BOSTR3(EXE,PKK,PKK)
02444 DO 60 I=1,4
02445 60 QQ(I)=PKK(I)-PPI(I)
02446 C QQ transverse to PKS
02447 PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1)
02448 QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1)
02449 DO 61 I=1,4
02450 61 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD
02451 C AMPLITUDE
02452 PRODPQ=PT(4)*QQ(4)
02453 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
02454 PRODPN=PT(4)*PN(4)
02455 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
02456 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
02457 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
02458 C A SIMPLE BREIT-WIGNER IS CHOSEN FOR THE K* RESONANCE
02459 #if defined (ALEPH)
02460 cam FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02461 FKS=CABS(BWIGM(AMX2,AMKST,GAMKST,AMK,AMPIZ))**2
02462 #else
02463 FKS=CABS(BWIGS(AMX2,AMKST,GAMKST))**2
02464 #endif
02465 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS
02466 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
02467 DO 70 I=1,3
02468 70 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
02469 ENDIF
02470 RETURN
02471 END
02472
02473
02474
02475 #if defined (ALEPH)
02476 SUBROUTINE DPHNPI(DGAMT,HV,PN,PR,PPI,JNPI)
02477 #else
02478 SUBROUTINE DPHNPI(DGAMT,HVX,PNX,PRX,PPIX,JNPI)
02479 #endif
02480 C ----------------------------------------------------------------------
02481 C IT SIMULATES MULTIPI DECAY IN TAU REST FRAME WITH
02482 C Z-AXIS OPPOSITE TO NEUTRINO MOMENTUM
02483 C ----------------------------------------------------------------------
02484 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02485 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02486 * ,AMK,AMKZ,AMKST,GAMKST
02487 C
02488 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02489 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02490 * ,AMK,AMKZ,AMKST,GAMKST
02491 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02492 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
02493 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
02494 #if defined (ALEPH)
02495 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02496 & ,NAMES
02497 CHARACTER NAMES(NMODE)*31
02498 C
02499 #else
02500 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02501 & ,NAMES
02502 CHARACTER NAMES(NMODE)*31
02503 REAL*8 WETMAX(20)
02504 C
02505 #endif
02506 #if defined (ALEPH)
02507 REAL PN(4),PR(4),PPI(4,9),HV(4)
02508 REAL PV(5,9),PT(4),UE(3),BE(3)
02509 REAL*4 RRR(9),RORD(9),RR1(1)
02510 real dpar(8)
02511 C
02512 DATA PI /3.141592653589793238462643/
02513 DATA DPAR/2.,5.,15.,60.,250.,1500.,1.2E4,1.2E5/
02514 C
02515 C PAWT(A,B,C)=SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A)
02516 PAWT(A,B,C)=SQRT(MAX(0.,(A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.*A)
02517 #else
02518 REAL*8 PN(4),PR(4),PPI(4,9),HV(4)
02519 REAL*4 PNX(4),PRX(4),PPIX(4,9),HVX(4)
02520 REAL*8 PV(5,9),PT(4),UE(3),BE(3)
02521 REAL*8 PAWT,AMX,AMS1,AMS2,PA,PHS,PHSMAX,PMIN,PMAX
02522
02523 REAL*8 PHSPAC
02524
02525 REAL*8 GAM,BEP,PHI,A,B,C
02526 REAL*8 AMPIK
02527 REAL*4 RRR(9),RRX(2),RN(1),RR2(1)
02528 C
02529 DATA PI /3.141592653589793238462643/
02530 DATA WETMAX /20*1D-15/
02531 C
02532 CC-- PAWT(A,B,C)=SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A)
02533 C
02534 PAWT(A,B,C)=
02535 $ SQRT(MAX(0.D0,(A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.D0*A)
02536 #endif
02537 C
02538 AMPIK(I,J)=DCDMAS(IDFFIN(I,J))
02539 C
02540 C
02541 #if defined (ALEPH)
02542 #else
02543 IF ((JNPI.LE.0).OR.JNPI.GT.20) THEN
02544 WRITE(6,*) 'JNPI OUTSIDE RANGE DEFINED BY WETMAX; JNPI=',JNPI
02545 STOP
02546 ENDIF
02547
02548 #endif
02549 C TAU MOMENTUM
02550 PT(1)=0.
02551 PT(2)=0.
02552 PT(3)=0.
02553 PT(4)=AMTAU
02554 C
02555 #if defined (ALEPH)
02556 #else
02557 500 CONTINUE
02558 #endif
02559 C MASS OF VIRTUAL W
02560 ND=MULPIK(JNPI)
02561 PS=0.
02562 PHSPAC = 1./2.**5 /PI**2
02563 DO 4 I=1,ND
02564 4 PS =PS+AMPIK(I,JNPI)
02565 #if defined (ALEPH)
02566 CALL RANMAR(RR1,1)
02567 #else
02568 CALL RANMAR(RR2,1)
02569 #endif
02570 AMS1=PS**2
02571 AMS2=(AMTAU-AMNUTA)**2
02572 C
02573 C
02574 #if defined (ALEPH)
02575 AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
02576 #else
02577 AMX2=AMS1+ RR2(1)*(AMS2-AMS1)
02578 #endif
02579 AMX =SQRT(AMX2)
02580 AMW =AMX
02581 PHSPAC=PHSPAC * (AMS2-AMS1)
02582 C
02583 C TAU-NEUTRINO MOMENTUM
02584 PN(1)=0
02585 PN(2)=0
02586 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX2)
02587 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
02588 C W MOMENTUM
02589 PR(1)=0
02590 PR(2)=0
02591 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX2)
02592 PR(3)=-PN(3)
02593 PHSPAC=PHSPAC * (4.*PI) * (2.*PR(3)/AMTAU)
02594 C
02595 C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971)
02596 C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985)
02597 C
02598 PXQ=AMTAU*PR(4)
02599 PXN=AMTAU*PN(4)
02600 QXN=PR(4)*PN(4)-PR(1)*PN(1)-PR(2)*PN(2)-PR(3)*PN(3)
02601 #if defined (ALEPH)
02602 #else
02603 C HERE WAS AN ERROR. 20.10.91 (ZW)
02604 C BRAK=2*(GV**2+GA**2)*(2*PXQ*PXN+AMX2*QXN)
02605 #endif
02606 BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AMX2*PXN)
02607 & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AMX2
02608 CAM Assume neutrino mass=0. and sum over final polarisation
02609 C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2)
02610 AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,JNPI)
02611 DGAMT=1./(2.*AMTAU)*AMPLIT*PHSPAC
02612 C
02613 C ISOTROPIC W DECAY IN W REST FRAME
02614 #if defined (ALEPH)
02615 PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4)
02616 PHSMAX = 1./dpar(nd-2)
02617 #else
02618 PHSMAX = 1.
02619 #endif
02620 DO 200 I=1,4
02621 200 PV(I,1)=PR(I)
02622 PV(5,1)=AMW
02623 PV(5,ND)=AMPIK(ND,JNPI)
02624 C COMPUTE MAX. PHASE SPACE FACTOR
02625 PMAX=AMW-PS+AMPIK(ND,JNPI)
02626 PMIN=.0
02627 DO 220 IL=ND-1,1,-1
02628 PMAX=PMAX+AMPIK(IL,JNPI)
02629 PMIN=PMIN+AMPIK(IL+1,JNPI)
02630 #if defined (ALEPH)
02631 220 PHSMAX=PHSMAX*PAWT(PMAX,PMIN,AMPIK(IL,JNPI))
02632 CAM GENERATE ND-2 EFFECTIVE MASSES (cf LUDECY)
02633 PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4)
02634 240 RORD(1)=1.
02635 CALL RANMAR(RRR,ND-1)
02636 DO 260 IL=2,ND-1
02637 RSAV=RRR(IL)
02638 DO 250 JL=IL-1,1,-1
02639 IF(RSAV.LE.RORD(JL)) GOTO 260
02640 250 RORD(JL+1)=RORD(JL)
02641 260 RORD(JL+1)=RSAV
02642 RORD(ND)=0.
02643 PHS=1.
02644 DO 270 IL=ND-1,1,-1
02645 PV(5,IL)=PV(5,IL+1)+AMPIK(IL,JNPI)
02646 & +(RORD(IL)-RORD(IL+1))*(PV(5,1)-PS)
02647 270 PHS=PHS*PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI))
02648 RN = RRR(1)
02649 IF(PHS.LT.RN*PHSMAX) GOTO 240
02650 #else
02651 220 PHSMAX=PHSMAX*PAWT(PMAX,PMIN,AMPIK(IL,JNPI))/PMAX
02652
02653 C --- 2.02.94 ZW 9 lines
02654 AMX=AMW
02655 DO 222 IL=1,ND-2
02656 AMS1=.0
02657 DO 223 JL=IL+1,ND
02658 223 AMS1=AMS1+AMPIK(JL,JNPI)
02659 AMS1=AMS1**2
02660 AMX =(AMX-AMPIK(IL,JNPI))
02661 AMS2=(AMX)**2
02662 PHSMAX=PHSMAX * (AMS2-AMS1)
02663 222 CONTINUE
02664 NCONT=0
02665 100 CONTINUE
02666 NCONT=NCONT+1
02667 CAM GENERATE ND-2 EFFECTIVE MASSES
02668 PHS=1.D0
02669 PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4)
02670 AMX=AMW
02671 CALL RANMAR(RRR,ND-2)
02672 DO 230 IL=1,ND-2
02673 AMS1=.0D0
02674 DO 231 JL=IL+1,ND
02675 231 AMS1=AMS1+AMPIK(JL,JNPI)
02676 AMS1=AMS1**2
02677 AMS2=(AMX-AMPIK(IL,JNPI))**2
02678 RR1=RRR(IL)
02679 AMX2=AMS1+ RR1*(AMS2-AMS1)
02680 AMX=SQRT(AMX2)
02681 PV(5,IL+1)=AMX
02682 PHSPAC=PHSPAC * (AMS2-AMS1)
02683 C --- 2.02.94 ZW 1 line
02684 PHS=PHS* (AMS2-AMS1)
02685 PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI))
02686 PHS =PHS *PA/PV(5,IL)
02687 230 CONTINUE
02688 PA=PAWT(PV(5,ND-1),AMPIK(ND-1,JNPI),AMPIK(ND,JNPI))
02689 PHS =PHS *PA/PV(5,ND-1)
02690 CALL RANMAR(RN,1)
02691 WETMAX(JNPI)=1.2D0*MAX(WETMAX(JNPI)/1.2D0,PHS/PHSMAX)
02692 IF (NCONT.EQ.500 000) THEN
02693 XNPI=0.0
02694 DO KK=1,ND
02695 XNPI=XNPI+AMPIK(KK,JNPI)
02696 ENDDO
02697 WRITE(6,*) 'ROUNDING INSTABILITY IN DPHNPI ?'
02698 WRITE(6,*) 'AMW=',AMW,'XNPI=',XNPI
02699 WRITE(6,*) 'IF =AMW= IS NEARLY EQUAL =XNPI= THAT IS IT'
02700 WRITE(6,*) 'PHS=',PHS,'PHSMAX=',PHSMAX
02701 GOTO 500
02702 ENDIF
02703 IF(RN(1)*PHSMAX*WETMAX(JNPI).GT.PHS) GO TO 100
02704 #endif
02705 C...PERFORM SUCCESSIVE TWO-PARTICLE DECAYS IN RESPECTIVE CM FRAME
02706 280 DO 300 IL=1,ND-1
02707 PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI))
02708 #if defined (ALEPH)
02709 CALL RANMAR(RRR,2)
02710 UE(3)=2.*RRR(1)-1.
02711 PHI=2.*PI*RRR(2)
02712 UE(1)=SQRT(1.-UE(3)**2)*COS(PHI)
02713 UE(2)=SQRT(1.-UE(3)**2)*SIN(PHI)
02714 #else
02715 CALL RANMAR(RRX,2)
02716 UE(3)=2.*RRX(1)-1.
02717 PHI=2.*PI*RRX(2)
02718 UE(1)=SQRT(1.D0-UE(3)**2)*COS(PHI)
02719 UE(2)=SQRT(1.D0-UE(3)**2)*SIN(PHI)
02720 #endif
02721 DO 290 J=1,3
02722 PPI(J,IL)=PA*UE(J)
02723 290 PV(J,IL+1)=-PA*UE(J)
02724 PPI(4,IL)=SQRT(PA**2+AMPIK(IL,JNPI)**2)
02725 PV(4,IL+1)=SQRT(PA**2+PV(5,IL+1)**2)
02726 PHSPAC=PHSPAC *(4.*PI)*(2.*PA/PV(5,IL))
02727 300 CONTINUE
02728 C...LORENTZ TRANSFORM DECAY PRODUCTS TO TAU FRAME
02729 DO 310 J=1,4
02730 310 PPI(J,ND)=PV(J,ND)
02731 DO 340 IL=ND-1,1,-1
02732 DO 320 J=1,3
02733 320 BE(J)=PV(J,IL)/PV(4,IL)
02734 GAM=PV(4,IL)/PV(5,IL)
02735 DO 340 I=IL,ND
02736 BEP=BE(1)*PPI(1,I)+BE(2)*PPI(2,I)+BE(3)*PPI(3,I)
02737 DO 330 J=1,3
02738 #if defined (ALEPH)
02739 330 PPI(J,I)=PPI(J,I)+GAM*(GAM*BEP/(1.+GAM)+PPI(4,I))*BE(J)
02740 #else
02741 330 PPI(J,I)=PPI(J,I)+GAM*(GAM*BEP/(1.D0+GAM)+PPI(4,I))*BE(J)
02742 #endif
02743 PPI(4,I)=GAM*(PPI(4,I)+BEP)
02744 340 CONTINUE
02745 C
02746 HV(4)=1.
02747 HV(3)=0.
02748 HV(2)=0.
02749 HV(1)=0.
02750 #if defined (ALEPH)
02751 #else
02752 DO K=1,4
02753 PNX(K)=PN(K)
02754 PRX(K)=PR(K)
02755 HVX(K)=HV(K)
02756 DO L=1,ND
02757 PPIX(K,L)=PPI(K,L)
02758 ENDDO
02759 ENDDO
02760 #endif
02761 RETURN
02762 END
02763 FUNCTION SIGEE(Q2,JNP)
02764 C ----------------------------------------------------------------------
02765 C e+e- cross section in the (1.GEV2,AMTAU**2) region
02766 C normalised to sig0 = 4/3 pi alfa2
02767 C used in matrix element for multipion tau decays
02768 C cf YS.Tsai Phys.Rev D4 ,2821(1971)
02769 C F.Gilman et al Phys.Rev D17,1846(1978)
02770 C C.Kiesling, to be pub. in High Energy e+e- Physics (1988)
02771 C DATSIG(*,1) = e+e- -> pi+pi-2pi0
02772 C DATSIG(*,2) = e+e- -> 2pi+2pi-
02773 C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al)
02774 C (Phys Lett 78B,623(1978)
02775 C DATSIG(*,5) = e+e- -> 6pi
02776 C
02777 C 4- and 6-pion cross sections from data
02778 C 5-pion contribution related to 4-pion cross section
02779 C
02780 C Called by DPHNPI
02781 C ----------------------------------------------------------------------
02782 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02783 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02784 * ,AMK,AMKZ,AMKST,GAMKST
02785 C
02786 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02787 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02788 * ,AMK,AMKZ,AMKST,GAMKST
02789 REAL*4 DATSIG(17,6)
02790 C
02791 DATA DATSIG/
02792 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
02793 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
02794 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
02795 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
02796 5 17*.0,
02797 6 17*.0,
02798 7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25,
02799 8 17*.0/
02800 DATA SIG0 / 86.8 /
02801 DATA PI /3.141592653589793238462643/
02802 DATA INIT / 0 /
02803 C
02804 JNPI=JNP
02805 IF(JNP.EQ.4) JNPI=3
02806 IF(JNP.EQ.3) JNPI=4
02807 IF(INIT.EQ.0) THEN
02808 INIT=1
02809 #if defined (CLEO)
02810 C AJWMOD: initialize if called from outside QQ:
02811 IF (AMPI.LT.0.139) AMPI = 0.1395675
02812 #else
02813 #endif
02814 AMPI2=AMPI**2
02815 FPI = .943*AMPI
02816 DO 100 I=1,17
02817 DATSIG(I,2) = DATSIG(I,2)/2.
02818 DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2)
02819 S = 1.025+(I-1)*.05
02820 FACT=0.
02821 S2=S**2
02822 DO 200 J=1,17
02823 T= 1.025+(J-1)*.05
02824 IF(T . GT. S-AMPI ) GO TO 201
02825 T2=T**2
02826 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05
02827 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1))
02828 200 DATSIG(I,3) = DATSIG(I,3) + FACT
02829 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2
02830 DATSIG(I,4) = DATSIG(I,3)
02831 DATSIG(I,6) = DATSIG(I,5)
02832 100 CONTINUE
02833 C WRITE(6,1000) DATSIG
02834 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/
02835 % (17F7.2/))
02836 ENDIF
02837 Q=SQRT(Q2)
02838 QMIN=1.
02839 IF(Q.LT.QMIN) THEN
02840 SIGEE=DATSIG(1,JNPI)+
02841 & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05
02842 ELSEIF(Q.LT.1.8) THEN
02843 DO 1 I=1,16
02844 QMAX = QMIN + .05
02845 IF(Q.LT.QMAX) GO TO 2
02846 QMIN = QMIN + .05
02847 1 CONTINUE
02848 2 SIGEE=DATSIG(I,JNPI)+
02849 & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05
02850 ELSEIF(Q.GT.1.8) THEN
02851 SIGEE=DATSIG(17,JNPI)+
02852 & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05
02853 ENDIF
02854 IF(SIGEE.LT..0) SIGEE=0.
02855 C
02856 SIGEE = SIGEE/(6.*PI**2*SIG0)
02857 C
02858 RETURN
02859 END
02860
02861 FUNCTION SIGOLD(Q2,JNPI)
02862 C ----------------------------------------------------------------------
02863 C e+e- cross section in the (1.GEV2,AMTAU**2) region
02864 C normalised to sig0 = 4/3 pi alfa2
02865 C used in matrix element for multipion tau decays
02866 C cf YS.Tsai Phys.Rev D4 ,2821(1971)
02867 C F.Gilman et al Phys.Rev D17,1846(1978)
02868 C C.Kiesling, to be pub. in High Energy e+e- Physics (1988)
02869 C DATSIG(*,1) = e+e- -> pi+pi-2pi0
02870 C DATSIG(*,2) = e+e- -> 2pi+2pi-
02871 C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al)
02872 C (Phys Lett 78B,623(1978)
02873 C DATSIG(*,4) = e+e- -> 6pi
02874 C
02875 C 4- and 6-pion cross sections from data
02876 C 5-pion contribution related to 4-pion cross section
02877 C
02878 C Called by DPHNPI
02879 C ----------------------------------------------------------------------
02880 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02881 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02882 * ,AMK,AMKZ,AMKST,GAMKST
02883 C
02884 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
02885 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
02886 * ,AMK,AMKZ,AMKST,GAMKST
02887 REAL*4 DATSIG(17,4)
02888 C
02889 DATA DATSIG/
02890 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
02891 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
02892 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
02893 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
02894 5 17*.0,
02895 6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/
02896 DATA SIG0 / 86.8 /
02897 DATA PI /3.141592653589793238462643/
02898 DATA INIT / 0 /
02899 C
02900 IF(INIT.EQ.0) THEN
02901 INIT=1
02902 AMPI2=AMPI**2
02903 FPI = .943*AMPI
02904 DO 100 I=1,17
02905 DATSIG(I,2) = DATSIG(I,2)/2.
02906 DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2)
02907 S = 1.025+(I-1)*.05
02908 FACT=0.
02909 S2=S**2
02910 DO 200 J=1,17
02911 T= 1.025+(J-1)*.05
02912 IF(T . GT. S-AMPI ) GO TO 201
02913 T2=T**2
02914 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05
02915 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1))
02916 200 DATSIG(I,3) = DATSIG(I,3) + FACT
02917 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2
02918 100 CONTINUE
02919 C WRITE(6,1000) DATSIG
02920 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/
02921 % (17F7.2/))
02922 ENDIF
02923 Q=SQRT(Q2)
02924 QMIN=1.
02925 IF(Q.LT.QMIN) THEN
02926 SIGEE=DATSIG(1,JNPI)+
02927 & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05
02928 ELSEIF(Q.LT.1.8) THEN
02929 DO 1 I=1,16
02930 QMAX = QMIN + .05
02931 IF(Q.LT.QMAX) GO TO 2
02932 QMIN = QMIN + .05
02933 1 CONTINUE
02934 2 SIGEE=DATSIG(I,JNPI)+
02935 & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05
02936 ELSEIF(Q.GT.1.8) THEN
02937 SIGEE=DATSIG(17,JNPI)+
02938 & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05
02939 ENDIF
02940 IF(SIGEE.LT..0) SIGEE=0.
02941 C
02942 SIGEE = SIGEE/(6.*PI**2*SIG0)
02943 SIGOLD=SIGEE
02944 C
02945 RETURN
02946 END
02947 SUBROUTINE DPHSPK(DGAMT,HV,PN,PAA,PNPI,JAA)
02948 C ----------------------------------------------------------------------
02949 * IT SIMULATES THREE PI (K) DECAY IN THE TAU REST FRAME
02950 * Z-AXIS ALONG HADRONIC SYSTEM
02951 C ----------------------------------------------------------------------
02952 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
02953 #if defined (ALEPH)
02954 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02955 #else
02956 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
02957 #endif
02958 & ,NAMES
02959 CHARACTER NAMES(NMODE)*31
02960
02961 REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PNPI(4,9)
02962 C MATRIX ELEMENT NUMBER:
02963 MNUM=JAA
02964 C TYPE OF THE GENERATION:
02965 KEYT=4
02966 IF(JAA.EQ.7) KEYT=3
02967 C --- MASSES OF THE DECAY PRODUCTS
02968 AMP1=DCDMAS(IDFFIN(1,JAA+NM4+NM5+NM6))
02969 AMP2=DCDMAS(IDFFIN(2,JAA+NM4+NM5+NM6))
02970 AMP3=DCDMAS(IDFFIN(3,JAA+NM4+NM5+NM6))
02971 CALL
02972 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM)
02973 DO I=1,4
02974 PNPI(I,1)=PIM1(I)
02975 PNPI(I,2)=PIM2(I)
02976 PNPI(I,3)=PIPL(I)
02977 ENDDO
02978 END
02979
02980
02981
02982
02983 SUBROUTINE
02984 $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMPA,PIM2,AMPB,PIPL,AMP3,KEYT,MNUM)
02985 C ----------------------------------------------------------------------
02986 * IT SIMULATES A1 DECAY IN TAU REST FRAME WITH
02987 * Z-AXIS ALONG A1 MOMENTUM
02988 * it can be also used to generate K K pi and K pi pi tau decays.
02989 * INPUT PARAMETERS
02990 * KEYT - algorithm controlling switch
02991 * 2 - flat phase space PIM1 PIM2 symmetrized statistical factor 1/2
02992 * 1 - like 1 but peaked around a1 and rho (two channels) masses.
02993 * 3 - peaked around omega, all particles different
02994 * other- flat phase space, all particles different
02995 * AMP1 - mass of first pi, etc. (1-3)
02996 * MNUM - matrix element type
02997 * 0 - a1 matrix element
02998 * 1-6 - matrix element for K pi pi, K K pi decay modes
02999 * 7 - pi- pi0 gamma matrix element
03000 C ----------------------------------------------------------------------
03001 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03002 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03003 * ,AMK,AMKZ,AMKST,GAMKST
03004 C
03005 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03006 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03007 * ,AMK,AMKZ,AMKST,GAMKST
03008 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03009 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03010 REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
03011 REAL PR(4)
03012 REAL*4 RRR(5)
03013 DATA PI /3.141592653589793238462643/
03014 DATA ICONT /0/
03015 XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z))
03016 C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY
03017 C
03018 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
03019 C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P)
03020 PHSPAC=1./2**17/PI**8
03021 C TAU MOMENTUM
03022 PT(1)=0.
03023 PT(2)=0.
03024 PT(3)=0.
03025 PT(4)=AMTAU
03026 C
03027 CALL RANMAR(RRR,5)
03028 RR=RRR(5)
03029 C
03030 CALL CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3,
03031 $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB)
03032 IF (ICHAN.EQ.1) THEN
03033 AMP1=AMPB
03034 AMP2=AMPA
03035 ELSEIF (ICHAN.EQ.2) THEN
03036 AMP1=AMPA
03037 AMP2=AMPB
03038 ELSE
03039 AMP1=AMPB
03040 AMP2=AMPA
03041 ENDIF
03042 CAM
03043 RR1=RRR(1)
03044 AMS1=(AMP1+AMP2+AMP3)**2
03045 AMS2=(AMTAU-AMNUTA)**2
03046 #if defined (ALEPH)
03047 C phase space with sampling for a1 resonance
03048 #else
03049 * PHASE SPACE WITH SAMPLING FOR A1 RESONANCE
03050 #endif
03051 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
03052 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
03053 ALP=ALP1+RR1*(ALP2-ALP1)
03054 AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP)
03055 AM3 =SQRT(AM3SQ)
03056 PHSPAC=PHSPAC*((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
03057 PHSPAC=PHSPAC*(ALP2-ALP1)
03058 C MASS OF (REAL/VIRTUAL) RHO -
03059 RR2=RRR(2)
03060 AMS1=(AMP2+AMP3)**2
03061 AMS2=(AM3-AMP1)**2
03062 IF (ICHAN.LE.2) THEN
03063 #if defined (ALEPH)
03064 C phase space with sampling for rho resonance,
03065 #else
03066 * PHASE SPACE WITH SAMPLING FOR RHO RESONANCE,
03067 #endif
03068 ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA)
03069 ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA)
03070 ALP=ALP1+RR2*(ALP2-ALP1)
03071 AM2SQ =AMRA**2+AMRA*GAMRA*TAN(ALP)
03072 AM2 =SQRT(AM2SQ)
03073 C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER ---------------
03074 C PHSPAC=PHSPAC*(ALP2-ALP1)
03075 C PHSPAC=PHSPAC*((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA)
03076 C----------------------------------------------------------------------
03077 ELSE
03078 #if defined (ALEPH)
03079 C flat phase space;
03080 #else
03081 * FLAT PHASE SPACE;
03082 #endif
03083 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
03084 AM2 =SQRT(AM2SQ)
03085 PHF0=(AMS2-AMS1)
03086 ENDIF
03087 #if defined (ALEPH)
03088 C rho restframe, define pipl and pim1
03089 #else
03090 * RHO RESTFRAME, DEFINE PIPL AND PIM1
03091 #endif
03092 ENQ1=(AM2SQ-AMP2**2+AMP3**2)/(2*AM2)
03093 ENQ2=(AM2SQ+AMP2**2-AMP3**2)/(2*AM2)
03094 PPI= ENQ1**2-AMP3**2
03095 PPPI=SQRT(ABS(ENQ1**2-AMP3**2))
03096 C --- this part of jacobian will be recovered later
03097 PHF1=(4*PI)*(2*PPPI/AM2)
03098 #if defined (ALEPH)
03099 C pi minus momentum in rho rest frame
03100 #else
03101 * PI MINUS MOMENTUM IN RHO REST FRAME
03102 #endif
03103 CALL SPHERA(PPPI,PIPL)
03104 PIPL(4)=ENQ1
03105 #if defined (ALEPH)
03106 C pi0 1 momentum in rho rest frame
03107 #else
03108 * PI0 1 MOMENTUM IN RHO REST FRAME
03109 #endif
03110 DO 30 I=1,3
03111 30 PIM1(I)=-PIPL(I)
03112 PIM1(4)=ENQ2
03113 #if defined (ALEPH)
03114 C a1 rest frame, define pim2
03115 #else
03116 * A1 REST FRAME, DEFINE PIM2
03117 #endif
03118 * RHO MOMENTUM
03119 PR(1)=0
03120 PR(2)=0
03121 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP1**2)
03122 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
03123 PPI = PR(4)**2-AM2**2
03124 * PI0 2 MOMENTUM
03125 PIM2(1)=0
03126 PIM2(2)=0
03127 PIM2(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP1**2)
03128 PIM2(3)=-PR(3)
03129 PHF2=(4*PI)*(2*PR(3)/AM3)
03130 #if defined (ALEPH)
03131 C old pions boosted from rho rest frame to a1 rest frame
03132 #else
03133 * OLD PIONS BOOSTED FROM RHO REST FRAME TO A1 REST FRAME
03134 #endif
03135 EXE=(PR(4)+PR(3))/AM2
03136 CALL BOSTR3(EXE,PIPL,PIPL)
03137 CALL BOSTR3(EXE,PIM1,PIM1)
03138 RR3=RRR(3)
03139 RR4=RRR(4)
03140 #if defined (ALEPH)
03141 #else
03142 CAM THET =PI*RR3
03143 #endif
03144 THET =ACOS(-1.+2*RR3)
03145 PHI = 2*PI*RR4
03146 CALL ROTPOL(THET,PHI,PIPL)
03147 CALL ROTPOL(THET,PHI,PIM1)
03148 CALL ROTPOL(THET,PHI,PIM2)
03149 CALL ROTPOL(THET,PHI,PR)
03150 C
03151 * NOW TO THE TAU REST FRAME, DEFINE A1 AND NEUTRINO MOMENTA
03152 * A1 MOMENTUM
03153 PAA(1)=0
03154 PAA(2)=0
03155 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM3**2)
03156 PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2))
03157 PPI = PAA(4)**2-AM3**2
03158 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU)
03159 * TAU-NEUTRINO MOMENTUM
03160 PN(1)=0
03161 PN(2)=0
03162 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM3**2)
03163 PN(3)=-PAA(3)
03164 C HERE WE CORRECT FOR THE JACOBIANS OF THE TWO CHAINS
03165 C ---FIRST CHANNEL ------- PIM1+PIPL
03166 AMS1=(AMP2+AMP3)**2
03167 AMS2=(AM3-AMP1)**2
03168 ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA)
03169 ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA)
03170 XPRO = (PIM1(3)+PIPL(3))**2
03171 $ +(PIM1(2)+PIPL(2))**2+(PIM1(1)+PIPL(1))**2
03172 AM2SQ=-XPRO+(PIM1(4)+PIPL(4))**2
03173 C JACOBIAN OF SPEEDING
03174 FF1 = ((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA)
03175 FF1 =FF1 *(ALP2-ALP1)
03176 C LAMBDA OF RHO DECAY
03177 GG1 = (4*PI)*(XLAM(AM2SQ,AMP2**2,AMP3**2)/AM2SQ)
03178 C LAMBDA OF A1 DECAY
03179 GG1 =GG1 *(4*PI)*SQRT(4*XPRO/AM3SQ)
03180 XJAJE=GG1*(AMS2-AMS1)
03181 C ---SECOND CHANNEL ------ PIM2+PIPL
03182 AMS1=(AMP1+AMP3)**2
03183 AMS2=(AM3-AMP2)**2
03184 ALP1=ATAN((AMS1-AMRB**2)/AMRB/GAMRB)
03185 ALP2=ATAN((AMS2-AMRB**2)/AMRB/GAMRB)
03186 XPRO = (PIM2(3)+PIPL(3))**2
03187 $ +(PIM2(2)+PIPL(2))**2+(PIM2(1)+PIPL(1))**2
03188 AM2SQ=-XPRO+(PIM2(4)+PIPL(4))**2
03189 FF2 = ((AM2SQ-AMRB**2)**2+(AMRB*GAMRB)**2)/(AMRB*GAMRB)
03190 FF2 =FF2 *(ALP2-ALP1)
03191 GG2 = (4*PI)*(XLAM(AM2SQ,AMP1**2,AMP3**2)/AM2SQ)
03192 GG2 =GG2 *(4*PI)*SQRT(4*XPRO/AM3SQ)
03193 XJADW=GG2*(AMS2-AMS1)
03194 C
03195 A1=0.0
03196 A2=0.0
03197 A3=0.0
03198 XJAC1=FF1*GG1
03199 XJAC2=FF2*GG2
03200 IF (ICHAN.EQ.2) THEN
03201 XJAC3=XJADW
03202 ELSE
03203 XJAC3=XJAJE
03204 ENDIF
03205 IF (XJAC1.NE.0.0) A1=PROB1/XJAC1
03206 IF (XJAC2.NE.0.0) A2=PROB2/XJAC2
03207 IF (XJAC3.NE.0.0) A3=PROB3/XJAC3
03208 C
03209 IF (A1+A2+A3.NE.0.0) THEN
03210 PHSPAC=PHSPAC/(A1+A2+A3)
03211 ELSE
03212 PHSPAC=0.0
03213 ENDIF
03214 IF(ICHAN.EQ.2) THEN
03215 DO 70 I=1,4
03216 X=PIM1(I)
03217 PIM1(I)=PIM2(I)
03218 70 PIM2(I)=X
03219 ENDIF
03220 * ALL PIONS BOOSTED FROM A1 REST FRAME TO TAU REST FRAME
03221 * Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM
03222 EXE=(PAA(4)+PAA(3))/AM3
03223 CALL BOSTR3(EXE,PIPL,PIPL)
03224 CALL BOSTR3(EXE,PIM1,PIM1)
03225 CALL BOSTR3(EXE,PIM2,PIM2)
03226 CALL BOSTR3(EXE,PR,PR)
03227 C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE
03228 IF (MNUM.EQ.8) THEN
03229 CALL DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03230 C ELSEIF (MNUM.EQ.0) THEN
03231 C CALL DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03232 ELSE
03233 CALL DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03234 ENDIF
03235 IF (KEYT.EQ.1.OR.KEYT.EQ.2) THEN
03236 C THE STATISTICAL FACTOR FOR IDENTICAL PI-S IS CANCELLED WITH
03237 C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0
03238 #if defined (ALEPH)
03239 Cam PHSPAC=PHSPAC*2.0
03240 Cam PHSPAC=PHSPAC/2.
03241 #else
03242 PHSPAC=PHSPAC*2.0
03243 PHSPAC=PHSPAC/2.
03244 #endif
03245 ENDIF
03246 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
03247 END
03248 SUBROUTINE DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03249 C ----------------------------------------------------------------------
03250 * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR
03251 * FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI.
03252 * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT.
03253 * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT
03254 * THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS.
03255 C
03256 C called by : DPHSAA
03257 C ----------------------------------------------------------------------
03258 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03259 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03260 * ,AMK,AMKZ,AMKST,GAMKST
03261 C
03262 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03263 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03264 * ,AMK,AMKZ,AMKST,GAMKST
03265 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03266 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03267 COMMON /TESTA1/ KEYA1
03268 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4)
03269 REAL PAA(4),VEC1(4),VEC2(4)
03270 REAL PIVEC(4),PIAKS(4),HVM(4)
03271 COMPLEX BWIGN,HADCUR(4),FPIK
03272 DATA ICONT /1/
03273 C
03274 * F CONSTANTS FOR A1, A1-RHO-PI, AND RHO-PI-PI
03275 *
03276 DATA FPI /93.3E-3/
03277 * THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR
03278 BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM)
03279 C
03280 * FOUR MOMENTUM OF A1
03281 DO 10 I=1,4
03282 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I)
03283 * MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO
03284 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03285 XMRO1 =SQRT(ABS((PIPL(4)+PIM1(4))**2-(PIPL(1)+PIM1(1))**2
03286 $ -(PIPL(2)+PIM1(2))**2-(PIPL(3)+PIM1(3))**2))
03287 XMRO2 =SQRT(ABS((PIPL(4)+PIM2(4))**2-(PIPL(1)+PIM2(1))**2
03288 $ -(PIPL(2)+PIM2(2))**2-(PIPL(3)+PIM2(3))**2))
03289 * ELEMENTS OF HADRON CURRENT
03290 PROD1 =PAA(4)*(PIM1(4)-PIPL(4))-PAA(1)*(PIM1(1)-PIPL(1))
03291 $ -PAA(2)*(PIM1(2)-PIPL(2))-PAA(3)*(PIM1(3)-PIPL(3))
03292 PROD2 =PAA(4)*(PIM2(4)-PIPL(4))-PAA(1)*(PIM2(1)-PIPL(1))
03293 $ -PAA(2)*(PIM2(2)-PIPL(2))-PAA(3)*(PIM2(3)-PIPL(3))
03294 DO 40 I=1,4
03295 VEC1(I)= PIM1(I)-PIPL(I) -PAA(I)*PROD1/XMAA**2
03296 40 VEC2(I)= PIM2(I)-PIPL(I) -PAA(I)*PROD2/XMAA**2
03297 * HADRON CURRENT SATURATED WITH A1 AND RHO RESONANCES
03298 IF (KEYA1.EQ.1) THEN
03299 FA1=9.87
03300 FAROPI=1.0
03301 FRO2PI=1.0
03302 FNORM=FA1/SQRT(2.)*FAROPI*FRO2PI
03303 DO 45 I=1,4
03304 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMA1)
03305 $ *(CMPLX(VEC1(I))*AMRO**2*BWIGN(XMRO1,AMRO,GAMRO)
03306 $ +CMPLX(VEC2(I))*AMRO**2*BWIGN(XMRO2,AMRO,GAMRO))
03307 45 CONTINUE
03308 ELSE
03309 FNORM=2.0*SQRT(2.)/3.0/FPI
03310 GAMAX=GAMA1*GFUN(XMAA**2)/GFUN(AMA1**2)
03311 DO 46 I=1,4
03312 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMAX)
03313 $ *(CMPLX(VEC1(I))*FPIK(XMRO1)
03314 $ +CMPLX(VEC2(I))*FPIK(XMRO2))
03315 46 CONTINUE
03316 ENDIF
03317 C
03318 * CALCULATE PI-VECTORS: VECTOR AND AXIAL
03319 CALL CLVEC(HADCUR,PN,PIVEC)
03320 CALL CLAXI(HADCUR,PN,PIAKS)
03321 CALL CLNUT(HADCUR,BRAKM,HVM)
03322 * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME
03323 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03324 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03325 AMPLIT=(GFERMI*CCABIB)**2*BRAK/2.
03326 C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH
03327 C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0
03328 C POLARIMETER VECTOR IN TAU REST FRAME
03329 DO 90 I=1,3
03330 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03331 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03332 C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL
03333 HV(I)=-HV(I)/BRAK
03334 90 CONTINUE
03335 END
03336
03337 FUNCTION GFUN(QKWA)
03338 C ****************************************************************
03339 C G-FUNCTION USED TO INRODUCE ENERGY DEPENDENCE IN A1 WIDTH
03340 C ****************************************************************
03341 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03342 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03343 * ,AMK,AMKZ,AMKST,GAMKST
03344 C
03345 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03346 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03347 * ,AMK,AMKZ,AMKST,GAMKST
03348 C
03349 IF (QKWA.LT.(AMRO+AMPI)**2) THEN
03350 GFUN=4.1*(QKWA-9*AMPIZ**2)**3
03351 $ *(1.-3.3*(QKWA-9*AMPIZ**2)+5.8*(QKWA-9*AMPIZ**2)**2)
03352 ELSE
03353 GFUN=QKWA*(1.623+10.38/QKWA-9.32/QKWA**2+0.65/QKWA**3)
03354 ENDIF
03355 END
03356 COMPLEX FUNCTION BWIGS(S,M,G)
03357 C **********************************************************
03358 C P-WAVE BREIT-WIGNER FOR K*
03359 C **********************************************************
03360 REAL S,M,G
03361 REAL PI,PIM,QS,QM,W,GS,MK
03362 #if defined (CLEO)
03363 C AJW: add K*-prim possibility:
03364 REAL PM, PG, PBETA
03365 COMPLEX BW,BWP
03366 #else
03367 #endif
03368 DATA INIT /0/
03369 P(A,B,C)=SQRT(ABS(ABS(((A+B-C)**2-4.*A*B)/4./A)
03370 $ +(((A+B-C)**2-4.*A*B)/4./A))/2.0)
03371 C ------------ PARAMETERS --------------------
03372 IF (INIT.EQ.0) THEN
03373 INIT=1
03374 PI=3.141592654
03375 PIM=.139
03376 MK=.493667
03377 #if defined (CLEO)
03378 C AJW: add K*-prim possibility:
03379 PM = PKORB(1,16)
03380 PG = PKORB(2,16)
03381 PBETA = PKORB(3,16)
03382 #else
03383 #endif
03384 C ------- BREIT-WIGNER -----------------------
03385 ENDIF
03386 #if defined (ALEPH)
03387 IF (S.GT.(PIM+MK)**2) THEN
03388 #endif
03389 QS=P(S,PIM**2,MK**2)
03390 QM=P(M**2,PIM**2,MK**2)
03391 W=SQRT(S)
03392 GS=G*(M/W)*(QS/QM)**3
03393 #if defined (CLEO)
03394 BW=M**2/CMPLX(M**2-S,-M*GS)
03395 QPM=P(PM**2,PIM**2,MK**2)
03396 G1=PG*(PM/W)*(QS/QPM)**3
03397 BWP=PM**2/CMPLX(PM**2-S,-PM*G1)
03398 BWIGS= (BW+PBETA*BWP)/(1+PBETA)
03399 #elif defined (ALEPH)
03400 ELSE
03401 GS=0.0
03402 ENDIF
03403 BWIGS=M**2/CMPLX(M**2-S,-M*GS)
03404 #else
03405 BWIGS=M**2/CMPLX(M**2-S,-M*GS)
03406 #endif
03407 RETURN
03408 END
03409 COMPLEX FUNCTION BWIG(S,M,G)
03410 C **********************************************************
03411 C P-WAVE BREIT-WIGNER FOR RHO
03412 C **********************************************************
03413 REAL S,M,G
03414 REAL PI,PIM,QS,QM,W,GS
03415 DATA INIT /0/
03416 C ------------ PARAMETERS --------------------
03417 IF (INIT.EQ.0) THEN
03418 INIT=1
03419 PI=3.141592654
03420 PIM=.139
03421 C ------- BREIT-WIGNER -----------------------
03422 ENDIF
03423 IF (S.GT.4.*PIM**2) THEN
03424 QS=SQRT(ABS(ABS(S/4.-PIM**2)+(S/4.-PIM**2))/2.0)
03425 QM=SQRT(M**2/4.-PIM**2)
03426 W=SQRT(S)
03427 GS=G*(M/W)*(QS/QM)**3
03428 ELSE
03429 GS=0.0
03430 ENDIF
03431 BWIG=M**2/CMPLX(M**2-S,-M*GS)
03432 RETURN
03433 END
03434 COMPLEX FUNCTION FPIK(W)
03435 C **********************************************************
03436 C PION FORM FACTOR
03437 C **********************************************************
03438 COMPLEX BWIG
03439 REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W
03440 EXTERNAL BWIG
03441 DATA INIT /0/
03442 C
03443 C ------------ PARAMETERS --------------------
03444 IF (INIT.EQ.0 ) THEN
03445 INIT=1
03446 PI=3.141592654
03447 PIM=.140
03448 #if defined (CLEO)
03449 ROM=PKORB(1,9)
03450 ROG=PKORB(2,9)
03451 ROM1=PKORB(1,15)
03452 ROG1=PKORB(2,15)
03453 BETA1=PKORB(3,15)
03454 #else
03455 ROM=0.773
03456 ROG=0.145
03457 ROM1=1.370
03458 ROG1=0.510
03459 BETA1=-0.145
03460 #endif
03461 ENDIF
03462 C -----------------------------------------------
03463 S=W**2
03464 FPIK= (BWIG(S,ROM,ROG)+BETA1*BWIG(S,ROM1,ROG1))
03465 & /(1+BETA1)
03466 RETURN
03467 END
03468 FUNCTION FPIRHO(W)
03469 C **********************************************************
03470 C SQUARE OF PION FORM FACTOR
03471 C **********************************************************
03472 COMPLEX FPIK
03473 FPIRHO=CABS(FPIK(W))**2
03474 END
03475 SUBROUTINE CLVEC(HJ,PN,PIV)
03476 C ----------------------------------------------------------------------
03477 * CALCULATES THE "VECTOR TYPE" PI-VECTOR PIV
03478 * NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS
03479 C
03480 C called by : DAMPAA
03481 C ----------------------------------------------------------------------
03482 REAL PIV(4),PN(4)
03483 COMPLEX HJ(4),HN
03484 C
03485 HN= HJ(4)*CMPLX(PN(4))-HJ(3)*CMPLX(PN(3))
03486 HH= REAL(HJ(4)*CONJG(HJ(4))-HJ(3)*CONJG(HJ(3))
03487 $ -HJ(2)*CONJG(HJ(2))-HJ(1)*CONJG(HJ(1)))
03488 DO 10 I=1,4
03489 10 PIV(I)=4.*REAL(HN*CONJG(HJ(I)))-2.*HH*PN(I)
03490 RETURN
03491 END
03492 SUBROUTINE CLAXI(HJ,PN,PIA)
03493 C ----------------------------------------------------------------------
03494 * CALCULATES THE "AXIAL TYPE" PI-VECTOR PIA
03495 * NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS
03496 C SIGN is chosen +/- for decay of TAU +/- respectively
03497 C called by : DAMPAA, CLNUT
03498 C ----------------------------------------------------------------------
03499 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
03500 COMMON / IDFC / IDFF
03501 REAL PIA(4),PN(4)
03502 COMPLEX HJ(4),HJC(4)
03503 C DET2(I,J)=AIMAG(HJ(I)*HJC(J)-HJ(J)*HJC(I))
03504 C -- here was an error (ZW, 21.11.1991)
03505 DET2(I,J)=AIMAG(HJC(I)*HJ(J)-HJC(J)*HJ(I))
03506 C -- it was affecting sign of A_LR asymmetry in a1 decay.
03507 C -- note also collision of notation of gamma_va as defined in
03508 C -- TAUOLA paper and J.H. Kuhn and Santamaria Z. Phys C 48 (1990) 445
03509 * -----------------------------------
03510 IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN
03511 SIGN= IDFF/ABS(IDFF)
03512 ELSEIF (KTOM.EQ.2) THEN
03513 SIGN=-IDFF/ABS(IDFF)
03514 ELSE
03515 PRINT *, 'STOP IN CLAXI: KTOM=',KTOM
03516 STOP
03517 ENDIF
03518 C
03519 DO 10 I=1,4
03520 10 HJC(I)=CONJG(HJ(I))
03521 PIA(1)= -2.*PN(3)*DET2(2,4)+2.*PN(4)*DET2(2,3)
03522 PIA(2)= -2.*PN(4)*DET2(1,3)+2.*PN(3)*DET2(1,4)
03523 PIA(3)= 2.*PN(4)*DET2(1,2)
03524 PIA(4)= 2.*PN(3)*DET2(1,2)
03525 C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN
03526 DO 20 I=1,4
03527 20 PIA(I)=PIA(I)*SIGN
03528 END
03529 SUBROUTINE CLNUT(HJ,B,HV)
03530 C ----------------------------------------------------------------------
03531 * CALCULATES THE CONTRIBUTION BY NEUTRINO MASS
03532 * NOTE THE TAU IS ASSUMED TO BE AT REST
03533 C
03534 C called by : DAMPAA
03535 C ----------------------------------------------------------------------
03536 COMPLEX HJ(4)
03537 REAL HV(4),P(4)
03538 DATA P /3*0.,1.0/
03539 C
03540 CALL CLAXI(HJ,P,HV)
03541 B=REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3))
03542 & - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1)) )
03543 RETURN
03544 END
03545 SUBROUTINE DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
03546 C ----------------------------------------------------------------------
03547 * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR
03548 * FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI.
03549 * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT.
03550 * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT
03551 * THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS.
03552 C
03553 #if defined (ALEPH)
03554 C called by : DPHTRE
03555 #else
03556 C called by : DPHSAA
03557 #endif
03558 C ----------------------------------------------------------------------
03559 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03560 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03561 * ,AMK,AMKZ,AMKST,GAMKST
03562 C
03563 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03564 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03565 * ,AMK,AMKZ,AMKST,GAMKST
03566 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03567 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03568 COMMON /TESTA1/ KEYA1
03569 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4)
03570 REAL PAA(4),VEC1(4),VEC2(4)
03571 REAL PIVEC(4),PIAKS(4),HVM(4)
03572 COMPLEX BWIGN,HADCUR(4),FNORM,FORMOM
03573 DATA ICONT /1/
03574 * THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR
03575 #if defined (CLEO)
03576 C AJWMOD to satisfy compiler, comment out this unused function.
03577 #else
03578 BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM)
03579 #endif
03580 C
03581 * FOUR MOMENTUM OF A1
03582 DO 10 I=1,4
03583 VEC1(I)=0.0
03584 VEC2(I)=0.0
03585 HV(I) =0.0
03586 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I)
03587 VEC1(1)=1.0
03588 * MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO
03589 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03590 XMOM =SQRT(ABS( (PIM2(4)+PIPL(4))**2-(PIM2(3)+PIPL(3))**2
03591 $ -(PIM2(2)+PIPL(2))**2-(PIM2(1)+PIPL(1))**2 ))
03592 XMRO2 =(PIPL(1))**2 +(PIPL(2))**2 +(PIPL(3))**2
03593 * ELEMENTS OF HADRON CURRENT
03594 PROD1 =VEC1(1)*PIPL(1)
03595 PROD2 =VEC2(2)*PIPL(2)
03596 P12 =PIM1(4)*PIM2(4)-PIM1(1)*PIM2(1)
03597 $ -PIM1(2)*PIM2(2)-PIM1(3)*PIM2(3)
03598 P1PL =PIM1(4)*PIPL(4)-PIM1(1)*PIPL(1)
03599 $ -PIM1(2)*PIPL(2)-PIM1(3)*PIPL(3)
03600 P2PL =PIPL(4)*PIM2(4)-PIPL(1)*PIM2(1)
03601 $ -PIPL(2)*PIM2(2)-PIPL(3)*PIM2(3)
03602 DO 40 I=1,3
03603 VEC1(I)= (VEC1(I)-PROD1/XMRO2*PIPL(I))
03604 40 CONTINUE
03605 GNORM=SQRT(VEC1(1)**2+VEC1(2)**2+VEC1(3)**2)
03606 DO 41 I=1,3
03607 VEC1(I)= VEC1(I)/GNORM
03608 41 CONTINUE
03609 VEC2(1)=(VEC1(2)*PIPL(3)-VEC1(3)*PIPL(2))/SQRT(XMRO2)
03610 VEC2(2)=(VEC1(3)*PIPL(1)-VEC1(1)*PIPL(3))/SQRT(XMRO2)
03611 VEC2(3)=(VEC1(1)*PIPL(2)-VEC1(2)*PIPL(1))/SQRT(XMRO2)
03612 P1VEC1 =PIM1(4)*VEC1(4)-PIM1(1)*VEC1(1)
03613 $ -PIM1(2)*VEC1(2)-PIM1(3)*VEC1(3)
03614 P2VEC1 =VEC1(4)*PIM2(4)-VEC1(1)*PIM2(1)
03615 $ -VEC1(2)*PIM2(2)-VEC1(3)*PIM2(3)
03616 P1VEC2 =PIM1(4)*VEC2(4)-PIM1(1)*VEC2(1)
03617 $ -PIM1(2)*VEC2(2)-PIM1(3)*VEC2(3)
03618 P2VEC2 =VEC2(4)*PIM2(4)-VEC2(1)*PIM2(1)
03619 $ -VEC2(2)*PIM2(2)-VEC2(3)*PIM2(3)
03620 * HADRON CURRENT
03621 FNORM=FORMOM(XMAA,XMOM)
03622 BRAK=0.0
03623 DO 120 JJ=1,2
03624 DO 45 I=1,4
03625 IF (JJ.EQ.1) THEN
03626 HADCUR(I) = FNORM *(
03627 $ VEC1(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL))
03628 $ -PIM2(I)*(P2VEC1*P1PL-P1VEC1*P2PL)
03629 $ +PIPL(I)*(P2VEC1*P12 -P1VEC1*(AMPI**2+P2PL)) )
03630 ELSE
03631 HADCUR(I) = FNORM *(
03632 $ VEC2(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL))
03633 $ -PIM2(I)*(P2VEC2*P1PL-P1VEC2*P2PL)
03634 $ +PIPL(I)*(P2VEC2*P12 -P1VEC2*(AMPI**2+P2PL)) )
03635 ENDIF
03636 45 CONTINUE
03637 C
03638 * CALCULATE PI-VECTORS: VECTOR AND AXIAL
03639 CALL CLVEC(HADCUR,PN,PIVEC)
03640 CALL CLAXI(HADCUR,PN,PIAKS)
03641 CALL CLNUT(HADCUR,BRAKM,HVM)
03642 * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME
03643 BRAK=BRAK+(GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03644 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03645 DO 90 I=1,3
03646 HV(I)=HV(I)-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03647 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03648 90 CONTINUE
03649 C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL
03650 120 CONTINUE
03651 AMPLIT=(GFERMI*CCABIB)**2*BRAK/2.
03652 C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH
03653 C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0
03654 C POLARIMETER VECTOR IN TAU REST FRAME
03655 DO 91 I=1,3
03656 HV(I)=-HV(I)/BRAK
03657 91 CONTINUE
03658
03659 END
03660 SUBROUTINE DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV)
03661 C ----------------------------------------------------------------------
03662 * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR
03663 * FOR TAU DECAY INTO K K pi, K pi pi.
03664 * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT.
03665 * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT
03666 C MNUM DECAY MODE IDENTIFIER.
03667 C
03668 #if defined (ALEPH)
03669 C called by : DPHTRE
03670 #else
03671 C called by : DPHSAA
03672 #endif
03673 C ----------------------------------------------------------------------
03674 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03675 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03676 * ,AMK,AMKZ,AMKST,GAMKST
03677 C
03678 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03679 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03680 * ,AMK,AMKZ,AMKST,GAMKST
03681 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03682 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03683 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4)
03684 REAL PAA(4),VEC1(4),VEC2(4),VEC3(4),VEC4(4),VEC5(4)
03685 REAL PIVEC(4),PIAKS(4),HVM(4)
03686 REAL FNORM(0:7),COEF(1:5,0:7)
03687 COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5,UROJ
03688 #if defined (CLEO)
03689 COMPLEX F1,F2,F3,F4,F5
03690 #endif
03691 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5
03692 DATA PI /3.141592653589793238462643/
03693 DATA ICONT /0/
03694 C
03695 DATA FPI /93.3E-3/
03696 IF (ICONT.EQ.0) THEN
03697 ICONT=1
03698 UROJ=CMPLX(0.0,1.0)
03699 DWAPI0=SQRT(2.0)
03700 FNORM(0)=CCABIB/FPI
03701 FNORM(1)=CCABIB/FPI
03702 FNORM(2)=CCABIB/FPI
03703 FNORM(3)=CCABIB/FPI
03704 FNORM(4)=SCABIB/FPI/DWAPI0
03705 FNORM(5)=SCABIB/FPI
03706 FNORM(6)=SCABIB/FPI
03707 FNORM(7)=CCABIB/FPI
03708 C
03709 COEF(1,0)= 2.0*SQRT(2.)/3.0
03710 COEF(2,0)=-2.0*SQRT(2.)/3.0
03711 #if defined (CLEO)
03712 C AJW 2/98: Add in the D-wave and I=0 3pi substructure:
03713 COEF(3,0)= 2.0*SQRT(2.)/3.0
03714 #else
03715 COEF(3,0)= 0.0
03716 #endif
03717 COEF(4,0)= FPI
03718 COEF(5,0)= 0.0
03719 C
03720 COEF(1,1)=-SQRT(2.)/3.0
03721 COEF(2,1)= SQRT(2.)/3.0
03722 COEF(3,1)= 0.0
03723 COEF(4,1)= FPI
03724 COEF(5,1)= SQRT(2.)
03725 C
03726 COEF(1,2)=-SQRT(2.)/3.0
03727 COEF(2,2)= SQRT(2.)/3.0
03728 COEF(3,2)= 0.0
03729 COEF(4,2)= 0.0
03730 COEF(5,2)=-SQRT(2.)
03731 C
03732 #if defined (CLEO)
03733 C AJW 11/97: Add in the K*-prim-s, ala Finkemeier&Mirkes
03734 COEF(1,3)= 1./3.
03735 COEF(2,3)=-2./3.
03736 COEF(3,3)= 2./3.
03737 #else
03738 COEF(1,3)= 0.0
03739 COEF(2,3)=-1.0
03740 COEF(3,3)= 0.0
03741 #endif
03742 COEF(4,3)= 0.0
03743 COEF(5,3)= 0.0
03744 C
03745 COEF(1,4)= 1.0/SQRT(2.)/3.0
03746 COEF(2,4)=-1.0/SQRT(2.)/3.0
03747 COEF(3,4)= 0.0
03748 COEF(4,4)= 0.0
03749 COEF(5,4)= 0.0
03750 C
03751 COEF(1,5)=-SQRT(2.)/3.0
03752 COEF(2,5)= SQRT(2.)/3.0
03753 COEF(3,5)= 0.0
03754 COEF(4,5)= 0.0
03755 COEF(5,5)=-SQRT(2.)
03756 C
03757 #if defined (CLEO)
03758 C AJW 11/97: Add in the K*-prim-s, ala Finkemeier&Mirkes
03759 COEF(1,6)= 1./3.
03760 COEF(2,6)=-2./3.
03761 COEF(3,6)= 2./3.
03762 #else
03763 COEF(1,6)= 0.0
03764 COEF(2,6)=-1.0
03765 COEF(3,6)= 0.0
03766 #endif
03767 COEF(4,6)= 0.0
03768 COEF(5,6)=-2.0
03769 C
03770 COEF(1,7)= 0.0
03771 COEF(2,7)= 0.0
03772 COEF(3,7)= 0.0
03773 COEF(4,7)= 0.0
03774 COEF(5,7)=-SQRT(2.0/3.0)
03775 C
03776 ENDIF
03777 C
03778 DO 10 I=1,4
03779 10 PAA(I)=PIM1(I)+PIM2(I)+PIM3(I)
03780 XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2))
03781 XMRO1 =SQRT(ABS((PIM3(4)+PIM2(4))**2-(PIM3(1)+PIM2(1))**2
03782 $ -(PIM3(2)+PIM2(2))**2-(PIM3(3)+PIM2(3))**2))
03783 XMRO2 =SQRT(ABS((PIM3(4)+PIM1(4))**2-(PIM3(1)+PIM1(1))**2
03784 $ -(PIM3(2)+PIM1(2))**2-(PIM3(3)+PIM1(3))**2))
03785 XMRO3 =SQRT(ABS((PIM1(4)+PIM2(4))**2-(PIM1(1)+PIM2(1))**2
03786 $ -(PIM1(2)+PIM2(2))**2-(PIM1(3)+PIM2(3))**2))
03787 * ELEMENTS OF HADRON CURRENT
03788 PROD1 =PAA(4)*(PIM2(4)-PIM3(4))-PAA(1)*(PIM2(1)-PIM3(1))
03789 $ -PAA(2)*(PIM2(2)-PIM3(2))-PAA(3)*(PIM2(3)-PIM3(3))
03790 PROD2 =PAA(4)*(PIM3(4)-PIM1(4))-PAA(1)*(PIM3(1)-PIM1(1))
03791 $ -PAA(2)*(PIM3(2)-PIM1(2))-PAA(3)*(PIM3(3)-PIM1(3))
03792 PROD3 =PAA(4)*(PIM1(4)-PIM2(4))-PAA(1)*(PIM1(1)-PIM2(1))
03793 $ -PAA(2)*(PIM1(2)-PIM2(2))-PAA(3)*(PIM1(3)-PIM2(3))
03794 DO 40 I=1,4
03795 VEC1(I)= PIM2(I)-PIM3(I) -PAA(I)*PROD1/XMAA**2
03796 VEC2(I)= PIM3(I)-PIM1(I) -PAA(I)*PROD2/XMAA**2
03797 VEC3(I)= PIM1(I)-PIM2(I) -PAA(I)*PROD3/XMAA**2
03798 40 VEC4(I)= PIM1(I)+PIM2(I)+PIM3(I)
03799 CALL PROD5(PIM1,PIM2,PIM3,VEC5)
03800 * HADRON CURRENT
03801 C be aware that sign of vec2 is opposite to sign of vec1 in a1 case
03802 #if defined (CLEO)
03803 C Rationalize this code:
03804 F1 = CMPLX(COEF(1,MNUM))*FORM1(MNUM,XMAA**2,XMRO1**2,XMRO2**2)
03805 F2 = CMPLX(COEF(2,MNUM))*FORM2(MNUM,XMAA**2,XMRO2**2,XMRO1**2)
03806 F3 = CMPLX(COEF(3,MNUM))*FORM3(MNUM,XMAA**2,XMRO3**2,XMRO1**2)
03807 F4 = (-1.0*UROJ)*
03808 $CMPLX(COEF(4,MNUM))*FORM4(MNUM,XMAA**2,XMRO1**2,XMRO2**2,XMRO3**2)
03809 F5 = (-1.0)*UROJ/4.0/PI**2/FPI**2*
03810 $ CMPLX(COEF(5,MNUM))*FORM5(MNUM,XMAA**2,XMRO1**2,XMRO2**2)
03811
03812 DO 45 I=1,4
03813 HADCUR(I)= CMPLX(FNORM(MNUM)) * (
03814 $ CMPLX(VEC1(I))*F1+CMPLX(VEC2(I))*F2+CMPLX(VEC3(I))*F3+
03815 $ CMPLX(VEC4(I))*F4+CMPLX(VEC5(I))*F5)
03816 45 CONTINUE
03817 #else
03818 DO 45 I=1,4
03819 HADCUR(I)= CMPLX(FNORM(MNUM)) * (
03820 $CMPLX(VEC1(I)*COEF(1,MNUM))*FORM1(MNUM,XMAA**2,XMRO1**2,XMRO2**2)+
03821 $CMPLX(VEC2(I)*COEF(2,MNUM))*FORM2(MNUM,XMAA**2,XMRO2**2,XMRO1**2)+
03822 $CMPLX(VEC3(I)*COEF(3,MNUM))*FORM3(MNUM,XMAA**2,XMRO3**2,XMRO1**2)+
03823 *(-1.0*UROJ)*
03824 $CMPLX(VEC4(I)*COEF(4,MNUM))*FORM4(MNUM,XMAA**2,XMRO1**2,
03825 $ XMRO2**2,XMRO3**2) +
03826 $(-1.0)*UROJ/4.0/PI**2/FPI**2*
03827 $CMPLX(VEC5(I)*COEF(5,MNUM))*FORM5(MNUM,XMAA**2,XMRO1**2,XMRO2**2))
03828 45 CONTINUE
03829 #endif
03830 C
03831 * CALCULATE PI-VECTORS: VECTOR AND AXIAL
03832 CALL CLVEC(HADCUR,PN,PIVEC)
03833 CALL CLAXI(HADCUR,PN,PIAKS)
03834 CALL CLNUT(HADCUR,BRAKM,HVM)
03835 * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME
03836 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
03837 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
03838 AMPLIT=(GFERMI)**2*BRAK/2.
03839 IF (MNUM.GE.9) THEN
03840 PRINT *, 'MNUM=',MNUM
03841 ZNAK=-1.0
03842 XM1=0.0
03843 XM2=0.0
03844 XM3=0.0
03845 DO 77 K=1,4
03846 IF (K.EQ.4) ZNAK=1.0
03847 XM1=ZNAK*PIM1(K)**2+XM1
03848 XM2=ZNAK*PIM2(K)**2+XM2
03849 XM3=ZNAK*PIM3(K)**2+XM3
03850 77 PRINT *, 'PIM1=',PIM1(K),'PIM2=',PIM2(K),'PIM3=',PIM3(K)
03851 PRINT *, 'XM1=',SQRT(XM1),'XM2=',SQRT(XM2),'XM3=',SQRT(XM3)
03852 PRINT *, '************************************************'
03853 ENDIF
03854 C POLARIMETER VECTOR IN TAU REST FRAME
03855 DO 90 I=1,3
03856 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
03857 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
03858 C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL
03859 HV(I)=-HV(I)/BRAK
03860 90 CONTINUE
03861 END
03862 SUBROUTINE PROD5(P1,P2,P3,PIA)
03863 C ----------------------------------------------------------------------
03864 C external product of P1, P2, P3 4-momenta.
03865 C SIGN is chosen +/- for decay of TAU +/- respectively
03866 C called by : DAMPAA, CLNUT
03867 C ----------------------------------------------------------------------
03868 COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM
03869 COMMON / IDFC / IDFF
03870 REAL PIA(4),P1(4),P2(4),P3(4)
03871 DET2(I,J)=P1(I)*P2(J)-P2(I)*P1(J)
03872 * -----------------------------------
03873 IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN
03874 SIGN= IDFF/ABS(IDFF)
03875 ELSEIF (KTOM.EQ.2) THEN
03876 SIGN=-IDFF/ABS(IDFF)
03877 ELSE
03878 PRINT *, 'STOP IN PROD5: KTOM=',KTOM
03879 STOP
03880 ENDIF
03881 C
03882 C EPSILON( p1(1), p2(2), p3(3), (4) ) = 1
03883 C
03884 PIA(1)= -P3(3)*DET2(2,4)+P3(4)*DET2(2,3)+P3(2)*DET2(3,4)
03885 PIA(2)= -P3(4)*DET2(1,3)+P3(3)*DET2(1,4)-P3(1)*DET2(3,4)
03886 PIA(3)= P3(4)*DET2(1,2)-P3(2)*DET2(1,4)+P3(1)*DET2(2,4)
03887 PIA(4)= P3(3)*DET2(1,2)-P3(2)*DET2(1,3)+P3(1)*DET2(2,3)
03888 C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN
03889 DO 20 I=1,4
03890 20 PIA(I)=PIA(I)*SIGN
03891 END
03892
03893 SUBROUTINE DEXNEW(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI)
03894 C ----------------------------------------------------------------------
03895 * THIS SIMULATES TAU DECAY IN TAU REST FRAME
03896 * INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI.
03897 * OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO,
03898 #if defined (ALEPH)
03899 * PAA hadron 4-vector
03900 * PNPI final state particles
03901 * JNPI decay type
03902 #else
03903 * PAA A1
03904 * PIM1 PION MINUS (OR PI0) 1 (FOR TAU MINUS)
03905 * PIM2 PION MINUS (OR PI0) 2
03906 * PIPL PION PLUS (OR PI-)
03907 * (PIPL,PIM1) FORM A RHO
03908 #endif
03909 C ----------------------------------------------------------------------
03910 COMMON / INOUT / INUT,IOUT
03911 REAL POL(4),HV(4),PAA(4),PNU(4),PNPI(4,9),RN(1)
03912 DATA IWARM/0/
03913 C
03914 IF(MODE.EQ.-1) THEN
03915 C ===================
03916 IWARM=1
03917 CALL DADNEW( -1,ISGN,HV,PNU,PAA,PNPI,JDUMM)
03918 #if defined (ALEPH)
03919 CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXNEW $',100,-2.,2.)
03920 #else
03921 CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXAA $',100,-2.,2.)
03922 #endif
03923 C
03924 ELSEIF(MODE.EQ. 0) THEN
03925 * =======================
03926 300 CONTINUE
03927 IF(IWARM.EQ.0) GOTO 902
03928 CALL DADNEW( 0,ISGN,HV,PNU,PAA,PNPI,JNPI)
03929 WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2.
03930 CC CALL HFILL(816,WT)
03931 CALL RANMAR(RN,1)
03932 IF(RN(1).GT.WT) GOTO 300
03933 C
03934 ELSEIF(MODE.EQ. 1) THEN
03935 * =======================
03936 CALL DADNEW( 1,ISGN,HV,PNU,PAA,PNPI,JDUMM)
03937 CC CALL HPRINT(816)
03938 ENDIF
03939 C =====
03940 RETURN
03941 902 WRITE(IOUT, 9020)
03942 9020 FORMAT(' ----- DEXNEW: LACK OF INITIALISATION')
03943 STOP
03944 END
03945 SUBROUTINE DADNEW(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI)
03946 C ----------------------------------------------------------------------
03947 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03948 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03949 * ,AMK,AMKZ,AMKST,GAMKST
03950 C
03951 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
03952 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
03953 * ,AMK,AMKZ,AMKST,GAMKST
03954 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03955 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
03956 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30)
03957 REAL*4 GAMPMC ,GAMPER
03958 #if defined (ALEPH)
03959 #else
03960 COMMON / INOUT / INUT,IOUT
03961 #endif
03962 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
03963 #if defined (ALEPH)
03964 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
03965 #else
03966 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
03967 #endif
03968 & ,NAMES
03969 CHARACTER NAMES(NMODE)*31
03970 #if defined (ALEPH)
03971 COMMON / INOUT / INUT,IOUT
03972 #endif
03973
03974 REAL*4 PNU(4),PWB(4),PNPI(4,9),HV(4),HHV(4)
03975 REAL*4 PDUM1(4),PDUM2(4),PDUMI(4,9)
03976 REAL*4 RRR(3)
03977 REAL*4 WTMAX(NMODE)
03978 REAL*8 SWT(NMODE),SSWT(NMODE)
03979 DIMENSION NEVRAW(NMODE),NEVOVR(NMODE),NEVACC(NMODE)
03980 C
03981 DATA PI /3.141592653589793238462643/
03982 DATA IWARM/0/
03983 C
03984 IF(MODE.EQ.-1) THEN
03985 C ===================
03986 C -- AT THE MOMENT ONLY TWO DECAY MODES OF MULTIPIONS HAVE M. ELEM
03987 NMOD=NMODE
03988 IWARM=1
03989 C PRINT 7003
03990 DO 1 JNPI=1,NMOD
03991 NEVRAW(JNPI)=0
03992 NEVACC(JNPI)=0
03993 NEVOVR(JNPI)=0
03994 SWT(JNPI)=0
03995 SSWT(JNPI)=0
03996 WTMAX(JNPI)=-1.
03997 #if defined (CePeCe)
03998 DO I=1,500
03999 #elif defined (ALEPH)
04000 DO I=1,500
04001 #else
04002 C for 4pi phase space, need lots more trials at initialization,
04003 C or use the WTMAX determined with many trials for default model:
04004 NTRIALS = 500
04005 IF (JNPI.LE.NM4) THEN
04006 A = PKORB(3,37+JNPI)
04007 IF (A.LT.0.) THEN
04008 NTRIALS = 10000
04009 ELSE
04010 NTRIALS = 0
04011 WTMAX(JNPI)=A
04012 END IF
04013 END IF
04014 DO I=1,NTRIALS
04015 #endif
04016 IF (JNPI.LE.0) THEN
04017 GOTO 903
04018 ELSEIF(JNPI.LE.NM4) THEN
04019 CALL DPH4PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
04020 ELSEIF(JNPI.LE.NM4+NM5) THEN
04021 CALL DPH5PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
04022 ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN
04023 CALL DPHNPI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI)
04024 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN
04025 INUM=JNPI-NM4-NM5-NM6
04026 CALL DPHSPK(WT,HV,PDUM1,PDUM2,PDUMI,INUM)
04027 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN
04028 INUM=JNPI-NM4-NM5-NM6-NM3
04029 CALL DPHSRK(WT,HV,PDUM1,PDUM2,PDUMI,INUM)
04030 ELSE
04031 GOTO 903
04032 ENDIF
04033 IF(WT.GT.WTMAX(JNPI)/1.2) WTMAX(JNPI)=WT*1.2
04034 ENDDO
04035 #if defined (CePeCe)
04036 #elif defined (ALEPH)
04037 #else
04038 C PRINT *,' DADNEW JNPI,NTRIALS,WTMAX =',JNPI,NTRIALS,WTMAX(JNPI)
04039 #endif
04040 C CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADNPI $',100,0.,2.,.0)
04041 C PRINT 7004,WTMAX(JNPI)
04042 1 CONTINUE
04043 WRITE(IOUT,7005)
04044 C
04045 ELSEIF(MODE.EQ. 0) THEN
04046 C =======================
04047 IF(IWARM.EQ.0) GOTO 902
04048 C
04049 300 CONTINUE
04050 IF (JNPI.LE.0) THEN
04051 GOTO 903
04052 ELSEIF(JNPI.LE.NM4) THEN
04053 CALL DPH4PI(WT,HHV,PNU,PWB,PNPI,JNPI)
04054 ELSEIF(JNPI.LE.NM4+NM5) THEN
04055 CALL DPH5PI(WT,HHV,PNU,PWB,PNPI,JNPI)
04056 ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN
04057 CALL DPHNPI(WT,HHV,PNU,PWB,PNPI,JNPI)
04058 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN
04059 INUM=JNPI-NM4-NM5-NM6
04060 CALL DPHSPK(WT,HHV,PNU,PWB,PNPI,INUM)
04061 ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN
04062 INUM=JNPI-NM4-NM5-NM6-NM3
04063 CALL DPHSRK(WT,HHV,PNU,PWB,PNPI,INUM)
04064 ELSE
04065 GOTO 903
04066 ENDIF
04067 DO I=1,4
04068 HV(I)=-ISGN*HHV(I)
04069 ENDDO
04070 C CALL HFILL(801,WT/WTMAX(JNPI))
04071 NEVRAW(JNPI)=NEVRAW(JNPI)+1
04072 SWT(JNPI)=SWT(JNPI)+WT
04073 #if defined (ALEPH)
04074 SSWT(JNPI)=SSWT(JNPI)+WT**2
04075 #else
04076 cccM.S.>>>>>>
04077 cc SSWT(JNPI)=SSWT(JNPI)+WT**2
04078 SSWT(JNPI)=SSWT(JNPI)+dble(WT)**2
04079 cccM.S.<<<<<<
04080 #endif
04081 CALL RANMAR(RRR,3)
04082 RN=RRR(1)
04083 IF(WT.GT.WTMAX(JNPI)) NEVOVR(JNPI)=NEVOVR(JNPI)+1
04084 IF(RN*WTMAX(JNPI).GT.WT) GOTO 300
04085 C ROTATIONS TO BASIC TAU REST FRAME
04086 COSTHE=-1.+2.*RRR(2)
04087 THET=ACOS(COSTHE)
04088 PHI =2*PI*RRR(3)
04089 CALL ROTOR2(THET,PNU,PNU)
04090 CALL ROTOR3( PHI,PNU,PNU)
04091 CALL ROTOR2(THET,PWB,PWB)
04092 CALL ROTOR3( PHI,PWB,PWB)
04093 CALL ROTOR2(THET,HV,HV)
04094 CALL ROTOR3( PHI,HV,HV)
04095 ND=MULPIK(JNPI)
04096 DO 301 I=1,ND
04097 CALL ROTOR2(THET,PNPI(1,I),PNPI(1,I))
04098 CALL ROTOR3( PHI,PNPI(1,I),PNPI(1,I))
04099 301 CONTINUE
04100 NEVACC(JNPI)=NEVACC(JNPI)+1
04101 C
04102 ELSEIF(MODE.EQ. 1) THEN
04103 C =======================
04104 DO 500 JNPI=1,NMOD
04105 IF(NEVRAW(JNPI).EQ.0) GOTO 500
04106 PARGAM=SWT(JNPI)/FLOAT(NEVRAW(JNPI)+1)
04107 ERROR=0
04108 IF(NEVRAW(JNPI).NE.0)
04109 & ERROR=SQRT(SSWT(JNPI)/SWT(JNPI)**2-1./FLOAT(NEVRAW(JNPI)))
04110 RAT=PARGAM/GAMEL
04111 WRITE(IOUT, 7010) NAMES(JNPI),
04112 & NEVRAW(JNPI),NEVACC(JNPI),NEVOVR(JNPI),PARGAM,RAT,ERROR
04113 CC CALL HPRINT(801)
04114 GAMPMC(8+JNPI-1)=RAT
04115 GAMPER(8+JNPI-1)=ERROR
04116 CAM NEVDEC(8+JNPI-1)=NEVACC(JNPI)
04117 500 CONTINUE
04118 ENDIF
04119 C =====
04120 RETURN
04121 7003 FORMAT(///1X,15(5H*****)
04122 $ /,' *', 25X,'******** DADNEW INITIALISATION ********',9X,1H*
04123 $ )
04124 7004 FORMAT(' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*/)
04125 7005 FORMAT(
04126 $ /,1X,15(5H*****)/)
04127 7010 FORMAT(///1X,15(5H*****)
04128 $ /,' *', 25X,'******** DADNEW FINAL REPORT ******** ',9X,1H*
04129 $ /,' *', 25X,'CHANNEL:',A31 ,9X,1H*
04130 $ /,' *',I20 ,5X,'NEVRAW = NO. OF DECAYS TOTAL ',9X,1H*
04131 $ /,' *',I20 ,5X,'NEVACC = NO. OF DECAYS ACCEPTED ',9X,1H*
04132 $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H*
04133 $ /,' *',E20.5,5X,'PARTIAL WTDTH IN GEV UNITS ',9X,1H*
04134 $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H*
04135 $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H*
04136 $ /,1X,15(5H*****)/)
04137 902 WRITE(IOUT, 9020)
04138 9020 FORMAT(' ----- DADNEW: LACK OF INITIALISATION')
04139 STOP
04140 903 WRITE(IOUT, 9030) JNPI,MODE
04141 9030 FORMAT(' ----- DADNEW: WRONG JNPI',2I5)
04142 STOP
04143 END
04144
04145
04146 SUBROUTINE DPH4PI(DGAMT,HV,PN,PAA,PMULT,JNPI)
04147 C ----------------------------------------------------------------------
04148 #if defined (ALEPH)
04149 * IT SIMULATES 4pi DECAY IN TAU REST FRAME WITH
04150 * Z-AXIS ALONG 4pi MOMENTUM
04151 #else
04152 * IT SIMULATES A1 DECAY IN TAU REST FRAME WITH
04153 * Z-AXIS ALONG A1 MOMENTUM
04154 #endif
04155 C ----------------------------------------------------------------------
04156 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04157 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04158 * ,AMK,AMKZ,AMKST,GAMKST
04159 C
04160 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04161 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04162 * ,AMK,AMKZ,AMKST,GAMKST
04163 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04164 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04165 #if defined (ALEPH)
04166 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
04167 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04168 & ,NAMES
04169 CHARACTER NAMES(NMODE)*31
04170 #else
04171 #endif
04172 REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PMULT(4,9)
04173 REAL PR(4),PIZ(4)
04174 REAL*4 RRR(9)
04175 REAL*8 UU,FF,FF1,FF2,FF3,FF4,GG1,GG2,GG3,GG4,RR
04176 DATA PI /3.141592653589793238462643/
04177 DATA ICONT /0/
04178 XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z))
04179 C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY
04180 C
04181 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
04182 C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P)
04183 PHSPAC=1./2**23/PI**11
04184 PHSP=1./2**5/PI**2
04185 #if defined (ALEPH)
04186 C init decay mode JNPI
04187 AMP1=DCDMAS(IDFFIN(1,JNPI))
04188 AMP2=DCDMAS(IDFFIN(2,JNPI))
04189 AMP3=DCDMAS(IDFFIN(3,JNPI))
04190 AMP4=DCDMAS(IDFFIN(4,JNPI))
04191 #endif
04192 IF (JNPI.EQ.1) THEN
04193 PREZ=0.7
04194 #if defined (CePeCe)
04195 AMP1=AMPI
04196 AMP2=AMPI
04197 AMP3=AMPI
04198 AMP4=AMPIZ
04199 AMRX=0.782
04200 GAMRX=0.0084
04201 #elif defined (CLEO)
04202 AMP1=AMPI
04203 AMP2=AMPI
04204 AMP3=AMPI
04205 AMP4=AMPIZ
04206 AMRX=PKORB(1,14)
04207 GAMRX=PKORB(2,14)
04208 C AJW: cant simply change AMROP, etc, here
04209 C CHOICE is a by-hand tuning/optimization, no simple relationship
04210 C to actual resonance masses (accd to Z.Was).
04211 C What matters in the end is what you put in formf/curr .
04212 #else
04213 AMRX=0.782
04214 GAMRX=0.0084
04215 #endif
04216 AMROP =1.2
04217 GAMROP=.46
04218 ELSE
04219 PREZ=0.0
04220 #if defined (ALEPH)
04221 #else
04222 AMP1=AMPIZ
04223 AMP2=AMPIZ
04224 AMP3=AMPIZ
04225 AMP4=AMPI
04226 #endif
04227 AMRX=1.4
04228 GAMRX=.6
04229 AMROP =AMRX
04230 GAMROP=GAMRX
04231
04232 ENDIF
04233 #if defined (ALEPH)
04234
04235 RRDUM=0.3
04236 CALL CHOICE(100+JNPI,RRDUM,ICHAN,PROB1,PROB2,PROB3,
04237 #else
04238 RRB=0.3
04239 CALL CHOICE(100+JNPI,RRB,ICHAN,PROB1,PROB2,PROB3,
04240 #endif
04241 $ AMROP,GAMROP,AMRX,GAMRX,AMRB,GAMRB)
04242 PREZ=PROB1+PROB2
04243 C TAU MOMENTUM
04244 PT(1)=0.
04245 PT(2)=0.
04246 PT(3)=0.
04247 PT(4)=AMTAU
04248 C
04249 CALL RANMAR(RRR,9)
04250 C
04251 * MASSES OF 4, 3 AND 2 PI SYSTEMS
04252 C 3 PI WITH SAMPLING FOR RESONANCE
04253 CAM
04254 RR1=RRR(6)
04255 AMS1=(AMP1+AMP2+AMP3+AMP4)**2
04256 AMS2=(AMTAU-AMNUTA)**2
04257 ALP1=ATAN((AMS1-AMROP**2)/AMROP/GAMROP)
04258 ALP2=ATAN((AMS2-AMROP**2)/AMROP/GAMROP)
04259 ALP=ALP1+RR1*(ALP2-ALP1)
04260 AM4SQ =AMROP**2+AMROP*GAMROP*TAN(ALP)
04261 AM4 =SQRT(AM4SQ)
04262 PHSPAC=PHSPAC*
04263 $ ((AM4SQ-AMROP**2)**2+(AMROP*GAMROP)**2)/(AMROP*GAMROP)
04264 PHSPAC=PHSPAC*(ALP2-ALP1)
04265
04266 C
04267 RR1=RRR(1)
04268 AMS1=(AMP2+AMP3+AMP4)**2
04269 AMS2=(AM4-AMP1)**2
04270 IF (RRR(9).GT.PREZ) THEN
04271 AM3SQ=AMS1+ RR1*(AMS2-AMS1)
04272 AM3 =SQRT(AM3SQ)
04273 C --- this part of jacobian will be recovered later
04274 FF1=AMS2-AMS1
04275 ELSE
04276 * PHASE SPACE WITH SAMPLING FOR OMEGA RESONANCE,
04277 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04278 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04279 ALP=ALP1+RR1*(ALP2-ALP1)
04280 AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP)
04281 AM3 =SQRT(AM3SQ)
04282 C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER ---------------
04283 FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04284 FF1=FF1*(ALP2-ALP1)
04285 ENDIF
04286 C MASS OF 2
04287 RR2=RRR(2)
04288 AMS1=(AMP3+AMP4)**2
04289 AMS2=(AM3-AMP2)**2
04290 * FLAT PHASE SPACE;
04291 AM2SQ=AMS1+ RR2*(AMS2-AMS1)
04292 AM2 =SQRT(AM2SQ)
04293 C --- this part of jacobian will be recovered later
04294 FF2=(AMS2-AMS1)
04295 * 2 RESTFRAME, DEFINE PIZ AND PIPL
04296 #if defined (ALEPH)
04297 ENQ1=(AM2SQ+AMP3**2-AMP4**2)/(2*AM2)
04298 ENQ2=(AM2SQ-AMP3**2+AMP4**2)/(2*AM2)
04299 PPI= ENQ1**2-AMP3**2
04300 PPPI=SQRT(ABS(ENQ1**2-AMP3**2))
04301 #else
04302 ENQ1=(AM2SQ-AMP3**2+AMP4**2)/(2*AM2)
04303 ENQ2=(AM2SQ+AMP3**2-AMP4**2)/(2*AM2)
04304 PPI= ENQ1**2-AMP4**2
04305 PPPI=SQRT(ABS(ENQ1**2-AMP4**2))
04306 #endif
04307 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2)
04308 #if defined (ALEPH)
04309 * PIZ momentum in 2 rest frame (PIZ is 3rd pi)
04310 #else
04311 * PIZ MOMENTUM IN 2 REST FRAME
04312 #endif
04313 CALL SPHERA(PPPI,PIZ)
04314 PIZ(4)=ENQ1
04315 #if defined (ALEPH)
04316 C PIPL momentum in 2 rest frame (PIPL is 4th pi)
04317 #else
04318 * PIPL MOMENTUM IN 2 REST FRAME
04319 #endif
04320 DO 30 I=1,3
04321 30 PIPL(I)=-PIZ(I)
04322 PIPL(4)=ENQ2
04323 * 3 REST FRAME, DEFINE PIM1
04324 #if defined (ALEPH)
04325 C PR momentum
04326 #else
04327 * PR MOMENTUM
04328 #endif
04329 PR(1)=0
04330 PR(2)=0
04331 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP2**2)
04332 PR(3)= SQRT(ABS(PR(4)**2-AM2**2))
04333 PPI = PR(4)**2-AM2**2
04334 #if defined (ALEPH)
04335 C PIM1 momentum
04336 #else
04337 * PIM1 MOMENTUM
04338 #endif
04339 PIM1(1)=0
04340 PIM1(2)=0
04341 PIM1(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP2**2)
04342 PIM1(3)=-PR(3)
04343 C --- this part of jacobian will be recovered later
04344 FF3=(4*PI)*(2*PR(3)/AM3)
04345 * OLD PIONS BOOSTED FROM 2 REST FRAME TO 3 REST FRAME
04346 EXE=(PR(4)+PR(3))/AM2
04347 CALL BOSTR3(EXE,PIZ,PIZ)
04348 CALL BOSTR3(EXE,PIPL,PIPL)
04349 RR3=RRR(3)
04350 RR4=RRR(4)
04351 THET =ACOS(-1.+2*RR3)
04352 PHI = 2*PI*RR4
04353 CALL ROTPOL(THET,PHI,PIPL)
04354 CALL ROTPOL(THET,PHI,PIM1)
04355 CALL ROTPOL(THET,PHI,PIZ)
04356 CALL ROTPOL(THET,PHI,PR)
04357 #if defined (ALEPH)
04358 C 4 rest frame, define PIM2
04359 C PR momentum
04360 #else
04361 * 4 REST FRAME, DEFINE PIM2
04362 * PR MOMENTUM
04363 #endif
04364 PR(1)=0
04365 PR(2)=0
04366 PR(4)=1./(2*AM4)*(AM4**2+AM3**2-AMP1**2)
04367 PR(3)= SQRT(ABS(PR(4)**2-AM3**2))
04368 PPI = PR(4)**2-AM3**2
04369 #if defined (ALEPH)
04370 C PIM2 momentum
04371 #else
04372 * PIM2 MOMENTUM
04373 #endif
04374 PIM2(1)=0
04375 PIM2(2)=0
04376 PIM2(4)=1./(2*AM4)*(AM4**2-AM3**2+AMP1**2)
04377 PIM2(3)=-PR(3)
04378 C --- this part of jacobian will be recovered later
04379 FF4=(4*PI)*(2*PR(3)/AM4)
04380 * OLD PIONS BOOSTED FROM 3 REST FRAME TO 4 REST FRAME
04381 EXE=(PR(4)+PR(3))/AM3
04382 CALL BOSTR3(EXE,PIZ,PIZ)
04383 CALL BOSTR3(EXE,PIPL,PIPL)
04384 CALL BOSTR3(EXE,PIM1,PIM1)
04385 RR3=RRR(7)
04386 RR4=RRR(8)
04387 THET =ACOS(-1.+2*RR3)
04388 PHI = 2*PI*RR4
04389 CALL ROTPOL(THET,PHI,PIPL)
04390 CALL ROTPOL(THET,PHI,PIM1)
04391 CALL ROTPOL(THET,PHI,PIM2)
04392 CALL ROTPOL(THET,PHI,PIZ)
04393 CALL ROTPOL(THET,PHI,PR)
04394 C
04395 * NOW TO THE TAU REST FRAME, DEFINE PAA AND NEUTRINO MOMENTA
04396 * PAA MOMENTUM
04397 PAA(1)=0
04398 PAA(2)=0
04399 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM4**2)
04400 PAA(3)= SQRT(ABS(PAA(4)**2-AM4**2))
04401 PPI = PAA(4)**2-AM4**2
04402 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU)
04403 PHSP=PHSP*(4*PI)*(2*PAA(3)/AMTAU)
04404 * TAU-NEUTRINO MOMENTUM
04405 PN(1)=0
04406 PN(2)=0
04407 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM4**2)
04408 PN(3)=-PAA(3)
04409 C WE INCLUDE REMAINING PART OF THE JACOBIAN
04410 C --- FLAT CHANNEL
04411 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
04412 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
04413 AMS2=(AM4-AMP2)**2
04414 AMS1=(AMP1+AMP3+AMP4)**2
04415 FF1=(AMS2-AMS1)
04416 AMS1=(AMP3+AMP4)**2
04417 AMS2=(SQRT(AM3SQ)-AMP1)**2
04418 FF2=AMS2-AMS1
04419 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
04420 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
04421 UU=FF1*FF2*FF3*FF4
04422 C --- FIRST CHANNEL
04423 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
04424 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
04425 AMS2=(AM4-AMP2)**2
04426 AMS1=(AMP1+AMP3+AMP4)**2
04427 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04428 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04429 FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04430 FF1=FF1*(ALP2-ALP1)
04431 AMS1=(AMP3+AMP4)**2
04432 AMS2=(SQRT(AM3SQ)-AMP1)**2
04433 FF2=AMS2-AMS1
04434 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
04435 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
04436 FF=FF1*FF2*FF3*FF4
04437 C --- SECOND CHANNEL
04438 AM3SQ=(PIM2(4)+PIZ(4)+PIPL(4))**2-(PIM2(3)+PIZ(3)+PIPL(3))**2
04439 $ -(PIM2(2)+PIZ(2)+PIPL(2))**2-(PIM2(1)+PIZ(1)+PIPL(1))**2
04440 AMS2=(AM4-AMP1)**2
04441 AMS1=(AMP2+AMP3+AMP4)**2
04442 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04443 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04444 GG1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04445 GG1=GG1*(ALP2-ALP1)
04446 AMS1=(AMP3+AMP4)**2
04447 AMS2=(SQRT(AM3SQ)-AMP2)**2
04448 GG2=AMS2-AMS1
04449 GG3=(4*PI)*(XLAM(AM2**2,AMP2**2,AM3SQ)/AM3SQ)
04450 GG4=(4*PI)*(XLAM(AM3SQ,AMP1**2,AM4**2)/AM4**2)
04451 GG=GG1*GG2*GG3*GG4
04452 C --- JACOBIAN AVERAGED OVER THE TWO
04453 IF ( ( (FF+GG)*UU+FF*GG ).GT.0.0D0) THEN
04454 RR=FF*GG*UU/(0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG)
04455 PHSPAC=PHSPAC*RR
04456 ELSE
04457 PHSPAC=0.0
04458 ENDIF
04459 * MOMENTA OF THE TWO PI-MINUS ARE RANDOMLY SYMMETRISED
04460 IF (JNPI.EQ.1) THEN
04461 RR5= RRR(5)
04462 IF(RR5.LE.0.5) THEN
04463 DO 70 I=1,4
04464 X=PIM1(I)
04465 PIM1(I)=PIM2(I)
04466 70 PIM2(I)=X
04467 ENDIF
04468 PHSPAC=PHSPAC/2.
04469 ELSE
04470 C MOMENTA OF PI0-S ARE GENERATED UNIFORMLY ONLY IF PREZ=0.0
04471 RR5= RRR(5)
04472 IF(RR5.LE.0.5) THEN
04473 DO 71 I=1,4
04474 X=PIM1(I)
04475 PIM1(I)=PIM2(I)
04476 71 PIM2(I)=X
04477 ENDIF
04478 PHSPAC=PHSPAC/6.
04479 ENDIF
04480 * ALL PIONS BOOSTED FROM 4 REST FRAME TO TAU REST FRAME
04481 * Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM
04482 EXE=(PAA(4)+PAA(3))/AM4
04483 CALL BOSTR3(EXE,PIZ,PIZ)
04484 CALL BOSTR3(EXE,PIPL,PIPL)
04485 CALL BOSTR3(EXE,PIM1,PIM1)
04486 CALL BOSTR3(EXE,PIM2,PIM2)
04487 CALL BOSTR3(EXE,PR,PR)
04488 C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE
04489 C CHECK ON CONSISTENCY WITH DADNPI, THEN, CODE BREAKES UNIFORM PION
04490 C DISTRIBUTION IN HADRONIC SYSTEM
04491 #if defined (ALEPH)
04492 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV)
04493 #else
04494 CAM Assume neutrino mass=0. and sum over final polarisation
04495 C AMX2=AM4**2
04496 C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2)
04497 C AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,1)
04498 IF (JNPI.EQ.1) THEN
04499 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV)
04500 ELSEIF (JNPI.EQ.2) THEN
04501 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIPL,PIZ,AMPLIT,HV)
04502 ENDIF
04503 #endif
04504 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04505 C PHASE SPACE CHECK
04506 C DGAMT=PHSPAC
04507 DO 77 K=1,4
04508 PMULT(K,1)=PIM1(K)
04509 PMULT(K,2)=PIM2(K)
04510 #if defined (ALEPH)
04511 PMULT(K,3)=PIZ (K)
04512 PMULT(K,4)=PIPL(K)
04513 #else
04514 PMULT(K,3)=PIPL(K)
04515 PMULT(K,4)=PIZ (K)
04516 #endif
04517 77 CONTINUE
04518 END
04519 SUBROUTINE DAM4PI(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV)
04520 C ----------------------------------------------------------------------
04521 * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR
04522 * FOR TAU DECAY INTO 4 PI MODES
04523 * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT.
04524 * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT
04525 C MNUM DECAY MODE IDENTIFIER.
04526 C
04527 #if defined (ALEPH)
04528 C called by : DPH4PI
04529 #else
04530 C called by : DPHSAA
04531 #endif
04532 C ----------------------------------------------------------------------
04533 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04534 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04535 * ,AMK,AMKZ,AMKST,GAMKST
04536 C
04537 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04538 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04539 * ,AMK,AMKZ,AMKST,GAMKST
04540 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04541 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04542 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4),PIM4(4)
04543 REAL PIVEC(4),PIAKS(4),HVM(4)
04544 COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5
04545 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5
04546 DATA PI /3.141592653589793238462643/
04547 DATA ICONT /0/
04548 C
04549 #if defined (CLEO)
04550 CALL CURR_CLEO(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
04551 #else
04552 CALL CURR(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
04553 #endif
04554 C
04555 * CALCULATE PI-VECTORS: VECTOR AND AXIAL
04556 CALL CLVEC(HADCUR,PN,PIVEC)
04557 CALL CLAXI(HADCUR,PN,PIAKS)
04558 CALL CLNUT(HADCUR,BRAKM,HVM)
04559 * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME
04560 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
04561 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
04562 AMPLIT=(CCABIB*GFERMI)**2*BRAK/2.
04563 C POLARIMETER VECTOR IN TAU REST FRAME
04564 DO 90 I=1,3
04565 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
04566 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
04567 C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL
04568 IF (BRAK.NE.0.0)
04569 &HV(I)=-HV(I)/BRAK
04570 90 CONTINUE
04571 END
04572 SUBROUTINE DPH5PI(DGAMT,HV,PN,PAA,PMULT,JNPI)
04573 C ----------------------------------------------------------------------
04574 * IT SIMULATES 5pi DECAY IN TAU REST FRAME WITH
04575 * Z-AXIS ALONG 5pi MOMENTUM
04576 C ----------------------------------------------------------------------
04577 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04578 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04579 * ,AMK,AMKZ,AMKST,GAMKST
04580 C
04581 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04582 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04583
04584
04585 * ,AMK,AMKZ,AMKST,GAMKST
04586 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04587 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04588 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
04589 #if defined (ALEPH)
04590 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04591 #else
04592 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04593 #endif
04594 & ,NAMES
04595 CHARACTER NAMES(NMODE)*31
04596 REAL HV(4),PT(4),PN(4),PAA(4),PMULT(4,9)
04597 REAL*4 PR(4),PI1(4),PI2(4),PI3(4),PI4(4),PI5(4)
04598 REAL*8 AMP1,AMP2,AMP3,AMP4,AMP5,ams1,ams2,amom,gamom
04599 REAL*8 AM5SQ,AM4SQ,AM3SQ,AM2SQ,AM5,AM4,AM3
04600 REAL*4 RRR(10)
04601 REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2
04602 #if defined (ALEPH)
04603 REAL*8 XM,AM,GAMMAB
04604 #else
04605 REAL*8 XM,AM,GAMMA
04606 ccM.S.>>>>>>
04607 real*8 phspac
04608 ccM.S.<<<<<<
04609 #endif
04610 DATA PI /3.141592653589793238462643/
04611 DATA ICONT /0/
04612 data fpi /93.3e-3/
04613 c
04614 COMPLEX BWIGN
04615 C
04616 #if defined (ALEPH)
04617 BWIGN(XM,AM,GAMMAB)=XM**2/CMPLX(XM**2-AM**2,GAMMAB*AM)
04618 #else
04619 BWIGN(XM,AM,GAMMA)=XM**2/CMPLX(XM**2-AM**2,GAMMA*AM)
04620 #endif
04621
04622 C
04623 AMOM=.782
04624 GAMOM=0.0085
04625 c
04626 C 6 BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
04627 C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P)
04628 PHSPAC=1./2**29/PI**14
04629 c PHSPAC=1./2**5/PI**2
04630 C init 5pi decay mode (JNPI)
04631 AMP1=DCDMAS(IDFFIN(1,JNPI))
04632 AMP2=DCDMAS(IDFFIN(2,JNPI))
04633 AMP3=DCDMAS(IDFFIN(3,JNPI))
04634 AMP4=DCDMAS(IDFFIN(4,JNPI))
04635 AMP5=DCDMAS(IDFFIN(5,JNPI))
04636 c
04637 C TAU MOMENTUM
04638 PT(1)=0.
04639 PT(2)=0.
04640 PT(3)=0.
04641 PT(4)=AMTAU
04642 C
04643 CALL RANMAR(RRR,10)
04644 C
04645 c masses of 5, 4, 3 and 2 pi systems
04646 c 3 pi with sampling for omega resonance
04647 cam
04648 c mass of 5 (12345)
04649 rr1=rrr(10)
04650 ams1=(amp1+amp2+amp3+amp4+amp5)**2
04651 ams2=(amtau-amnuta)**2
04652 am5sq=ams1+ rr1*(ams2-ams1)
04653 am5 =sqrt(am5sq)
04654 phspac=phspac*(ams2-ams1)
04655 c
04656 c mass of 4 (2345)
04657 c flat phase space
04658 rr1=rrr(9)
04659 ams1=(amp2+amp3+amp4+amp5)**2
04660 ams2=(am5-amp1)**2
04661 am4sq=ams1+ rr1*(ams2-ams1)
04662 am4 =sqrt(am4sq)
04663 gg1=ams2-ams1
04664 c
04665 c mass of 3 (234)
04666 C phase space with sampling for omega resonance
04667 rr1=rrr(1)
04668 ams1=(amp2+amp3+amp4)**2
04669 ams2=(am4-amp5)**2
04670 alp1=atan((ams1-amom**2)/amom/gamom)
04671 alp2=atan((ams2-amom**2)/amom/gamom)
04672 alp=alp1+rr1*(alp2-alp1)
04673 am3sq =amom**2+amom*gamom*tan(alp)
04674 am3 =sqrt(am3sq)
04675 c --- this part of the jacobian will be recovered later ---------------
04676 gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom)
04677 gg2=gg2*(alp2-alp1)
04678 c flat phase space;
04679 C am3sq=ams1+ rr1*(ams2-ams1)
04680 C am3 =sqrt(am3sq)
04681 c --- this part of jacobian will be recovered later
04682 C gg2=ams2-ams1
04683 c
04684 C mass of 2 (34)
04685 rr2=rrr(2)
04686 ams1=(amp3+amp4)**2
04687 ams2=(am3-amp2)**2
04688 c flat phase space;
04689 am2sq=ams1+ rr2*(ams2-ams1)
04690 am2 =sqrt(am2sq)
04691 c --- this part of jacobian will be recovered later
04692 gg3=ams2-ams1
04693 c
04694 c (34) restframe, define pi3 and pi4
04695 enq1=(am2sq+amp3**2-amp4**2)/(2*am2)
04696 enq2=(am2sq-amp3**2+amp4**2)/(2*am2)
04697 ppi= enq1**2-amp3**2
04698 pppi=sqrt(abs(enq1**2-amp3**2))
04699 ff1=(4*pi)*(2*pppi/am2)
04700 c pi3 momentum in (34) rest frame
04701 call sphera(pppi,pi3)
04702 pi3(4)=enq1
04703 c pi4 momentum in (34) rest frame
04704 do 30 i=1,3
04705 30 pi4(i)=-pi3(i)
04706 pi4(4)=enq2
04707 c
04708 c (234) rest frame, define pi2
04709 c pr momentum
04710 pr(1)=0
04711 pr(2)=0
04712 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
04713 pr(3)= sqrt(abs(pr(4)**2-am2**2))
04714 ppi = pr(4)**2-am2**2
04715 c pi2 momentum
04716 pi2(1)=0
04717 pi2(2)=0
04718 pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
04719 pi2(3)=-pr(3)
04720 c --- this part of jacobian will be recovered later
04721 ff2=(4*pi)*(2*pr(3)/am3)
04722 c old pions boosted from 2 rest frame to 3 rest frame
04723 exe=(pr(4)+pr(3))/am2
04724 call bostr3(exe,pi3,pi3)
04725 call bostr3(exe,pi4,pi4)
04726 rr3=rrr(3)
04727 rr4=rrr(4)
04728 thet =acos(-1.+2*rr3)
04729 phi = 2*pi*rr4
04730 call rotpol(thet,phi,pi2)
04731 call rotpol(thet,phi,pi3)
04732 call rotpol(thet,phi,pi4)
04733 C
04734 C (2345) rest frame, define pi5
04735 c pr momentum
04736 pr(1)=0
04737 pr(2)=0
04738 pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2)
04739 pr(3)= sqrt(abs(pr(4)**2-am3**2))
04740 ppi = pr(4)**2-am3**2
04741 c pi5 momentum
04742 pi5(1)=0
04743 pi5(2)=0
04744 pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2)
04745 pi5(3)=-pr(3)
04746 c --- this part of jacobian will be recovered later
04747 ff3=(4*pi)*(2*pr(3)/am4)
04748 c old pions boosted from 3 rest frame to 4 rest frame
04749 exe=(pr(4)+pr(3))/am3
04750 call bostr3(exe,pi2,pi2)
04751 call bostr3(exe,pi3,pi3)
04752 call bostr3(exe,pi4,pi4)
04753 rr3=rrr(5)
04754 rr4=rrr(6)
04755 thet =acos(-1.+2*rr3)
04756 phi = 2*pi*rr4
04757 call rotpol(thet,phi,pi2)
04758 call rotpol(thet,phi,pi3)
04759 call rotpol(thet,phi,pi4)
04760 call rotpol(thet,phi,pi5)
04761 C
04762 C (12345) rest frame, define pi1
04763 c pr momentum
04764 pr(1)=0
04765 pr(2)=0
04766 pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2)
04767 pr(3)= sqrt(abs(pr(4)**2-am4**2))
04768 ppi = pr(4)**2-am4**2
04769 c pi1 momentum
04770 pi1(1)=0
04771 pi1(2)=0
04772 pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2)
04773 pi1(3)=-pr(3)
04774 c --- this part of jacobian will be recovered later
04775 ff4=(4*pi)*(2*pr(3)/am5)
04776 c old pions boosted from 4 rest frame to 5 rest frame
04777 exe=(pr(4)+pr(3))/am4
04778 call bostr3(exe,pi2,pi2)
04779 call bostr3(exe,pi3,pi3)
04780 call bostr3(exe,pi4,pi4)
04781 call bostr3(exe,pi5,pi5)
04782 rr3=rrr(7)
04783 rr4=rrr(8)
04784 thet =acos(-1.+2*rr3)
04785 phi = 2*pi*rr4
04786 call rotpol(thet,phi,pi1)
04787 call rotpol(thet,phi,pi2)
04788 call rotpol(thet,phi,pi3)
04789 call rotpol(thet,phi,pi4)
04790 call rotpol(thet,phi,pi5)
04791 c
04792 * now to the tau rest frame, define paa and neutrino momenta
04793 * paa momentum
04794 paa(1)=0
04795 paa(2)=0
04796 c paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5**2)
04797 c paa(3)= sqrt(abs(paa(4)**2-am5**2))
04798 c ppi = paa(4)**2-am5**2
04799 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq)
04800 paa(3)= sqrt(abs(paa(4)**2-am5sq))
04801 ppi = paa(4)**2-am5sq
04802 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
04803 * tau-neutrino momentum
04804 pn(1)=0
04805 pn(2)=0
04806 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2)
04807 pn(3)=-paa(3)
04808 c
04809 phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4
04810 c
04811 C all pions boosted from 5 rest frame to tau rest frame
04812 C z-axis antiparallel to neutrino momentum
04813 exe=(paa(4)+paa(3))/am5
04814 call bostr3(exe,pi1,pi1)
04815 call bostr3(exe,pi2,pi2)
04816 call bostr3(exe,pi3,pi3)
04817 call bostr3(exe,pi4,pi4)
04818 call bostr3(exe,pi5,pi5)
04819 c
04820 C partial width consists of phase space and amplitude
04821 C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971)
04822 C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985)
04823 C
04824 PXQ=AMTAU*PAA(4)
04825 PXN=AMTAU*PN(4)
04826 QXN=PAA(4)*PN(4)-PAA(1)*PN(1)-PAA(2)*PN(2)-PAA(3)*PN(3)
04827 BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AM5SQ*PXN)
04828 & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AM5SQ
04829 fompp = cabs(bwign(am3,amom,gamom))**2
04830 c normalisation factor (to some numerical undimensioned factor;
04831 c cf R.Fischer et al ZPhys C3, 313 (1980))
04832 fnorm = 1/fpi**6
04833 c AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AM5SQ*SIGEE(AM5SQ,JNPI)
04834 AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK
04835 amplit = amplit * fompp * fnorm
04836 c phase space test
04837 c amplit = amplit * fnorm
04838 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04839 c ignore spin terms
04840 DO 40 I=1,3
04841 40 HV(I)=0.
04842 c
04843 do 77 k=1,4
04844 pmult(k,1)=pi1(k)
04845 pmult(k,2)=pi2(k)
04846 pmult(k,3)=pi3(k)
04847 pmult(k,4)=pi4(k)
04848 pmult(k,5)=pi5(k)
04849 77 continue
04850 return
04851 #if defined (ALEPH)
04852 C missing: transposition of identical particles, statistical factors
04853 C for identical matrices, polarimetric vector. Matrix element rather nai
04854 #else
04855 C missing: transposition of identical particles, startistical factors
04856 C for identical matrices, polarimetric vector. Matrix element rather naive.
04857 #endif
04858 C flat phase space in pion system + with breit wigner for omega
04859 C anyway it is better than nothing, and code is improvable.
04860 end
04861 SUBROUTINE DPHSRK(DGAMT,HV,PN,PR,PMULT,INUM)
04862 C ----------------------------------------------------------------------
04863 C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH
04864 C Z-AXIS ALONG RHO MOMENTUM
04865 C Rho decays to K Kbar
04866 C ----------------------------------------------------------------------
04867 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04868 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04869 * ,AMK,AMKZ,AMKST,GAMKST
04870 C
04871 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04872 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04873 * ,AMK,AMKZ,AMKST,GAMKST
04874 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04875 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04876 REAL HV(4),PT(4),PN(4),PR(4),PKC(4),PKZ(4),QQ(4),PMULT(4,9)
04877 #if defined (ALEPH)
04878 REAL*4 RR1(1)
04879 #else
04880 REAL RR1(1)
04881 #endif
04882 DATA PI /3.141592653589793238462643/
04883 DATA ICONT /0/
04884 C
04885 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
04886 PHSPAC=1./2**11/PI**5
04887 C TAU MOMENTUM
04888 PT(1)=0.
04889 PT(2)=0.
04890 PT(3)=0.
04891 PT(4)=AMTAU
04892 C MASS OF (REAL/VIRTUAL) RHO
04893 AMS1=(AMK+AMKZ)**2
04894 AMS2=(AMTAU-AMNUTA)**2
04895 C FLAT PHASE SPACE
04896 CALL RANMAR(RR1,1)
04897 AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
04898 AMX=SQRT(AMX2)
04899 PHSPAC=PHSPAC*(AMS2-AMS1)
04900 C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE
04901 c ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO)
04902 c ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO)
04903 CAM
04904 100 CONTINUE
04905 c CALL RANMAR(RR1,1)
04906 c ALP=ALP1+RR1(1)*(ALP2-ALP1)
04907 c AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP)
04908 c AMX=SQRT(AMX2)
04909 c IF(AMX.LT.(AMK+AMKZ)) GO TO 100
04910 CAM
04911 c PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO)
04912 c PHSPAC=PHSPAC*(ALP2-ALP1)
04913 C
04914 C TAU-NEUTRINO MOMENTUM
04915 PN(1)=0
04916 PN(2)=0
04917 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
04918 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
04919 C RHO MOMENTUM
04920 PR(1)=0
04921 PR(2)=0
04922 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
04923 PR(3)=-PN(3)
04924 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU)
04925 C
04926 CAM
04927 ENQ1=(AMX2+AMK**2-AMKZ**2)/(2.*AMX)
04928 ENQ2=(AMX2-AMK**2+AMKZ**2)/(2.*AMX)
04929 PPPI=SQRT((ENQ1-AMK)*(ENQ1+AMK))
04930 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
04931 C CHARGED PI MOMENTUM IN RHO REST FRAME
04932 CALL SPHERA(PPPI,PKC)
04933 PKC(4)=ENQ1
04934 C NEUTRAL PI MOMENTUM IN RHO REST FRAME
04935 DO 20 I=1,3
04936 20 PKZ(I)=-PKC(I)
04937 PKZ(4)=ENQ2
04938 EXE=(PR(4)+PR(3))/AMX
04939 C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME
04940 CALL BOSTR3(EXE,PKC,PKC)
04941 CALL BOSTR3(EXE,PKZ,PKZ)
04942 DO 30 I=1,4
04943 30 QQ(I)=PKC(I)-PKZ(I)
04944 C QQ transverse to PR
04945 PKSD =PR(4)*PR(4)-PR(3)*PR(3)-PR(2)*PR(2)-PR(1)*PR(1)
04946 QQPKS=PR(4)* QQ(4)-PR(3)* QQ(3)-PR(2)* QQ(2)-PR(1)* QQ(1)
04947 DO 31 I=1,4
04948 31 QQ(I)=QQ(I)-PR(I)*QQPKS/PKSD
04949 C AMPLITUDE
04950 PRODPQ=PT(4)*QQ(4)
04951 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
04952 PRODPN=PT(4)*PN(4)
04953 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
04954 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
04955 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
04956 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRK(AMX)
04957 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04958 DO 40 I=1,3
04959 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
04960 do 77 k=1,4
04961 pmult(k,1)=pkc(k)
04962 pmult(k,2)=pkz(k)
04963 77 continue
04964 RETURN
04965 END
04966 FUNCTION FPIRK(W)
04967 C ----------------------------------------------------------
04968 c square of pion form factor
04969 C ----------------------------------------------------------
04970 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04971 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04972 * ,AMK,AMKZ,AMKST,GAMKST
04973 C
04974 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04975 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04976 * ,AMK,AMKZ,AMKST,GAMKST
04977 c COMPLEX FPIKMK
04978 COMPLEX FPIKM
04979 FPIRK=CABS(FPIKM(W,AMK,AMKZ))**2
04980 c FPIRK=CABS(FPIKMK(W,AMK,AMKZ))**2
04981 END
04982 COMPLEX FUNCTION FPIKMK(W,XM1,XM2)
04983 C **********************************************************
04984 C Kaon form factor
04985 C **********************************************************
04986 COMPLEX BWIGM
04987 REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W
04988 EXTERNAL BWIG
04989 DATA INIT /0/
04990 C
04991 C ------------ PARAMETERS --------------------
04992 IF (INIT.EQ.0 ) THEN
04993 INIT=1
04994 PI=3.141592654
04995 PIM=.140
04996 ROM=0.773
04997 ROG=0.145
04998 ROM1=1.570
04999 ROG1=0.510
05000 c BETA1=-0.111
05001 BETA1=-0.221
05002 ENDIF
05003 C -----------------------------------------------
05004 S=W**2
05005 FPIKMK=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2))
05006 & /(1+BETA1)
05007 RETURN
05008 END
05009 SUBROUTINE RESLUX
05010 C ****************
05011 C INITIALIZE LUND COMMON
05012 #if defined (CLEO)
05013 #else
05014 PARAMETER (NMXHEP=2000)
05015 COMMON/HEPEVTX/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
05016 &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
05017 SAVE /HEPEVTx/
05018 #endif
05019 NHEP=0
05020 END
05021 SUBROUTINE DWRPH(KTO,PHX)
05022 C
05023 C -------------------------
05024 C
05025 IMPLICIT REAL*8 (A-H,O-Z)
05026 REAL*4 PHX(4)
05027 REAL*4 QHOT(4)
05028 C
05029 DO 9 K=1,4
05030 QHOT(K) =0.0
05031 9 CONTINUE
05032 C CASE OF TAU RADIATIVE DECAYS.
05033 C FILLING OF THE LUND COMMON BLOCK.
05034 DO 1002 I=1,4
05035 1002 QHOT(I)=PHX(I)
05036 IF (QHOT(4).GT.1.E-5) CALL DWLUPH(KTO,QHOT)
05037 RETURN
05038 END
05039 SUBROUTINE DWLUPH(KTO,PHOT)
05040 C---------------------------------------------------------------------
05041 C Lorentz transformation to CMsystem and
05042 C Updating of HEPEVT record
05043 C
05044 C called by : DEXAY1,(DEKAY1,DEKAY2)
05045 C
05046 C used when radiative corrections in decays are generated
05047 C---------------------------------------------------------------------
05048 C
05049 #if defined (ALEPH)
05050 COMMON /TAUPOS/ NP1,NP2
05051 #else
05052 #endif
05053 REAL PHOT(4)
05054 #if defined (ALEPH)
05055 #else
05056 COMMON /TAUPOS/ NP1,NP2
05057 #endif
05058 C
05059 C check energy
05060 IF (PHOT(4).LE.0.0) RETURN
05061 C
05062 C position of decaying particle:
05063 IF((KTO.EQ. 1).OR.(KTO.EQ.11)) THEN
05064 NPS=NP1
05065 ELSE
05066 NPS=NP2
05067 ENDIF
05068 C
05069 KTOS=KTO
05070 IF(KTOS.GT.10) KTOS=KTOS-10
05071 C boost and append photon (gamma is 22)
05072 CALL TRALO4(KTOS,PHOT,PHOT,AM)
05073 CALL FILHEP(0,1,22,NPS,NPS,0,0,PHOT,0.0,.TRUE.)
05074 C
05075 RETURN
05076 END
05077
05078 SUBROUTINE DWLUEL(KTO,ISGN,PNU,PWB,PEL,PNE)
05079 C ----------------------------------------------------------------------
05080 C Lorentz transformation to CMsystem and
05081 C Updating of HEPEVT record
05082 C
05083 C ISGN = 1/-1 for tau-/tau+
05084 C
05085 C called by : DEXAY,(DEKAY1,DEKAY2)
05086 C ----------------------------------------------------------------------
05087 C
05088 #if defined (ALEPH)
05089 COMMON /TAUPOS/ NP1,NP2
05090 #else
05091 #endif
05092 REAL PNU(4),PWB(4),PEL(4),PNE(4)
05093 #if defined (ALEPH)
05094 #else
05095 COMMON /TAUPOS/ NP1,NP2
05096 #endif
05097 C
05098 C position of decaying particle:
05099 IF(KTO.EQ. 1) THEN
05100 NPS=NP1
05101 ELSE
05102 NPS=NP2
05103 ENDIF
05104 C
05105 C tau neutrino (nu_tau is 16)
05106 CALL TRALO4(KTO,PNU,PNU,AM)
05107 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05108 C
05109 C W boson (W+ is 24)
05110 CALL TRALO4(KTO,PWB,PWB,AM)
05111 C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05112 C
05113 C electron (e- is 11)
05114 CALL TRALO4(KTO,PEL,PEL,AM)
05115 CALL FILHEP(0,1,11*ISGN,NPS,NPS,0,0,PEL,AM,.FALSE.)
05116 C
05117 C anti electron neutrino (nu_e is 12)
05118 CALL TRALO4(KTO,PNE,PNE,AM)
05119 CALL FILHEP(0,1,-12*ISGN,NPS,NPS,0,0,PNE,AM,.TRUE.)
05120 C
05121 RETURN
05122 END
05123 SUBROUTINE DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM)
05124 C ----------------------------------------------------------------------
05125 C Lorentz transformation to CMsystem and
05126 C Updating of HEPEVT record
05127 C
05128 C ISGN = 1/-1 for tau-/tau+
05129 C
05130 C called by : DEXAY,(DEKAY1,DEKAY2)
05131 C ----------------------------------------------------------------------
05132 C
05133 #if defined (ALEPH)
05134 COMMON /TAUPOS/ NP1,NP2
05135 #else
05136 #endif
05137 REAL PNU(4),PWB(4),PMU(4),PNM(4)
05138 #if defined (ALEPH)
05139 #else
05140 COMMON /TAUPOS/ NP1,NP2
05141 #endif
05142 C
05143 C position of decaying particle:
05144 IF(KTO.EQ. 1) THEN
05145 NPS=NP1
05146 ELSE
05147 NPS=NP2
05148 ENDIF
05149 C
05150 C tau neutrino (nu_tau is 16)
05151 CALL TRALO4(KTO,PNU,PNU,AM)
05152 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05153 C
05154 C W boson (W+ is 24)
05155 CALL TRALO4(KTO,PWB,PWB,AM)
05156 C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05157 C
05158 C muon (mu- is 13)
05159 CALL TRALO4(KTO,PMU,PMU,AM)
05160 CALL FILHEP(0,1,13*ISGN,NPS,NPS,0,0,PMU,AM,.FALSE.)
05161 C
05162 C anti muon neutrino (nu_mu is 14)
05163 CALL TRALO4(KTO,PNM,PNM,AM)
05164 CALL FILHEP(0,1,-14*ISGN,NPS,NPS,0,0,PNM,AM,.TRUE.)
05165 C
05166 RETURN
05167 END
05168 SUBROUTINE DWLUPI(KTO,ISGN,PPI,PNU)
05169 C ----------------------------------------------------------------------
05170 C Lorentz transformation to CMsystem and
05171 C Updating of HEPEVT record
05172 C
05173 C ISGN = 1/-1 for tau-/tau+
05174 C
05175 C called by : DEXAY,(DEKAY1,DEKAY2)
05176 C ----------------------------------------------------------------------
05177 C
05178 REAL PNU(4),PPI(4)
05179 COMMON /TAUPOS/ NP1,NP2
05180 C
05181 C position of decaying particle:
05182 IF(KTO.EQ. 1) THEN
05183 NPS=NP1
05184 ELSE
05185 NPS=NP2
05186 ENDIF
05187 C
05188 C tau neutrino (nu_tau is 16)
05189 CALL TRALO4(KTO,PNU,PNU,AM)
05190 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05191 C
05192 C charged pi meson (pi+ is 211)
05193 CALL TRALO4(KTO,PPI,PPI,AM)
05194 CALL FILHEP(0,1,-211*ISGN,NPS,NPS,0,0,PPI,AM,.TRUE.)
05195 C
05196 RETURN
05197 END
05198 SUBROUTINE DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ)
05199 C ----------------------------------------------------------------------
05200 C Lorentz transformation to CMsystem and
05201 C Updating of HEPEVT record
05202 C
05203 C ISGN = 1/-1 for tau-/tau+
05204 C
05205 C called by : DEXAY,(DEKAY1,DEKAY2)
05206 C ----------------------------------------------------------------------
05207 C
05208 #if defined (ALEPH)
05209 COMMON /TAUPOS/ NP1,NP2
05210 #else
05211 #endif
05212 REAL PNU(4),PRHO(4),PIC(4),PIZ(4)
05213 #if defined (ALEPH)
05214 #else
05215 COMMON /TAUPOS/ NP1,NP2
05216 #endif
05217 C
05218 C position of decaying particle:
05219 IF(KTO.EQ. 1) THEN
05220 NPS=NP1
05221 ELSE
05222 NPS=NP2
05223 ENDIF
05224 C
05225 C tau neutrino (nu_tau is 16)
05226 CALL TRALO4(KTO,PNU,PNU,AM)
05227 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05228 C
05229 C charged rho meson (rho+ is 213)
05230 CALL TRALO4(KTO,PRHO,PRHO,AM)
05231 CALL FILHEP(0,2,-213*ISGN,NPS,NPS,0,0,PRHO,AM,.TRUE.)
05232 C
05233 C charged pi meson (pi+ is 211)
05234 CALL TRALO4(KTO,PIC,PIC,AM)
05235 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIC,AM,.TRUE.)
05236 C
05237 C pi0 meson (pi0 is 111)
05238 CALL TRALO4(KTO,PIZ,PIZ,AM)
05239 CALL FILHEP(0,1,111,-2,-2,0,0,PIZ,AM,.TRUE.)
05240 C
05241 RETURN
05242 END
05243 SUBROUTINE DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
05244 C ----------------------------------------------------------------------
05245 C Lorentz transformation to CMsystem and
05246 C Updating of HEPEVT record
05247 C
05248 C ISGN = 1/-1 for tau-/tau+
05249 C JAA = 1 (2) FOR A_1- DECAY TO PI+ 2PI- (PI- 2PI0)
05250 C
05251 C called by : DEXAY,(DEKAY1,DEKAY2)
05252 C ----------------------------------------------------------------------
05253 C
05254 #if defined (ALEPH)
05255 COMMON /TAUPOS/ NP1,NP2
05256 #else
05257 #endif
05258 REAL PNU(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
05259 #if defined (ALEPH)
05260 #else
05261 COMMON /TAUPOS/ NP1,NP2
05262 #endif
05263 C
05264 C position of decaying particle:
05265 IF(KTO.EQ. 1) THEN
05266 NPS=NP1
05267 ELSE
05268 NPS=NP2
05269 ENDIF
05270 C
05271 C tau neutrino (nu_tau is 16)
05272 CALL TRALO4(KTO,PNU,PNU,AM)
05273 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05274 C
05275 C charged a_1 meson (a_1+ is 20213)
05276 CALL TRALO4(KTO,PAA,PAA,AM)
05277 CALL FILHEP(0,1,-20213*ISGN,NPS,NPS,0,0,PAA,AM,.TRUE.)
05278 C
05279 C two possible decays of the charged a1 meson
05280 IF(JAA.EQ.1) THEN
05281 C
05282 C A1 --> PI+ PI- PI- (or charged conjugate)
05283 C
05284 C pi minus (or c.c.) (pi+ is 211)
05285 CALL TRALO4(KTO,PIM2,PIM2,AM)
05286 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIM2,AM,.TRUE.)
05287 C
05288 C pi minus (or c.c.) (pi+ is 211)
05289 CALL TRALO4(KTO,PIM1,PIM1,AM)
05290 CALL FILHEP(0,1,-211*ISGN,-2,-2,0,0,PIM1,AM,.TRUE.)
05291 C
05292 C pi plus (or c.c.) (pi+ is 211)
05293 CALL TRALO4(KTO,PIPL,PIPL,AM)
05294 CALL FILHEP(0,1, 211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
05295 C
05296 ELSE IF (JAA.EQ.2) THEN
05297 C
05298 C A1 --> PI- PI0 PI0 (or charged conjugate)
05299 C
05300 C pi zero (pi0 is 111)
05301 CALL TRALO4(KTO,PIM2,PIM2,AM)
05302 CALL FILHEP(0,1,111,-1,-1,0,0,PIM2,AM,.TRUE.)
05303 C
05304 C pi zero (pi0 is 111)
05305 CALL TRALO4(KTO,PIM1,PIM1,AM)
05306 CALL FILHEP(0,1,111,-2,-2,0,0,PIM1,AM,.TRUE.)
05307 C
05308 C pi minus (or c.c.) (pi+ is 211)
05309 CALL TRALO4(KTO,PIPL,PIPL,AM)
05310 CALL FILHEP(0,1,-211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
05311 C
05312 ENDIF
05313 C
05314 RETURN
05315 END
05316 SUBROUTINE DWLUKK (KTO,ISGN,PKK,PNU)
05317 C ----------------------------------------------------------------------
05318 C Lorentz transformation to CMsystem and
05319 C Updating of HEPEVT record
05320 C
05321 C ISGN = 1/-1 for tau-/tau+
05322 C
05323 C ----------------------------------------------------------------------
05324 C
05325 REAL PKK(4),PNU(4)
05326 COMMON /TAUPOS/ NP1,NP2
05327 C
05328 C position of decaying particle
05329 #if defined (ALEPH)
05330 IF(KTO.EQ. 1) THEN
05331 #else
05332 IF (KTO.EQ.1) THEN
05333 #endif
05334 NPS=NP1
05335 ELSE
05336 NPS=NP2
05337 ENDIF
05338 C
05339 C tau neutrino (nu_tau is 16)
05340 CALL TRALO4 (KTO,PNU,PNU,AM)
05341 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05342 C
05343 C K meson (K+ is 321)
05344 CALL TRALO4 (KTO,PKK,PKK,AM)
05345 CALL FILHEP(0,1,-321*ISGN,NPS,NPS,0,0,PKK,AM,.TRUE.)
05346 C
05347 RETURN
05348 END
05349 SUBROUTINE DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
05350 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
05351 REAL*4 BRA1,BRK0,BRK0B,BRKS
05352 #if defined (ALEPH)
05353 COMMON /TAUPOS/ NP1,NP2
05354 REAL*4 XIO(1)
05355 #endif
05356 C ----------------------------------------------------------------------
05357 C Lorentz transformation to CMsystem and
05358 C Updating of HEPEVT record
05359 C
05360 C ISGN = 1/-1 for tau-/tau+
05361 C JKST=10 (20) corresponds to K0B pi- (K- pi0) decay
05362 C
05363 C ----------------------------------------------------------------------
05364 C
05365 #if defined (ALEPH)
05366 REAL PNU(4),PKS(4),PKK(4),PPI(4)
05367 #else
05368 REAL PNU(4),PKS(4),PKK(4),PPI(4),XIO(1)
05369 COMMON /TAUPOS/ NP1,NP2
05370 #endif
05371 C
05372 C position of decaying particle
05373 IF(KTO.EQ. 1) THEN
05374 NPS=NP1
05375 ELSE
05376 NPS=NP2
05377 ENDIF
05378 C
05379 C tau neutrino (nu_tau is 16)
05380 CALL TRALO4(KTO,PNU,PNU,AM)
05381 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05382 C
05383 C charged K* meson (K*+ is 323)
05384 CALL TRALO4(KTO,PKS,PKS,AM)
05385 CALL FILHEP(0,1,-323*ISGN,NPS,NPS,0,0,PKS,AM,.TRUE.)
05386 C
05387 C two possible decay modes of charged K*
05388 IF(JKST.EQ.10) THEN
05389 C
05390 C K*- --> pi- K0B (or charged conjugate)
05391 C
05392 C charged pi meson (pi+ is 211)
05393 CALL TRALO4(KTO,PPI,PPI,AM)
05394 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PPI,AM,.TRUE.)
05395 C
05396 BRAN=BRK0B
05397 IF (ISGN.EQ.-1) BRAN=BRK0
05398 C K0 --> K0_long (is 130) / K0_short (is 310) = 1/1
05399 CALL RANMAR(XIO,1)
05400 IF(XIO(1).GT.BRAN) THEN
05401 K0TYPE = 130
05402 ELSE
05403 K0TYPE = 310
05404 ENDIF
05405 C
05406 CALL TRALO4(KTO,PKK,PKK,AM)
05407 CALL FILHEP(0,1,K0TYPE,-2,-2,0,0,PKK,AM,.TRUE.)
05408 C
05409 ELSE IF(JKST.EQ.20) THEN
05410 C
05411 C K*- --> pi0 K-
05412 C
05413 C pi zero (pi0 is 111)
05414 CALL TRALO4(KTO,PPI,PPI,AM)
05415 CALL FILHEP(0,1,111,-1,-1,0,0,PPI,AM,.TRUE.)
05416 C
05417 C charged K meson (K+ is 321)
05418 CALL TRALO4(KTO,PKK,PKK,AM)
05419 CALL FILHEP(0,1,-321*ISGN,-2,-2,0,0,PKK,AM,.TRUE.)
05420 C
05421 ENDIF
05422 C
05423 RETURN
05424 END
05425 SUBROUTINE DWLNEW(KTO,ISGN,PNU,PWB,PNPI,MODE)
05426 C ----------------------------------------------------------------------
05427 C Lorentz transformation to CMsystem and
05428 C Updating of HEPEVT record
05429 C
05430 C ISGN = 1/-1 for tau-/tau+
05431 C
05432 C called by : DEXAY,(DEKAY1,DEKAY2)
05433 C ----------------------------------------------------------------------
05434 C
05435 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
05436 #if defined (ALEPH)
05437 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
05438 #else
05439 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
05440 #endif
05441 & ,NAMES
05442 COMMON /TAUPOS/ NP1,NP2
05443 CHARACTER NAMES(NMODE)*31
05444 REAL PNU(4),PWB(4),PNPI(4,9)
05445 REAL PPI(4)
05446 C
05447 JNPI=MODE-7
05448 C position of decaying particle
05449 IF(KTO.EQ. 1) THEN
05450 NPS=NP1
05451 ELSE
05452 NPS=NP2
05453 ENDIF
05454 C
05455 C tau neutrino (nu_tau is 16)
05456 CALL TRALO4(KTO,PNU,PNU,AM)
05457 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05458 C
05459 C W boson (W+ is 24)
05460 CALL TRALO4(KTO,PWB,PWB,AM)
05461 CALL FILHEP(0,1,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05462 C
05463 C multi pi mode JNPI
05464 C
05465 C get multiplicity of mode JNPI
05466 ND=MULPIK(JNPI)
05467 DO I=1,ND
05468 #if defined (ALEPH)
05469 cam KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN)
05470 KFPI=LUNPIK(IDFFIN(I,JNPI), ISGN)
05471 #else
05472 KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN)
05473 #endif
05474 C for charged conjugate case, change charged pions only
05475 C IF(KFPI.NE.111)KFPI=KFPI*ISGN
05476 DO J=1,4
05477 PPI(J)=PNPI(J,I)
05478 END DO
05479 CALL TRALO4(KTO,PPI,PPI,AM)
05480 CALL FILHEP(0,1,KFPI,-I,-I,0,0,PPI,AM,.TRUE.)
05481 END DO
05482 C
05483 RETURN
05484 END
05485 #if defined (CePeCe)
05486 #else
05487 #endif
05488 FUNCTION AMAST(PP)
05489 C ----------------------------------------------------------------------
05490 C CALCULATES MASS OF PP (DOUBLE PRECISION)
05491 C
05492 C USED BY : RADKOR
05493 C ----------------------------------------------------------------------
05494 IMPLICIT REAL*8 (A-H,O-Z)
05495 REAL*8 PP(4)
05496 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
05497 C
05498 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
05499 AMAST=AAA
05500 RETURN
05501 END
05502 FUNCTION AMAS4(PP)
05503 C ******************
05504 C ----------------------------------------------------------------------
05505 C CALCULATES MASS OF PP
05506 C
05507 C USED BY :
05508 C ----------------------------------------------------------------------
05509 REAL PP(4)
05510 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
05511 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
05512 AMAS4=AAA
05513 RETURN
05514 END
05515 FUNCTION ANGXY(X,Y)
05516 C ----------------------------------------------------------------------
05517 C
05518 C USED BY : KORALZ RADKOR
05519 C ----------------------------------------------------------------------
05520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05521 DATA PI /3.141592653589793238462643D0/
05522 C
05523 IF(ABS(Y).LT.ABS(X)) THEN
05524 THE=ATAN(ABS(Y/X))
05525 IF(X.LE.0D0) THE=PI-THE
05526 ELSE
05527 THE=ACOS(X/SQRT(X**2+Y**2))
05528 ENDIF
05529 ANGXY=THE
05530 RETURN
05531 END
05532 FUNCTION ANGFI(X,Y)
05533 C ----------------------------------------------------------------------
05534 * CALCULATES ANGLE IN (0,2*PI) RANGE OUT OF X-Y
05535 C
05536 C USED BY : KORALZ RADKOR
05537 C ----------------------------------------------------------------------
05538 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05539 DATA PI /3.141592653589793238462643D0/
05540 C
05541 IF(ABS(Y).LT.ABS(X)) THEN
05542 THE=ATAN(ABS(Y/X))
05543 IF(X.LE.0D0) THE=PI-THE
05544 ELSE
05545 THE=ACOS(X/SQRT(X**2+Y**2))
05546 ENDIF
05547 IF(Y.LT.0D0) THE=2D0*PI-THE
05548 ANGFI=THE
05549 END
05550 SUBROUTINE ROTOD1(PH1,PVEC,QVEC)
05551 C ----------------------------------------------------------------------
05552 C
05553 C USED BY : KORALZ
05554 C ----------------------------------------------------------------------
05555 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05556 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05557 C
05558 PHI=PH1
05559 CS=COS(PHI)
05560 SN=SIN(PHI)
05561 DO 10 I=1,4
05562 10 RVEC(I)=PVEC(I)
05563 QVEC(1)=RVEC(1)
05564 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05565 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05566 QVEC(4)=RVEC(4)
05567 RETURN
05568 END
05569 SUBROUTINE ROTOD2(PH1,PVEC,QVEC)
05570 C ----------------------------------------------------------------------
05571 C
05572 C USED BY : KORALZ RADKOR
05573 C ----------------------------------------------------------------------
05574 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05575 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05576 C
05577 PHI=PH1
05578 CS=COS(PHI)
05579 SN=SIN(PHI)
05580 DO 10 I=1,4
05581 10 RVEC(I)=PVEC(I)
05582 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05583 QVEC(2)=RVEC(2)
05584 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05585 QVEC(4)=RVEC(4)
05586 RETURN
05587 END
05588 SUBROUTINE ROTOD3(PH1,PVEC,QVEC)
05589 C ----------------------------------------------------------------------
05590 C
05591 C USED BY : KORALZ RADKOR
05592 C ----------------------------------------------------------------------
05593 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05594 C
05595 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05596 PHI=PH1
05597 CS=COS(PHI)
05598 SN=SIN(PHI)
05599 DO 10 I=1,4
05600 10 RVEC(I)=PVEC(I)
05601 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05602 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05603 QVEC(3)=RVEC(3)
05604 QVEC(4)=RVEC(4)
05605 END
05606 SUBROUTINE BOSTR3(EXE,PVEC,QVEC)
05607 C ----------------------------------------------------------------------
05608 C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY.
05609 C
05610 C USED BY : TAUOLA KORALZ (?)
05611 C ----------------------------------------------------------------------
05612 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05613 C
05614 DO 10 I=1,4
05615 10 RVEC(I)=PVEC(I)
05616 RPL=RVEC(4)+RVEC(3)
05617 RMI=RVEC(4)-RVEC(3)
05618 QPL=RPL*EXE
05619 QMI=RMI/EXE
05620 QVEC(1)=RVEC(1)
05621 QVEC(2)=RVEC(2)
05622 QVEC(3)=(QPL-QMI)/2
05623 QVEC(4)=(QPL+QMI)/2
05624 END
05625 SUBROUTINE BOSTD3(EXE,PVEC,QVEC)
05626 C ----------------------------------------------------------------------
05627 C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY.
05628 C
05629 C USED BY : KORALZ RADKOR
05630 C ----------------------------------------------------------------------
05631 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05632 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05633 C
05634 DO 10 I=1,4
05635 10 RVEC(I)=PVEC(I)
05636 RPL=RVEC(4)+RVEC(3)
05637 RMI=RVEC(4)-RVEC(3)
05638 QPL=RPL*EXE
05639 QMI=RMI/EXE
05640 QVEC(1)=RVEC(1)
05641 QVEC(2)=RVEC(2)
05642 QVEC(3)=(QPL-QMI)/2
05643 QVEC(4)=(QPL+QMI)/2
05644 RETURN
05645 END
05646 SUBROUTINE ROTOR1(PH1,PVEC,QVEC)
05647 C ----------------------------------------------------------------------
05648 C
05649 C called by :
05650 C ----------------------------------------------------------------------
05651 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05652 C
05653 PHI=PH1
05654 CS=COS(PHI)
05655 SN=SIN(PHI)
05656 DO 10 I=1,4
05657 10 RVEC(I)=PVEC(I)
05658 QVEC(1)=RVEC(1)
05659 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05660 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05661 QVEC(4)=RVEC(4)
05662 END
05663 SUBROUTINE ROTOR2(PH1,PVEC,QVEC)
05664 C ----------------------------------------------------------------------
05665 C
05666 C USED BY : TAUOLA
05667 C ----------------------------------------------------------------------
05668 IMPLICIT REAL*4(A-H,O-Z)
05669 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05670 C
05671 PHI=PH1
05672 CS=COS(PHI)
05673 SN=SIN(PHI)
05674 DO 10 I=1,4
05675 10 RVEC(I)=PVEC(I)
05676 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05677 QVEC(2)=RVEC(2)
05678 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05679 QVEC(4)=RVEC(4)
05680 END
05681 SUBROUTINE ROTOR3(PHI,PVEC,QVEC)
05682 C ----------------------------------------------------------------------
05683 C
05684 C USED BY : TAUOLA
05685 C ----------------------------------------------------------------------
05686 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05687 C
05688 CS=COS(PHI)
05689 SN=SIN(PHI)
05690 DO 10 I=1,4
05691 10 RVEC(I)=PVEC(I)
05692 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05693 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05694 QVEC(3)=RVEC(3)
05695 QVEC(4)=RVEC(4)
05696 END
05697 SUBROUTINE SPHERD(R,X)
05698 C ----------------------------------------------------------------------
05699 C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R
05700 C DOUBLE PRECISON VERSION OF SPHERA
05701 C ----------------------------------------------------------------------
05702 REAL*8 R,X(4),PI,COSTH,SINTH
05703 REAL*4 RRR(2)
05704 DATA PI /3.141592653589793238462643D0/
05705 C
05706 CALL RANMAR(RRR,2)
05707 COSTH=-1+2*RRR(1)
05708 SINTH=SQRT(1 -COSTH**2)
05709 X(1)=R*SINTH*COS(2*PI*RRR(2))
05710 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05711 X(3)=R*COSTH
05712 RETURN
05713 END
05714 SUBROUTINE ROTPOX(THET,PHI,PP)
05715 IMPLICIT REAL*8 (A-H,O-Z)
05716 C ----------------------------------------------------------------------
05717 #if defined (ALEPH)
05718 C double precison version of ROTPOL
05719 #else
05720 C
05721 #endif
05722 C ----------------------------------------------------------------------
05723 DIMENSION PP(4)
05724 C
05725 CALL ROTOD2(THET,PP,PP)
05726 CALL ROTOD3( PHI,PP,PP)
05727 RETURN
05728 END
05729 SUBROUTINE SPHERA(R,X)
05730 C ----------------------------------------------------------------------
05731 C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R
05732 C
05733 C called by : DPHSxx,DADMPI,DADMKK
05734 C ----------------------------------------------------------------------
05735 REAL X(4)
05736 REAL*4 RRR(2)
05737 DATA PI /3.141592653589793238462643/
05738 C
05739 CALL RANMAR(RRR,2)
05740 COSTH=-1.+2.*RRR(1)
05741 SINTH=SQRT(1.-COSTH**2)
05742 X(1)=R*SINTH*COS(2*PI*RRR(2))
05743 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05744 X(3)=R*COSTH
05745 RETURN
05746 END
05747 SUBROUTINE ROTPOL(THET,PHI,PP)
05748 C ----------------------------------------------------------------------
05749 C
05750 C called by : DADMAA,DPHSAA
05751 C ----------------------------------------------------------------------
05752 REAL PP(4)
05753 C
05754 CALL ROTOR2(THET,PP,PP)
05755 CALL ROTOR3( PHI,PP,PP)
05756 RETURN
05757 END
05758 #include "../randg/tauola-random.h"
05759 FUNCTION DILOGT(X)
05760 C *****************
05761 IMPLICIT REAL*8(A-H,O-Z)
05762 CERN C304 VERSION 29/07/71 DILOG 59 C
05763 Z=-1.64493406684822
05764 IF(X .LT.-1.0) GO TO 1
05765 IF(X .LE. 0.5) GO TO 2
05766 IF(X .EQ. 1.0) GO TO 3
05767 IF(X .LE. 2.0) GO TO 4
05768 Z=3.2898681336964
05769 1 T=1.0/X
05770 S=-0.5
05771 Z=Z-0.5* LOG(ABS(X))**2
05772 GO TO 5
05773 2 T=X
05774 S=0.5
05775 Z=0.
05776 GO TO 5
05777 3 DILOGT=1.64493406684822
05778 RETURN
05779 4 T=1.0-X
05780 S=-0.5
05781 Z=1.64493406684822 - LOG(X)* LOG(ABS(T))
05782 5 Y=2.66666666666666 *T+0.66666666666666
05783 B= 0.00000 00000 00001
05784 A=Y*B +0.00000 00000 00004
05785 B=Y*A-B+0.00000 00000 00011
05786 A=Y*B-A+0.00000 00000 00037
05787 B=Y*A-B+0.00000 00000 00121
05788 A=Y*B-A+0.00000 00000 00398
05789 B=Y*A-B+0.00000 00000 01312
05790 A=Y*B-A+0.00000 00000 04342
05791 B=Y*A-B+0.00000 00000 14437
05792 A=Y*B-A+0.00000 00000 48274
05793 B=Y*A-B+0.00000 00001 62421
05794 A=Y*B-A+0.00000 00005 50291
05795 B=Y*A-B+0.00000 00018 79117
05796 A=Y*B-A+0.00000 00064 74338
05797 B=Y*A-B+0.00000 00225 36705
05798 A=Y*B-A+0.00000 00793 87055
05799 B=Y*A-B+0.00000 02835 75385
05800 A=Y*B-A+0.00000 10299 04264
05801 B=Y*A-B+0.00000 38163 29463
05802 A=Y*B-A+0.00001 44963 00557
05803 B=Y*A-B+0.00005 68178 22718
05804 A=Y*B-A+0.00023 20021 96094
05805 B=Y*A-B+0.00100 16274 96164
05806 A=Y*B-A+0.00468 63619 59447
05807 B=Y*A-B+0.02487 93229 24228
05808 A=Y*B-A+0.16607 30329 27855
05809 A=Y*A-B+1.93506 43008 6996
05810 DILOGT=S*T*(A-B)+Z
05811 RETURN
05812 C=======================================================================
05813 C===================END OF CPC PART ====================================
05814 C=======================================================================
05815 END