--- /dev/null
+#include "isajet/pilot.h"
+ INTEGER FUNCTION IDANTI(ID)
+C----------------------------------------------------------------------
+C-
+C- Purpose and Methods :
+C- Return value of antiparticle id
+C-
+C- Inputs :
+C- ID = particle id
+C-
+C- Created 1-JUN-1988 Serban D. Protopopescu
+C- 3-Jan-1993: Expand self-conjugate list for MSSM and simplify
+C structure. FEP
+C 17-Mar-1997: Correctly handle mesons with IDENT>10000
+C-
+C----------------------------------------------------------------------
+#if defined(CERNLIB_IMPNONE)
+ IMPLICIT NONE
+#endif
+ INTEGER ID,IFL1,IFL2,IFL3,IDABS
+ INTEGER NSELF,I
+ PARAMETER (NSELF=14)
+ INTEGER IDSELF(NSELF)
+ SAVE IDSELF
+ DATA IDSELF/9,10,20,29,30,40,50,60,81,82,83,84,90,91/
+C----------------------------------------------------------------------
+ IDABS=IABS(ID)
+ IFL1=MOD(IDABS/1000,10)
+C
+C Baryons and diquarks
+C
+ IF(IFL1.NE.0) THEN
+ IDANTI=-ID
+ RETURN
+ ENDIF
+C
+C Mesons
+C
+ IF(IDABS.GT.100.AND.IFL1.EQ.0) THEN
+ IFL2=MOD(IDABS/100,10)
+ IFL3=MOD(IDABS/10,10)
+ IF(IFL2.EQ.IFL3) THEN
+ IDANTI=+ID
+ ELSE
+ IDANTI=-ID
+ ENDIF
+ RETURN
+ ENDIF
+C
+C Other particles
+C
+ DO 100 I=1,NSELF
+ IF(IDABS.EQ.IDSELF(I)) THEN
+ IDANTI=+ID
+ RETURN
+ ENDIF
+100 CONTINUE
+ IDANTI=-ID
+ RETURN
+ END