]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/isasusy/ssme3.F
Extracting PHOS and EMCAL trackers from the correspondig reconstructors (Yu.Belikov)
[u/mrichter/AliRoot.git] / ISAJET / isasusy / ssme3.F
1 #include "isajet/pilot.h"
2       SUBROUTINE SSME3(KTYP,AM,ZI,ZF)
3 C
4 C          Give matrix element data for mode most recently saved by 
5 C          SSSAVE. Call this once for each pole in the matrix element,
6 C          giving the pole type, mass, and couplings. See /DKYSS3/
7 C          for more comments.
8 C
9 C          Assumes SUSY decay product is always FIRST.
10 C
11 #if defined(CERNLIB_IMPNONE)
12       IMPLICIT NONE
13 #endif
14 C
15 #include "isajet/sslun.inc"
16 #include "isajet/ssmode.inc"
17 #include "isajet/dkyss3.inc"
18 C
19       INTEGER KTYP,I
20       REAL AM
21       COMPLEX ZI(2),ZF(2)
22 C
23 C          If last SSSAVE failed, then skip the matrix element
24 C
25       IF(.NOT.LSSMOD) RETURN
26 C
27 C          If MSSMOD(NSSMOD)=0, have not booked any poles yet for
28 C          last mode saved. Increment mode counter, and set initial and
29 C          final poles to next one.
30 C
31       IF(MSSMOD(NSSMOD).EQ.0) THEN
32         NMSS3=NMSS3+1
33         IF(NMSS3.GT.MXMSS3) THEN
34           WRITE(LOUT,*) 'ERROR IN SSME3...TOO MANY MODES=',NMSS3
35           STOP99
36         ENDIF
37         MSSMOD(NSSMOD)=-NMSS3
38         J1SS3(NMSS3)=NPSS3+1
39         J2SS3(NMSS3)=NPSS3+1
40         WTSS3(NMSS3)=0
41       ENDIF
42 C
43 C          Add pole to list and set second counter to last pole
44 C
45       NPSS3=NPSS3+1
46       IF(NPSS3.GT.MXPSS3) THEN
47         WRITE(LOUT,*) 'ERROR IN SSME3...TOO MANY POLES=',NPSS3
48         STOP99
49       ENDIF
50       KSS3(NPSS3)=KTYP
51       AMSS3(NPSS3)=AM
52       DO 100 I=1,2
53         ZISS3(I,NPSS3)=ZI(I)
54         ZFSS3(I,NPSS3)=ZF(I)
55 100   CONTINUE
56       J2SS3(NMSS3)=NPSS3
57 C
58       RETURN
59       END