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.7 ******** *
00011 C **************DECEMBER 1993****************** *
00012 #else
00013 C *********TAUOLA LIBRARY: VERSION 2.7 ******** *
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.7 ******',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.7 ******',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.7 ******',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.7 ******',9X,1H*,
00258 $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*,
00259 #else
00260 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',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.7 ******',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.7 ******',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.7 ******',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.7 ******',9X,1H*,
00653 $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*,
00654 #else
00655 $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',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 ZBW 20.12.2002 bug fix
04410 IF(RRR(9).LE.0.5*PREZ) THEN
04411 DO 72 I=1,4
04412 X=PIM1(I)
04413 PIM1(I)=PIM2(I)
04414 72 PIM2(I)=X
04415 ENDIF
04416 C end of bug fix
04417 C WE INCLUDE REMAINING PART OF THE JACOBIAN
04418 C --- FLAT CHANNEL
04419 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
04420 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
04421 AMS2=(AM4-AMP2)**2
04422 AMS1=(AMP1+AMP3+AMP4)**2
04423 FF1=(AMS2-AMS1)
04424 AMS1=(AMP3+AMP4)**2
04425 AMS2=(SQRT(AM3SQ)-AMP1)**2
04426 FF2=AMS2-AMS1
04427 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
04428 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
04429 UU=FF1*FF2*FF3*FF4
04430 C --- FIRST CHANNEL
04431 AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2
04432 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2
04433 AMS2=(AM4-AMP2)**2
04434 AMS1=(AMP1+AMP3+AMP4)**2
04435 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04436 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04437 FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04438 FF1=FF1*(ALP2-ALP1)
04439 AMS1=(AMP3+AMP4)**2
04440 AMS2=(SQRT(AM3SQ)-AMP1)**2
04441 FF2=AMS2-AMS1
04442 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ)
04443 FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2)
04444 FF=FF1*FF2*FF3*FF4
04445 C --- SECOND CHANNEL
04446 AM3SQ=(PIM2(4)+PIZ(4)+PIPL(4))**2-(PIM2(3)+PIZ(3)+PIPL(3))**2
04447 $ -(PIM2(2)+PIZ(2)+PIPL(2))**2-(PIM2(1)+PIZ(1)+PIPL(1))**2
04448 AMS2=(AM4-AMP1)**2
04449 AMS1=(AMP2+AMP3+AMP4)**2
04450 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX)
04451 ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX)
04452 GG1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX)
04453 GG1=GG1*(ALP2-ALP1)
04454 AMS1=(AMP3+AMP4)**2
04455 AMS2=(SQRT(AM3SQ)-AMP2)**2
04456 GG2=AMS2-AMS1
04457 GG3=(4*PI)*(XLAM(AM2**2,AMP2**2,AM3SQ)/AM3SQ)
04458 GG4=(4*PI)*(XLAM(AM3SQ,AMP1**2,AM4**2)/AM4**2)
04459 GG=GG1*GG2*GG3*GG4
04460 C --- JACOBIAN AVERAGED OVER THE TWO
04461 IF ( ( (FF+GG)*UU+FF*GG ).GT.0.0D0) THEN
04462 RR=FF*GG*UU/(0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG)
04463 PHSPAC=PHSPAC*RR
04464 ELSE
04465 PHSPAC=0.0
04466 ENDIF
04467 * MOMENTA OF THE TWO PI-MINUS ARE RANDOMLY SYMMETRISED
04468 IF (JNPI.EQ.1) THEN
04469 RR5= RRR(5)
04470 IF(RR5.LE.0.5) THEN
04471 DO 70 I=1,4
04472 X=PIM1(I)
04473 PIM1(I)=PIM2(I)
04474 70 PIM2(I)=X
04475 ENDIF
04476 PHSPAC=PHSPAC/2.
04477 ELSE
04478 C MOMENTA OF PI0-S ARE GENERATED UNIFORMLY ONLY IF PREZ=0.0
04479 RR5= RRR(5)
04480 IF(RR5.LE.0.5) THEN
04481 DO 71 I=1,4
04482 X=PIM1(I)
04483 PIM1(I)=PIM2(I)
04484 71 PIM2(I)=X
04485 ENDIF
04486 PHSPAC=PHSPAC/6.
04487 ENDIF
04488 * ALL PIONS BOOSTED FROM 4 REST FRAME TO TAU REST FRAME
04489 * Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM
04490 EXE=(PAA(4)+PAA(3))/AM4
04491 CALL BOSTR3(EXE,PIZ,PIZ)
04492 CALL BOSTR3(EXE,PIPL,PIPL)
04493 CALL BOSTR3(EXE,PIM1,PIM1)
04494 CALL BOSTR3(EXE,PIM2,PIM2)
04495 CALL BOSTR3(EXE,PR,PR)
04496 C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE
04497 C CHECK ON CONSISTENCY WITH DADNPI, THEN, CODE BREAKES UNIFORM PION
04498 C DISTRIBUTION IN HADRONIC SYSTEM
04499 #if defined (ALEPH)
04500 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV)
04501 #else
04502 CAM Assume neutrino mass=0. and sum over final polarisation
04503 C AMX2=AM4**2
04504 C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2)
04505 C AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,1)
04506 IF (JNPI.EQ.1) THEN
04507 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV)
04508 ELSEIF (JNPI.EQ.2) THEN
04509 CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIPL,PIZ,AMPLIT,HV)
04510 ENDIF
04511 #endif
04512 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04513 C PHASE SPACE CHECK
04514 C DGAMT=PHSPAC
04515 DO 77 K=1,4
04516 PMULT(K,1)=PIM1(K)
04517 PMULT(K,2)=PIM2(K)
04518 #if defined (ALEPH)
04519 PMULT(K,3)=PIZ (K)
04520 PMULT(K,4)=PIPL(K)
04521 #else
04522 PMULT(K,3)=PIPL(K)
04523 PMULT(K,4)=PIZ (K)
04524 #endif
04525 77 CONTINUE
04526 END
04527 SUBROUTINE DAM4PI(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV)
04528 C ----------------------------------------------------------------------
04529 * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR
04530 * FOR TAU DECAY INTO 4 PI MODES
04531 * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT.
04532 * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT
04533 C MNUM DECAY MODE IDENTIFIER.
04534 C
04535 #if defined (ALEPH)
04536 C called by : DPH4PI
04537 #else
04538 C called by : DPHSAA
04539 #endif
04540 C ----------------------------------------------------------------------
04541 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04542 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04543 * ,AMK,AMKZ,AMKST,GAMKST
04544 C
04545 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04546 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04547 * ,AMK,AMKZ,AMKST,GAMKST
04548 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04549 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04550 REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4),PIM4(4)
04551 REAL PIVEC(4),PIAKS(4),HVM(4)
04552 COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5
04553 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5
04554 DATA PI /3.141592653589793238462643/
04555 DATA ICONT /0/
04556 C
04557 #if defined (CLEO)
04558 CALL CURR_CLEO(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
04559 #else
04560 CALL CURR(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
04561 #endif
04562 C
04563 * CALCULATE PI-VECTORS: VECTOR AND AXIAL
04564 CALL CLVEC(HADCUR,PN,PIVEC)
04565 CALL CLAXI(HADCUR,PN,PIAKS)
04566 CALL CLNUT(HADCUR,BRAKM,HVM)
04567 * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME
04568 BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4)
04569 & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM
04570 AMPLIT=(CCABIB*GFERMI)**2*BRAK/2.
04571 C POLARIMETER VECTOR IN TAU REST FRAME
04572 DO 90 I=1,3
04573 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I)))
04574 & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I)
04575 C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL
04576 IF (BRAK.NE.0.0)
04577 &HV(I)=-HV(I)/BRAK
04578 90 CONTINUE
04579 END
04580 SUBROUTINE DPH5PI(DGAMT,HV,PN,PAA,PMULT,JNPI)
04581 C ----------------------------------------------------------------------
04582 * IT SIMULATES 5pi DECAY IN TAU REST FRAME WITH
04583 * Z-AXIS ALONG 5pi MOMENTUM
04584 C ----------------------------------------------------------------------
04585 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04586 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04587 * ,AMK,AMKZ,AMKST,GAMKST
04588 C
04589 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04590 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04591
04592
04593 * ,AMK,AMKZ,AMKST,GAMKST
04594 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04595 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04596 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
04597 #if defined (ALEPH)
04598 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04599 #else
04600 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
04601 #endif
04602 & ,NAMES
04603 CHARACTER NAMES(NMODE)*31
04604 REAL HV(4),PT(4),PN(4),PAA(4),PMULT(4,9)
04605 REAL*4 PR(4),PI1(4),PI2(4),PI3(4),PI4(4),PI5(4)
04606 REAL*8 AMP1,AMP2,AMP3,AMP4,AMP5,ams1,ams2,amom,gamom
04607 REAL*8 AM5SQ,AM4SQ,AM3SQ,AM2SQ,AM5,AM4,AM3
04608 REAL*4 RRR(10)
04609 REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2
04610 #if defined (ALEPH)
04611 REAL*8 XM,AM,GAMMAB
04612 #else
04613 REAL*8 XM,AM,GAMMA
04614 ccM.S.>>>>>>
04615 real*8 phspac
04616 ccM.S.<<<<<<
04617 #endif
04618 DATA PI /3.141592653589793238462643/
04619 DATA ICONT /0/
04620 data fpi /93.3e-3/
04621 c
04622 COMPLEX BWIGN
04623 C
04624 #if defined (ALEPH)
04625 BWIGN(XM,AM,GAMMAB)=XM**2/CMPLX(XM**2-AM**2,GAMMAB*AM)
04626 #else
04627 BWIGN(XM,AM,GAMMA)=XM**2/CMPLX(XM**2-AM**2,GAMMA*AM)
04628 #endif
04629
04630 C
04631 AMOM=.782
04632 GAMOM=0.0085
04633 c
04634 C 6 BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
04635 C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P)
04636 PHSPAC=1./2**29/PI**14
04637 c PHSPAC=1./2**5/PI**2
04638 C init 5pi decay mode (JNPI)
04639 AMP1=DCDMAS(IDFFIN(1,JNPI))
04640 AMP2=DCDMAS(IDFFIN(2,JNPI))
04641 AMP3=DCDMAS(IDFFIN(3,JNPI))
04642 AMP4=DCDMAS(IDFFIN(4,JNPI))
04643 AMP5=DCDMAS(IDFFIN(5,JNPI))
04644 c
04645 C TAU MOMENTUM
04646 PT(1)=0.
04647 PT(2)=0.
04648 PT(3)=0.
04649 PT(4)=AMTAU
04650 C
04651 CALL RANMAR(RRR,10)
04652 C
04653 c masses of 5, 4, 3 and 2 pi systems
04654 c 3 pi with sampling for omega resonance
04655 cam
04656 c mass of 5 (12345)
04657 rr1=rrr(10)
04658 ams1=(amp1+amp2+amp3+amp4+amp5)**2
04659 ams2=(amtau-amnuta)**2
04660 am5sq=ams1+ rr1*(ams2-ams1)
04661 am5 =sqrt(am5sq)
04662 phspac=phspac*(ams2-ams1)
04663 c
04664 c mass of 4 (2345)
04665 c flat phase space
04666 rr1=rrr(9)
04667 ams1=(amp2+amp3+amp4+amp5)**2
04668 ams2=(am5-amp1)**2
04669 am4sq=ams1+ rr1*(ams2-ams1)
04670 am4 =sqrt(am4sq)
04671 gg1=ams2-ams1
04672 c
04673 c mass of 3 (234)
04674 C phase space with sampling for omega resonance
04675 rr1=rrr(1)
04676 ams1=(amp2+amp3+amp4)**2
04677 ams2=(am4-amp5)**2
04678 alp1=atan((ams1-amom**2)/amom/gamom)
04679 alp2=atan((ams2-amom**2)/amom/gamom)
04680 alp=alp1+rr1*(alp2-alp1)
04681 am3sq =amom**2+amom*gamom*tan(alp)
04682 am3 =sqrt(am3sq)
04683 c --- this part of the jacobian will be recovered later ---------------
04684 gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom)
04685 gg2=gg2*(alp2-alp1)
04686 c flat phase space;
04687 C am3sq=ams1+ rr1*(ams2-ams1)
04688 C am3 =sqrt(am3sq)
04689 c --- this part of jacobian will be recovered later
04690 C gg2=ams2-ams1
04691 c
04692 C mass of 2 (34)
04693 rr2=rrr(2)
04694 ams1=(amp3+amp4)**2
04695 ams2=(am3-amp2)**2
04696 c flat phase space;
04697 am2sq=ams1+ rr2*(ams2-ams1)
04698 am2 =sqrt(am2sq)
04699 c --- this part of jacobian will be recovered later
04700 gg3=ams2-ams1
04701 c
04702 c (34) restframe, define pi3 and pi4
04703 enq1=(am2sq+amp3**2-amp4**2)/(2*am2)
04704 enq2=(am2sq-amp3**2+amp4**2)/(2*am2)
04705 ppi= enq1**2-amp3**2
04706 pppi=sqrt(abs(enq1**2-amp3**2))
04707 ff1=(4*pi)*(2*pppi/am2)
04708 c pi3 momentum in (34) rest frame
04709 call sphera(pppi,pi3)
04710 pi3(4)=enq1
04711 c pi4 momentum in (34) rest frame
04712 do 30 i=1,3
04713 30 pi4(i)=-pi3(i)
04714 pi4(4)=enq2
04715 c
04716 c (234) rest frame, define pi2
04717 c pr momentum
04718 pr(1)=0
04719 pr(2)=0
04720 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
04721 pr(3)= sqrt(abs(pr(4)**2-am2**2))
04722 ppi = pr(4)**2-am2**2
04723 c pi2 momentum
04724 pi2(1)=0
04725 pi2(2)=0
04726 pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
04727 pi2(3)=-pr(3)
04728 c --- this part of jacobian will be recovered later
04729 ff2=(4*pi)*(2*pr(3)/am3)
04730 c old pions boosted from 2 rest frame to 3 rest frame
04731 exe=(pr(4)+pr(3))/am2
04732 call bostr3(exe,pi3,pi3)
04733 call bostr3(exe,pi4,pi4)
04734 rr3=rrr(3)
04735 rr4=rrr(4)
04736 thet =acos(-1.+2*rr3)
04737 phi = 2*pi*rr4
04738 call rotpol(thet,phi,pi2)
04739 call rotpol(thet,phi,pi3)
04740 call rotpol(thet,phi,pi4)
04741 C
04742 C (2345) rest frame, define pi5
04743 c pr momentum
04744 pr(1)=0
04745 pr(2)=0
04746 pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2)
04747 pr(3)= sqrt(abs(pr(4)**2-am3**2))
04748 ppi = pr(4)**2-am3**2
04749 c pi5 momentum
04750 pi5(1)=0
04751 pi5(2)=0
04752 pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2)
04753 pi5(3)=-pr(3)
04754 c --- this part of jacobian will be recovered later
04755 ff3=(4*pi)*(2*pr(3)/am4)
04756 c old pions boosted from 3 rest frame to 4 rest frame
04757 exe=(pr(4)+pr(3))/am3
04758 call bostr3(exe,pi2,pi2)
04759 call bostr3(exe,pi3,pi3)
04760 call bostr3(exe,pi4,pi4)
04761 rr3=rrr(5)
04762 rr4=rrr(6)
04763 thet =acos(-1.+2*rr3)
04764 phi = 2*pi*rr4
04765 call rotpol(thet,phi,pi2)
04766 call rotpol(thet,phi,pi3)
04767 call rotpol(thet,phi,pi4)
04768 call rotpol(thet,phi,pi5)
04769 C
04770 C (12345) rest frame, define pi1
04771 c pr momentum
04772 pr(1)=0
04773 pr(2)=0
04774 pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2)
04775 pr(3)= sqrt(abs(pr(4)**2-am4**2))
04776 ppi = pr(4)**2-am4**2
04777 c pi1 momentum
04778 pi1(1)=0
04779 pi1(2)=0
04780 pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2)
04781 pi1(3)=-pr(3)
04782 c --- this part of jacobian will be recovered later
04783 ff4=(4*pi)*(2*pr(3)/am5)
04784 c old pions boosted from 4 rest frame to 5 rest frame
04785 exe=(pr(4)+pr(3))/am4
04786 call bostr3(exe,pi2,pi2)
04787 call bostr3(exe,pi3,pi3)
04788 call bostr3(exe,pi4,pi4)
04789 call bostr3(exe,pi5,pi5)
04790 rr3=rrr(7)
04791 rr4=rrr(8)
04792 thet =acos(-1.+2*rr3)
04793 phi = 2*pi*rr4
04794 call rotpol(thet,phi,pi1)
04795 call rotpol(thet,phi,pi2)
04796 call rotpol(thet,phi,pi3)
04797 call rotpol(thet,phi,pi4)
04798 call rotpol(thet,phi,pi5)
04799 c
04800 * now to the tau rest frame, define paa and neutrino momenta
04801 * paa momentum
04802 paa(1)=0
04803 paa(2)=0
04804 c paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5**2)
04805 c paa(3)= sqrt(abs(paa(4)**2-am5**2))
04806 c ppi = paa(4)**2-am5**2
04807 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq)
04808 paa(3)= sqrt(abs(paa(4)**2-am5sq))
04809 ppi = paa(4)**2-am5sq
04810 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
04811 * tau-neutrino momentum
04812 pn(1)=0
04813 pn(2)=0
04814 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2)
04815 pn(3)=-paa(3)
04816 c
04817 phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4
04818 c
04819 C all pions boosted from 5 rest frame to tau rest frame
04820 C z-axis antiparallel to neutrino momentum
04821 exe=(paa(4)+paa(3))/am5
04822 call bostr3(exe,pi1,pi1)
04823 call bostr3(exe,pi2,pi2)
04824 call bostr3(exe,pi3,pi3)
04825 call bostr3(exe,pi4,pi4)
04826 call bostr3(exe,pi5,pi5)
04827 c
04828 C partial width consists of phase space and amplitude
04829 C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971)
04830 C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985)
04831 C
04832 PXQ=AMTAU*PAA(4)
04833 PXN=AMTAU*PN(4)
04834 QXN=PAA(4)*PN(4)-PAA(1)*PN(1)-PAA(2)*PN(2)-PAA(3)*PN(3)
04835 BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AM5SQ*PXN)
04836 & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AM5SQ
04837 fompp = cabs(bwign(am3,amom,gamom))**2
04838 c normalisation factor (to some numerical undimensioned factor;
04839 c cf R.Fischer et al ZPhys C3, 313 (1980))
04840 fnorm = 1/fpi**6
04841 c AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AM5SQ*SIGEE(AM5SQ,JNPI)
04842 AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK
04843 amplit = amplit * fompp * fnorm
04844 c phase space test
04845 c amplit = amplit * fnorm
04846 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04847 c ignore spin terms
04848 DO 40 I=1,3
04849 40 HV(I)=0.
04850 c
04851 do 77 k=1,4
04852 pmult(k,1)=pi1(k)
04853 pmult(k,2)=pi2(k)
04854 pmult(k,3)=pi3(k)
04855 pmult(k,4)=pi4(k)
04856 pmult(k,5)=pi5(k)
04857 77 continue
04858 return
04859 #if defined (ALEPH)
04860 C missing: transposition of identical particles, statistical factors
04861 C for identical matrices, polarimetric vector. Matrix element rather nai
04862 #else
04863 C missing: transposition of identical particles, startistical factors
04864 C for identical matrices, polarimetric vector. Matrix element rather naive.
04865 #endif
04866 C flat phase space in pion system + with breit wigner for omega
04867 C anyway it is better than nothing, and code is improvable.
04868 end
04869 SUBROUTINE DPHSRK(DGAMT,HV,PN,PR,PMULT,INUM)
04870 C ----------------------------------------------------------------------
04871 C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH
04872 C Z-AXIS ALONG RHO MOMENTUM
04873 C Rho decays to K Kbar
04874 C ----------------------------------------------------------------------
04875 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04876 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04877 * ,AMK,AMKZ,AMKST,GAMKST
04878 C
04879 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04880 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04881 * ,AMK,AMKZ,AMKST,GAMKST
04882 COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04883 REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL
04884 REAL HV(4),PT(4),PN(4),PR(4),PKC(4),PKZ(4),QQ(4),PMULT(4,9)
04885 #if defined (ALEPH)
04886 REAL*4 RR1(1)
04887 #else
04888 REAL RR1(1)
04889 #endif
04890 DATA PI /3.141592653589793238462643/
04891 DATA ICONT /0/
04892 C
04893 C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL
04894 PHSPAC=1./2**11/PI**5
04895 C TAU MOMENTUM
04896 PT(1)=0.
04897 PT(2)=0.
04898 PT(3)=0.
04899 PT(4)=AMTAU
04900 C MASS OF (REAL/VIRTUAL) RHO
04901 AMS1=(AMK+AMKZ)**2
04902 AMS2=(AMTAU-AMNUTA)**2
04903 C FLAT PHASE SPACE
04904 CALL RANMAR(RR1,1)
04905 AMX2=AMS1+ RR1(1)*(AMS2-AMS1)
04906 AMX=SQRT(AMX2)
04907 PHSPAC=PHSPAC*(AMS2-AMS1)
04908 C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE
04909 c ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO)
04910 c ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO)
04911 CAM
04912 100 CONTINUE
04913 c CALL RANMAR(RR1,1)
04914 c ALP=ALP1+RR1(1)*(ALP2-ALP1)
04915 c AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP)
04916 c AMX=SQRT(AMX2)
04917 c IF(AMX.LT.(AMK+AMKZ)) GO TO 100
04918 CAM
04919 c PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO)
04920 c PHSPAC=PHSPAC*(ALP2-ALP1)
04921 C
04922 C TAU-NEUTRINO MOMENTUM
04923 PN(1)=0
04924 PN(2)=0
04925 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2)
04926 PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA))
04927 C RHO MOMENTUM
04928 PR(1)=0
04929 PR(2)=0
04930 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2)
04931 PR(3)=-PN(3)
04932 PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU)
04933 C
04934 CAM
04935 ENQ1=(AMX2+AMK**2-AMKZ**2)/(2.*AMX)
04936 ENQ2=(AMX2-AMK**2+AMKZ**2)/(2.*AMX)
04937 PPPI=SQRT((ENQ1-AMK)*(ENQ1+AMK))
04938 PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX)
04939 C CHARGED PI MOMENTUM IN RHO REST FRAME
04940 CALL SPHERA(PPPI,PKC)
04941 PKC(4)=ENQ1
04942 C NEUTRAL PI MOMENTUM IN RHO REST FRAME
04943 DO 20 I=1,3
04944 20 PKZ(I)=-PKC(I)
04945 PKZ(4)=ENQ2
04946 EXE=(PR(4)+PR(3))/AMX
04947 C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME
04948 CALL BOSTR3(EXE,PKC,PKC)
04949 CALL BOSTR3(EXE,PKZ,PKZ)
04950 DO 30 I=1,4
04951 30 QQ(I)=PKC(I)-PKZ(I)
04952 C QQ transverse to PR
04953 PKSD =PR(4)*PR(4)-PR(3)*PR(3)-PR(2)*PR(2)-PR(1)*PR(1)
04954 QQPKS=PR(4)* QQ(4)-PR(3)* QQ(3)-PR(2)* QQ(2)-PR(1)* QQ(1)
04955 DO 31 I=1,4
04956 31 QQ(I)=QQ(I)-PR(I)*QQPKS/PKSD
04957 C AMPLITUDE
04958 PRODPQ=PT(4)*QQ(4)
04959 PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3)
04960 PRODPN=PT(4)*PN(4)
04961 QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2
04962 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2)
04963 & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2
04964 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRK(AMX)
04965 DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC
04966 DO 40 I=1,3
04967 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK
04968 do 77 k=1,4
04969 pmult(k,1)=pkc(k)
04970 pmult(k,2)=pkz(k)
04971 77 continue
04972 RETURN
04973 END
04974 FUNCTION FPIRK(W)
04975 C ----------------------------------------------------------
04976 c square of pion form factor
04977 C ----------------------------------------------------------
04978 COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04979 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04980 * ,AMK,AMKZ,AMKST,GAMKST
04981 C
04982 REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU
04983 * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1
04984 * ,AMK,AMKZ,AMKST,GAMKST
04985 c COMPLEX FPIKMK
04986 COMPLEX FPIKM
04987 FPIRK=CABS(FPIKM(W,AMK,AMKZ))**2
04988 c FPIRK=CABS(FPIKMK(W,AMK,AMKZ))**2
04989 END
04990 COMPLEX FUNCTION FPIKMK(W,XM1,XM2)
04991 C **********************************************************
04992 C Kaon form factor
04993 C **********************************************************
04994 COMPLEX BWIGM
04995 REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W
04996 EXTERNAL BWIG
04997 DATA INIT /0/
04998 C
04999 C ------------ PARAMETERS --------------------
05000 IF (INIT.EQ.0 ) THEN
05001 INIT=1
05002 PI=3.141592654
05003 PIM=.140
05004 ROM=0.773
05005 ROG=0.145
05006 ROM1=1.570
05007 ROG1=0.510
05008 c BETA1=-0.111
05009 BETA1=-0.221
05010 ENDIF
05011 C -----------------------------------------------
05012 S=W**2
05013 FPIKMK=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2))
05014 & /(1+BETA1)
05015 RETURN
05016 END
05017 SUBROUTINE RESLUX
05018 C ****************
05019 C INITIALIZE LUND COMMON
05020 #if defined (CLEO)
05021 #else
05022 PARAMETER (NMXHEP=2000)
05023 COMMON/HEPEVTX/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
05024 &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
05025 SAVE /HEPEVTx/
05026 #endif
05027 NHEP=0
05028 END
05029 SUBROUTINE DWRPH(KTO,PHX)
05030 C
05031 C -------------------------
05032 C
05033 IMPLICIT REAL*8 (A-H,O-Z)
05034 REAL*4 PHX(4)
05035 REAL*4 QHOT(4)
05036 C
05037 DO 9 K=1,4
05038 QHOT(K) =0.0
05039 9 CONTINUE
05040 C CASE OF TAU RADIATIVE DECAYS.
05041 C FILLING OF THE LUND COMMON BLOCK.
05042 DO 1002 I=1,4
05043 1002 QHOT(I)=PHX(I)
05044 IF (QHOT(4).GT.1.E-5) CALL DWLUPH(KTO,QHOT)
05045 RETURN
05046 END
05047 SUBROUTINE DWLUPH(KTO,PHOT)
05048 C---------------------------------------------------------------------
05049 C Lorentz transformation to CMsystem and
05050 C Updating of HEPEVT record
05051 C
05052 C called by : DEXAY1,(DEKAY1,DEKAY2)
05053 C
05054 C used when radiative corrections in decays are generated
05055 C---------------------------------------------------------------------
05056 C
05057 #if defined (ALEPH)
05058 COMMON /TAUPOS/ NP1,NP2
05059 #else
05060 #endif
05061 REAL PHOT(4)
05062 #if defined (ALEPH)
05063 #else
05064 COMMON /TAUPOS/ NP1,NP2
05065 #endif
05066 C
05067 C check energy
05068 IF (PHOT(4).LE.0.0) RETURN
05069 C
05070 C position of decaying particle:
05071 IF((KTO.EQ. 1).OR.(KTO.EQ.11)) THEN
05072 NPS=NP1
05073 ELSE
05074 NPS=NP2
05075 ENDIF
05076 C
05077 KTOS=KTO
05078 IF(KTOS.GT.10) KTOS=KTOS-10
05079 C boost and append photon (gamma is 22)
05080 CALL TRALO4(KTOS,PHOT,PHOT,AM)
05081 CALL FILHEP(0,1,22,NPS,NPS,0,0,PHOT,0.0,.TRUE.)
05082 C
05083 RETURN
05084 END
05085
05086 SUBROUTINE DWLUEL(KTO,ISGN,PNU,PWB,PEL,PNE)
05087 C ----------------------------------------------------------------------
05088 C Lorentz transformation to CMsystem and
05089 C Updating of HEPEVT record
05090 C
05091 C ISGN = 1/-1 for tau-/tau+
05092 C
05093 C called by : DEXAY,(DEKAY1,DEKAY2)
05094 C ----------------------------------------------------------------------
05095 C
05096 #if defined (ALEPH)
05097 COMMON /TAUPOS/ NP1,NP2
05098 #else
05099 #endif
05100 REAL PNU(4),PWB(4),PEL(4),PNE(4)
05101 #if defined (ALEPH)
05102 #else
05103 COMMON /TAUPOS/ NP1,NP2
05104 #endif
05105 C
05106 C position of decaying particle:
05107 IF(KTO.EQ. 1) THEN
05108 NPS=NP1
05109 ELSE
05110 NPS=NP2
05111 ENDIF
05112 C
05113 C tau neutrino (nu_tau is 16)
05114 CALL TRALO4(KTO,PNU,PNU,AM)
05115 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05116 C
05117 C W boson (W+ is 24)
05118 CALL TRALO4(KTO,PWB,PWB,AM)
05119 C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05120 C
05121 C electron (e- is 11)
05122 CALL TRALO4(KTO,PEL,PEL,AM)
05123 CALL FILHEP(0,1,11*ISGN,NPS,NPS,0,0,PEL,AM,.FALSE.)
05124 C
05125 C anti electron neutrino (nu_e is 12)
05126 CALL TRALO4(KTO,PNE,PNE,AM)
05127 CALL FILHEP(0,1,-12*ISGN,NPS,NPS,0,0,PNE,AM,.TRUE.)
05128 C
05129 RETURN
05130 END
05131 SUBROUTINE DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM)
05132 C ----------------------------------------------------------------------
05133 C Lorentz transformation to CMsystem and
05134 C Updating of HEPEVT record
05135 C
05136 C ISGN = 1/-1 for tau-/tau+
05137 C
05138 C called by : DEXAY,(DEKAY1,DEKAY2)
05139 C ----------------------------------------------------------------------
05140 C
05141 #if defined (ALEPH)
05142 COMMON /TAUPOS/ NP1,NP2
05143 #else
05144 #endif
05145 REAL PNU(4),PWB(4),PMU(4),PNM(4)
05146 #if defined (ALEPH)
05147 #else
05148 COMMON /TAUPOS/ NP1,NP2
05149 #endif
05150 C
05151 C position of decaying particle:
05152 IF(KTO.EQ. 1) THEN
05153 NPS=NP1
05154 ELSE
05155 NPS=NP2
05156 ENDIF
05157 C
05158 C tau neutrino (nu_tau is 16)
05159 CALL TRALO4(KTO,PNU,PNU,AM)
05160 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05161 C
05162 C W boson (W+ is 24)
05163 CALL TRALO4(KTO,PWB,PWB,AM)
05164 C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05165 C
05166 C muon (mu- is 13)
05167 CALL TRALO4(KTO,PMU,PMU,AM)
05168 CALL FILHEP(0,1,13*ISGN,NPS,NPS,0,0,PMU,AM,.FALSE.)
05169 C
05170 C anti muon neutrino (nu_mu is 14)
05171 CALL TRALO4(KTO,PNM,PNM,AM)
05172 CALL FILHEP(0,1,-14*ISGN,NPS,NPS,0,0,PNM,AM,.TRUE.)
05173 C
05174 RETURN
05175 END
05176 SUBROUTINE DWLUPI(KTO,ISGN,PPI,PNU)
05177 C ----------------------------------------------------------------------
05178 C Lorentz transformation to CMsystem and
05179 C Updating of HEPEVT record
05180 C
05181 C ISGN = 1/-1 for tau-/tau+
05182 C
05183 C called by : DEXAY,(DEKAY1,DEKAY2)
05184 C ----------------------------------------------------------------------
05185 C
05186 REAL PNU(4),PPI(4)
05187 COMMON /TAUPOS/ NP1,NP2
05188 C
05189 C position of decaying particle:
05190 IF(KTO.EQ. 1) THEN
05191 NPS=NP1
05192 ELSE
05193 NPS=NP2
05194 ENDIF
05195 C
05196 C tau neutrino (nu_tau is 16)
05197 CALL TRALO4(KTO,PNU,PNU,AM)
05198 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05199 C
05200 C charged pi meson (pi+ is 211)
05201 CALL TRALO4(KTO,PPI,PPI,AM)
05202 CALL FILHEP(0,1,-211*ISGN,NPS,NPS,0,0,PPI,AM,.TRUE.)
05203 C
05204 RETURN
05205 END
05206 SUBROUTINE DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ)
05207 C ----------------------------------------------------------------------
05208 C Lorentz transformation to CMsystem and
05209 C Updating of HEPEVT record
05210 C
05211 C ISGN = 1/-1 for tau-/tau+
05212 C
05213 C called by : DEXAY,(DEKAY1,DEKAY2)
05214 C ----------------------------------------------------------------------
05215 C
05216 #if defined (ALEPH)
05217 COMMON /TAUPOS/ NP1,NP2
05218 #else
05219 #endif
05220 REAL PNU(4),PRHO(4),PIC(4),PIZ(4)
05221 #if defined (ALEPH)
05222 #else
05223 COMMON /TAUPOS/ NP1,NP2
05224 #endif
05225 C
05226 C position of decaying particle:
05227 IF(KTO.EQ. 1) THEN
05228 NPS=NP1
05229 ELSE
05230 NPS=NP2
05231 ENDIF
05232 C
05233 C tau neutrino (nu_tau is 16)
05234 CALL TRALO4(KTO,PNU,PNU,AM)
05235 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05236 C
05237 C charged rho meson (rho+ is 213)
05238 CALL TRALO4(KTO,PRHO,PRHO,AM)
05239 CALL FILHEP(0,2,-213*ISGN,NPS,NPS,0,0,PRHO,AM,.TRUE.)
05240 C
05241 C charged pi meson (pi+ is 211)
05242 CALL TRALO4(KTO,PIC,PIC,AM)
05243 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIC,AM,.TRUE.)
05244 C
05245 C pi0 meson (pi0 is 111)
05246 CALL TRALO4(KTO,PIZ,PIZ,AM)
05247 CALL FILHEP(0,1,111,-2,-2,0,0,PIZ,AM,.TRUE.)
05248 C
05249 RETURN
05250 END
05251 SUBROUTINE DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
05252 C ----------------------------------------------------------------------
05253 C Lorentz transformation to CMsystem and
05254 C Updating of HEPEVT record
05255 C
05256 C ISGN = 1/-1 for tau-/tau+
05257 C JAA = 1 (2) FOR A_1- DECAY TO PI+ 2PI- (PI- 2PI0)
05258 C
05259 C called by : DEXAY,(DEKAY1,DEKAY2)
05260 C ----------------------------------------------------------------------
05261 C
05262 #if defined (ALEPH)
05263 COMMON /TAUPOS/ NP1,NP2
05264 #else
05265 #endif
05266 REAL PNU(4),PAA(4),PIM1(4),PIM2(4),PIPL(4)
05267 #if defined (ALEPH)
05268 #else
05269 COMMON /TAUPOS/ NP1,NP2
05270 #endif
05271 C
05272 C position of decaying particle:
05273 IF(KTO.EQ. 1) THEN
05274 NPS=NP1
05275 ELSE
05276 NPS=NP2
05277 ENDIF
05278 C
05279 C tau neutrino (nu_tau is 16)
05280 CALL TRALO4(KTO,PNU,PNU,AM)
05281 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05282 C
05283 C charged a_1 meson (a_1+ is 20213)
05284 CALL TRALO4(KTO,PAA,PAA,AM)
05285 CALL FILHEP(0,1,-20213*ISGN,NPS,NPS,0,0,PAA,AM,.TRUE.)
05286 C
05287 C two possible decays of the charged a1 meson
05288 IF(JAA.EQ.1) THEN
05289 C
05290 C A1 --> PI+ PI- PI- (or charged conjugate)
05291 C
05292 C pi minus (or c.c.) (pi+ is 211)
05293 CALL TRALO4(KTO,PIM2,PIM2,AM)
05294 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIM2,AM,.TRUE.)
05295 C
05296 C pi minus (or c.c.) (pi+ is 211)
05297 CALL TRALO4(KTO,PIM1,PIM1,AM)
05298 CALL FILHEP(0,1,-211*ISGN,-2,-2,0,0,PIM1,AM,.TRUE.)
05299 C
05300 C pi plus (or c.c.) (pi+ is 211)
05301 CALL TRALO4(KTO,PIPL,PIPL,AM)
05302 CALL FILHEP(0,1, 211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
05303 C
05304 ELSE IF (JAA.EQ.2) THEN
05305 C
05306 C A1 --> PI- PI0 PI0 (or charged conjugate)
05307 C
05308 C pi zero (pi0 is 111)
05309 CALL TRALO4(KTO,PIM2,PIM2,AM)
05310 CALL FILHEP(0,1,111,-1,-1,0,0,PIM2,AM,.TRUE.)
05311 C
05312 C pi zero (pi0 is 111)
05313 CALL TRALO4(KTO,PIM1,PIM1,AM)
05314 CALL FILHEP(0,1,111,-2,-2,0,0,PIM1,AM,.TRUE.)
05315 C
05316 C pi minus (or c.c.) (pi+ is 211)
05317 CALL TRALO4(KTO,PIPL,PIPL,AM)
05318 CALL FILHEP(0,1,-211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.)
05319 C
05320 ENDIF
05321 C
05322 RETURN
05323 END
05324 SUBROUTINE DWLUKK (KTO,ISGN,PKK,PNU)
05325 C ----------------------------------------------------------------------
05326 C Lorentz transformation to CMsystem and
05327 C Updating of HEPEVT record
05328 C
05329 C ISGN = 1/-1 for tau-/tau+
05330 C
05331 C ----------------------------------------------------------------------
05332 C
05333 REAL PKK(4),PNU(4)
05334 COMMON /TAUPOS/ NP1,NP2
05335 C
05336 C position of decaying particle
05337 #if defined (ALEPH)
05338 IF(KTO.EQ. 1) THEN
05339 #else
05340 IF (KTO.EQ.1) THEN
05341 #endif
05342 NPS=NP1
05343 ELSE
05344 NPS=NP2
05345 ENDIF
05346 C
05347 C tau neutrino (nu_tau is 16)
05348 CALL TRALO4 (KTO,PNU,PNU,AM)
05349 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05350 C
05351 C K meson (K+ is 321)
05352 CALL TRALO4 (KTO,PKK,PKK,AM)
05353 CALL FILHEP(0,1,-321*ISGN,NPS,NPS,0,0,PKK,AM,.TRUE.)
05354 C
05355 RETURN
05356 END
05357 SUBROUTINE DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
05358 COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS
05359 REAL*4 BRA1,BRK0,BRK0B,BRKS
05360 #if defined (ALEPH)
05361 COMMON /TAUPOS/ NP1,NP2
05362 REAL*4 XIO(1)
05363 #endif
05364 C ----------------------------------------------------------------------
05365 C Lorentz transformation to CMsystem and
05366 C Updating of HEPEVT record
05367 C
05368 C ISGN = 1/-1 for tau-/tau+
05369 C JKST=10 (20) corresponds to K0B pi- (K- pi0) decay
05370 C
05371 C ----------------------------------------------------------------------
05372 C
05373 #if defined (ALEPH)
05374 REAL PNU(4),PKS(4),PKK(4),PPI(4)
05375 #else
05376 REAL PNU(4),PKS(4),PKK(4),PPI(4),XIO(1)
05377 COMMON /TAUPOS/ NP1,NP2
05378 #endif
05379 C
05380 C position of decaying particle
05381 IF(KTO.EQ. 1) THEN
05382 NPS=NP1
05383 ELSE
05384 NPS=NP2
05385 ENDIF
05386 C
05387 C tau neutrino (nu_tau is 16)
05388 CALL TRALO4(KTO,PNU,PNU,AM)
05389 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05390 C
05391 C charged K* meson (K*+ is 323)
05392 CALL TRALO4(KTO,PKS,PKS,AM)
05393 CALL FILHEP(0,1,-323*ISGN,NPS,NPS,0,0,PKS,AM,.TRUE.)
05394 C
05395 C two possible decay modes of charged K*
05396 IF(JKST.EQ.10) THEN
05397 C
05398 C K*- --> pi- K0B (or charged conjugate)
05399 C
05400 C charged pi meson (pi+ is 211)
05401 CALL TRALO4(KTO,PPI,PPI,AM)
05402 CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PPI,AM,.TRUE.)
05403 C
05404 BRAN=BRK0B
05405 IF (ISGN.EQ.-1) BRAN=BRK0
05406 C K0 --> K0_long (is 130) / K0_short (is 310) = 1/1
05407 CALL RANMAR(XIO,1)
05408 IF(XIO(1).GT.BRAN) THEN
05409 K0TYPE = 130
05410 ELSE
05411 K0TYPE = 310
05412 ENDIF
05413 C
05414 CALL TRALO4(KTO,PKK,PKK,AM)
05415 CALL FILHEP(0,1,K0TYPE,-2,-2,0,0,PKK,AM,.TRUE.)
05416 C
05417 ELSE IF(JKST.EQ.20) THEN
05418 C
05419 C K*- --> pi0 K-
05420 C
05421 C pi zero (pi0 is 111)
05422 CALL TRALO4(KTO,PPI,PPI,AM)
05423 CALL FILHEP(0,1,111,-1,-1,0,0,PPI,AM,.TRUE.)
05424 C
05425 C charged K meson (K+ is 321)
05426 CALL TRALO4(KTO,PKK,PKK,AM)
05427 CALL FILHEP(0,1,-321*ISGN,-2,-2,0,0,PKK,AM,.TRUE.)
05428 C
05429 ENDIF
05430 C
05431 RETURN
05432 END
05433 SUBROUTINE DWLNEW(KTO,ISGN,PNU,PWB,PNPI,MODE)
05434 C ----------------------------------------------------------------------
05435 C Lorentz transformation to CMsystem and
05436 C Updating of HEPEVT record
05437 C
05438 C ISGN = 1/-1 for tau-/tau+
05439 C
05440 C called by : DEXAY,(DEKAY1,DEKAY2)
05441 C ----------------------------------------------------------------------
05442 C
05443 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3)
05444 #if defined (ALEPH)
05445 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
05446 #else
05447 COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE)
05448 #endif
05449 & ,NAMES
05450 COMMON /TAUPOS/ NP1,NP2
05451 CHARACTER NAMES(NMODE)*31
05452 REAL PNU(4),PWB(4),PNPI(4,9)
05453 REAL PPI(4)
05454 C
05455 JNPI=MODE-7
05456 C position of decaying particle
05457 IF(KTO.EQ. 1) THEN
05458 NPS=NP1
05459 ELSE
05460 NPS=NP2
05461 ENDIF
05462 C
05463 C tau neutrino (nu_tau is 16)
05464 CALL TRALO4(KTO,PNU,PNU,AM)
05465 CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.)
05466 C
05467 C W boson (W+ is 24)
05468 CALL TRALO4(KTO,PWB,PWB,AM)
05469 CALL FILHEP(0,1,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.)
05470 C
05471 C multi pi mode JNPI
05472 C
05473 C get multiplicity of mode JNPI
05474 ND=MULPIK(JNPI)
05475 DO I=1,ND
05476 #if defined (ALEPH)
05477 cam KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN)
05478 KFPI=LUNPIK(IDFFIN(I,JNPI), ISGN)
05479 #else
05480 KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN)
05481 #endif
05482 C for charged conjugate case, change charged pions only
05483 C IF(KFPI.NE.111)KFPI=KFPI*ISGN
05484 DO J=1,4
05485 PPI(J)=PNPI(J,I)
05486 END DO
05487 CALL TRALO4(KTO,PPI,PPI,AM)
05488 CALL FILHEP(0,1,KFPI,-I,-I,0,0,PPI,AM,.TRUE.)
05489 END DO
05490 C
05491 RETURN
05492 END
05493 #if defined (CePeCe)
05494 #else
05495 #endif
05496 FUNCTION AMAST(PP)
05497 C ----------------------------------------------------------------------
05498 C CALCULATES MASS OF PP (DOUBLE PRECISION)
05499 C
05500 C USED BY : RADKOR
05501 C ----------------------------------------------------------------------
05502 IMPLICIT REAL*8 (A-H,O-Z)
05503 REAL*8 PP(4)
05504 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
05505 C
05506 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
05507 AMAST=AAA
05508 RETURN
05509 END
05510 FUNCTION AMAS4(PP)
05511 C ******************
05512 C ----------------------------------------------------------------------
05513 C CALCULATES MASS OF PP
05514 C
05515 C USED BY :
05516 C ----------------------------------------------------------------------
05517 REAL PP(4)
05518 AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2
05519 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA))
05520 AMAS4=AAA
05521 RETURN
05522 END
05523 FUNCTION ANGXY(X,Y)
05524 C ----------------------------------------------------------------------
05525 C
05526 C USED BY : KORALZ RADKOR
05527 C ----------------------------------------------------------------------
05528 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05529 DATA PI /3.141592653589793238462643D0/
05530 C
05531 IF(ABS(Y).LT.ABS(X)) THEN
05532 THE=ATAN(ABS(Y/X))
05533 IF(X.LE.0D0) THE=PI-THE
05534 ELSE
05535 THE=ACOS(X/SQRT(X**2+Y**2))
05536 ENDIF
05537 ANGXY=THE
05538 RETURN
05539 END
05540 FUNCTION ANGFI(X,Y)
05541 C ----------------------------------------------------------------------
05542 * CALCULATES ANGLE IN (0,2*PI) RANGE OUT OF X-Y
05543 C
05544 C USED BY : KORALZ RADKOR
05545 C ----------------------------------------------------------------------
05546 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05547 DATA PI /3.141592653589793238462643D0/
05548 C
05549 IF(ABS(Y).LT.ABS(X)) THEN
05550 THE=ATAN(ABS(Y/X))
05551 IF(X.LE.0D0) THE=PI-THE
05552 ELSE
05553 THE=ACOS(X/SQRT(X**2+Y**2))
05554 ENDIF
05555 IF(Y.LT.0D0) THE=2D0*PI-THE
05556 ANGFI=THE
05557 END
05558 SUBROUTINE ROTOD1(PH1,PVEC,QVEC)
05559 C ----------------------------------------------------------------------
05560 C
05561 C USED BY : KORALZ
05562 C ----------------------------------------------------------------------
05563 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05564 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05565 C
05566 PHI=PH1
05567 CS=COS(PHI)
05568 SN=SIN(PHI)
05569 DO 10 I=1,4
05570 10 RVEC(I)=PVEC(I)
05571 QVEC(1)=RVEC(1)
05572 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05573 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05574 QVEC(4)=RVEC(4)
05575 RETURN
05576 END
05577 SUBROUTINE ROTOD2(PH1,PVEC,QVEC)
05578 C ----------------------------------------------------------------------
05579 C
05580 C USED BY : KORALZ RADKOR
05581 C ----------------------------------------------------------------------
05582 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05583 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05584 C
05585 PHI=PH1
05586 CS=COS(PHI)
05587 SN=SIN(PHI)
05588 DO 10 I=1,4
05589 10 RVEC(I)=PVEC(I)
05590 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05591 QVEC(2)=RVEC(2)
05592 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05593 QVEC(4)=RVEC(4)
05594 RETURN
05595 END
05596 SUBROUTINE ROTOD3(PH1,PVEC,QVEC)
05597 C ----------------------------------------------------------------------
05598 C
05599 C USED BY : KORALZ RADKOR
05600 C ----------------------------------------------------------------------
05601 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05602 C
05603 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05604 PHI=PH1
05605 CS=COS(PHI)
05606 SN=SIN(PHI)
05607 DO 10 I=1,4
05608 10 RVEC(I)=PVEC(I)
05609 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05610 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05611 QVEC(3)=RVEC(3)
05612 QVEC(4)=RVEC(4)
05613 END
05614 SUBROUTINE BOSTR3(EXE,PVEC,QVEC)
05615 C ----------------------------------------------------------------------
05616 C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY.
05617 C
05618 C USED BY : TAUOLA KORALZ (?)
05619 C ----------------------------------------------------------------------
05620 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05621 C
05622 DO 10 I=1,4
05623 10 RVEC(I)=PVEC(I)
05624 RPL=RVEC(4)+RVEC(3)
05625 RMI=RVEC(4)-RVEC(3)
05626 QPL=RPL*EXE
05627 QMI=RMI/EXE
05628 QVEC(1)=RVEC(1)
05629 QVEC(2)=RVEC(2)
05630 QVEC(3)=(QPL-QMI)/2
05631 QVEC(4)=(QPL+QMI)/2
05632 END
05633 SUBROUTINE BOSTD3(EXE,PVEC,QVEC)
05634 C ----------------------------------------------------------------------
05635 C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY.
05636 C
05637 C USED BY : KORALZ RADKOR
05638 C ----------------------------------------------------------------------
05639 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
05640 DIMENSION PVEC(4),QVEC(4),RVEC(4)
05641 C
05642 DO 10 I=1,4
05643 10 RVEC(I)=PVEC(I)
05644 RPL=RVEC(4)+RVEC(3)
05645 RMI=RVEC(4)-RVEC(3)
05646 QPL=RPL*EXE
05647 QMI=RMI/EXE
05648 QVEC(1)=RVEC(1)
05649 QVEC(2)=RVEC(2)
05650 QVEC(3)=(QPL-QMI)/2
05651 QVEC(4)=(QPL+QMI)/2
05652 RETURN
05653 END
05654 SUBROUTINE ROTOR1(PH1,PVEC,QVEC)
05655 C ----------------------------------------------------------------------
05656 C
05657 C called by :
05658 C ----------------------------------------------------------------------
05659 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05660 C
05661 PHI=PH1
05662 CS=COS(PHI)
05663 SN=SIN(PHI)
05664 DO 10 I=1,4
05665 10 RVEC(I)=PVEC(I)
05666 QVEC(1)=RVEC(1)
05667 QVEC(2)= CS*RVEC(2)-SN*RVEC(3)
05668 QVEC(3)= SN*RVEC(2)+CS*RVEC(3)
05669 QVEC(4)=RVEC(4)
05670 END
05671 SUBROUTINE ROTOR2(PH1,PVEC,QVEC)
05672 C ----------------------------------------------------------------------
05673 C
05674 C USED BY : TAUOLA
05675 C ----------------------------------------------------------------------
05676 IMPLICIT REAL*4(A-H,O-Z)
05677 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05678 C
05679 PHI=PH1
05680 CS=COS(PHI)
05681 SN=SIN(PHI)
05682 DO 10 I=1,4
05683 10 RVEC(I)=PVEC(I)
05684 QVEC(1)= CS*RVEC(1)+SN*RVEC(3)
05685 QVEC(2)=RVEC(2)
05686 QVEC(3)=-SN*RVEC(1)+CS*RVEC(3)
05687 QVEC(4)=RVEC(4)
05688 END
05689 SUBROUTINE ROTOR3(PHI,PVEC,QVEC)
05690 C ----------------------------------------------------------------------
05691 C
05692 C USED BY : TAUOLA
05693 C ----------------------------------------------------------------------
05694 REAL*4 PVEC(4),QVEC(4),RVEC(4)
05695 C
05696 CS=COS(PHI)
05697 SN=SIN(PHI)
05698 DO 10 I=1,4
05699 10 RVEC(I)=PVEC(I)
05700 QVEC(1)= CS*RVEC(1)-SN*RVEC(2)
05701 QVEC(2)= SN*RVEC(1)+CS*RVEC(2)
05702 QVEC(3)=RVEC(3)
05703 QVEC(4)=RVEC(4)
05704 END
05705 SUBROUTINE SPHERD(R,X)
05706 C ----------------------------------------------------------------------
05707 C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R
05708 C DOUBLE PRECISON VERSION OF SPHERA
05709 C ----------------------------------------------------------------------
05710 REAL*8 R,X(4),PI,COSTH,SINTH
05711 REAL*4 RRR(2)
05712 DATA PI /3.141592653589793238462643D0/
05713 C
05714 CALL RANMAR(RRR,2)
05715 COSTH=-1+2*RRR(1)
05716 SINTH=SQRT(1 -COSTH**2)
05717 X(1)=R*SINTH*COS(2*PI*RRR(2))
05718 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05719 X(3)=R*COSTH
05720 RETURN
05721 END
05722 SUBROUTINE ROTPOX(THET,PHI,PP)
05723 IMPLICIT REAL*8 (A-H,O-Z)
05724 C ----------------------------------------------------------------------
05725 #if defined (ALEPH)
05726 C double precison version of ROTPOL
05727 #else
05728 C
05729 #endif
05730 C ----------------------------------------------------------------------
05731 DIMENSION PP(4)
05732 C
05733 CALL ROTOD2(THET,PP,PP)
05734 CALL ROTOD3( PHI,PP,PP)
05735 RETURN
05736 END
05737 SUBROUTINE SPHERA(R,X)
05738 C ----------------------------------------------------------------------
05739 C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R
05740 C
05741 C called by : DPHSxx,DADMPI,DADMKK
05742 C ----------------------------------------------------------------------
05743 REAL X(4)
05744 REAL*4 RRR(2)
05745 DATA PI /3.141592653589793238462643/
05746 C
05747 CALL RANMAR(RRR,2)
05748 COSTH=-1.+2.*RRR(1)
05749 SINTH=SQRT(1.-COSTH**2)
05750 X(1)=R*SINTH*COS(2*PI*RRR(2))
05751 X(2)=R*SINTH*SIN(2*PI*RRR(2))
05752 X(3)=R*COSTH
05753 RETURN
05754 END
05755 SUBROUTINE ROTPOL(THET,PHI,PP)
05756 C ----------------------------------------------------------------------
05757 C
05758 C called by : DADMAA,DPHSAA
05759 C ----------------------------------------------------------------------
05760 REAL PP(4)
05761 C
05762 CALL ROTOR2(THET,PP,PP)
05763 CALL ROTOR3( PHI,PP,PP)
05764 RETURN
05765 END
05766 #include "../randg/tauola-random.h"
05767 FUNCTION DILOGT(X)
05768 C *****************
05769 IMPLICIT REAL*8(A-H,O-Z)
05770 CERN C304 VERSION 29/07/71 DILOG 59 C
05771 Z=-1.64493406684822
05772 IF(X .LT.-1.0) GO TO 1
05773 IF(X .LE. 0.5) GO TO 2
05774 IF(X .EQ. 1.0) GO TO 3
05775 IF(X .LE. 2.0) GO TO 4
05776 Z=3.2898681336964
05777 1 T=1.0/X
05778 S=-0.5
05779 Z=Z-0.5* LOG(ABS(X))**2
05780 GO TO 5
05781 2 T=X
05782 S=0.5
05783 Z=0.
05784 GO TO 5
05785 3 DILOGT=1.64493406684822
05786 RETURN
05787 4 T=1.0-X
05788 S=-0.5
05789 Z=1.64493406684822 - LOG(X)* LOG(ABS(T))
05790 5 Y=2.66666666666666 *T+0.66666666666666
05791 B= 0.00000 00000 00001
05792 A=Y*B +0.00000 00000 00004
05793 B=Y*A-B+0.00000 00000 00011
05794 A=Y*B-A+0.00000 00000 00037
05795 B=Y*A-B+0.00000 00000 00121
05796 A=Y*B-A+0.00000 00000 00398
05797 B=Y*A-B+0.00000 00000 01312
05798 A=Y*B-A+0.00000 00000 04342
05799 B=Y*A-B+0.00000 00000 14437
05800 A=Y*B-A+0.00000 00000 48274
05801 B=Y*A-B+0.00000 00001 62421
05802 A=Y*B-A+0.00000 00005 50291
05803 B=Y*A-B+0.00000 00018 79117
05804 A=Y*B-A+0.00000 00064 74338
05805 B=Y*A-B+0.00000 00225 36705
05806 A=Y*B-A+0.00000 00793 87055
05807 B=Y*A-B+0.00000 02835 75385
05808 A=Y*B-A+0.00000 10299 04264
05809 B=Y*A-B+0.00000 38163 29463
05810 A=Y*B-A+0.00001 44963 00557
05811 B=Y*A-B+0.00005 68178 22718
05812 A=Y*B-A+0.00023 20021 96094
05813 B=Y*A-B+0.00100 16274 96164
05814 A=Y*B-A+0.00468 63619 59447
05815 B=Y*A-B+0.02487 93229 24228
05816 A=Y*B-A+0.16607 30329 27855
05817 A=Y*A-B+1.93506 43008 6996
05818 DILOGT=S*T*(A-B)+Z
05819 RETURN
05820 C=======================================================================
05821 C===================END OF CPC PART ====================================
05822 C=======================================================================
05823 END
05824
05825 C-----------------------------------------------------------------------
05826 C Initialize RChL Currents
05827 C Dummy routine for compatibility with new updates of TAUOLA
05828 C
05829 C Added 25.Jul.2012
05830 C-----------------------------------------------------------------------
05831 SUBROUTINE INIRCHL(FLAG)
05832 INTEGER FLAG
05833
05834 IF(FLAG.NE.0) THEN
05835 WRITE(*,25) FLAG
05836 25 FORMAT(1X, "TAUOLA IniRChL: Fatal error, FLAG=",I2," but RChL currents missing")
05837 WRITE(*,*) " in loaded version of TAUOLA-FORTRAN library."
05838 STOP
05839 ENDIF
05840
05841 RETURN
05842 END