SUBROUTINE SUSPEC( ierr ) C ----------------------------------------------------------------------------- C Purpose: Add "spectator jet" (proton remnant) to LUJETS. C C Notes: All produced spectator partons are assumed massless/virtual C (even tops). C The remnant is simulated by either e diquark with all the remaining C momentum of the proton, or a proton and a quark with half of this C momentum each. C C Errors: >0 Skip an event C C Author: JMB C Last change 18/2/92 C ----------------------------------------------------------------------------- C IMPLICIT NONE C INCLUDE 'SUSANA.INC' INCLUDE 'PYTHIA57.INC' C INTEGER ierr C - Reset error flag ierr = 0 C C C Come here for electrons. C IF (ISUSTR(8).EQ.0) THEN IF ( (ISUSTR(5).LE.3) & .AND. (outq_flav.GT.0.) ) THEN C Interacting parton was a u quark IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'suspec: An e- u event' ENDIF k(3,1) = 2 k(3,2) = 2101 p(3,1) = pp(1) * (1.0-xj) p(3,2) = pp(2) * (1.0-xj) p(3,3) = pp(3) * (1.0-xj) p(3,4) = pp(4) * (1.0-xj) IF ((-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2).LT.0.0) THEN IF (isustr(3).GT.0) THEN WRITE(isustr(1),*) 'SUSPEC1:Neg.Sqrt:Skipping an event' ENDIF ierr = -1 GOTO 8900 ENDIF p(3,5) = SQRT(-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2) n = 3 ELSE k(3,1) = 2 k(3,2) = 2212 p(3,1) = pp(1) * (1.0-xj)/2.0 p(3,2) = pp(2) * (1.0-xj)/2.0 p(3,3) = pp(3) * (1.0-xj)/2.0 p(3,4) = pp(4) * (1.0-xj)/2.0 IF ((-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2).LT.0.0) THEN IF (isustr(3).GE.0) THEN WRITE(isustr(1),*) 'SUSPEC2:Neg.Sqrt:Skipping an event' ENDIF ierr = -2 GOTO 8900 ENDIF p(3,5) = SQRT(-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2) k(4,1) = 2 IF ( (ISUSTR(5).LE.3).AND.(outq_flav.LT.0) )THEN C Interacting parton was a dbar quark k(4,2) = 1 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e- dbar event' ENDIF ELSE IF ( (ISUSTR(5).LE.6).AND.(outq_flav.GT.0) )THEN C Interacting parton was a c quark k(4,2) = -4 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e- c event' ENDIF ELSE IF ( (ISUSTR(5).LE.6).AND.(outq_flav.LT.0) )THEN C Interacting parton was an sbar quark k(4,2) = 3 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e- sbar event' ENDIF ELSE IF ( (ISUSTR(5).LE.9).AND.(outq_flav.GT.0) )THEN C Interacting parton was a t quark k(4,2) = -6 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e- t event' ENDIF ELSE IF ( (ISUSTR(5).LE.9).AND.(outq_flav.LT.0) )THEN C Interacting parton was a bbar quark k(4,2) = 5 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'suspec: An e- bbar event' ENDIF ENDIF p(4,1) = pp(1) * (1.0-xj)/2.0 p(4,2) = pp(2) * (1.0-xj)/2.0 p(4,3) = pp(3) * (1.0-xj)/2.0 p(4,4) = pp(4) * (1.0-xj)/2.0 IF ((-p(4,1)**2-p(4,2)**2-p(4,3)**2+p(4,4)**2).LT.0.0) THEN IF (isustr(3).GE.0) THEN WRITE(isustr(1),*) 'SUSPEC3:Neg.Sqrt:Skipping an event' ENDIF ierr = -3 GOTO 8900 ENDIF p(4,5) = SQRT(-p(4,1)**2-p(4,2)**2-p(4,3)**2+p(4,4)**2) n=4 ENDIF ENDIF C C Come here for positrons. C IF (ISUSTR(8).EQ.1) THEN IF ( (ISUSTR(5).LE.3) & .AND. (outq_flav.GT.0.) ) THEN C Interacting parton was a d quark IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'suspec: An e+ d event' ENDIF k(3,1) = 1 k(3,2) = 1103 p(3,1) = pp(1) * (1.0-xj) p(3,2) = pp(2) * (1.0-xj) p(3,3) = pp(3) * (1.0-xj) p(3,4) = pp(4) * (1.0-xj) IF ((-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2).LT.0.0) THEN IF (isustr(3).GT.0) THEN WRITE(isustr(1),*) 'SUSPEC1:Neg.Sqrt:Skipping an event' ENDIF ierr = -1 GOTO 8900 ENDIF p(3,5) = SQRT(-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2) n = 3 ELSE k(3,1) = 2 k(3,2) = 2212 p(3,1) = pp(1) * (1.0-xj)/2.0 p(3,2) = pp(2) * (1.0-xj)/2.0 p(3,3) = pp(3) * (1.0-xj)/2.0 p(3,4) = pp(4) * (1.0-xj)/2.0 IF ((-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2).LT.0.0) THEN IF (isustr(3).GE.0) THEN WRITE(isustr(1),*) 'SUSPEC2:Neg.Sqrt:Skipping an event' ENDIF ierr = -2 GOTO 8900 ENDIF p(3,5) = SQRT(-p(3,1)**2-p(3,2)**2-p(3,3)**2+p(3,4)**2) k(4,1) = 2 IF ( (ISUSTR(5).LE.3).AND.(outq_flav.LT.0) )THEN C Interacting parton was a ubar quark k(4,2) = 1 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e+ubar event' ENDIF ELSE IF ( (ISUSTR(5).LE.6).AND.(outq_flav.GT.0) )THEN C Interacting parton was a s quark k(4,2) = -3 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e+ c event' ENDIF ELSE IF ( (ISUSTR(5).LE.6).AND.(outq_flav.LT.0) )THEN C Interacting parton was an cbar quark k(4,2) = 4 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e+ cbar event' ENDIF ELSE IF ( (ISUSTR(5).LE.9).AND.(outq_flav.GT.0) )THEN C Interacting parton was a b quark k(4,2) = -5 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'SUSPEC: An e+ t event' ENDIF ELSE IF ( (ISUSTR(5).LE.9).AND.(outq_flav.LT.0) )THEN C Interacting parton was a tbar quark k(4,2) = 6 IF (isustr(3).EQ.1) THEN WRITE(isustr(1),*) 'suspec: An e+ tbar event' ENDIF ENDIF p(4,1) = pp(1) * (1.0-xj)/2.0 p(4,2) = pp(2) * (1.0-xj)/2.0 p(4,3) = pp(3) * (1.0-xj)/2.0 p(4,4) = pp(4) * (1.0-xj)/2.0 IF ((-p(4,1)**2-p(4,2)**2-p(4,3)**2+p(4,4)**2).LT.0.0) THEN IF (isustr(3).GE.0) THEN WRITE(isustr(1),*) 'SUSPEC3:Neg.Sqrt:Skipping an event' ENDIF ierr = -3 GOTO 8900 ENDIF p(4,5) = SQRT(-p(4,1)**2-p(4,2)**2-p(4,3)**2+p(4,4)**2) n=4 ENDIF ENDIF C 8900 CONTINUE RETURN END