FUNCTION PHOCOR(MPASQR,MCHREN,ME) C.---------------------------------------------------------------------- C. C. PHOTOS: PHOton radiation in decays CORrection weight from C. matrix elements C. C. Purpose: Calculate photon angle. The reshaping functions will C. have to depend on the spin S of the charged particle. C. We define: ME = 2 * S + 1 ! C. C. Input Parameters: MPASQR: Parent mass squared, C. MCHREN: Renormalised mass of charged system, C. ME: 2 * spin + 1 determines matrix element C. C. Output Parameter: Function value. C. C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 C. G. Nanava Last Update: 01/07/06 C. C.---------------------------------------------------------------------- IMPLICIT NONE DOUBLE PRECISION MPASQR,MCHREN,BETA,BETA0,BETA1,XX,YY,DATA INTEGER ME REAL*8 PHOCOR,PHOFAC,WT1,WT2,WT3,PHOTRI,S1 DOUBLE PRECISION MCHSQR,MNESQR REAL*8 PNEUTR COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) DOUBLE PRECISION COSTHG,SINTHG REAL*8 XPHMAX,XPHOTO COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG INTEGER IREP REAL*8 PROBH,CORWT,XF COMMON/PHOPRO/PROBH,CORWT,XF,IREP C-- C-- Shaping (modified by ZW)... XX=4.D0*MCHSQR/MPASQR*(1.D0-XPHOTO)/(1.D0-XPHOTO+(MCHSQR-MNESQR)/ &MPASQR)**2 IF (ME.EQ.1) THEN C -- old kernel, practically equal (nearly) C YY=1.D0 C WT3=(1.D0-XPHOTO/XPHMAX)/((1.D0+(1.D0-XPHOTO/XPHMAX)**2)/2.D0) C BETA=SQRT(1.D0-XX C WT1=(1.D0-COSTHG*SQRT(1.D0-MCHREN))/(1.D0-COSTHG*BETA) C WT2=(1.D0-XX/YY/(1.D0-BETA**2*COSTHG**2))*(1.D0+COSTHG*BETA)/2.D0 C -- exact kernel (scalar QED) S1=MPASQR * (1.D0-XPHOTO) BETA0=2*PHOTRI(1D0,dsqrt(MCHSQR/MPASQR),dsqrt(MNESQR/MPASQR)) BETA1=2*PHOTRI(1D0,dsqrt(MCHSQR/S1),dsqrt(MNESQR/S1)) WT1= (1.D0-COSTHG*SQRT(1.D0-MCHREN)) $ /((1D0+(1D0-XPHOTO/XPHMAX)**2)/2.D0)*XPHOTO ! de-presampler $ WT2= beta1/beta0*XPHOTO !phase space jacobians WT3= beta1**2* (1D0-COSTHG**2) * (1D0-XPHOTO)/XPHOTO**2 ! matrix element $ /(1D0 +MCHSQR/S1-MNESQR/S1-BETA1*COSTHG)**2/2D0 ELSEIF (ME.EQ.2) THEN YY=0.5D0*(1.D0-XPHOTO/XPHMAX+1.D0/(1.D0-XPHOTO/XPHMAX)) BETA=SQRT(1.D0-XX) WT1=(1.D0-COSTHG*SQRT(1.D0-MCHREN))/(1.D0-COSTHG*BETA) WT2=(1.D0-XX/YY/(1.D0-BETA**2*COSTHG**2))*(1.D0+COSTHG*BETA)/2.D0 WT3=1.D0 ELSEIF ((ME.EQ.3).OR.(ME.EQ.4).OR.(ME.EQ.5)) THEN YY=1.D0 BETA=SQRT(1.D0-XX) WT1=(1.D0-COSTHG*SQRT(1.D0-MCHREN))/(1.D0-COSTHG*BETA) WT2=(1.D0-XX/YY/(1.D0-BETA**2*COSTHG**2))*(1.D0+COSTHG*BETA)/2.D0 WT3=(1.D0+(1.D0-XPHOTO/XPHMAX)**2-(XPHOTO/XPHMAX)**3)/ & (1.D0+(1.D0-XPHOTO/XPHMAX)** 2) ELSE DATA=(ME-1.D0)/2.D0 CALL PHOERR(6,'PHOCOR',DATA) YY=1.D0 BETA=SQRT(1.D0-XX) WT1=(1.D0-COSTHG*SQRT(1.D0-MCHREN))/(1.D0-COSTHG*BETA) WT2=(1.D0-XX/YY/(1.D0-BETA**2*COSTHG**2))*(1.D0+COSTHG*BETA)/2.D0 WT3=1.D0 ENDIF WT2=WT2*PHOFAC(1) PHOCOR=WT1*WT2*WT3 CORWT=PHOCOR IF (PHOCOR.GT.1.D0) THEN DATA=PHOCOR CALL PHOERR(3,'PHOCOR',DATA) ENDIF RETURN END