SUBROUTINE PHOTWO(MODE) C.---------------------------------------------------------------------- C. C. PHOTWO: PHOtos but TWO mothers allowed C. C. Purpose: Combines two mothers into one in /PHOEVT/ C. necessary eg in case of g g (q qbar) --> t tbar C. C. Input Parameters: Common /PHOEVT/ (/PHOCMS/) C. C. Output Parameters: Common /PHOEVT/, (stored mothers) C. C. Author(s): Z. Was Created at: 5/08/93 C. Last Update:10/08/93 C. C.---------------------------------------------------------------------- IMPLICIT NONE INTEGER NMXPHO PARAMETER (NMXPHO=10000) INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO REAL*8 PPHO,VPHO COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) DOUBLE PRECISION BET(3),GAM COMMON /PHOCMS/ BET,GAM INTEGER I,MODE REAL*8 MPASQR LOGICAL IFRAD C logical IFRAD is used to tag cases when two mothers may be C merged to the sole one. C So far used in case: C 1) of t tbar production C C t tbar case IF(MODE.EQ.0) THEN IFRAD=(IDPHO(1).EQ.21).AND.(IDPHO(2).EQ.21) IFRAD=IFRAD.OR.(IDPHO(1).EQ.-IDPHO(2).AND.ABS(IDPHO(1)).LE.6) IFRAD=IFRAD & .AND.(ABS(IDPHO(3)).EQ.6).AND.(ABS(IDPHO(4)).EQ.6) MPASQR= (PPHO(4,1)+PPHO(4,2))**2-(PPHO(3,1)+PPHO(3,2))**2 & -(PPHO(2,1)+PPHO(2,2))**2-(PPHO(1,1)+PPHO(1,2))**2 IFRAD=IFRAD.AND.(MPASQR.GT.0.0D0) IF(IFRAD) THEN c.....combining first and second mother DO I=1,4 PPHO(I,1)=PPHO(I,1)+PPHO(I,2) ENDDO PPHO(5,1)=SQRT(MPASQR) c.....removing second mother, DO I=1,5 PPHO(I,2)=0.0D0 ENDDO ENDIF ELSE C boosting of the mothers to the reaction frame not implemented yet. C to do it in mode 0 original mothers have to be stored in new comon (?) C and in mode 1 boosted to cms. ENDIF END