54 COMMON / taubra / gamprt(30),jlist(30),nchan
61 IF(nchan.LE.0.OR.nchan.GT.30) goto 902
68 IF(rrr(1).LT.cumul(i)/cumul(nchan)) ji=i
73 9020
FORMAT(
' ----- JAKER: WRONG NCHAN')
76 SUBROUTINE dekay(KTO,HX)
108 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
114 COMMON /taupos/ np1,np2
115 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
116 REAL*4 gampmc ,gamper
117 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
121 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
124 CHARACTER names(nmode)*31
125 COMMON / inout / inut,iout
129 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4),hdum(4)
143 IF (iwarm.EQ.1) x=5/(iwarm-1)
145 WRITE(iout,7001) jak1,jak
146 WRITE(iout,7002) iver
150 IF(jak1.NE.-1.OR.jak2.NE.-1)
THEN
151 CALL dadmel(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
152 CALL dadmmu(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
153 CALL dadmpi(-1,idum,hdum,pdum1,pdum2)
154 CALL dadmro(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4)
155 CALL dadmaa(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5,jdum)
156 CALL dadmkk(-1,idum,hdum,pdum1,pdum2)
157 CALL dadmks(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,jdum)
158 CALL dadnew(-1,idum,hdum,pdum1,pdum2,pdumx,jdum)
164 ELSEIF(kto.EQ.1)
THEN
168 IF(iwarm.EQ.0) goto 902
176 CALL dekay1(0,h,isgn)
177 ELSEIF(kto.EQ.2)
THEN
181 IF(iwarm.EQ.0) goto 902
189 CALL dekay2(0,h,isgn)
190 ELSEIF(kto.EQ.11)
THEN
195 CALL dekay1(1,h,isgn)
196 ELSEIF(kto.EQ.12)
THEN
201 CALL dekay2(1,h,isgn)
202 ELSEIF(kto.EQ.100)
THEN
204 IF(jak1.NE.-1.OR.jak2.NE.-1)
THEN
205 CALL dadmel( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
206 CALL dadmmu( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
207 CALL dadmpi( 1,idum,hdum,pdum1,pdum2)
208 CALL dadmro( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4)
209 CALL dadmaa( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5,jdum)
210 CALL dadmkk( 1,idum,hdum,pdum1,pdum2)
211 CALL dadmks( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,jdum)
212 CALL dadnew( 1,idum,hdum,pdum1,pdum2,pdumx,jdum)
213 WRITE(iout,7010) nev1,nev2,nevtot
214 WRITE(iout,7011) (nevdec(i),gampmc(i),gamper(i),i= 1,7)
216 $ (nevdec(i),gampmc(i),gamper(i),names(i-7),i=8,7+nmode)
227 7001
FORMAT(///1x,15(5h*****)
228 $ /,
' *', 25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
229 $ /,
' *', 25x,
'***********October 2011 ***************',9x,1h*,
230 $ /,
' *', 25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
231 $ /,
' *', 25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
232 $ /,
' *', 25x,
'**AVAILABLE FROM: www.cern.ch/wasm**** ',9x,1h*,
233 $ /,
' *', 25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
234 $ /,
' *', 25x,
'0: Physics initialization CLEO collab ',9x,1h*,
235 $ /,
' *', 25x,
' see Alain Weinstein www home page: ',9x,1h*,
236 $ /,
' *', 25x,
'http://www.cithep.caltech.edu/~ajw/ ',9x,1h*,
237 $ /,
' *', 25x,
'/korb_doc.html#files ',9x,1h*,
238 $ /,
' *', 25x,
'1: Physics initialization RChL of: ',9x,1h*,
239 $ /,
' *', 25x,
' O. Shekhovtsova, T. Przedzinski, ',9x,1h*,
240 $ /,
' *', 25x,
' P. Roig and Z. Was ',9x,1h*,
241 $ /,
' *', 25x,
' IFJPAN-2013-5, UAB-FT-731 ',9x,1h*,
242 $ /,
' *', 25x,
'*******CPC 76 (1993) 361 *****',9x,1h*,
243 $ /,
' *', 25x,
'**5 or more pi dec.: precision limited ',9x,1h*,
244 $ /,
' *', 25x,
'****DEKAY ROUTINE: INITIALIZATION******',9x,1h*,
245 $ /,
' *',i20 ,5x,
'JAK1 = DECAY MODE TAU+ ',9x,1h*,
246 $ /,
' *',i20 ,5x,
'JAK2 = DECAY MODE TAU- ',9x,1h*,
248 7002
FORMAT(
' *',i20 ,5x,
'IVER = hadronic current version ',9x,1h*)
249 7010
FORMAT(///1x,15(5h*****)
250 $ /,
' *', 25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
251 $ /,
' *', 25x,
'***********October 2011 ***************',9x,1h*,
252 $ /,
' *', 25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
253 $ /,
' *', 25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
254 $ /,
' *', 25x,
'**AVAILABLE FROM: www.cern.ch/wasm ****',9x,1h*,
255 $ /,
' *', 25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
256 $ /,
' *', 25x,
'******* 64 (1990) 275 *****',9x,1h*,
257 $ /,
' *', 25x,
'******* 70 (1992) 69 *****',9x,1h*,
258 $ /,
' *', 25x,
'******* 76 (1993) 361 *****',9x,1h*,
259 $ /,
' *', 25x,
'******* IFJPAN-2013-5, UAB-FT-731 **',9x,1h*,
260 $ /,
' *', 25x,
'*****DEKAY ROUTINE: FINAL REPORT*******',9x,1h*,
261 $ /,
' *',i20 ,5x,
'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9x,1h*,
262 $ /,
' *',i20 ,5x,
'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9x,1h*,
263 $ /,
' *',i20 ,5x,
'NEVTOT = SUM ',9x,1h*,
265 $
' PART.WIDTH ERROR ROUTINE DECAY MODE ',9x,1h*)
267 $ ,i10,2f12.7 ,
' DADMEL ELECTRON ',9x,1h*
268 $ /,
' *',i10,2f12.7 ,
' DADMMU MUON ',9x,1h*
269 $ /,
' *',i10,2f12.7 ,
' DADMPI PION ',9x,1h*
270 $ /,
' *',i10,2f12.7,
' DADMRO RHO (->2PI) ',9x,1h*
271 $ /,
' *',i10,2f12.7,
' DADMAA A1 (->3PI) ',9x,1h*
272 $ /,
' *',i10,2f12.7,
' DADMKK KAON ',9x,1h*
273 $ /,
' *',i10,2f12.7,
' DADMKS K* ',9x,1h*)
275 $ ,i10,2f12.7,a31 ,8x,1h*)
277 $ ,20x,
'THE ERROR IS RELATIVE AND PART.WIDTH ',10x,1h*
278 $ /,
' *',20x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10x,1h*
281 9020
FORMAT(
' ----- DEKAY: LACK OF INITIALISATION')
284 9100
FORMAT(
' ----- DEKAY: WRONG VALUE OF KTO ')
287 SUBROUTINE dekay1(IMOD,HH,ISGN)
290 COMMON / decp4 / pp1(4),pp2(4),kf1,kf2
291 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
292 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
293 REAL*4 gampmc ,gamper
295 REAL hv(4),pnu(4),ppi(4)
296 REAL pwb(4),pmu(4),pnm(4)
297 REAL prho(4),pic(4),piz(4)
298 REAL paa(4),pim1(4),pim2(4),pipl(4)
305 IF(jak1.EQ.-1)
RETURN
310 IF(jak1.EQ.0) CALL jaker(jak)
312 CALL dadmel(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
313 ELSEIF(jak.EQ.2)
THEN
314 CALL dadmmu(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
315 ELSEIF(jak.EQ.3)
THEN
316 CALL dadmpi(0, isgn,hv,ppi,pnu)
317 ELSEIF(jak.EQ.4)
THEN
318 CALL dadmro(0, isgn,hv,pnu,prho,pic,piz)
319 ELSEIF(jak.EQ.5)
THEN
320 CALL dadmaa(0, isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
321 ELSEIF(jak.EQ.6)
THEN
322 CALL dadmkk(0, isgn,hv,pkk,pnu)
323 ELSEIF(jak.EQ.7)
THEN
324 CALL dadmks(0, isgn,hv,pnu,pks ,pkk,ppi,jkst)
326 CALL dadnew(0, isgn,hv,pnu,pwb,pnpi,jak-7)
332 ELSEIF(imd.EQ.1)
THEN
336 nevdec(jak)=nevdec(jak)+1
341 CALL dwluel(1,isgn,pnu,pwb,pmu,pnm)
342 CALL dwrph(ktom,phot)
346 ELSEIF(jak.EQ.2)
THEN
347 CALL dwlumu(1,isgn,pnu,pwb,pmu,pnm)
348 CALL dwrph(ktom,phot)
352 ELSEIF(jak.EQ.3)
THEN
353 CALL dwlupi(1,isgn,ppi,pnu)
357 ELSEIF(jak.EQ.4)
THEN
358 CALL dwluro(1,isgn,pnu,prho,pic,piz)
362 ELSEIF(jak.EQ.5)
THEN
363 CALL dwluaa(1,isgn,pnu,paa,pim1,pim2,pipl,jaa)
366 ELSEIF(jak.EQ.6)
THEN
367 CALL dwlukk(1,isgn,pkk,pnu)
370 ELSEIF(jak.EQ.7)
THEN
371 CALL dwluks(1,isgn,pnu,pks,pkk,ppi,jkst)
376 CALL dwlnew(1,isgn,pnu,pwb,pnpi,jak)
384 SUBROUTINE dekay2(IMOD,HH,ISGN)
387 COMMON / decp4 / pp1(4),pp2(4),kf1,kf2
388 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
389 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
390 REAL*4 gampmc ,gamper
392 REAL hv(4),pnu(4),ppi(4)
393 REAL pwb(4),pmu(4),pnm(4)
394 REAL prho(4),pic(4),piz(4)
395 REAL paa(4),pim1(4),pim2(4),pipl(4)
402 IF(jak2.EQ.-1)
RETURN
407 IF(jak2.EQ.0) CALL jaker(jak)
409 CALL dadmel(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
410 ELSEIF(jak.EQ.2)
THEN
411 CALL dadmmu(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
412 ELSEIF(jak.EQ.3)
THEN
413 CALL dadmpi(0, isgn,hv,ppi,pnu)
414 ELSEIF(jak.EQ.4)
THEN
415 CALL dadmro(0, isgn,hv,pnu,prho,pic,piz)
416 ELSEIF(jak.EQ.5)
THEN
417 CALL dadmaa(0, isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
418 ELSEIF(jak.EQ.6)
THEN
419 CALL dadmkk(0, isgn,hv,pkk,pnu)
420 ELSEIF(jak.EQ.7)
THEN
421 CALL dadmks(0, isgn,hv,pnu,pks ,pkk,ppi,jkst)
423 CALL dadnew(0, isgn,hv,pnu,pwb,pnpi,jak-7)
428 ELSEIF(imd.EQ.1)
THEN
432 nevdec(jak)=nevdec(jak)+1
437 CALL dwluel(2,isgn,pnu,pwb,pmu,pnm)
438 CALL dwrph(ktom,phot)
442 ELSEIF(jak.EQ.2)
THEN
443 CALL dwlumu(2,isgn,pnu,pwb,pmu,pnm)
444 CALL dwrph(ktom,phot)
448 ELSEIF(jak.EQ.3)
THEN
449 CALL dwlupi(2,isgn,ppi,pnu)
453 ELSEIF(jak.EQ.4)
THEN
454 CALL dwluro(2,isgn,pnu,prho,pic,piz)
458 ELSEIF(jak.EQ.5)
THEN
459 CALL dwluaa(2,isgn,pnu,paa,pim1,pim2,pipl,jaa)
462 ELSEIF(jak.EQ.6)
THEN
463 CALL dwlukk(2,isgn,pkk,pnu)
466 ELSEIF(jak.EQ.7)
THEN
467 CALL dwluks(2,isgn,pnu,pks,pkk,ppi,jkst)
472 CALL dwlnew(2,isgn,pnu,pwb,pnpi,jak)
480 SUBROUTINE dexay(KTO,POL)
494 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
495 REAL*4 gampmc ,gamper
496 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
498 COMMON /taupos/ np1,np2
499 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
500 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
502 CHARACTER names(nmode)*31
503 COMMON / inout / inut,iout
508 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
522 WRITE(iout, 7001) jak1,jak2
523 WRITE(iout,7002) iver
527 IF(jak1.NE.-1.OR.jak2.NE.-1)
THEN
528 CALL dexel(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
529 CALL dexmu(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
530 CALL dexpi(-1,idum,pdum,pdum1,pdum2)
531 CALL dexro(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4)
532 CALL dexaa(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5,idum)
533 CALL dexkk(-1,idum,pdum,pdum1,pdum2)
534 CALL dexks(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,idum)
535 CALL dexnew(-1,idum,pdum,pdum1,pdum2,pdumi,idum)
541 ELSEIF(kto.EQ.1)
THEN
546 IF(iwarm.EQ.0) goto 902
549 CALL dexay1(kto,jak1,jakp,pol,isgn)
550 ELSEIF(kto.EQ.2)
THEN
555 IF(iwarm.EQ.0) goto 902
556 isgn=-idff/iabs(idff)
558 CALL dexay1(kto,jak2,jakm,pol,isgn)
559 ELSEIF(kto.EQ.100)
THEN
561 IF(jak1.NE.-1.OR.jak2.NE.-1)
THEN
562 CALL dexel( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
563 CALL dexmu( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
564 CALL dexpi( 1,idum,pdum,pdum1,pdum2)
565 CALL dexro( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4)
566 CALL dexaa( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5,idum)
567 CALL dexkk( 1,idum,pdum,pdum1,pdum2)
568 CALL dexks( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,idum)
569 CALL dexnew( 1,idum,pdum,pdum1,pdum2,pdumi,idum)
570 WRITE(iout,7010) nev1,nev2,nevtot
571 WRITE(iout,7011) (nevdec(i),gampmc(i),gamper(i),i= 1,7)
573 $ (nevdec(i),gampmc(i),gamper(i),names(i-7),i=8,7+nmode)
580 7001
FORMAT(///1x,15(5h*****)
581 $ /,
' *', 25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
582 $ /,
' *', 25x,
'***********October 2011***************',9x,1h*,
583 $ /,
' *', 25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
584 $ /,
' *', 25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
585 $ /,
' *', 25x,
'**AVAILABLE FROM: www.cern.ch/wasm****',9x,1h*,
586 $ /,
' *', 25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
587 $ /,
' *', 25x,
'0: Physics initialization CLEO collab ',9x,1h*,
588 $ /,
' *', 25x,
' see Alain Weinstein www home page: ',9x,1h*,
589 $ /,
' *', 25x,
'http://www.cithep.caltech.edu/~ajw/ ',9x,1h*,
590 $ /,
' *', 25x,
'/korb_doc.html#files ',9x,1h*,
591 $ /,
' *', 25x,
'1: Physics initialization RChL of: ',9x,1h*,
592 $ /,
' *', 25x,
' O. Shekhovtsova, T. Przedzinski, ',9x,1h*,
593 $ /,
' *', 25x,
' P. Roig and Z. Was ',9x,1h*,
594 $ /,
' *', 25x,
' IFJPAN-2013-5, UAB-FT-731 ',9x,1h*,
595 $ /,
' *', 25x,
'****** CPC 76 (1993) 361 ******',9x,1h*,
596 $ /,
' *', 25x,
'**5 or more pi dec.: precision limited ',9x,1h*,
597 $ /,
' *', 25x,
'******DEXAY ROUTINE: INITIALIZATION****',9x,1h*
598 $ /,
' *',i20 ,5x,
'JAK1 = DECAY MODE FERMION1 (TAU+) ',9x,1h*
599 $ /,
' *',i20 ,5x,
'JAK2 = DECAY MODE FERMION2 (TAU-) ',9x,1h*
601 7002
FORMAT(
' *',i20 ,5x,
'IVER = hadronic current version ',9x,1h*)
604 7010
FORMAT(///1x,15(5h*****)
605 $ /,
' *', 25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
606 $ /,
' *', 25x,
'***********October 2011***************',9x,1h*,
607 $ /,
' *', 25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
608 $ /,
' *', 25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
609 $ /,
' *', 25x,
'**AVAILABLE FROM: www.cern.ch/wasm ****',9x,1h*,
610 $ /,
' *', 25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
611 $ /,
' *', 25x,
'******* 64 (1990) 275 *****',9x,1h*,
612 $ /,
' *', 25x,
'******* 70 (1992) 69 *****',9x,1h*,
613 $ /,
' *', 25x,
'******* 76 (1993) 361 *****',9x,1h*,
614 $ /,
' *', 25x,
'******* IFJPAN-2013-5, UAB-FT-731 **',9x,1h*,
615 $ /,
' *', 25x,
'******DEXAY ROUTINE: FINAL REPORT******',9x,1h*
616 $ /,
' *',i20 ,5x,
'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9x,1h*
617 $ /,
' *',i20 ,5x,
'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9x,1h*
618 $ /,
' *',i20 ,5x,
'NEVTOT = SUM ',9x,1h*
620 $
' PART.WIDTH ERROR ROUTINE DECAY MODE ',9x,1h*)
622 $ ,i10,2f12.7 ,
' DADMEL ELECTRON ',9x,1h*
623 $ /,
' *',i10,2f12.7 ,
' DADMMU MUON ',9x,1h*
624 $ /,
' *',i10,2f12.7 ,
' DADMPI PION ',9x,1h*
625 $ /,
' *',i10,2f12.7,
' DADMRO RHO (->2PI) ',9x,1h*
626 $ /,
' *',i10,2f12.7,
' DADMAA A1 (->3PI) ',9x,1h*
627 $ /,
' *',i10,2f12.7,
' DADMKK KAON ',9x,1h*
628 $ /,
' *',i10,2f12.7,
' DADMKS K* ',9x,1h*)
630 $ ,i10,2f12.7,a31 ,8x,1h*)
632 $ ,20x,
'THE ERROR IS RELATIVE AND PART.WIDTH ',10x,1h*
633 $ /,
' *',20x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10x,1h*
635 902
WRITE(iout, 9020)
636 9020
FORMAT(
' ----- DEXAY: LACK OF INITIALISATION')
638 910
WRITE(iout, 9100)
639 9100
FORMAT(
' ----- DEXAY: WRONG VALUE OF KTO ')
642 SUBROUTINE dexay1(KTO,JAKIN,JAK,POL,ISGN)
648 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
649 REAL*4 gampmc ,gamper
650 COMMON / inout / inut,iout
653 REAL prho(4),pic(4),piz(4)
654 REAL pwb(4),pmu(4),pnm(4)
655 REAL paa(4),pim1(4),pim2(4),pipl(4)
661 IF(jakin.EQ.-1)
RETURN
668 IF(jak.EQ.0) CALL jaker(jak)
671 CALL dexel(0, isgn,polar,pnu,pwb,pmu,pnm,phot)
672 CALL dwluel(kto,isgn,pnu,pwb,pmu,pnm)
673 CALL dwrph(kto,phot )
674 ELSEIF(jak.EQ.2)
THEN
675 CALL dexmu(0, isgn,polar,pnu,pwb,pmu,pnm,phot)
676 CALL dwlumu(kto,isgn,pnu,pwb,pmu,pnm)
677 CALL dwrph(kto,phot )
678 ELSEIF(jak.EQ.3)
THEN
679 CALL dexpi(0, isgn,polar,ppi,pnu)
680 CALL dwlupi(kto,isgn,ppi,pnu)
681 ELSEIF(jak.EQ.4)
THEN
682 CALL dexro(0, isgn,polar,pnu,prho,pic,piz)
683 CALL dwluro(kto,isgn,pnu,prho,pic,piz)
684 ELSEIF(jak.EQ.5)
THEN
685 CALL dexaa(0, isgn,polar,pnu,paa,pim1,pim2,pipl,jaa)
686 CALL dwluaa(kto,isgn,pnu,paa,pim1,pim2,pipl,jaa)
687 ELSEIF(jak.EQ.6)
THEN
688 CALL dexkk(0, isgn,polar,pkk,pnu)
689 CALL dwlukk(kto,isgn,pkk,pnu)
690 ELSEIF(jak.EQ.7)
THEN
691 CALL dexks(0, isgn,polar,pnu,pks,pkk,ppi,jkst)
692 CALL dwluks(kto,isgn,pnu,pks,pkk,ppi,jkst)
695 CALL dexnew(0, isgn,polar,pnu,pwb,pnpi,jnpi)
696 CALL dwlnew(kto,isgn,pnu,pwb,pnpi,jak)
698 nevdec(jak)=nevdec(jak)+1
700 SUBROUTINE dexel(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
707 REAL pol(4),hv(4),pwb(4),pnu(4),q1(4),q2(4),ph(4),rn(1)
713 CALL dadmel( -1,isgn,hv,pnu,pwb,q1,q2,ph)
716 ELSEIF(mode.EQ. 0)
THEN
719 IF(iwarm.EQ.0) goto 902
720 CALL dadmel( 0,isgn,hv,pnu,pwb,q1,q2,ph)
721 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
724 IF(rn(1).GT.wt) goto 300
726 ELSEIF(mode.EQ. 1)
THEN
728 CALL dadmel( 1,isgn,hv,pnu,pwb,q1,q2,ph)
734 9020
FORMAT(
' ----- DEXEL: LACK OF INITIALISATION')
737 SUBROUTINE dexmu(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
746 COMMON / inout / inut,iout
747 REAL pol(4),hv(4),pwb(4),pnu(4),q1(4),q2(4),ph(4),rn(1)
753 CALL dadmmu( -1,isgn,hv,pnu,pwb,q1,q2,ph)
756 ELSEIF(mode.EQ. 0)
THEN
759 IF(iwarm.EQ.0) goto 902
760 CALL dadmmu( 0,isgn,hv,pnu,pwb,q1,q2,ph)
761 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
764 IF(rn(1).GT.wt) goto 300
766 ELSEIF(mode.EQ. 1)
THEN
768 CALL dadmmu( 1,isgn,hv,pnu,pwb,q1,q2,ph)
773 902
WRITE(iout, 9020)
774 9020
FORMAT(
' ----- DEXMU: LACK OF INITIALISATION')
777 SUBROUTINE dadmel(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
782 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
783 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
784 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
785 * ,ampiz,ampi,amro,gamro,ama1,gama1
786 * ,amk,amkz,amkst,gamkst
788 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
789 * ,ampiz,ampi,amro,gamro,ama1,gama1
790 * ,amk,amkz,amkst,gamkst
791 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
792 REAL*4 gampmc ,gamper
794 COMMON / inout / inut,iout
795 REAL hhv(4),hv(4),pwb(4),pnu(4),q1(4),q2(4)
796 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
799 DATA pi /3.141592653589793238462643/
812 CALL dphsel(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5)
813 IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
817 ELSEIF(mode.EQ. 0)
THEN
820 IF(iwarm.EQ.0) goto 902
822 CALL dphsel(wt,hv,pnu,pwb,q1,q2,phx)
828 IF(wt.GT.wtmax) nevovr=nevovr+1
829 IF(rn*wtmax.GT.wt) goto 300
836 CALL rotor2(thet,pnu,pnu)
837 CALL rotor3( phi,pnu,pnu)
838 CALL rotor2(thet,pwb,pwb)
839 CALL rotor3( phi,pwb,pwb)
840 CALL rotor2(thet,q1,q1)
841 CALL rotor3( phi,q1,q1)
842 CALL rotor2(thet,q2,q2)
843 CALL rotor3( phi,q2,q2)
844 CALL rotor2(thet,hv,hv)
845 CALL rotor3( phi,hv,hv)
846 CALL rotor2(thet,phx,phx)
847 CALL rotor3( phi,phx,phx)
849 44 hhv(i)=-isgn*hv(i)
852 ELSEIF(mode.EQ. 1)
THEN
854 IF(nevraw.EQ.0)
RETURN
855 pargam=swt/float(nevraw+1)
857 IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
859 WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
867 7010
FORMAT(///1x,15(5h*****)
868 $ /,
' *', 25x,
'******** DADMEL FINAL REPORT ******** ',9x,1h*
869 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF EL DECAYS TOTAL ',9x,1h*
870 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF EL DECS. ACCEPTED ',9x,1h*
871 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
872 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9x,1h*
873 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
874 $ /,
' *',f20.9,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
875 $ /,
' *',25x,
'COMPLETE QED CORRECTIONS INCLUDED ',9x,1h*
876 $ /,
' *',25x,
'BUT ONLY V-A CUPLINGS ',9x,1h*
878 902
WRITE(iout, 9020)
879 9020
FORMAT(
' ----- DADMEL: LACK OF INITIALISATION')
882 SUBROUTINE dadmmu(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
884 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
885 * ,ampiz,ampi,amro,gamro,ama1,gama1
886 * ,amk,amkz,amkst,gamkst
888 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
889 * ,ampiz,ampi,amro,gamro,ama1,gama1
890 * ,amk,amkz,amkst,gamkst
891 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
892 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
893 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
894 REAL*4 gampmc ,gamper
895 COMMON / inout / inut,iout
897 REAL hhv(4),hv(4),pnu(4),pwb(4),q1(4),q2(4)
898 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
901 DATA pi /3.141592653589793238462643/
914 CALL dphsmu(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5)
915 IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
919 ELSEIF(mode.EQ. 0)
THEN
922 IF(iwarm.EQ.0) goto 902
924 CALL dphsmu(wt,hv,pnu,pwb,q1,q2,phx)
930 IF(wt.GT.wtmax) nevovr=nevovr+1
931 IF(rn*wtmax.GT.wt) goto 300
936 CALL rotor2(thet,pnu,pnu)
937 CALL rotor3( phi,pnu,pnu)
938 CALL rotor2(thet,pwb,pwb)
939 CALL rotor3( phi,pwb,pwb)
940 CALL rotor2(thet,q1,q1)
941 CALL rotor3( phi,q1,q1)
942 CALL rotor2(thet,q2,q2)
943 CALL rotor3( phi,q2,q2)
944 CALL rotor2(thet,hv,hv)
945 CALL rotor3( phi,hv,hv)
946 CALL rotor2(thet,phx,phx)
947 CALL rotor3( phi,phx,phx)
949 44 hhv(i)=-isgn*hv(i)
952 ELSEIF(mode.EQ. 1)
THEN
954 IF(nevraw.EQ.0)
RETURN
955 pargam=swt/float(nevraw+1)
957 IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
959 WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
967 7010
FORMAT(///1x,15(5h*****)
968 $ /,
' *', 25x,
'******** DADMMU FINAL REPORT ******** ',9x,1h*
969 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF MU DECAYS TOTAL ',9x,1h*
970 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF MU DECS. ACCEPTED ',9x,1h*
971 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
972 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (MU DECAY) IN GEV UNITS ',9x,1h*
973 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
974 $ /,
' *',f20.9,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
975 $ /,
' *',25x,
'COMPLETE QED CORRECTIONS INCLUDED ',9x,1h*
976 $ /,
' *',25x,
'BUT ONLY V-A CUPLINGS ',9x,1h*
978 902
WRITE(iout, 9020)
979 9020
FORMAT(
' ----- DADMMU: LACK OF INITIALISATION')
982 SUBROUTINE dphsel(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
988 REAL*4 hvx(4),paax(4),xax(4),qpx(4),xnx(4)
989 REAL*8 hv(4),ph(4),paa(4),xa(4),qp(4),xn(4)
992 CALL drcmu(dgamt,hv,ph,paa,xa,qp,xn,ielmu)
1003 SUBROUTINE dphsmu(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
1009 REAL*4 hvx(4),paax(4),xax(4),qpx(4),xnx(4)
1010 REAL*8 hv(4),ph(4),paa(4),xa(4),qp(4),xn(4)
1013 CALL drcmu(dgamt,hv,ph,paa,xa,qp,xn,ielmu)
1024 SUBROUTINE drcmu(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
1025 IMPLICIT REAL*8 (a-h,o-z)
1030 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1031 * ,ampiz,ampi,amro,gamro,ama1,gama1
1032 * ,amk,amkz,amkst,gamkst
1034 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1035 * ,ampiz,ampi,amro,gamro,ama1,gama1
1036 * ,amk,amkz,amkst,gamkst
1037 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1038 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1039 COMMON / inout / inut,iout
1040 COMMON / taurad / xk0dec,itdkrc
1042 REAL*8 hv(4),pt(4),ph(4),paa(4),xa(4),qp(4),xn(4)
1046 DATA pi /3.141592653589793238462643d0/
1052 phspac=1./2**17/pi**8
1062 IF (ielmu.EQ.1)
THEN
1069 IF ( itdkrc.EQ.0) prhard=0d0
1071 IF(prsoft.LT.0.1)
THEN
1072 print *,
'ERROR IN DRCMU; PRSOFT=',prsoft
1077 ihard=(rr5.GT.prsoft)
1081 ams1=(amu+amnuta)**2
1084 xl1=log(xk1/2/xk0dec)
1089 phspac=phspac*ams2*xl1*xk
1090 phspac=phspac/prhard
1093 phspac=phspac*2**6*pi**3
1094 phspac=phspac/prsoft
1103 am2sq=ams1+ rr2*(ams2-ams1)
1105 phspac=phspac*(ams2-ams1)
1107 enq1=(am2sq+amnuta**2)/(2*am2)
1108 enq2=(am2sq-amnuta**2)/(2*am2)
1109 ppi= enq1**2-amnuta**2
1110 pppi=sqrt(abs(enq1**2-amnuta**2))
1111 phspac=phspac*(4*pi)*(2*pppi/am2)
1113 CALL spherd(pppi,xn)
1123 pr(4)=1.d0/(2*am3)*(am3**2+am2**2-amu**2)
1124 pr(3)= sqrt(abs(pr(4)**2-am2**2))
1125 ppi = pr(4)**2-am2**2
1129 qp(4)=1.d0/(2*am3)*(am3**2-am2**2+amu**2)
1131 phspac=phspac*(4*pi)*(2*pr(3)/am3)
1133 exe=(pr(4)+pr(3))/am2
1134 CALL bostd3(exe,xn,xn)
1135 CALL bostd3(exe,xa,xa)
1139 eps=4*(amu/amtax)**2
1140 xl1=log((2+eps)/eps)
1142 eta =exp(xl1*rr3+xl0)
1145 phspac=phspac*xl1/2*eta
1147 CALL rotpox(thet,phi,xn)
1148 CALL rotpox(thet,phi,xa)
1149 CALL rotpox(thet,phi,qp)
1150 CALL rotpox(thet,phi,pr)
1156 paa(4)=1/(2*amtax)*(amtax**2+am3**2)
1157 paa(3)= sqrt(abs(paa(4)**2-am3**2))
1158 ppi = paa(4)**2-am3**2
1159 phspac=phspac*(4*pi)*(2*paa(3)/amtax)
1167 exe=(paa(4)+paa(3))/am3
1168 CALL bostd3(exe,xn,xn)
1169 CALL bostd3(exe,xa,xa)
1170 CALL bostd3(exe,qp,qp)
1171 CALL bostd3(exe,pr,pr)
1173 thet =acos(-1.+2*rr3)
1175 CALL rotpox(thet,phi,xn)
1176 CALL rotpox(thet,phi,xa)
1177 CALL rotpox(thet,phi,qp)
1178 CALL rotpox(thet,phi,pr)
1193 CALL dampry(itdkrc,xk0dec,ph,xa,qp,xn,amplit,hv)
1194 dgamt=1/(2.*amtax)*amplit*phspac
1196 SUBROUTINE dampry(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV)
1197 IMPLICIT REAL*8 (a-h,o-z)
1203 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1204 * ,ampiz,ampi,amro,gamro,ama1,gama1
1205 * ,amk,amkz,amkst,gamkst
1207 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1208 * ,ampiz,ampi,amro,gamro,ama1,gama1
1209 * ,amk,amkz,amkst,gamkst
1210 REAL*8 hv(4),qp(4),xn(4),xa(4),xk(4)
1214 IF(xk(4).LT.0.1d0*ak0)
THEN
1215 amplit=thb(itdkrc,qp,xn,xa,ak0,hv)
1217 amplit=sqm2(itdkrc,qp,xn,xa,xk,ak0,hv)
1221 FUNCTION sqm2(ITDKRC,QP,XN,XA,XK,AK0,HV)
1234 IMPLICIT REAL*8(a-h,o-z)
1235 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1236 * ,ampiz,ampi,amro,gamro,ama1,gama1
1237 * ,amk,amkz,amkst,gamkst
1239 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1240 * ,ampiz,ampi,amro,gamro,ama1,gama1
1241 * ,amk,amkz,amkst,gamkst
1242 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1243 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1244 COMMON / qedprm /alfinv,alfpi,xk0
1245 REAL*8 alfinv,alfpi,xk0
1246 REAL*8 qp(4),xn(4),xa(4),xk(4)
1249 REAL*8 s0(3),rxa(3),rxk(3),rqp(3)
1250 DATA pi /3.141592653589793238462643d0/
1256 emass2=qp(4)**2-qp(1)**2-qp(2)**2-qp(3)**2
1264 rxa(i)=r(4)*xa(4)-r(1)*xa(1)-r(2)*xa(2)-r(3)*xa(3)
1266 rxk(i)=r(4)*xk(4)-r(1)*xk(1)-r(2)*xk(2)-r(3)*xk(3)
1267 rqp(i)=r(4)*qp(4)-r(1)*qp(1)-r(2)*qp(2)-r(3)*qp(3)
1269 qpxn=qp(4)*xn(4)-qp(1)*xn(1)-qp(2)*xn(2)-qp(3)*xn(3)
1270 qpxa=qp(4)*xa(4)-qp(1)*xa(1)-qp(2)*xa(2)-qp(3)*xa(3)
1271 qpxk=qp(4)*xk(4)-qp(1)*xk(1)-qp(2)*xk(2)-qp(3)*xk(3)
1273 xnxk=xn(4)*xk(4)-xn(1)*xk(1)-xn(2)*xk(2)-xn(3)*xk(3)
1274 xaxk=xa(4)*xk(4)-xa(1)*xk(1)-xa(2)*xk(2)-xa(3)*xk(3)
1284 s1= qpxn*txa*( -emass2/qpxk**2*a + 2*tqp/(qpxk*txk)*b-
1286 $qpxn/txk**2* ( tmass2*xaxk - txa*txk+ xaxk*txk) -
1287 $txa*txn/txk - qpxn/(qpxk*txk)* (tqp*xaxk-txk*qpxa)
1288 const4=256*pi/alphai*gf**2
1289 IF (itdkrc.EQ.0) const4=0d0
1292 s0(i) = qpxn*rxa(i)*(-emass2/qpxk**2*a + 2*tqp/(qpxk*txk)*b-
1294 $ qpxn/txk**2* (tmass2*xaxk - txa*rxk(i)+ xaxk*rxk(i))-
1295 $ rxa(i)*txn/txk - qpxn/(qpxk*txk)*(rqp(i)*xaxk- rxk(i)*qpxa)
1296 5 hv(i)=s0(i)/s1-1.d0
1299 FUNCTION thb(ITDKRC,QP,XN,XA,AK0,HV)
1313 IMPLICIT REAL*8(a-h,o-z)
1314 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1315 * ,ampiz,ampi,amro,gamro,ama1,gama1
1316 * ,amk,amkz,amkst,gamkst
1318 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1319 * ,ampiz,ampi,amro,gamro,ama1,gama1
1320 * ,amk,amkz,amkst,gamkst
1321 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1322 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1323 COMMON / qedprm /alfinv,alfpi,xk0
1324 REAL*8 alfinv,alfpi,xk0
1325 dimension qp(4),xn(4),xa(4)
1328 REAL*8 rxa(3),rxn(3),rqp(3)
1329 REAL*8 bornpl(3),am3pol(3),xm3pol(3)
1330 DATA pi /3.141592653589793238462643d0/
1343 rxa(i)=r(4)*xa(4)-r(1)*xa(1)-r(2)*xa(2)-r(3)*xa(3)
1344 rxn(i)=r(4)*xn(4)-r(1)*xn(1)-r(2)*xn(2)-r(3)*xn(3)
1346 rqp(i)=r(4)*qp(4)-r(1)*qp(1)-r(2)*qp(2)-r(3)*qp(3)
1350 u3=sqrt(qp(1)**2+qp(2)**2+qp(3)**2)/tmass
1352 w0=(xn(4)+xa(4))/tmass
1364 f0=2*u0/u3*( dilogt(1-(um*wm/(up*wp)))- dilogt(1-wm/wp) +
1365 $dilogt(1-um/up) -2*yu+ 2*log(up)*(yw+yu) ) +
1366 $1/y* ( 2*u3*yu + (1-eps2- 2*y)*log(eps) ) +
1367 $ 2 - 4*(u0/u3*yu -1)* log(2*al)
1368 fp= yu/(2*u3)*(1 + (1-eps2)/y ) + log(eps)/y
1369 fm= yu/(2*u3)*(1 - (1-eps2)/y ) - log(eps)/y
1372 qpxn=qp(4)*xn(4)-qp(1)*xn(1)-qp(2)*xn(2)-qp(3)*xn(3)
1373 qpxa=qp(4)*xa(4)-qp(1)*xa(1)-qp(2)*xa(2)-qp(3)*xa(3)
1374 xnxa=xn(4)*xa(4)-xn(1)*xa(1)-xn(2)*xa(2)-xn(3)*xa(3)
1379 const3=1/(2*alphai*pi)*64*gf**2
1380 IF (itdkrc.EQ.0) const3=0d0
1381 xm3= -( f0* qpxn*txa + fp*eps2* txn*txa +
1382 $fm* qpxn*qpxa + f3* tmass2*xnxa )
1385 brak= (gv+ga)**2*tqp*xnxa+(gv-ga)**2*txa*qpxn
1386 & -(gv**2-ga**2)*tmass*amnuta*qpxa
1387 born= 32*(gfermi**2/2.)*brak
1389 xm3pol(i)= -( f0* qpxn*rxa(i) + fp*eps2* txn*rxa(i) +
1390 $ fm* qpxn* (qpxa + (rxa(i)*tqp-txa*rqp(i))/tmass2 ) +
1391 $ f3* (tmass2*xnxa +txn*rxa(i) -rxn(i)*txa) )
1392 am3pol(i)=xm3pol(i)*const3
1395 & (gv+ga)**2*tmass*xnxa*qp(i)
1396 & -(gv-ga)**2*tmass*qpxn*xa(i)
1397 & +(gv**2-ga**2)*amnuta*txa*qp(i)
1398 & -(gv**2-ga**2)*amnuta*tqp*xa(i) )*
1400 5 hv(i)=(bornpl(i)+am3pol(i))/(born+am3)-1.d0
1402 IF (thb/born.LT.0.1d0)
THEN
1403 print *,
'ERROR IN THB, THB/BORN=',thb/born
1408 SUBROUTINE dexpi(MODE,ISGN,POL,PPI,PNU)
1415 REAL pol(4),hv(4),pnu(4),ppi(4),rn(1)
1419 CALL dadmpi(-1,isgn,hv,ppi,pnu)
1422 ELSEIF(mode.EQ. 0)
THEN
1425 CALL dadmpi( 0,isgn,hv,ppi,pnu)
1426 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
1429 IF(rn(1).GT.wt) goto 300
1431 ELSEIF(mode.EQ. 1)
THEN
1433 CALL dadmpi( 1,isgn,hv,ppi,pnu)
1439 SUBROUTINE dadmpi(MODE,ISGN,HV,PPI,PNU)
1441 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1442 * ,ampiz,ampi,amro,gamro,ama1,gama1
1443 * ,amk,amkz,amkst,gamkst
1445 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1446 * ,ampiz,ampi,amro,gamro,ama1,gama1
1447 * ,amk,amkz,amkst,gamkst
1448 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1449 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1450 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
1451 REAL*4 gampmc ,gamper
1452 COMMON / inout / inut,iout
1453 REAL ppi(4),pnu(4),hv(4)
1454 DATA pi /3.141592653589793238462643/
1459 ELSEIF(mode.EQ. 0)
THEN
1462 epi= (amtau**2+ampi**2-amnuta**2)/(2*amtau)
1463 enu= (amtau**2-ampi**2+amnuta**2)/(2*amtau)
1464 xpi= sqrt(epi**2-ampi**2)
1466 CALL sphera(xpi,ppi)
1474 qxn=ppi(4)*pnu(4)-ppi(1)*pnu(1)-ppi(2)*pnu(2)-ppi(3)*pnu(3)
1475 brak=(gv**2+ga**2)*(2*pxq*qxn-ampi**2*pxn)
1476 & +(gv**2-ga**2)*amtau*amnuta*ampi**2
1478 40 hv(i)=-isgn*2*ga*gv*amtau*(2*ppi(i)*qxn-pnu(i)*ampi**2)/brak
1481 ELSEIF(mode.EQ. 1)
THEN
1483 IF(nevtot.EQ.0)
RETURN
1489 gamm=(gfermi*fpi)**2/(16.*pi)*amtau**3*
1491 $ sqrt((amtau**2-ampi**2-amnuta**2)**2
1492 $ -4*ampi**2*amnuta**2 )/amtau**2
1495 WRITE(iout, 7010) nevtot,gamm,rat,error
1502 7010
FORMAT(///1x,15(5h*****)
1503 $ /,
' *', 25x,
'******** DADMPI FINAL REPORT ******** ',9x,1h*
1504 $ /,
' *',i20 ,5x,
'NEVTOT = NO. OF PI DECAYS TOTAL ',9x,1h*
1505 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9x,1h*
1506 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
1507 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9x,1h*
1508 $ /,1x,15(5h*****)/)
1510 SUBROUTINE dexro(MODE,ISGN,POL,PNU,PRO,PIC,PIZ)
1519 COMMON / inout / inut,iout
1520 REAL pol(4),hv(4),pro(4),pnu(4),pic(4),piz(4),rn(1)
1526 CALL dadmro( -1,isgn,hv,pnu,pro,pic,piz)
1530 ELSEIF(mode.EQ. 0)
THEN
1533 IF(iwarm.EQ.0) goto 902
1534 CALL dadmro( 0,isgn,hv,pnu,pro,pic,piz)
1535 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
1540 IF(rn(1).GT.wt) goto 300
1542 ELSEIF(mode.EQ. 1)
THEN
1544 CALL dadmro( 1,isgn,hv,pnu,pro,pic,piz)
1550 902
WRITE(iout, 9020)
1551 9020
FORMAT(
' ----- DEXRO: LACK OF INITIALISATION')
1554 SUBROUTINE dadmro(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ)
1556 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1557 * ,ampiz,ampi,amro,gamro,ama1,gama1
1558 * ,amk,amkz,amkst,gamkst
1560 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1561 * ,ampiz,ampi,amro,gamro,ama1,gama1
1562 * ,amk,amkz,amkst,gamkst
1563 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1564 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1565 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
1566 REAL*4 gampmc ,gamper
1567 COMMON / inout / inut,iout
1569 REAL hv(4),pro(4),pnu(4),pic(4),piz(4)
1570 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4)
1573 DATA pi /3.141592653589793238462643/
1586 CALL dphsro(wt,hv,pdum1,pdum2,pdum3,pdum4)
1587 IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
1592 ELSEIF(mode.EQ. 0)
THEN
1595 IF(iwarm.EQ.0) goto 902
1596 CALL dphsro(wt,hv,pnu,pro,pic,piz)
1603 IF(wt.GT.wtmax) nevovr=nevovr+1
1604 IF(rn*wtmax.GT.wt) goto 300
1606 costhe=-1.+2.*rrr(2)
1609 CALL rotor2(thet,pnu,pnu)
1610 CALL rotor3( phi,pnu,pnu)
1611 CALL rotor2(thet,pro,pro)
1612 CALL rotor3( phi,pro,pro)
1613 CALL rotor2(thet,pic,pic)
1614 CALL rotor3( phi,pic,pic)
1615 CALL rotor2(thet,piz,piz)
1616 CALL rotor3( phi,piz,piz)
1617 CALL rotor2(thet,hv,hv)
1618 CALL rotor3( phi,hv,hv)
1620 44 hhv(i)=-isgn*hv(i)
1623 ELSEIF(mode.EQ. 1)
THEN
1625 IF(nevraw.EQ.0)
RETURN
1626 pargam=swt/float(nevraw+1)
1628 IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
1630 WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
1638 7003
FORMAT(///1x,15(5h*****)
1639 $ /,
' *', 25x,
'******** DADMRO INITIALISATION ********',9x,1h*
1640 $ /,
' *',e20.5,5x,
'WTMAX = MAXIMUM WEIGHT ',9x,1h*
1641 $ /,1x,15(5h*****)/)
1642 7010
FORMAT(///1x,15(5h*****)
1643 $ /,
' *', 25x,
'******** DADMRO FINAL REPORT ******** ',9x,1h*
1644 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF RHO DECAYS TOTAL ',9x,1h*
1645 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF RHO DECS. ACCEPTED ',9x,1h*
1646 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
1647 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9x,1h*
1648 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
1649 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
1650 $ /,1x,15(5h*****)/)
1651 902
WRITE(iout, 9020)
1652 9020
FORMAT(
' ----- DADMRO: LACK OF INITIALISATION')
1655 SUBROUTINE dphsro(DGAMT,HV,PN,PR,PIC,PIZ)
1660 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1661 * ,ampiz,ampi,amro,gamro,ama1,gama1
1662 * ,amk,amkz,amkst,gamkst
1664 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1665 * ,ampiz,ampi,amro,gamro,ama1,gama1
1666 * ,amk,amkz,amkst,gamkst
1667 REAL hv(4),pt(4),pn(4),pr(4),pic(4),piz(4),qq(4),rr1(1)
1668 DATA pi /3.141592653589793238462643/
1672 phspac=1./2**11/pi**5
1679 ams1=(ampi+ampiz)**2
1680 ams2=(amtau-amnuta)**2
1686 alp1=atan((ams1-amro**2)/amro/gamro)
1687 alp2=atan((ams2-amro**2)/amro/gamro)
1691 alp=alp1+rr1(1)*(alp2-alp1)
1692 amx2=amro**2+amro*gamro*tan(alp)
1694 IF(amx.LT.2.*ampi) go to 100
1696 phspac=phspac*((amx2-amro**2)**2+(amro*gamro)**2)/(amro*gamro)
1697 phspac=phspac*(alp2-alp1)
1702 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
1703 pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
1707 pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
1709 phspac=phspac*(4*pi)*(2*pr(3)/amtau)
1712 enq1=(amx2+ampi**2-ampiz**2)/(2.*amx)
1713 enq2=(amx2-ampi**2+ampiz**2)/(2.*amx)
1714 pppi=sqrt((enq1-ampi)*(enq1+ampi))
1715 phspac=phspac*(4*pi)*(2*pppi/amx)
1717 CALL sphera(pppi,pic)
1723 exe=(pr(4)+pr(3))/amx
1725 CALL bostr3(exe,pic,pic)
1726 CALL bostr3(exe,piz,piz)
1728 CALL dam2pi(0,pt,pn,pic,piz,amplit,hv)
1729 dgamt=1/(2.*amtau)*amplit*phspac
1744 SUBROUTINE dam2pi(MNUM,PT,PN,PIM1,PIM2,AMPLIT,HV)
1754 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1755 * ,ampiz,ampi,amro,gamro,ama1,gama1
1756 * ,amk,amkz,amkst,gamkst
1758 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1759 * ,ampiz,ampi,amro,gamro,ama1,gama1
1760 * ,amk,amkz,amkst,gamkst
1761 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
1762 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
1763 REAL hv(4),pt(4),pn(4),pim1(4),pim2(4)
1764 REAL pivec(4),piaks(4),hvm(4)
1766 DATA pi /3.141592653589793238462643/
1770 CALL curr_pipi0(pim1,pim2,hadcur)
1771 ELSEIF (mnum.EQ.1)
THEN
1772 CALL curr_pik0(pim1,pim2,hadcur)
1773 ELSEIF (mnum.EQ.2)
THEN
1774 CALL curr_kpi0(pim1,pim2,hadcur)
1775 ELSEIF (mnum.EQ.3)
THEN
1776 CALL curr_kk0(pim1,pim2,hadcur)
1778 write(*,*)
'DAM2PI: wrong MNUM= ',mnum
1784 CALL clvec(hadcur,pn,pivec)
1785 CALL claxi(hadcur,pn,piaks)
1786 CALL clnut(hadcur,brakm,hvm)
1788 brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
1789 & +2.*(gv**2-ga**2)*amnuta*amtau*brakm
1790 IF (mnum.EQ.0.OR.mnum.EQ.3)
THEN
1791 amplit=(ccabib*gfermi)**2*brak
1793 amplit=(scabib*gfermi)**2*brak
1797 hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
1798 & +(gv**2-ga**2)*amnuta*amtau*hvm(i)
1805 SUBROUTINE curr_pipi0(PC,PN,HADCUR)
1814 COMPLEX bwigs,hadcur(4),fkpipl,frho_pi
1816 REAL pc(4),pn(4),qq(4),pks(4),fpirho
1817 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1818 * ,ampiz,ampi,amro,gamro,ama1,gama1
1819 * ,amk,amkz,amkst,gamkst
1821 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1822 * ,ampiz,ampi,amro,gamro,ama1,gama1
1823 * ,amk,amkz,amkst,gamkst
1832 pks(ik)=pc(ik)+ pn(ik)
1833 qq(ik)=pc(ik)- pn(ik)
1836 pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
1837 qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
1839 31 qq(ik)=qq(ik)-pks(ik)*qqpks/pksd
1842 CALL getff2pirho(ff2pirho)
1843 IF (ff2pirho.EQ.2)
THEN
1846 hadcur(k)=qq(k)* fpibel(sqrt(pksd),0)
1848 ELSEIF (ff2pirho.EQ.3)
THEN
1853 hadcur(k)=qq(k)* fpibel(sqrt(pksd),1)
1856 write(*,*)
'problem in 2-scalars current FF2PIRHO=',ff2pirho
1859 ELSEIF (iver.EQ.0)
THEN
1861 hadcur(k)=qq(k)* sqrt(fpirho(sqrt(pksd)))
1865 write(*,*)
'problem in 2-scalars current IVER=',iver
1872 SUBROUTINE curr_pik0(PC,PN,HADCUR)
1881 COMPLEX bwigs,hadcur(4),fkpipl
1882 REAL pc(4),pn(4),qq(4),pks(4),fkpisc,pksd,qqpks
1883 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1884 & ,ampiz,ampi,amro,gamro,ama1,gama1
1885 & ,amk,amkz,amkst,gamkst
1887 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1888 & ,ampiz,ampi,amro,gamro,ama1,gama1
1889 & ,amk,amkz,amkst,gamkst,fact_k0pi
1890 COMMON / taukle / bra1,brk0,brk0b,brks
1891 REAL*4 bra1,brk0,brk0b,brks
1900 pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
1901 qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
1903 31 qq(i)=qq(i)-pks(i)*qqpks/pksd
1907 hadcur(k)=qq(k)*bwigs(pksd,amkst,gamkst)
1913 SUBROUTINE curr_kpi0(PC,PN,HADCUR)
1922 COMPLEX bwigs,hadcur(4),fkpipl
1923 REAL pc(4),pn(4),qq(4),pks(4),fkpisc,pksd,qqpks
1924 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1925 * ,ampiz,ampi,amro,gamro,ama1,gama1
1926 * ,amk,amkz,amkst,gamkst
1928 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1929 * ,ampiz,ampi,amro,gamro,ama1,gama1
1930 * ,amk,amkz,amkst,gamkst,fact_kpi0
1931 COMMON / taukle / bra1,brk0,brk0b,brks
1932 REAL*4 bra1,brk0,brk0b,brks
1937 30 qq(i)=pc(i)- pn(i)
1939 pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
1940 qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
1942 31 qq(i)=qq(i)-pks(i)*qqpks/pksd
1944 hadcur(k)=qq(k)*bwigs(pksd,amkst,gamkst)
1950 SUBROUTINE curr_kk0(PC,PN,HADCUR)
1959 COMPLEX bwigs,hadcur(4),fkk0_rcht
1960 REAL pc(4),pn(4),qq(4),pks(4),pksd,qqpks,fpirk
1962 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
1963 * ,ampiz,ampi,amro,gamro,ama1,gama1
1964 * ,amk,amkz,amkst,gamkst
1966 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
1967 * ,ampiz,ampi,amro,gamro,ama1,gama1
1968 * ,amk,amkz,amkst,gamkst
1974 pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
1975 qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
1977 31 qq(i)=qq(i)-pks(i)*qqpks/pksd
1980 hadcur(k)=qq(k)*sqrt(fpirk(sqrt(pksd)))
1996 DATA pi /3.141592653589793238462643/
2014 IF (icont.EQ.0)
THEN
2019 coefc(1,0)= 2.0*sqrt(2.)/3.0
2020 coefc(2,0)=-2.0*sqrt(2.)/3.0
2022 coefc(3,0)= 2.0*sqrt(2.)/3.0
2026 coefc(1,1)=-sqrt(2.)/3.0
2027 coefc(2,1)= sqrt(2.)/3.0
2030 coefc(5,1)= sqrt(2.)
2033 coefc(1,2)=-sqrt(2.)/3.0
2034 coefc(2,2)= sqrt(2.)/3.0
2038 coefc(5,2)=-sqrt(2.)
2048 coefc(1,4)= 1.0/sqrt(2.)/3.0
2049 coefc(2,4)=-1.0/sqrt(2.)/3.0
2054 coefc(1,5)=-sqrt(2.)/3.0
2055 coefc(2,5)= sqrt(2.)/3.0
2058 coefc(5,5)=-sqrt(2.)
2071 coefc(5,7)=-sqrt(2.0/3.0)
2074 IF (iver.EQ.0.OR.j.NE.0)
THEN
2076 ELSEIF (iver.EQ.1)
THEN
2079 write(*,*)
'wrong IVER=',iver
2085 SUBROUTINE inirchl(IVERI)
2098 CALL rchl_parameters(1)
2103 SUBROUTINE inirchlget(I)
2122 SUBROUTINE dexaa(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA)
2133 COMMON / inout / inut,iout
2134 REAL pol(4),hv(4),paa(4),pnu(4),pim1(4),pim2(4),pipl(4),rn(1)
2140 CALL dadmaa( -1,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
2143 ELSEIF(mode.EQ. 0)
THEN
2146 IF(iwarm.EQ.0) goto 902
2147 CALL dadmaa( 0,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
2148 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
2151 IF(rn(1).GT.wt) goto 300
2153 ELSEIF(mode.EQ. 1)
THEN
2155 CALL dadmaa( 1,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
2160 902
WRITE(iout, 9020)
2161 9020
FORMAT(
' ----- DEXAA: LACK OF INITIALISATION')
2164 SUBROUTINE dadmaa(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
2168 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2169 * ,ampiz,ampi,amro,gamro,ama1,gama1
2170 * ,amk,amkz,amkst,gamkst
2172 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2173 * ,ampiz,ampi,amro,gamro,ama1,gama1
2174 * ,amk,amkz,amkst,gamkst
2175 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
2176 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
2177 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
2178 REAL*4 gampmc ,gamper
2179 COMMON / inout / inut,iout
2181 REAL hv(4),paa(4),pnu(4),pim1(4),pim2(4),pipl(4)
2182 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
2185 DATA pi /3.141592653589793238462643/
2198 CALL dphsaa(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5,jaa)
2199 IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
2203 ELSEIF(mode.EQ. 0)
THEN
2206 IF(iwarm.EQ.0) goto 902
2207 CALL dphsaa(wt,hv,pnu,paa,pim1,pim2,pipl,jaa)
2213 sswt=sswt+dble(wt)**2
2217 IF(wt.GT.wtmax) nevovr=nevovr+1
2218 IF(rn*wtmax.GT.wt) goto 300
2220 costhe=-1.+2.*rrr(2)
2223 CALL rotpol(thet,phi,pnu)
2224 CALL rotpol(thet,phi,paa)
2225 CALL rotpol(thet,phi,pim1)
2226 CALL rotpol(thet,phi,pim2)
2227 CALL rotpol(thet,phi,pipl)
2228 CALL rotpol(thet,phi,hv)
2230 44 hhv(i)=-isgn*hv(i)
2233 ELSEIF(mode.EQ. 1)
THEN
2235 IF(nevraw.EQ.0)
RETURN
2236 pargam=swt/float(nevraw+1)
2238 IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
2240 WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
2248 7003
FORMAT(///1x,15(5h*****)
2249 $ /,
' *', 25x,
'******** DADMAA INITIALISATION ********',9x,1h*
2250 $ /,
' *',e20.5,5x,
'WTMAX = MAXIMUM WEIGHT ',9x,1h*
2251 $ /,1x,15(5h*****)/)
2252 7010
FORMAT(///1x,15(5h*****)
2253 $ /,
' *', 25x,
'******** DADMAA FINAL REPORT ******** ',9x,1h*
2254 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF A1 DECAYS TOTAL ',9x,1h*
2255 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF A1 DECS. ACCEPTED ',9x,1h*
2256 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
2257 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (A1 DECAY) IN GEV UNITS ',9x,1h*
2258 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
2259 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
2260 $ /,1x,15(5h*****)/)
2261 902
WRITE(iout, 9020)
2262 9020
FORMAT(
' ----- DADMAA: LACK OF INITIALISATION')
2265 SUBROUTINE dphsaa(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA)
2270 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2271 * ,ampiz,ampi,amro,gamro,ama1,gama1
2272 * ,amk,amkz,amkst,gamkst
2274 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2275 * ,ampiz,ampi,amro,gamro,ama1,gama1
2276 * ,amk,amkz,amkst,gamkst
2277 COMMON / taukle / bra1,brk0,brk0b,brks
2278 REAL*4 bra1,brk0,brk0b,brks
2279 REAL hv(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4)
2289 IF (rmod.LT.bra1)
THEN
2302 $ dphtre(dgamt,hv,pn,paa,pim1,amp1,pim2,amp2,pipl,amp3,keyt,mnum)
2304 SUBROUTINE dexkk(MODE,ISGN,POL,PKK,PNU)
2311 REAL pol(4),hv(4),pnu(4),pkk(4),rn(1)
2315 CALL dadmkk(-1,isgn,hv,pkk,pnu)
2318 ELSEIF(mode.EQ. 0)
THEN
2321 CALL dadmkk( 0,isgn,hv,pkk,pnu)
2322 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
2325 IF(rn(1).GT.wt) goto 300
2327 ELSEIF(mode.EQ. 1)
THEN
2329 CALL dadmkk( 1,isgn,hv,pkk,pnu)
2335 SUBROUTINE dadmkk(MODE,ISGN,HV,PKK,PNU)
2338 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
2339 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
2340 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2341 * ,ampiz,ampi,amro,gamro,ama1,gama1
2342 * ,amk,amkz,amkst,gamkst
2344 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2345 * ,ampiz,ampi,amro,gamro,ama1,gama1
2346 * ,amk,amkz,amkst,gamkst
2347 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
2348 REAL*4 gampmc ,gamper
2349 COMMON / inout / inut,iout
2350 REAL pkk(4),pnu(4),hv(4)
2351 DATA pi /3.141592653589793238462643/
2356 ELSEIF(mode.EQ. 0)
THEN
2359 ekk= (amtau**2+amk**2-amnuta**2)/(2*amtau)
2360 enu= (amtau**2-amk**2+amnuta**2)/(2*amtau)
2361 xkk= sqrt(ekk**2-amk**2)
2363 CALL sphera(xkk,pkk)
2371 qxn=pkk(4)*pnu(4)-pkk(1)*pnu(1)-pkk(2)*pnu(2)-pkk(3)*pnu(3)
2372 brak=(gv**2+ga**2)*(2*pxq*qxn-amk**2*pxn)
2373 & +(gv**2-ga**2)*amtau*amnuta*amk**2
2375 40 hv(i)=-isgn*2*ga*gv*amtau*(2*pkk(i)*qxn-pnu(i)*amk**2)/brak
2378 ELSEIF(mode.EQ. 1)
THEN
2380 IF(nevtot.EQ.0)
RETURN
2387 gamm=(gfermi*fkk)**2/(16.*pi)*amtau**3*
2389 $ sqrt((amtau**2-amk**2-amnuta**2)**2
2390 $ -4*amk**2*amnuta**2 )/amtau**2
2395 WRITE(iout, 7010) nevtot,gamm,rat,error
2402 7010
FORMAT(///1x,15(5h*****)
2403 $ /,
' *', 25x,
'******** DADMKK FINAL REPORT ********',9x,1h*
2404 $ /,
' *',i20 ,5x,
'NEVTOT = NO. OF K DECAYS TOTAL ',9x,1h*,
2405 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( K DECAY) IN GEV UNITS ',9x,1h*,
2406 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
2407 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9x,1h*
2408 $ /,1x,15(5h*****)/)
2410 SUBROUTINE dexks(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST)
2422 COMMON / inout / inut,iout
2423 REAL pol(4),hv(4),pks(4),pnu(4),pkk(4),ppi(4),rn(1)
2430 CALL dadmks( -1,isgn,hv,pnu,pks,pkk,ppi,jkst)
2434 ELSEIF(mode.EQ. 0)
THEN
2437 IF(iwarm.EQ.0) goto 902
2438 CALL dadmks( 0,isgn,hv,pnu,pks,pkk,ppi,jkst)
2439 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
2444 IF(rn(1).GT.wt) goto 300
2446 ELSEIF(mode.EQ. 1)
THEN
2448 CALL dadmks( 1,isgn,hv,pnu,pks,pkk,ppi,jkst)
2454 902
WRITE(iout, 9020)
2455 9020
FORMAT(
' ----- DEXKS: LACK OF INITIALISATION')
2458 SUBROUTINE dadmks(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST)
2460 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2461 * ,ampiz,ampi,amro,gamro,ama1,gama1
2462 * ,amk,amkz,amkst,gamkst
2464 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2465 * ,ampiz,ampi,amro,gamro,ama1,gama1
2466 * ,amk,amkz,amkst,gamkst
2467 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
2468 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
2469 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
2470 REAL*4 gampmc ,gamper
2471 COMMON / taukle / bra1,brk0,brk0b,brks
2472 REAL*4 bra1,brk0,brk0b,brks
2473 COMMON / inout / inut,iout
2475 REAL hv(4),pks(4),pnu(4),pkk(4),ppi(4)
2476 REAL pdum1(4),pdum2(4),pdum3(4),pdum4(4)
2477 REAL*4 rrr(3),rmod(1)
2479 DATA pi /3.141592653589793238462643/
2494 CALL dphsks(wt,hv,pdum1,pdum2,pdum3,pdum4,jkst)
2495 IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
2500 ELSEIF(mode.EQ. 0)
THEN
2502 IF(iwarm.EQ.0) goto 902
2508 IF(rmod(1).LT.dec1)
THEN
2513 CALL dphsks(wt,hv,pnu,pks,pkk,ppi,jkst)
2516 IF(wt.GT.wtmax) nevovr=nevovr+1
2520 IF(rn*wtmax.GT.wt) goto 400
2522 costhe=-1.+2.*rrr(2)
2525 CALL rotor2(thet,pnu,pnu)
2526 CALL rotor3( phi,pnu,pnu)
2527 CALL rotor2(thet,pks,pks)
2528 CALL rotor3( phi,pks,pks)
2529 CALL rotor2(thet,pkk,pkk)
2530 CALL rotor3(phi,pkk,pkk)
2531 CALL rotor2(thet,ppi,ppi)
2532 CALL rotor3( phi,ppi,ppi)
2533 CALL rotor2(thet,hv,hv)
2534 CALL rotor3( phi,hv,hv)
2536 44 hhv(i)=-isgn*hv(i)
2539 ELSEIF(mode.EQ. 1)
THEN
2541 IF(nevraw.EQ.0)
RETURN
2542 pargam=swt/float(nevraw+1)
2544 IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
2546 WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
2554 7003
FORMAT(///1x,15(5h*****)
2555 $ /,
' *', 25x,
'******** DADMKS INITIALISATION ********',9x,1h*
2556 $ /,
' *',e20.5,5x,
'WTMAX = MAXIMUM WEIGHT ',9x,1h*
2557 $ /,1x,15(5h*****)/)
2558 7010
FORMAT(///1x,15(5h*****)
2559 $ /,
' *', 25x,
'******** DADMKS FINAL REPORT ********',9x,1h*
2560 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF K* DECAYS TOTAL ',9x,1h*,
2561 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF K* DECS. ACCEPTED ',9x,1h*,
2562 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
2563 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (K* DECAY) IN GEV UNITS ',9x,1h*,
2564 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
2565 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
2566 $ /,1x,15(5h*****)/)
2567 902
WRITE(iout, 9020)
2568 9020
FORMAT(
' ----- DADMKS: LACK OF INITIALISATION')
2571 SUBROUTINE dphsks(DGAMT,HV,PN,PKS,PKK,PPI,JKST)
2578 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2579 * ,ampiz,ampi,amro,gamro,ama1,gama1
2580 * ,amk,amkz,amkst,gamkst
2582 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2583 * ,ampiz,ampi,amro,gamro,ama1,gama1
2584 * ,amk,amkz,amkst,gamkst
2585 REAL hv(4),pt(4),pn(4),pks(4),pkk(4),ppi(4),qq(4),rr1(1),rr2(1)
2586 DATA pi /3.141592653589793238462643/
2590 phspac=1./2**11/pi**5
2602 ams2=(amtau-amnuta)**2
2603 alp1=atan((ams1-amkst**2)/amkst/gamkst)
2604 alp2=atan((ams2-amkst**2)/amkst/gamkst)
2607 IF (rr2(1).LT.prob1)
THEN
2609 amx2=ams1+ rr1(1)*(ams2-ams1)
2613 alp=alp1+rr1(1)*(alp2-alp1)
2614 amx2=amkst**2+amkst*gamkst*tan(alp)
2619 phspac2=((amx2-amkst**2)**2+(amkst*gamkst)**2)
2621 phspac2=phspac2*(alp2-alp1)
2624 IF (phspac1.NE.0.0) a1=prob1 /phspac1
2625 IF (phspac2.NE.0.0) a2=(1-prob1)/phspac2
2629 IF (a1+a2.NE.0.0)
THEN
2630 phspac=phspac/(a1+a2)
2639 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
2640 pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
2645 pks(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
2647 phspac=phspac*(4*pi)*(2*pks(3)/amtau)
2650 enpi=( amx**2+ampi**2-amkz**2 ) / ( 2*amx )
2651 pppi=sqrt(abs(enpi-ampi)*(enpi+ampi))
2652 phspac=phspac*(4*pi)*(2*pppi/amx)
2654 CALL sphera(pppi,ppi)
2659 pkk(4)=( amx**2+amkz**2-ampi**2 ) / ( 2*amx )
2660 exe=(pks(4)+pks(3))/amx
2662 CALL bostr3(exe,ppi,ppi)
2663 CALL bostr3(exe,pkk,pkk)
2665 CALL dam2pi(1,pt,pn,ppi,pkk,amplit,hv)
2666 dgamt=1/(2.*amtau)*amplit*phspac
2669 ELSEIF(jkst.EQ.20)
THEN
2673 ams2=(amtau-amnuta)**2
2674 alp1=atan((ams1-amkst**2)/amkst/gamkst)
2675 alp2=atan((ams2-amkst**2)/amkst/gamkst)
2679 IF (rr2(1).LT.prob1)
THEN
2681 amx2=ams1+ rr1(1)*(ams2-ams1)
2685 alp=alp1+rr1(1)*(alp2-alp1)
2686 amx2=amkst**2+amkst*gamkst*tan(alp)
2691 phspac2=((amx2-amkst**2)**2+(amkst*gamkst)**2)
2693 phspac2=phspac2*(alp2-alp1)
2696 IF (phspac1.NE.0.0) a1=prob1 /phspac1
2697 IF (phspac2.NE.0.0) a2=(1-prob1)/phspac2
2699 IF (a1+a2.NE.0.0)
THEN
2700 phspac=phspac/(a1+a2)
2709 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
2710 pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
2714 pks(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
2716 phspac=phspac*(4*pi)*(2*pks(3)/amtau)
2719 enpi=( amx**2+ampiz**2-amk**2 ) / ( 2*amx )
2720 pppi=sqrt(abs(enpi-ampiz)*(enpi+ampiz))
2721 phspac=phspac*(4*pi)*(2*pppi/amx)
2723 CALL sphera(pppi,ppi)
2728 pkk(4)=( amx**2+amk**2-ampiz**2 ) / ( 2*amx )
2729 exe=(pks(4)+pks(3))/amx
2731 CALL bostr3(exe,ppi,ppi)
2732 CALL bostr3(exe,pkk,pkk)
2734 CALL dam2pi(2,pt,pn,pkk,ppi,amplit,hv)
2735 dgamt=1/(2.*amtau)*amplit*phspac
2744 SUBROUTINE dphnpi(DGAMT,HVX,PNX,PRX,PPIX,JNPI)
2749 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2750 * ,ampiz,ampi,amro,gamro,ama1,gama1
2751 * ,amk,amkz,amkst,gamkst
2753 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2754 * ,ampiz,ampi,amro,gamro,ama1,gama1
2755 * ,amk,amkz,amkst,gamkst
2756 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
2757 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
2758 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
2759 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
2761 CHARACTER names(nmode)*31
2764 REAL*8 pn(4),pr(4),ppi(4,9),hv(4)
2765 REAL*4 pnx(4),prx(4),ppix(4,9),hvx(4)
2766 REAL*8 pv(5,9),pt(4),ue(3),be(3)
2767 REAL*8 pawt,amx,ams1,ams2,pa,phs,phsmax,pmin,pmax
2771 REAL*8 gam,bep,phi,a,b,c
2773 REAL*4 rrr(9),rrx(2),rn(1),rr2(1)
2775 DATA pi /3.141592653589793238462643/
2776 DATA wetmax /20*1d-15/
2781 $ sqrt(max(0.d0,(a**2-(b+c)**2)*(a**2-(b-c)**2)))/(2.d0*a)
2783 ampik(i,j)=dcdmas(idffin(i,j))
2786 IF ((jnpi.LE.0).OR.jnpi.GT.20)
THEN
2787 WRITE(6,*)
'JNPI OUTSIDE RANGE DEFINED BY WETMAX; JNPI=',jnpi
2801 phspac = 1./2.**5 /pi**2
2803 4 ps =ps+ampik(i,jnpi)
2806 ams2=(amtau-amnuta)**2
2809 amx2=ams1+ rr2(1)*(ams2-ams1)
2812 phspac=phspac * (ams2-ams1)
2817 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx2)
2818 pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
2822 pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx2)
2824 phspac=phspac * (4.*pi) * (2.*pr(3)/amtau)
2831 qxn=pr(4)*pn(4)-pr(1)*pn(1)-pr(2)*pn(2)-pr(3)*pn(3)
2834 brak=2*(gv**2+ga**2)*(2*pxq*qxn+amx2*pxn)
2835 & -6*(gv**2-ga**2)*amtau*amnuta*amx2
2838 amplit=ccabib**2*gfermi**2/2. * brak * amx2*sigee(amx2,jnpi)
2839 dgamt=1./(2.*amtau)*amplit*phspac
2846 pv(5,nd)=ampik(nd,jnpi)
2848 pmax=amw-ps+ampik(nd,jnpi)
2851 pmax=pmax+ampik(il,jnpi)
2852 pmin=pmin+ampik(il+1,jnpi)
2853 220 phsmax=phsmax*pawt(pmax,pmin,ampik(il,jnpi))/pmax
2860 223 ams1=ams1+ampik(jl,jnpi)
2862 amx =(amx-ampik(il,jnpi))
2864 phsmax=phsmax * (ams2-ams1)
2871 phspac = 1./2.**(6*nd-7) /pi**(3*nd-4)
2873 CALL ranmar(rrr,nd-2)
2877 231 ams1=ams1+ampik(jl,jnpi)
2879 ams2=(amx-ampik(il,jnpi))**2
2881 amx2=ams1+ rr1*(ams2-ams1)
2884 phspac=phspac * (ams2-ams1)
2886 phs=phs* (ams2-ams1)
2887 pa=pawt(pv(5,il),pv(5,il+1),ampik(il,jnpi))
2888 phs =phs *pa/pv(5,il)
2890 pa=pawt(pv(5,nd-1),ampik(nd-1,jnpi),ampik(nd,jnpi))
2891 phs =phs *pa/pv(5,nd-1)
2894 IF(phsmax.NE.0.0)
THEN
2896 wetmax(jnpi)=1.2d0*max(wetmax(jnpi)/1.2d0,phs/phsmax)
2898 wetmax(jnpi)=1.2d0*wetmax(jnpi)/1.2d0
2901 IF (ncont.EQ.500 000)
THEN
2904 xnpi=xnpi+ampik(kk,jnpi)
2906 WRITE(6,*)
'ROUNDING INSTABILITY IN DPHNPI ?'
2907 WRITE(6,*)
'AMW=',amw,
'XNPI=',xnpi
2908 WRITE(6,*)
'IF =AMW= IS NEARLY EQUAL =XNPI= THAT IS IT'
2909 WRITE(6,*)
'PHS=',phs,
'PHSMAX=',phsmax
2912 IF(rn(1)*phsmax*wetmax(jnpi).GT.phs) go to 100
2914 280
DO 300 il=1,nd-1
2915 pa=pawt(pv(5,il),pv(5,il+1),ampik(il,jnpi))
2919 ue(1)=sqrt(1.d0-ue(3)**2)*cos(phi)
2920 ue(2)=sqrt(1.d0-ue(3)**2)*sin(phi)
2923 290 pv(j,il+1)=-pa*ue(j)
2924 ppi(4,il)=sqrt(pa**2+ampik(il,jnpi)**2)
2925 pv(4,il+1)=sqrt(pa**2+pv(5,il+1)**2)
2926 phspac=phspac *(4.*pi)*(2.*pa/pv(5,il))
2930 310 ppi(j,nd)=pv(j,nd)
2933 320 be(j)=pv(j,il)/pv(4,il)
2934 gam=pv(4,il)/pv(5,il)
2936 bep=be(1)*ppi(1,i)+be(2)*ppi(2,i)+be(3)*ppi(3,i)
2938 330 ppi(j,i)=ppi(j,i)+gam*(gam*bep/(1.d0+gam)+ppi(4,i))*be(j)
2939 ppi(4,i)=gam*(ppi(4,i)+bep)
2956 FUNCTION sigee(Q2,JNP)
2975 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
2976 * ,ampiz,ampi,amro,gamro,ama1,gama1
2977 * ,amk,amkz,amkst,gamkst
2979 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
2980 * ,ampiz,ampi,amro,gamro,ama1,gama1
2981 * ,amk,amkz,amkst,gamkst
2985 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
2986 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
2987 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
2988 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
2991 7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25,
2994 DATA pi /3.141592653589793238462643/
3007 datsig(i,2) = datsig(i,2)/2.
3008 datsig(i,1) = datsig(i,1) + datsig(i,2)
3014 IF(t . gt. s-ampi ) go to 201
3016 fact=(t2/s2)**2*sqrt((s2-t2-ampi2)**2-4.*t2*ampi2)/s2 *2.*t*.05
3017 fact = fact * (datsig(j,1)+datsig(j+1,1))
3018 200 datsig(i,3) = datsig(i,3) + fact
3019 201 datsig(i,3) = datsig(i,3) /(2*pi*fpi)**2
3020 datsig(i,4) = datsig(i,3)
3021 datsig(i,6) = datsig(i,5)
3024 1000
FORMAT(///1x,
' EE SIGMA USED IN MULTIPI DECAYS'/
3030 sigee=datsig(1,jnpi)+
3031 & (datsig(2,jnpi)-datsig(1,jnpi))*(q-1.)/.05
3032 ELSEIF(q.LT.1.8)
THEN
3035 IF(q.LT.qmax) go to 2
3038 2 sigee=datsig(i,jnpi)+
3039 & (datsig(i+1,jnpi)-datsig(i,jnpi)) * (q-qmin)/.05
3040 ELSEIF(q.GT.1.8)
THEN
3041 sigee=datsig(17,jnpi)+
3042 & (datsig(17,jnpi)-datsig(16,jnpi)) * (q-1.8)/.05
3044 IF(sigee.LT..0) sigee=0.
3046 sigee = sigee/(6.*pi**2*sig0)
3051 FUNCTION sigold(Q2,JNPI)
3070 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3071 * ,ampiz,ampi,amro,gamro,ama1,gama1
3072 * ,amk,amkz,amkst,gamkst
3074 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3075 * ,ampiz,ampi,amro,gamro,ama1,gama1
3076 * ,amk,amkz,amkst,gamkst
3080 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
3081 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
3082 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
3083 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
3085 6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/
3087 DATA pi /3.141592653589793238462643/
3095 datsig(i,2) = datsig(i,2)/2.
3096 datsig(i,1) = datsig(i,1) + datsig(i,2)
3102 IF(t . gt. s-ampi ) go to 201
3104 fact=(t2/s2)**2*sqrt((s2-t2-ampi2)**2-4.*t2*ampi2)/s2 *2.*t*.05
3105 fact = fact * (datsig(j,1)+datsig(j+1,1))
3106 200 datsig(i,3) = datsig(i,3) + fact
3107 201 datsig(i,3) = datsig(i,3) /(2*pi*fpi)**2
3110 1000
FORMAT(///1x,
' EE SIGMA USED IN MULTIPI DECAYS'/
3116 sigee=datsig(1,jnpi)+
3117 & (datsig(2,jnpi)-datsig(1,jnpi))*(q-1.)/.05
3118 ELSEIF(q.LT.1.8)
THEN
3121 IF(q.LT.qmax) go to 2
3124 2 sigee=datsig(i,jnpi)+
3125 & (datsig(i+1,jnpi)-datsig(i,jnpi)) * (q-qmin)/.05
3126 ELSEIF(q.GT.1.8)
THEN
3127 sigee=datsig(17,jnpi)+
3128 & (datsig(17,jnpi)-datsig(16,jnpi)) * (q-1.8)/.05
3130 IF(sigee.LT..0) sigee=0.
3132 sigee = sigee/(6.*pi**2*sig0)
3137 SUBROUTINE dphspk(DGAMT,HV,PN,PAA,PNPI,JAA)
3142 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
3143 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
3145 CHARACTER names(nmode)*31
3147 REAL hv(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4),pnpi(4,9)
3154 amp1=dcdmas(idffin(1,jaa+nm4+nm5+nm6))
3155 amp2=dcdmas(idffin(2,jaa+nm4+nm5+nm6))
3156 amp3=dcdmas(idffin(3,jaa+nm4+nm5+nm6))
3158 $ dphtre(dgamt,hv,pn,paa,pim1,amp1,pim2,amp2,pipl,amp3,keyt,mnum)
3170 $ dphtre(dgamt,hv,pn,paa,pim1,ampa,pim2,ampb,pipl,amp3,keyt,mnum)
3187 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3188 * ,ampiz,ampi,amro,gamro,ama1,gama1
3189 * ,amk,amkz,amkst,gamkst
3191 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3192 * ,ampiz,ampi,amro,gamro,ama1,gama1
3193 * ,amk,amkz,amkst,gamkst
3194 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
3195 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
3196 REAL hv(4),pt(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4)
3199 DATA pi /3.141592653589793238462643/
3201 xlam(x,y,z)=sqrt(abs((x-y-z)**2-4.0*y*z))
3206 phspac=1./2**17/pi**8
3216 CALL choice(mnum,rr,ichan,prob1,prob2,prob3,
3217 $ amrx,gamrx,amra,gamra,amrb,gamrb)
3218 IF (ichan.EQ.1)
THEN
3221 ELSEIF (ichan.EQ.2)
THEN
3230 ams1=(amp1+amp2+amp3)**2
3231 ams2=(amtau-amnuta)**2
3233 alp1=atan((ams1-amrx**2)/amrx/gamrx)
3234 alp2=atan((ams2-amrx**2)/amrx/gamrx)
3235 alp=alp1+rr1*(alp2-alp1)
3236 am3sq =amrx**2+amrx*gamrx*tan(alp)
3238 phspac=phspac*((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
3239 phspac=phspac*(alp2-alp1)
3244 IF (ichan.LE.2)
THEN
3246 alp1=atan((ams1-amra**2)/amra/gamra)
3247 alp2=atan((ams2-amra**2)/amra/gamra)
3248 alp=alp1+rr2*(alp2-alp1)
3249 am2sq =amra**2+amra*gamra*tan(alp)
3257 am2sq=ams1+ rr2*(ams2-ams1)
3262 enq1=(am2sq-amp2**2+amp3**2)/(2*am2)
3263 enq2=(am2sq+amp2**2-amp3**2)/(2*am2)
3264 ppi= enq1**2-amp3**2
3265 pppi=sqrt(abs(enq1**2-amp3**2))
3267 phf1=(4*pi)*(2*pppi/am2)
3269 CALL sphera(pppi,pipl)
3279 pr(4)=1./(2*am3)*(am3**2+am2**2-amp1**2)
3280 pr(3)= sqrt(abs(pr(4)**2-am2**2))
3281 ppi = pr(4)**2-am2**2
3285 pim2(4)=1./(2*am3)*(am3**2-am2**2+amp1**2)
3287 phf2=(4*pi)*(2*pr(3)/am3)
3289 exe=(pr(4)+pr(3))/am2
3290 CALL bostr3(exe,pipl,pipl)
3291 CALL bostr3(exe,pim1,pim1)
3295 thet =acos(-1.+2*rr3)
3297 CALL rotpol(thet,phi,pipl)
3298 CALL rotpol(thet,phi,pim1)
3299 CALL rotpol(thet,phi,pim2)
3300 CALL rotpol(thet,phi,pr)
3306 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am3**2)
3307 paa(3)= sqrt(abs(paa(4)**2-am3**2))
3308 ppi = paa(4)**2-am3**2
3309 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
3313 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am3**2)
3319 alp1=atan((ams1-amra**2)/amra/gamra)
3320 alp2=atan((ams2-amra**2)/amra/gamra)
3321 xpro = (pim1(3)+pipl(3))**2
3322 $ +(pim1(2)+pipl(2))**2+(pim1(1)+pipl(1))**2
3323 am2sq=-xpro+(pim1(4)+pipl(4))**2
3325 ff1 = ((am2sq-amra**2)**2+(amra*gamra)**2)/(amra*gamra)
3326 ff1 =ff1 *(alp2-alp1)
3328 gg1 = (4*pi)*(xlam(am2sq,amp2**2,amp3**2)/am2sq)
3330 gg1 =gg1 *(4*pi)*sqrt(4*xpro/am3sq)
3331 xjaje=gg1*(ams2-ams1)
3335 alp1=atan((ams1-amrb**2)/amrb/gamrb)
3336 alp2=atan((ams2-amrb**2)/amrb/gamrb)
3337 xpro = (pim2(3)+pipl(3))**2
3338 $ +(pim2(2)+pipl(2))**2+(pim2(1)+pipl(1))**2
3339 am2sq=-xpro+(pim2(4)+pipl(4))**2
3340 ff2 = ((am2sq-amrb**2)**2+(amrb*gamrb)**2)/(amrb*gamrb)
3341 ff2 =ff2 *(alp2-alp1)
3342 gg2 = (4*pi)*(xlam(am2sq,amp1**2,amp3**2)/am2sq)
3343 gg2 =gg2 *(4*pi)*sqrt(4*xpro/am3sq)
3344 xjadw=gg2*(ams2-ams1)
3351 IF (ichan.EQ.2)
THEN
3356 IF (xjac1.NE.0.0) a1=prob1/xjac1
3357 IF (xjac2.NE.0.0) a2=prob2/xjac2
3358 IF (xjac3.NE.0.0) a3=prob3/xjac3
3360 IF (a1+a2+a3.NE.0.0)
THEN
3361 phspac=phspac/(a1+a2+a3)
3373 exe=(paa(4)+paa(3))/am3
3374 CALL bostr3(exe,pipl,pipl)
3375 CALL bostr3(exe,pim1,pim1)
3376 CALL bostr3(exe,pim2,pim2)
3377 CALL bostr3(exe,pr,pr)
3380 CALL dampog(pt,pn,pim1,pim2,pipl,amplit,hv)
3384 CALL damppk(mnum,pt,pn,pim1,pim2,pipl,amplit,hv)
3386 IF (keyt.EQ.1.OR.keyt.EQ.2)
THEN
3392 dgamt=1/(2.*amtau)*amplit*phspac
3394 SUBROUTINE dampaa(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
3404 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3405 * ,ampiz,ampi,amro,gamro,ama1,gama1
3406 * ,amk,amkz,amkst,gamkst
3408 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3409 * ,ampiz,ampi,amro,gamro,ama1,gama1
3410 * ,amk,amkz,amkst,gamkst
3411 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
3412 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
3413 COMMON /testa1/ keya1
3414 REAL hv(4),pt(4),pn(4),pim1(4),pim2(4),pipl(4)
3415 REAL paa(4),vec1(4),vec2(4)
3416 REAL pivec(4),piaks(4),hvm(4)
3417 COMPLEX bwign,hadcur(4),fpik
3424 bwign(xm,am,gamma)=1./cmplx(xm**2-am**2,gamma*am)
3428 10 paa(i)=pim1(i)+pim2(i)+pipl(i)
3430 xmaa =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
3431 xmro1 =sqrt(abs((pipl(4)+pim1(4))**2-(pipl(1)+pim1(1))**2
3432 $ -(pipl(2)+pim1(2))**2-(pipl(3)+pim1(3))**2))
3433 xmro2 =sqrt(abs((pipl(4)+pim2(4))**2-(pipl(1)+pim2(1))**2
3434 $ -(pipl(2)+pim2(2))**2-(pipl(3)+pim2(3))**2))
3436 prod1 =paa(4)*(pim1(4)-pipl(4))-paa(1)*(pim1(1)-pipl(1))
3437 $ -paa(2)*(pim1(2)-pipl(2))-paa(3)*(pim1(3)-pipl(3))
3438 prod2 =paa(4)*(pim2(4)-pipl(4))-paa(1)*(pim2(1)-pipl(1))
3439 $ -paa(2)*(pim2(2)-pipl(2))-paa(3)*(pim2(3)-pipl(3))
3441 vec1(i)= pim1(i)-pipl(i) -paa(i)*prod1/xmaa**2
3442 40 vec2(i)= pim2(i)-pipl(i) -paa(i)*prod2/xmaa**2
3444 IF (keya1.EQ.1)
THEN
3448 fnorm=fa1/sqrt(2.)*faropi*fro2pi
3450 hadcur(i)= cmplx(fnorm) *ama1**2*bwign(xmaa,ama1,gama1)
3451 $ *(cmplx(vec1(i))*amro**2*bwign(xmro1,amro,gamro)
3452 $ +cmplx(vec2(i))*amro**2*bwign(xmro2,amro,gamro))
3455 fnorm=2.0*sqrt(2.)/3.0/fpi
3456 gamax=gama1*gfun(xmaa**2)/gfun(ama1**2)
3458 hadcur(i)= cmplx(fnorm) *ama1**2*bwign(xmaa,ama1,gamax)
3459 $ *(cmplx(vec1(i))*fpik(xmro1)
3460 $ +cmplx(vec2(i))*fpik(xmro2))
3465 CALL clvec(hadcur,pn,pivec)
3466 CALL claxi(hadcur,pn,piaks)
3467 CALL clnut(hadcur,brakm,hvm)
3469 brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
3470 & +2.*(gv**2-ga**2)*amnuta*amtau*brakm
3471 amplit=(gfermi*ccabib)**2*brak/2.
3476 hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
3477 & +(gv**2-ga**2)*amnuta*amtau*hvm(i)
3487 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3488 * ,ampiz,ampi,amro,gamro,ama1,gama1
3489 * ,amk,amkz,amkst,gamkst
3491 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3492 * ,ampiz,ampi,amro,gamro,ama1,gama1
3493 * ,amk,amkz,amkst,gamkst
3495 IF (qkwa.LT.(amro+ampi)**2)
THEN
3496 gfun=4.1*(qkwa-9*ampiz**2)**3
3497 $ *(1.-3.3*(qkwa-9*ampiz**2)+5.8*(qkwa-9*ampiz**2)**2)
3499 gfun=qkwa*(1.623+10.38/qkwa-9.32/qkwa**2+0.65/qkwa**3)
3502 COMPLEX FUNCTION bwigs(S,M,G)
3507 REAL pi,pim,qs,qm,w,gs,mk
3512 p(a,b,c)=sqrt(abs(abs(((a+b-c)**2-4.*a*b)/4./a)
3513 $ +(((a+b-c)**2-4.*a*b)/4./a))/2.0)
3526 qs=p(s,pim**2,mk**2)
3527 qm=p(m**2,pim**2,mk**2)
3529 gs=g*(m/w)*(qs/qm)**3
3530 bw=m**2/cmplx(m**2-s,-m*gs)
3531 qpm=p(pm**2,pim**2,mk**2)
3532 g1=pg*(pm/w)*(qs/qpm)**3
3533 bwp=pm**2/cmplx(pm**2-s,-pm*g1)
3534 bwigs= (bw+pbeta*bwp)/(1+pbeta)
3537 COMPLEX FUNCTION bwig(S,M,G)
3542 REAL pi,pim,qs,qm,w,gs
3551 IF (s.GT.4.*pim**2)
THEN
3552 qs=sqrt(abs(abs(s/4.-pim**2)+(s/4.-pim**2))/2.0)
3553 qm=sqrt(m**2/4.-pim**2)
3555 gs=g*(m/w)*(qs/qm)**3
3559 bwig=m**2/cmplx(m**2-s,-m*gs)
3562 COMPLEX FUNCTION fpik(W)
3567 REAL rom,rog,rom1,rog1,beta1,pi,pim,s,w
3572 IF (init.EQ.0 )
THEN
3584 fpik= (bwig(s,rom,rog)+beta1*bwig(s,rom1,rog1))
3593 fpirho=cabs(fpik(w))**2
3595 SUBROUTINE clvec(HJ,PN,PIV)
3605 hn= hj(4)*cmplx(pn(4))-hj(3)*cmplx(pn(3))
3606 hh=
REAL(hj(4)*conjg(hj(4))-hj(3)*conjg(hj(3))
3607 $ -hj(2)*conjg(hj(2))-hj(1)*conjg(hj(1)))
3609 10 piv(i)=4.*
REAL(hn*conjg(hj(i)))-2.*hh*pn(i)
3612 SUBROUTINE claxi(HJ,PN,PIA)
3619 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
3620 COMMON / idfc / idff
3622 COMPLEX hj(4),hjc(4)
3625 det2(i,j)=aimag(hjc(i)*hj(j)-hjc(j)*hj(i))
3630 IF (ktom.EQ.1.OR.ktom.EQ.-1)
THEN
3631 sign= idff/abs(idff)
3632 ELSEIF (ktom.EQ.2)
THEN
3633 sign=-idff/abs(idff)
3635 print *,
'STOP IN CLAXI: KTOM=',ktom
3640 10 hjc(i)=conjg(hj(i))
3641 pia(1)= -2.*pn(3)*det2(2,4)+2.*pn(4)*det2(2,3)
3642 pia(2)= -2.*pn(4)*det2(1,3)+2.*pn(3)*det2(1,4)
3643 pia(3)= 2.*pn(4)*det2(1,2)
3644 pia(4)= 2.*pn(3)*det2(1,2)
3647 20 pia(i)=pia(i)*sign
3649 SUBROUTINE clnut(HJ,B,HV)
3661 b=
REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3))
& - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1)) )
3664 SUBROUTINE dampog(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
3674 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3675 * ,ampiz,ampi,amro,gamro,ama1,gama1
3676 * ,amk,amkz,amkst,gamkst
3678 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3679 * ,ampiz,ampi,amro,gamro,ama1,gama1
3680 * ,amk,amkz,amkst,gamkst
3681 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
3682 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
3683 COMMON /testa1/ keya1
3684 REAL hv(4),pt(4),pn(4),pim1(4),pim2(4),pipl(4)
3685 REAL paa(4),vec1(4),vec2(4)
3686 REAL pivec(4),piaks(4),hvm(4)
3687 COMPLEX bwign,hadcur(4),fnorm,formom
3697 10 paa(i)=pim1(i)+pim2(i)+pipl(i)
3700 xmaa =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
3701 xmom =sqrt(abs( (pim2(4)+pipl(4))**2-(pim2(3)+pipl(3))**2
3702 $ -(pim2(2)+pipl(2))**2-(pim2(1)+pipl(1))**2 ))
3703 xmro2 =(pipl(1))**2 +(pipl(2))**2 +(pipl(3))**2
3705 prod1 =vec1(1)*pipl(1)
3706 prod2 =vec2(2)*pipl(2)
3707 p12 =pim1(4)*pim2(4)-pim1(1)*pim2(1)
3708 $ -pim1(2)*pim2(2)-pim1(3)*pim2(3)
3709 p1pl =pim1(4)*pipl(4)-pim1(1)*pipl(1)
3710 $ -pim1(2)*pipl(2)-pim1(3)*pipl(3)
3711 p2pl =pipl(4)*pim2(4)-pipl(1)*pim2(1)
3712 $ -pipl(2)*pim2(2)-pipl(3)*pim2(3)
3714 vec1(i)= (vec1(i)-prod1/xmro2*pipl(i))
3716 gnorm=sqrt(vec1(1)**2+vec1(2)**2+vec1(3)**2)
3718 vec1(i)= vec1(i)/gnorm
3720 vec2(1)=(vec1(2)*pipl(3)-vec1(3)*pipl(2))/sqrt(xmro2)
3721 vec2(2)=(vec1(3)*pipl(1)-vec1(1)*pipl(3))/sqrt(xmro2)
3722 vec2(3)=(vec1(1)*pipl(2)-vec1(2)*pipl(1))/sqrt(xmro2)
3723 p1vec1 =pim1(4)*vec1(4)-pim1(1)*vec1(1)
3724 $ -pim1(2)*vec1(2)-pim1(3)*vec1(3)
3725 p2vec1 =vec1(4)*pim2(4)-vec1(1)*pim2(1)
3726 $ -vec1(2)*pim2(2)-vec1(3)*pim2(3)
3727 p1vec2 =pim1(4)*vec2(4)-pim1(1)*vec2(1)
3728 $ -pim1(2)*vec2(2)-pim1(3)*vec2(3)
3729 p2vec2 =vec2(4)*pim2(4)-vec2(1)*pim2(1)
3730 $ -vec2(2)*pim2(2)-vec2(3)*pim2(3)
3732 fnorm=formom(xmaa,xmom)
3737 hadcur(i) = fnorm *(
3738 $ vec1(i)*(ampi**2*p1pl-p2pl*(p12-p1pl))
3739 $ -pim2(i)*(p2vec1*p1pl-p1vec1*p2pl)
3740 $ +pipl(i)*(p2vec1*p12 -p1vec1*(ampi**2+p2pl)) )
3742 hadcur(i) = fnorm *(
3743 $ vec2(i)*(ampi**2*p1pl-p2pl*(p12-p1pl))
3744 $ -pim2(i)*(p2vec2*p1pl-p1vec2*p2pl)
3745 $ +pipl(i)*(p2vec2*p12 -p1vec2*(ampi**2+p2pl)) )
3750 CALL clvec(hadcur,pn,pivec)
3751 CALL claxi(hadcur,pn,piaks)
3752 CALL clnut(hadcur,brakm,hvm)
3754 brak=brak+(gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
3755 & +2.*(gv**2-ga**2)*amnuta*amtau*brakm
3757 hv(i)=hv(i)-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
3758 & +(gv**2-ga**2)*amnuta*amtau*hvm(i)
3762 amplit=(gfermi*ccabib)**2*brak/2.
3771 SUBROUTINE damppk(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV)
3781 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3782 * ,ampiz,ampi,amro,gamro,ama1,gama1
3783 * ,amk,amkz,amkst,gamkst
3785 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3786 * ,ampiz,ampi,amro,gamro,ama1,gama1
3787 * ,amk,amkz,amkst,gamkst
3788 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
3789 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
3792 REAL hv(4),pt(4),pn(4),pim1(4),pim2(4),pim3(4)
3793 REAL paa(4),vec1(4),vec2(4),vec3(4),vec4(4),vec5(4)
3794 REAL pivec(4),piaks(4),hvm(4)
3795 REAL fnorm(0:7),coef
3796 DOUBLE PRECISION getfpirpt
3797 COMPLEX hadcur(4),form1,form2,form3,form4,form5,uroj
3798 COMPLEX f1,f2,f3,f4,f5
3799 EXTERNAL form1,form2,form3,form4,form5
3800 DATA pi /3.141592653589793238462643/
3804 IF (icont.EQ.0)
THEN
3810 IF (iver.EQ.0.OR.mnum.NE.0)
THEN
3812 ELSEIF (iver.EQ.1)
THEN
3815 write(*,*)
'wrong IVER=',iver
3822 fnorm(4)=scabib/fpi/dwapi0
3830 10 paa(i)=pim1(i)+pim2(i)+pim3(i)
3831 xmaa =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
3832 xmro1 =sqrt(abs((pim3(4)+pim2(4))**2-(pim3(1)+pim2(1))**2
3833 $ -(pim3(2)+pim2(2))**2-(pim3(3)+pim2(3))**2))
3834 xmro2 =sqrt(abs((pim3(4)+pim1(4))**2-(pim3(1)+pim1(1))**2
3835 $ -(pim3(2)+pim1(2))**2-(pim3(3)+pim1(3))**2))
3836 xmro3 =sqrt(abs((pim1(4)+pim2(4))**2-(pim1(1)+pim2(1))**2
3837 $ -(pim1(2)+pim2(2))**2-(pim1(3)+pim2(3))**2))
3839 prod1 =paa(4)*(pim2(4)-pim3(4))-paa(1)*(pim2(1)-pim3(1))
3840 $ -paa(2)*(pim2(2)-pim3(2))-paa(3)*(pim2(3)-pim3(3))
3841 prod2 =paa(4)*(pim3(4)-pim1(4))-paa(1)*(pim3(1)-pim1(1))
3842 $ -paa(2)*(pim3(2)-pim1(2))-paa(3)*(pim3(3)-pim1(3))
3843 prod3 =paa(4)*(pim1(4)-pim2(4))-paa(1)*(pim1(1)-pim2(1))
3844 $ -paa(2)*(pim1(2)-pim2(2))-paa(3)*(pim1(3)-pim2(3))
3846 vec1(i)= pim2(i)-pim3(i) -paa(i)*prod1/xmaa**2
3847 vec2(i)= pim3(i)-pim1(i) -paa(i)*prod2/xmaa**2
3848 vec3(i)= pim1(i)-pim2(i) -paa(i)*prod3/xmaa**2
3849 40 vec4(i)= pim1(i)+pim2(i)+pim3(i)
3850 CALL prod5(pim1,pim2,pim3,vec5)
3854 f1 = cmplx(coef(1,mnum))*form1(mnum,xmaa**2,xmro1**2,xmro2**2)
3855 f2 = cmplx(coef(2,mnum))*form2(mnum,xmaa**2,xmro2**2,xmro1**2)
3856 f3 = cmplx(coef(3,mnum))*form3(mnum,xmaa**2,xmro3**2,xmro1**2)
3858 $cmplx(coef(4,mnum))*form4(mnum,xmaa**2,xmro1**2,xmro2**2,xmro3**2)
3859 f5 = (-1.0)*uroj/4.0/pi**2/fpi**2*
3860 $ cmplx(coef(5,mnum))*form5(mnum,xmaa**2,xmro1**2,xmro2**2)
3863 hadcur(i)= cmplx(fnorm(mnum)) * (
3864 $ cmplx(vec1(i))*f1+cmplx(vec2(i))*f2+cmplx(vec3(i))*f3+
3865 $ cmplx(vec4(i))*f4+cmplx(vec5(i))*f5)
3869 CALL clvec(hadcur,pn,pivec)
3870 CALL claxi(hadcur,pn,piaks)
3871 CALL clnut(hadcur,brakm,hvm)
3873 brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
3874 & +2.*(gv**2-ga**2)*amnuta*amtau*brakm
3875 amplit=(gfermi)**2*brak/2.
3877 print *,
'MNUM=',mnum
3883 IF (k.EQ.4) znak=1.0
3884 xm1=znak*pim1(k)**2+xm1
3885 xm2=znak*pim2(k)**2+xm2
3886 xm3=znak*pim3(k)**2+xm3
3887 77 print *,
'PIM1=',pim1(k),
'PIM2=',pim2(k),
'PIM3=',pim3(k)
3888 print *,
'XM1=',sqrt(xm1),
'XM2=',sqrt(xm2),
'XM3=',sqrt(xm3)
3889 print *,
'************************************************'
3893 hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
3894 & +(gv**2-ga**2)*amnuta*amtau*hvm(i)
3899 SUBROUTINE prod5(P1,P2,P3,PIA)
3905 COMMON / jaki / jak1,jak2,jakp,jakm,ktom
3906 COMMON / idfc / idff
3907 REAL pia(4),p1(4),p2(4),p3(4)
3908 det2(i,j)=p1(i)*p2(j)-p2(i)*p1(j)
3910 IF (ktom.EQ.1.OR.ktom.EQ.-1)
THEN
3911 sign= idff/abs(idff)
3912 ELSEIF (ktom.EQ.2)
THEN
3913 sign=-idff/abs(idff)
3915 print *,
'STOP IN PROD5: KTOM=',ktom
3921 pia(1)= -p3(3)*det2(2,4)+p3(4)*det2(2,3)+p3(2)*det2(3,4)
3922 pia(2)= -p3(4)*det2(1,3)+p3(3)*det2(1,4)-p3(1)*det2(3,4)
3923 pia(3)= p3(4)*det2(1,2)-p3(2)*det2(1,4)+p3(1)*det2(2,4)
3924 pia(4)= p3(3)*det2(1,2)-p3(2)*det2(1,3)+p3(1)*det2(2,3)
3927 20 pia(i)=pia(i)*sign
3930 SUBROUTINE dexnew(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI)
3941 COMMON / inout / inut,iout
3942 REAL pol(4),hv(4),paa(4),pnu(4),pnpi(4,9),rn(1)
3948 CALL dadnew( -1,isgn,hv,pnu,paa,pnpi,jdumm)
3951 ELSEIF(mode.EQ. 0)
THEN
3954 IF(iwarm.EQ.0) goto 902
3955 CALL dadnew( 0,isgn,hv,pnu,paa,pnpi,jnpi)
3956 wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
3959 IF(rn(1).GT.wt) goto 300
3961 ELSEIF(mode.EQ. 1)
THEN
3963 CALL dadnew( 1,isgn,hv,pnu,paa,pnpi,jdumm)
3968 902
WRITE(iout, 9020)
3969 9020
FORMAT(
' ----- DEXNEW: LACK OF INITIALISATION')
3972 SUBROUTINE dadnew(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI)
3974 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
3975 * ,ampiz,ampi,amro,gamro,ama1,gama1
3976 * ,amk,amkz,amkst,gamkst
3978 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
3979 * ,ampiz,ampi,amro,gamro,ama1,gama1
3980 * ,amk,amkz,amkst,gamkst
3981 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
3982 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
3983 COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
3984 REAL*4 gampmc ,gamper
3985 COMMON / inout / inut,iout
3986 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
3987 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
3989 CHARACTER names(nmode)*31
3991 REAL*4 pnu(4),pwb(4),pnpi(4,9),hv(4),hhv(4)
3992 REAL*4 pdum1(4),pdum2(4),pdumi(4,9)
3995 REAL*8 swt(nmode),sswt(nmode)
3996 dimension nevraw(nmode),nevovr(nmode),nevacc(nmode)
3998 DATA pi /3.141592653589793238462643/
4017 IF (jnpi.LE.nm4)
THEN
4019 wtmax(jnpi) = pkorb(3,37+jnpi)
4025 ELSEIF(jnpi.LE.nm4)
THEN
4026 CALL dph4pi(wt,hv,pdum1,pdum2,pdumi,jnpi)
4027 ELSEIF(jnpi.LE.nm4+nm5)
THEN
4028 CALL dph5pi(wt,hv,pdum1,pdum2,pdumi,jnpi)
4029 ELSEIF(jnpi.LE.nm4+nm5+nm6)
THEN
4030 CALL dphnpi(wt,hv,pdum1,pdum2,pdumi,jnpi)
4031 ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3)
THEN
4032 inum=jnpi-nm4-nm5-nm6
4033 CALL dphspk(wt,hv,pdum1,pdum2,pdumi,inum)
4034 ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3+nm2)
THEN
4035 inum=jnpi-nm4-nm5-nm6-nm3
4036 CALL dphsrk(wt,hv,pdum1,pdum2,pdumi,inum)
4040 IF(wt.GT.wtmax(jnpi)/1.2) wtmax(jnpi)=wt*1.2
4048 ELSEIF(mode.EQ. 0)
THEN
4050 IF(iwarm.EQ.0) goto 902
4055 ELSEIF(jnpi.LE.nm4)
THEN
4056 CALL dph4pi(wt,hhv,pnu,pwb,pnpi,jnpi)
4057 ELSEIF(jnpi.LE.nm4+nm5)
THEN
4058 CALL dph5pi(wt,hhv,pnu,pwb,pnpi,jnpi)
4059 ELSEIF(jnpi.LE.nm4+nm5+nm6)
THEN
4060 CALL dphnpi(wt,hhv,pnu,pwb,pnpi,jnpi)
4061 ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3)
THEN
4062 inum=jnpi-nm4-nm5-nm6
4063 CALL dphspk(wt,hhv,pnu,pwb,pnpi,inum)
4064 ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3+nm2)
THEN
4065 inum=jnpi-nm4-nm5-nm6-nm3
4066 CALL dphsrk(wt,hhv,pnu,pwb,pnpi,inum)
4074 nevraw(jnpi)=nevraw(jnpi)+1
4075 swt(jnpi)=swt(jnpi)+wt
4078 sswt(jnpi)=sswt(jnpi)+dble(wt)**2
4082 IF(wt.GT.wtmax(jnpi)) nevovr(jnpi)=nevovr(jnpi)+1
4083 IF(rn*wtmax(jnpi).GT.wt) goto 300
4085 costhe=-1.+2.*rrr(2)
4088 CALL rotor2(thet,pnu,pnu)
4089 CALL rotor3( phi,pnu,pnu)
4090 CALL rotor2(thet,pwb,pwb)
4091 CALL rotor3( phi,pwb,pwb)
4092 CALL rotor2(thet,hv,hv)
4093 CALL rotor3( phi,hv,hv)
4096 CALL rotor2(thet,pnpi(1,i),pnpi(1,i))
4097 CALL rotor3( phi,pnpi(1,i),pnpi(1,i))
4099 nevacc(jnpi)=nevacc(jnpi)+1
4101 ELSEIF(mode.EQ. 1)
THEN
4104 IF(nevraw(jnpi).EQ.0) goto 500
4105 pargam=swt(jnpi)/float(nevraw(jnpi)+1)
4107 IF(nevraw(jnpi).NE.0)
4108 & error=sqrt(sswt(jnpi)/swt(jnpi)**2-1./float(nevraw(jnpi)))
4110 WRITE(iout, 7010) names(jnpi),
4111 & nevraw(jnpi),nevacc(jnpi),nevovr(jnpi),pargam,rat,error
4113 gampmc(8+jnpi-1)=rat
4114 gamper(8+jnpi-1)=error
4120 7003
FORMAT(///1x,15(5h*****)
4121 $ /,
' *', 25x,
'******** DADNEW INITIALISATION ********',9x,1h*
4123 7004
FORMAT(
' *',e20.5,5x,
'WTMAX = MAXIMUM WEIGHT ',9x,1h*/)
4125 $ /,1x,15(5h*****)/)
4126 7010
FORMAT(///1x,15(5h*****)
4127 $ /,
' *', 25x,
'******** DADNEW FINAL REPORT ******** ',9x,1h*
4128 $ /,
' *', 25x,
'CHANNEL:',a31 ,9x,1h*
4129 $ /,
' *',i20 ,5x,
'NEVRAW = NO. OF DECAYS TOTAL ',9x,1h*
4130 $ /,
' *',i20 ,5x,
'NEVACC = NO. OF DECAYS ACCEPTED ',9x,1h*
4131 $ /,
' *',i20 ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9x,1h*
4132 $ /,
' *',e20.5,5x,
'PARTIAL WTDTH IN GEV UNITS ',9x,1h*
4133 $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9x,1h*
4134 $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH ',9x,1h*
4135 $ /,1x,15(5h*****)/)
4136 902
WRITE(iout, 9020)
4137 9020
FORMAT(
' ----- DADNEW: LACK OF INITIALISATION')
4139 903
WRITE(iout, 9030) jnpi,mode
4140 9030
FORMAT(
' ----- DADNEW: WRONG JNPI',2i5)
4145 SUBROUTINE dph4pi(DGAMT,HV,PN,PAA,PMULT,JNPI)
4150 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
4151 * ,ampiz,ampi,amro,gamro,ama1,gama1
4152 * ,amk,amkz,amkst,gamkst
4154 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
4155 * ,ampiz,ampi,amro,gamro,ama1,gama1
4156 * ,amk,amkz,amkst,gamkst
4157 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
4158 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
4159 REAL hv(4),pt(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4),pmult(4,9)
4162 REAL*8 uu,ff,ff1,ff2,ff3,ff4,gg1,gg2,gg3,gg4,rr
4163 DATA pi /3.141592653589793238462643/
4165 xlam(x,y,z)=sqrt(abs((x-y-z)**2-4.0*y*z))
4170 phspac=1./2**23/pi**11
4199 CALL choice(100+jnpi,rrb,ichan,prob1,prob2,prob3,
4200 $ amrop,gamrop,amrx,gamrx,amrb,gamrb)
4214 ams1=(amp1+amp2+amp3+amp4)**2
4215 ams2=(amtau-amnuta)**2
4216 alp1=atan((ams1-amrop**2)/amrop/gamrop)
4217 alp2=atan((ams2-amrop**2)/amrop/gamrop)
4218 alp=alp1+rr1*(alp2-alp1)
4219 am4sq =amrop**2+amrop*gamrop*tan(alp)
4222 $ ((am4sq-amrop**2)**2+(amrop*gamrop)**2)/(amrop*gamrop)
4223 phspac=phspac*(alp2-alp1)
4227 ams1=(amp2+amp3+amp4)**2
4229 IF (rrr(9).GT.prez)
THEN
4230 am3sq=ams1+ rr1*(ams2-ams1)
4236 alp1=atan((ams1-amrx**2)/amrx/gamrx)
4237 alp2=atan((ams2-amrx**2)/amrx/gamrx)
4238 alp=alp1+rr1*(alp2-alp1)
4239 am3sq =amrx**2+amrx*gamrx*tan(alp)
4242 ff1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
4250 am2sq=ams1+ rr2*(ams2-ams1)
4255 enq1=(am2sq-amp3**2+amp4**2)/(2*am2)
4256 enq2=(am2sq+amp3**2-amp4**2)/(2*am2)
4257 ppi= enq1**2-amp4**2
4258 pppi=sqrt(abs(enq1**2-amp4**2))
4259 phspac=phspac*(4*pi)*(2*pppi/am2)
4261 CALL sphera(pppi,piz)
4271 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
4272 pr(3)= sqrt(abs(pr(4)**2-am2**2))
4273 ppi = pr(4)**2-am2**2
4277 pim1(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
4280 ff3=(4*pi)*(2*pr(3)/am3)
4282 exe=(pr(4)+pr(3))/am2
4283 CALL bostr3(exe,piz,piz)
4284 CALL bostr3(exe,pipl,pipl)
4287 thet =acos(-1.+2*rr3)
4289 CALL rotpol(thet,phi,pipl)
4290 CALL rotpol(thet,phi,pim1)
4291 CALL rotpol(thet,phi,piz)
4292 CALL rotpol(thet,phi,pr)
4297 pr(4)=1./(2*am4)*(am4**2+am3**2-amp1**2)
4298 pr(3)= sqrt(abs(pr(4)**2-am3**2))
4299 ppi = pr(4)**2-am3**2
4303 pim2(4)=1./(2*am4)*(am4**2-am3**2+amp1**2)
4306 ff4=(4*pi)*(2*pr(3)/am4)
4308 exe=(pr(4)+pr(3))/am3
4309 CALL bostr3(exe,piz,piz)
4310 CALL bostr3(exe,pipl,pipl)
4311 CALL bostr3(exe,pim1,pim1)
4314 thet =acos(-1.+2*rr3)
4316 CALL rotpol(thet,phi,pipl)
4317 CALL rotpol(thet,phi,pim1)
4318 CALL rotpol(thet,phi,pim2)
4319 CALL rotpol(thet,phi,piz)
4320 CALL rotpol(thet,phi,pr)
4326 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am4**2)
4327 paa(3)= sqrt(abs(paa(4)**2-am4**2))
4328 ppi = paa(4)**2-am4**2
4329 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
4330 phsp=phsp*(4*pi)*(2*paa(3)/amtau)
4334 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am4**2)
4337 IF(rrr(9).LE.0.5*prez)
THEN
4346 am3sq=(pim1(4)+piz(4)+pipl(4))**2-(pim1(3)+piz(3)+pipl(3))**2
4347 $ -(pim1(2)+piz(2)+pipl(2))**2-(pim1(1)+piz(1)+pipl(1))**2
4349 ams1=(amp1+amp3+amp4)**2
4352 ams2=(sqrt(am3sq)-amp1)**2
4354 ff3=(4*pi)*(xlam(am2**2,amp1**2,am3sq)/am3sq)
4355 ff4=(4*pi)*(xlam(am3sq,amp2**2,am4**2)/am4**2)
4358 am3sq=(pim1(4)+piz(4)+pipl(4))**2-(pim1(3)+piz(3)+pipl(3))**2
4359 $ -(pim1(2)+piz(2)+pipl(2))**2-(pim1(1)+piz(1)+pipl(1))**2
4361 ams1=(amp1+amp3+amp4)**2
4362 alp1=atan((ams1-amrx**2)/amrx/gamrx)
4363 alp2=atan((ams2-amrx**2)/amrx/gamrx)
4364 ff1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
4367 ams2=(sqrt(am3sq)-amp1)**2
4369 ff3=(4*pi)*(xlam(am2**2,amp1**2,am3sq)/am3sq)
4370 ff4=(4*pi)*(xlam(am3sq,amp2**2,am4**2)/am4**2)
4373 am3sq=(pim2(4)+piz(4)+pipl(4))**2-(pim2(3)+piz(3)+pipl(3))**2
4374 $ -(pim2(2)+piz(2)+pipl(2))**2-(pim2(1)+piz(1)+pipl(1))**2
4376 ams1=(amp2+amp3+amp4)**2
4377 alp1=atan((ams1-amrx**2)/amrx/gamrx)
4378 alp2=atan((ams2-amrx**2)/amrx/gamrx)
4379 gg1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
4382 ams2=(sqrt(am3sq)-amp2)**2
4384 gg3=(4*pi)*(xlam(am2**2,amp2**2,am3sq)/am3sq)
4385 gg4=(4*pi)*(xlam(am3sq,amp1**2,am4**2)/am4**2)
4389 IF ( (0.5*prez*(ff+gg)*uu+(1.0-prez)*ff*gg).GT.0.0d0)
THEN
4390 rr=ff*gg*uu/(0.5*prez*(ff+gg)*uu+(1.0-prez)*ff*gg)
4418 exe=(paa(4)+paa(3))/am4
4419 CALL bostr3(exe,piz,piz)
4420 CALL bostr3(exe,pipl,pipl)
4421 CALL bostr3(exe,pim1,pim1)
4422 CALL bostr3(exe,pim2,pim2)
4423 CALL bostr3(exe,pr,pr)
4432 CALL dam4pi(jnpi,pt,pn,pim1,pim2,piz,pipl,amplit,hv)
4433 ELSEIF (jnpi.EQ.2)
THEN
4434 CALL dam4pi(jnpi,pt,pn,pim1,pim2,pipl,piz,amplit,hv)
4436 dgamt=1/(2.*amtau)*amplit*phspac
4446 SUBROUTINE dam4pi(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV)
4456 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
4457 * ,ampiz,ampi,amro,gamro,ama1,gama1
4458 * ,amk,amkz,amkst,gamkst
4460 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
4461 * ,ampiz,ampi,amro,gamro,ama1,gama1
4462 * ,amk,amkz,amkst,gamkst
4463 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
4464 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
4465 REAL hv(4),pt(4),pn(4),pim1(4),pim2(4),pim3(4),pim4(4)
4466 REAL pivec(4),piaks(4),hvm(4)
4467 COMPLEX hadcur(4),form1,form2,form3,form4,form5
4468 EXTERNAL form1,form2,form3,form4,form5
4469 DATA pi /3.141592653589793238462643/
4472 CALL curr_cleo(mnum,pim1,pim2,pim3,pim4,hadcur)
4475 CALL clvec(hadcur,pn,pivec)
4476 CALL claxi(hadcur,pn,piaks)
4477 CALL clnut(hadcur,brakm,hvm)
4479 brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
4480 & +2.*(gv**2-ga**2)*amnuta*amtau*brakm
4481 amplit=(ccabib*gfermi)**2*brak/2.
4484 hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
4485 & +(gv**2-ga**2)*amnuta*amtau*hvm(i)
4490 SUBROUTINE dph5pi(DGAMT,HV,PN,PAA,PMULT,JNPI)
4495 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
4496 * ,ampiz,ampi,amro,gamro,ama1,gama1
4497 * ,amk,amkz,amkst,gamkst
4499 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
4500 * ,ampiz,ampi,amro,gamro,ama1,gama1
4503 * ,amk,amkz,amkst,gamkst
4504 COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
4505 REAL*4 gfermi,gv,ga,ccabib,scabib,gamel
4506 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
4507 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
4509 CHARACTER names(nmode)*31
4510 REAL hv(4),pt(4),pn(4),paa(4),pmult(4,9)
4511 REAL*4 pr(4),pi1(4),pi2(4),pi3(4),pi4(4),pi5(4)
4512 REAL*8 amp1,amp2,amp3,amp4,amp5,ams1,ams2,amom,gamom
4513 REAL*8 am5sq,am4sq,am3sq,am2sq,am5,am4,am3
4515 REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2
4520 DATA pi /3.141592653589793238462643/
4526 bwign(xm,am,gamma)=xm**2/cmplx(xm**2-am**2,gamma*am)
4534 phspac=1./2**29/pi**14
4537 amp1=dcdmas(idffin(1,jnpi))
4538 amp2=dcdmas(idffin(2,jnpi))
4539 amp3=dcdmas(idffin(3,jnpi))
4540 amp4=dcdmas(idffin(4,jnpi))
4541 amp5=dcdmas(idffin(5,jnpi))
4556 ams1=(amp1+amp2+amp3+amp4+amp5)**2
4557 ams2=(amtau-amnuta)**2
4558 am5sq=ams1+ rr1*(ams2-ams1)
4560 phspac=phspac*(ams2-ams1)
4565 ams1=(amp2+amp3+amp4+amp5)**2
4567 am4sq=ams1+ rr1*(ams2-ams1)
4574 ams1=(amp2+amp3+amp4)**2
4576 alp1=atan((ams1-amom**2)/amom/gamom)
4577 alp2=atan((ams2-amom**2)/amom/gamom)
4578 alp=alp1+rr1*(alp2-alp1)
4579 am3sq =amom**2+amom*gamom*tan(alp)
4582 gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom)
4595 am2sq=ams1+ rr2*(ams2-ams1)
4601 enq1=(am2sq+amp3**2-amp4**2)/(2*am2)
4602 enq2=(am2sq-amp3**2+amp4**2)/(2*am2)
4603 ppi= enq1**2-amp3**2
4604 pppi=sqrt(abs(enq1**2-amp3**2))
4605 ff1=(4*pi)*(2*pppi/am2)
4607 call sphera(pppi,pi3)
4618 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
4619 pr(3)= sqrt(abs(pr(4)**2-am2**2))
4620 ppi = pr(4)**2-am2**2
4624 pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
4627 ff2=(4*pi)*(2*pr(3)/am3)
4629 exe=(pr(4)+pr(3))/am2
4630 call bostr3(exe,pi3,pi3)
4631 call bostr3(exe,pi4,pi4)
4634 thet =acos(-1.+2*rr3)
4636 call rotpol(thet,phi,pi2)
4637 call rotpol(thet,phi,pi3)
4638 call rotpol(thet,phi,pi4)
4644 pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2)
4645 pr(3)= sqrt(abs(pr(4)**2-am3**2))
4646 ppi = pr(4)**2-am3**2
4650 pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2)
4653 ff3=(4*pi)*(2*pr(3)/am4)
4655 exe=(pr(4)+pr(3))/am3
4656 call bostr3(exe,pi2,pi2)
4657 call bostr3(exe,pi3,pi3)
4658 call bostr3(exe,pi4,pi4)
4661 thet =acos(-1.+2*rr3)
4663 call rotpol(thet,phi,pi2)
4664 call rotpol(thet,phi,pi3)
4665 call rotpol(thet,phi,pi4)
4666 call rotpol(thet,phi,pi5)
4672 pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2)
4673 pr(3)= sqrt(abs(pr(4)**2-am4**2))
4674 ppi = pr(4)**2-am4**2
4678 pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2)
4681 ff4=(4*pi)*(2*pr(3)/am5)
4683 exe=(pr(4)+pr(3))/am4
4684 call bostr3(exe,pi2,pi2)
4685 call bostr3(exe,pi3,pi3)
4686 call bostr3(exe,pi4,pi4)
4687 call bostr3(exe,pi5,pi5)
4690 thet =acos(-1.+2*rr3)
4692 call rotpol(thet,phi,pi1)
4693 call rotpol(thet,phi,pi2)
4694 call rotpol(thet,phi,pi3)
4695 call rotpol(thet,phi,pi4)
4696 call rotpol(thet,phi,pi5)
4705 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq)
4706 paa(3)= sqrt(abs(paa(4)**2-am5sq))
4707 ppi = paa(4)**2-am5sq
4708 phspac=phspac*(4*pi)*(2*paa(3)/amtau)
4712 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2)
4715 phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4
4719 exe=(paa(4)+paa(3))/am5
4720 call bostr3(exe,pi1,pi1)
4721 call bostr3(exe,pi2,pi2)
4722 call bostr3(exe,pi3,pi3)
4723 call bostr3(exe,pi4,pi4)
4724 call bostr3(exe,pi5,pi5)
4732 qxn=paa(4)*pn(4)-paa(1)*pn(1)-paa(2)*pn(2)-paa(3)*pn(3)
4733 brak=2*(gv**2+ga**2)*(2*pxq*qxn+am5sq*pxn)
4734 & -6*(gv**2-ga**2)*amtau*amnuta*am5sq
4735 fompp = cabs(bwign(am3,amom,gamom))**2
4740 amplit=ccabib**2*gfermi**2/2. * brak
4741 amplit = amplit * fompp * fnorm
4744 dgamt=1/(2.*amtau)*amplit*phspac
4762 SUBROUTINE dphsrk(DGAMT,HV,PN,PR,PMULT,INUM)
4768 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
4769 * ,ampiz,ampi,amro,gamro,ama1,gama1
4770 * ,amk,amkz,amkst,gamkst
4772 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
4773 * ,ampiz,ampi,amro,gamro,ama1,gama1
4774 * ,amk,amkz,amkst,gamkst
4776 REAL hv(4),pt(4),pn(4),pr(4),pkc(4),pkz(4),qq(4),pmult(4,9)
4778 DATA pi /3.141592653589793238462643/
4782 phspac=1./2**11/pi**5
4790 ams2=(amtau-amnuta)**2
4793 amx2=ams1+ rr1(1)*(ams2-ams1)
4795 phspac=phspac*(ams2-ams1)
4813 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
4814 pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
4818 pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
4820 phspac=phspac*(4*pi)*(2*pr(3)/amtau)
4823 enq1=(amx2+amk**2-amkz**2)/(2.*amx)
4824 enq2=(amx2-amk**2+amkz**2)/(2.*amx)
4825 pppi=sqrt(abs(enq1-amk)*(enq1+amk))
4826 phspac=phspac*(4*pi)*(2*pppi/amx)
4828 CALL sphera(pppi,pkc)
4834 exe=(pr(4)+pr(3))/amx
4836 CALL bostr3(exe,pkc,pkc)
4837 CALL bostr3(exe,pkz,pkz)
4840 CALL dam2pi(3,pt,pn,pkc,pkz,amplit,hv)
4841 dgamt=1/(2.*amtau)*amplit*phspac
4853 COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
4854 * ,ampiz,ampi,amro,gamro,ama1,gama1
4855 * ,amk,amkz,amkst,gamkst
4857 REAL*4 amtau,amnuta,amel,amnue,ammu,amnumu
4858 * ,ampiz,ampi,amro,gamro,ama1,gama1
4859 * ,amk,amkz,amkst,gamkst
4862 fpirk=cabs(fpikm(w,amk,amkz))**2
4865 COMPLEX FUNCTION fpikmk(W,XM1,XM2)
4870 REAL rom,rog,rom1,rog1,beta1,pi,pim,s,w
4875 IF (init.EQ.0 )
THEN
4888 fpikmk=(bwigm(s,rom,rog,xm1,xm2)+beta1*bwigm(s,rom1,rog1,xm1,xm2))
4897 SUBROUTINE dwrph(KTO,PHX)
4901 IMPLICIT REAL*8 (a-h,o-z)
4912 IF (qhot(4).GT.1.e-5) CALL dwluph(kto,qhot)
4915 SUBROUTINE dwluph(KTO,PHOT)
4926 COMMON /taupos/ np1,np2
4929 IF (phot(4).LE.0.0)
RETURN
4932 IF((kto.EQ. 1).OR.(kto.EQ.11))
THEN
4939 IF(ktos.GT.10) ktos=ktos-10
4941 CALL tralo4(ktos,phot,phot,am)
4942 CALL filhep(0,1,22,nps,nps,0,0,phot,0.0,.true.)
4947 SUBROUTINE dwluel(KTO,ISGN,PNU,PWB,PEL,PNE)
4957 REAL pnu(4),pwb(4),pel(4),pne(4)
4958 COMMON /taupos/ np1,np2
4968 CALL tralo4(kto,pnu,pnu,am)
4969 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
4972 CALL tralo4(kto,pwb,pwb,am)
4976 CALL tralo4(kto,pel,pel,am)
4977 CALL filhep(0,1,11*isgn,nps,nps,0,0,pel,am,.false.)
4980 CALL tralo4(kto,pne,pne,am)
4981 CALL filhep(0,1,-12*isgn,nps,nps,0,0,pne,am,.true.)
4985 SUBROUTINE dwlumu(KTO,ISGN,PNU,PWB,PMU,PNM)
4995 REAL pnu(4),pwb(4),pmu(4),pnm(4)
4996 COMMON /taupos/ np1,np2
5006 CALL tralo4(kto,pnu,pnu,am)
5007 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5010 CALL tralo4(kto,pwb,pwb,am)
5014 CALL tralo4(kto,pmu,pmu,am)
5015 CALL filhep(0,1,13*isgn,nps,nps,0,0,pmu,am,.false.)
5018 CALL tralo4(kto,pnm,pnm,am)
5019 CALL filhep(0,1,-14*isgn,nps,nps,0,0,pnm,am,.true.)
5023 SUBROUTINE dwlupi(KTO,ISGN,PPI,PNU)
5034 COMMON /taupos/ np1,np2
5044 CALL tralo4(kto,pnu,pnu,am)
5045 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5048 CALL tralo4(kto,ppi,ppi,am)
5049 CALL filhep(0,1,-211*isgn,nps,nps,0,0,ppi,am,.true.)
5053 SUBROUTINE dwluro(KTO,ISGN,PNU,PRHO,PIC,PIZ)
5063 REAL pnu(4),prho(4),pic(4),piz(4)
5064 COMMON /taupos/ np1,np2
5074 CALL tralo4(kto,pnu,pnu,am)
5075 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5078 CALL tralo4(kto,prho,prho,am)
5079 CALL filhep(0,2,-213*isgn,nps,nps,0,0,prho,am,.true.)
5082 CALL tralo4(kto,pic,pic,am)
5083 CALL filhep(0,1,-211*isgn,-1,-1,0,0,pic,am,.true.)
5086 CALL tralo4(kto,piz,piz,am)
5087 CALL filhep(0,1,111,-2,-2,0,0,piz,am,.true.)
5091 SUBROUTINE dwluaa(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
5102 REAL pnu(4),paa(4),pim1(4),pim2(4),pipl(4)
5103 COMMON /taupos/ np1,np2
5113 CALL tralo4(kto,pnu,pnu,am)
5114 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5117 CALL tralo4(kto,paa,paa,am)
5118 CALL filhep(0,1,-20213*isgn,nps,nps,0,0,paa,am,.true.)
5126 CALL tralo4(kto,pim2,pim2,am)
5127 CALL filhep(0,1,-211*isgn,-1,-1,0,0,pim2,am,.true.)
5130 CALL tralo4(kto,pim1,pim1,am)
5131 CALL filhep(0,1,-211*isgn,-2,-2,0,0,pim1,am,.true.)
5134 CALL tralo4(kto,pipl,pipl,am)
5135 CALL filhep(0,1, 211*isgn,-3,-3,0,0,pipl,am,.true.)
5137 ELSE IF (jaa.EQ.2)
THEN
5142 CALL tralo4(kto,pim2,pim2,am)
5143 CALL filhep(0,1,111,-1,-1,0,0,pim2,am,.true.)
5146 CALL tralo4(kto,pim1,pim1,am)
5147 CALL filhep(0,1,111,-2,-2,0,0,pim1,am,.true.)
5150 CALL tralo4(kto,pipl,pipl,am)
5151 CALL filhep(0,1,-211*isgn,-3,-3,0,0,pipl,am,.true.)
5157 SUBROUTINE dwlukk (KTO,ISGN,PKK,PNU)
5167 COMMON /taupos/ np1,np2
5177 CALL tralo4(kto,pnu,pnu,am)
5178 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5181 CALL tralo4(kto,pkk,pkk,am)
5182 CALL filhep(0,1,-321*isgn,nps,nps,0,0,pkk,am,.true.)
5186 SUBROUTINE dwluks(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
5187 COMMON / taukle / bra1,brk0,brk0b,brks
5188 REAL*4 bra1,brk0,brk0b,brks
5198 REAL pnu(4),pks(4),pkk(4),ppi(4),xio(1)
5199 COMMON /taupos/ np1,np2
5209 CALL tralo4(kto,pnu,pnu,am)
5210 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5213 CALL tralo4(kto,pks,pks,am)
5214 CALL filhep(0,1,-323*isgn,nps,nps,0,0,pks,am,.true.)
5222 CALL tralo4(kto,ppi,ppi,am)
5223 CALL filhep(0,1,-211*isgn,-1,-1,0,0,ppi,am,.true.)
5226 IF (isgn.EQ.-1) bran=brk0
5229 IF(xio(1).GT.bran)
THEN
5235 CALL tralo4(kto,pkk,pkk,am)
5236 CALL filhep(0,1,k0type,-2,-2,0,0,pkk,am,.true.)
5238 ELSE IF(jkst.EQ.20)
THEN
5243 CALL tralo4(kto,ppi,ppi,am)
5244 CALL filhep(0,1,111,-1,-1,0,0,ppi,am,.true.)
5247 CALL tralo4(kto,pkk,pkk,am)
5248 CALL filhep(0,1,-321*isgn,-2,-2,0,0,pkk,am,.true.)
5254 SUBROUTINE dwlnew(KTO,ISGN,PNU,PWB,PNPI,MODE)
5264 parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
5265 COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
5267 COMMON /taupos/ np1,np2
5268 CHARACTER names(nmode)*31
5269 REAL pnu(4),pwb(4),pnpi(4,9)
5281 CALL tralo4(kto,pnu,pnu,am)
5282 CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
5285 CALL tralo4(kto,pwb,pwb,am)
5286 CALL filhep(0,1,-24*isgn,nps,nps,0,0,pwb,am,.true.)
5293 kfpi=lunpik(idffin(i,jnpi),-isgn)
5299 CALL tralo4(kto,ppi,ppi,am)
5300 CALL filhep(0,1,kfpi,-i,-i,0,0,ppi,am,.true.)
5311 IMPLICIT REAL*8 (a-h,o-z)
5313 aaa=pp(4)**2-pp(3)**2-pp(2)**2-pp(1)**2
5315 IF(aaa.NE.0.0) aaa=aaa/sqrt(abs(aaa))
5327 aaa=pp(4)**2-pp(3)**2-pp(2)**2-pp(1)**2
5328 IF(aaa.NE.0.0) aaa=aaa/sqrt(abs(aaa))
5337 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5338 DATA pi /3.141592653589793238462643d0/
5340 IF(abs(y).LT.abs(x))
THEN
5342 IF(x.LE.0d0) the=pi-the
5344 the=acos(x/sqrt(x**2+y**2))
5355 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5356 DATA pi /3.141592653589793238462643d0/
5358 IF(abs(y).LT.abs(x))
THEN
5360 IF(x.LE.0d0) the=pi-the
5362 the=acos(x/sqrt(x**2+y**2))
5364 IF(y.LT.0d0) the=2d0*pi-the
5367 SUBROUTINE rotod1(PH1,PVEC,QVEC)
5372 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5373 dimension pvec(4),qvec(4),rvec(4)
5381 qvec(2)= cs*rvec(2)-sn*rvec(3)
5382 qvec(3)= sn*rvec(2)+cs*rvec(3)
5386 SUBROUTINE rotod2(PH1,PVEC,QVEC)
5391 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5392 dimension pvec(4),qvec(4),rvec(4)
5399 qvec(1)= cs*rvec(1)+sn*rvec(3)
5401 qvec(3)=-sn*rvec(1)+cs*rvec(3)
5405 SUBROUTINE rotod3(PH1,PVEC,QVEC)
5410 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5412 dimension pvec(4),qvec(4),rvec(4)
5418 qvec(1)= cs*rvec(1)-sn*rvec(2)
5419 qvec(2)= sn*rvec(1)+cs*rvec(2)
5423 SUBROUTINE bostr3(EXE,PVEC,QVEC)
5429 REAL*4 pvec(4),qvec(4),rvec(4)
5442 SUBROUTINE bostd3(EXE,PVEC,QVEC)
5448 IMPLICIT DOUBLE PRECISION (a-h,o-z)
5449 dimension pvec(4),qvec(4),rvec(4)
5463 SUBROUTINE rotor1(PH1,PVEC,QVEC)
5468 REAL*4 pvec(4),qvec(4),rvec(4)
5476 qvec(2)= cs*rvec(2)-sn*rvec(3)
5477 qvec(3)= sn*rvec(2)+cs*rvec(3)
5480 SUBROUTINE rotor2(PH1,PVEC,QVEC)
5485 IMPLICIT REAL*4(a-h,o-z)
5486 REAL*4 pvec(4),qvec(4),rvec(4)
5493 qvec(1)= cs*rvec(1)+sn*rvec(3)
5495 qvec(3)=-sn*rvec(1)+cs*rvec(3)
5498 SUBROUTINE rotor3(PHI,PVEC,QVEC)
5503 REAL*4 pvec(4),qvec(4),rvec(4)
5509 qvec(1)= cs*rvec(1)-sn*rvec(2)
5510 qvec(2)= sn*rvec(1)+cs*rvec(2)
5514 SUBROUTINE spherd(R,X)
5519 REAL*8 r,x(4),pi,costh,sinth
5521 DATA pi /3.141592653589793238462643d0/
5525 sinth=sqrt(1 -costh**2)
5526 x(1)=r*sinth*cos(2*pi*rrr(2))
5527 x(2)=r*sinth*sin(2*pi*rrr(2))
5531 SUBROUTINE rotpox(THET,PHI,PP)
5532 IMPLICIT REAL*8 (a-h,o-z)
5538 CALL rotod2(thet,pp,pp)
5539 CALL rotod3( phi,pp,pp)
5542 SUBROUTINE sphera(R,X)
5550 DATA pi /3.141592653589793238462643/
5554 sinth=sqrt(1.-costh**2)
5555 x(1)=r*sinth*cos(2*pi*rrr(2))
5556 x(2)=r*sinth*sin(2*pi*rrr(2))
5560 SUBROUTINE rotpol(THET,PHI,PP)
5567 CALL rotor2(thet,pp,pp)
5568 CALL rotor3( phi,pp,pp)
5571 SUBROUTINE ranmar(RVEC,LENV)
5587 COMMON / inout / inut,iout
5589 common/raset1/u(97),c,i97,j97
5590 parameter(modcns=1000000000)
5591 DATA ntot,ntot2,ijkl/-1,0,0/
5593 IF (ntot .GE. 0) go to 50
5602 entry rmarin(ijklin, ntotin,ntot2n)
5611 ntot = max(ntotin,0)
5612 ntot2= max(ntot2n,0)
5617 kl = ijkl - 30082*ij
5618 i = mod(ij/177, 177) + 2
5619 j = mod(ij, 177) + 2
5620 k = mod(kl/169, 178) + 1
5622 WRITE(iout,201) ijkl,ntot,ntot2
5623 201
FORMAT(1x,
' RANMAR INITIALIZED: ',i10,2x,2i10)
5628 m = mod(mod(i*j,179)*k, 179)
5632 l = mod(53*l+1, 169)
5633 IF (mod(l*m,64) .GE. 32) s = s+t
5638 4 twom24 = 0.5*twom24
5640 cd = 7654321.*twom24
5641 cm = 16777213.*twom24
5646 DO 45 loop2= 1, ntot2+1
5648 IF (loop2 .EQ. ntot2+1) now=ntot
5649 IF (now .GT. 0)
THEN
5650 WRITE (iout,
'(A,I15)')
' RMARIN SKIPPING OVER ',now
5651 DO 40 idum = 1, ntot
5653 IF (uni .LT. 0.) uni=uni+1.
5656 IF (i97 .EQ. 0) i97=97
5658 IF (j97 .EQ. 0) j97=97
5660 IF (c .LT. 0.) c=c+cm
5664 IF (kalled .EQ. 1)
RETURN
5668 DO 100 ivec= 1, lenv
5670 IF (uni .LT. 0.) uni=uni+1.
5673 IF (i97 .EQ. 0) i97=97
5675 IF (j97 .EQ. 0) j97=97
5677 IF (c .LT. 0.) c=c+cm
5679 IF (uni .LT. 0.) uni=uni+1.
5681 IF (uni .EQ. 0.)
THEN
5684 IF (uni .EQ. 0.) uni= twom24*twom24
5689 IF (ntot .GE. modcns)
THEN
5691 ntot = ntot - modcns
5695 entry rmarut(ijklut,ntotut,ntot2t)
5703 IMPLICIT REAL*8(a-h,o-z)
5706 IF(x .LT.-1.0) go to 1
5707 IF(x .LE. 0.5) go to 2
5708 IF(x .EQ. 1.0) go to 3
5709 IF(x .LE. 2.0) go to 4
5713 z=z-0.5* log(abs(x))**2
5719 3 dilogt=1.64493406684822
5723 z=1.64493406684822 - log(x)* log(abs(t))
5724 5 y=2.66666666666666 *t+0.66666666666666
5725 b= 0.00000 00000 00001
5726 a=y*b +0.00000 00000 00004
5727 b=y*a-b+0.00000 00000 00011
5728 a=y*b-a+0.00000 00000 00037
5729 b=y*a-b+0.00000 00000 00121
5730 a=y*b-a+0.00000 00000 00398
5731 b=y*a-b+0.00000 00000 01312
5732 a=y*b-a+0.00000 00000 04342
5733 b=y*a-b+0.00000 00000 14437
5734 a=y*b-a+0.00000 00000 48274
5735 b=y*a-b+0.00000 00001 62421
5736 a=y*b-a+0.00000 00005 50291
5737 b=y*a-b+0.00000 00018 79117
5738 a=y*b-a+0.00000 00064 74338
5739 b=y*a-b+0.00000 00225 36705
5740 a=y*b-a+0.00000 00793 87055
5741 b=y*a-b+0.00000 02835 75385
5742 a=y*b-a+0.00000 10299 04264
5743 b=y*a-b+0.00000 38163 29463
5744 a=y*b-a+0.00001 44963 00557
5745 b=y*a-b+0.00005 68178 22718
5746 a=y*b-a+0.00023 20021 96094
5747 b=y*a-b+0.00100 16274 96164
5748 a=y*b-a+0.00468 63619 59447
5749 b=y*a-b+0.02487 93229 24228
5750 a=y*b-a+0.16607 30329 27855
5751 a=y*a-b+1.93506 43008 6996