]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STARLIGHT/starlight/dpmjet/.svn/text-base/dpmjetint.f.svn-base
STARLIGHT code and interface
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / dpmjet / .svn / text-base / dpmjetint.f.svn-base
1 *\r
2 *===program crint======================================================*\r
3 *\r
4 C      OPTIONS/ EXTEND_SOURCE\r
5 C      SUBROUTINE CRINT\r
6       SUBROUTINE DT_PRODUCEEVENT(ENERGY_SL, NPARTICLES)\r
7 \r
8 \r
9       IMPLICIT DOUBLE PRECISION (A-H,O-Z)\r
10       REAL ENERGY_SL\r
11       INTEGER INIT\r
12       REAL ne,etest,prob,slump\r
13       SAVE\r
14 \r
15 * Call the init sub routine in the first event\r
16       DATA INIT /0/\r
17 \r
18       PARAMETER (NMXHKK=200000)\r
19 \r
20       COMMON /DTIONT/ LINP,LOUT,LDAT\r
21 \r
22       COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),\r
23      &                JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),\r
24      &                PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)\r
25 \r
26 *     event flag\r
27       COMMON /DTEVNO/ NEVENT, ICASCA\r
28 \r
29       IF(INIT.EQ.0) THEN\r
30          OPEN (UNIT = 50, file = "my.input")    \r
31          LINP = 50\r
32          CALL DT_DTUINI(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,IEMU)\r
33 *        Init called, make sure it's not called again\r
34          INIT = 1\r
35       ENDIF\r
36 *-----------------------------------------------------------------------\r
37 *     generation of one event\r
38       NEVENT = 1\r
39       KKMAT = -1\r
40 \r
41 *   If an energy-range has been defined with the ENERGY input-card the\r
42 *   laboratory energy ELAB can be set to any value within that range,..\r
43 C        ELAB = DT_RNDM(EPN)*(EPN-0.5D7)+0.5D7\r
44 \r
45 *   ..otherwise it has to coincide with EPN.\r
46 C        ELAB = EPN\r
47 \r
48       ELAB = ENERGY_SL\r
49 \r
50 *   sampling of one event\r
51 \r
52 *     TEST\r
53 \r
54       CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,ELAB,KKMAT,IREJ)\r
55 \r
56       IF (IREJ.NE.0) RETURN\r
57 \r
58 c     Return the number of particles produced\r
59       \r
60 c     Fill the particle info \r
61       CALL DT_GETPARTICLES(NPARTICLES)\r
62 \r
63       END\r
64 \r
65 \r
66       SUBROUTINE DT_GETPARTICLES(NPARTICLES)\r
67 \r
68       IMPLICIT DOUBLE PRECISION (A-H,O-Z)\r
69       INTEGER pid,qch,q_sum,Ntpc,Nfinal,NACCEPT,IPART,RES\r
70       DOUBLE PRECISION yrap,pt,mass,mt,etot\r
71       DOUBLE PRECISION pt_cut_tpc\r
72       PARAMETER(pt_cut_tpc=0.050)\r
73 \r
74       SAVE\r
75 *\r
76 * COMMON /DTEVT1/ :\r
77 *                   NHKK         number of entries in common block\r
78 *                   NEVHKK       number of the event\r
79 *                   ISTHKK(i)    status code for entry i\r
80 *                   IDHKK(i)     identifier for the entry\r
81 *                                (for particles: identifier according\r
82 *                                 to the PDG numbering scheme)\r
83 *                   JMOHKK(1,i)  pointer to the entry of the first mother\r
84 *                                of entry i\r
85 *                   JMOHKK(2,i)  pointer to the entry of the second mother\r
86 *                                of entry i\r
87 *                   JDAHKK(1,i)  pointer to the entry of the first daughter\r
88 *                                of entry i\r
89 *                   JDAHKK(2,i)  pointer to the entry of the second daughter\r
90 *                                of entry i\r
91 *                   PHKK(1..3,i) 3-momentum\r
92 *                   PHKK(4,i)    energy\r
93 *                   PHKK(5,i)    mass\r
94 *\r
95 * event history\r
96 \r
97       PARAMETER (NMXHKK=200000)\r
98 \r
99       COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),\r
100      &                JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),\r
101      &                PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)\r
102 \r
103 * extended event history\r
104       COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),\r
105      &                IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),\r
106      &                IHIST(2,NMXHKK)\r
107 \r
108       DOUBLE PRECISION SLPX, SLPY, SLPZ, SLE, SLM\r
109       INTEGER SLPID, SLCHARGE\r
110       COMMON /DPMJETPARTICLE/ SLPX(NMXHKK), SLPY(NMXHKK), SLPZ(NMXHKK),\r
111      &       SLE(NMXHKK), SLM(NMXHKK), SLPID(NMXHKK), SLCHARGE(NMXHKK)\r
112 \r
113 \r
114 C     >> Set Counter to Zero\r
115 \r
116       Nfinal=0\r
117       \r
118       DO 42 I=1, NHKK\r
119 c      I = IPART\r
120 \r
121 CC       >> Remove all non-final-state particles\r
122         IF(.not.(ISTHKK(I).eq.1.or.ISTHKK(I).eq.-1.or.\r
123      $ISTHKK(I).eq.1001)) GOTO 42\r
124 \r
125 C       >> Find Particle Charge, qch\r
126         IF((ABS(ISTHKK(I)).eq.1).and.(IDHKK(I).ne.80000))THEN\r
127 C         >> final state ptcles except nuclei\r
128 \r
129           qch=IPHO_CHR3(IDHKK(I),1)/3\r
130         ELSEIF(IDHKK(I).eq.80000)THEN\r
131 C         >> final state nuclei\r
132           qch=IDXRES(I)\r
133         ELSE\r
134 C         >> not a final state particle, qch not interesting\r
135           qch=-999\r
136         ENDIF\r
137 \r
138         Nfinal = Nfinal + 1\r
139         SLPX(Nfinal) = PHKK(1,I)\r
140         SLPY(Nfinal) = PHKK(2,I)\r
141         SLPZ(Nfinal) = PHKK(3,I)\r
142         SLE(Nfinal) = PHKK(4,I)\r
143         SLM(Nfinal) = PHKK(5,I)\r
144         SLPID(Nfinal) = IDHKK(I)\r
145         SLCHARGE(Nfinal) = qch\r
146 \r
147  42     CONTINUE\r
148         NPARTICLES = Nfinal\r
149   \r
150       END\r
151 \r
152       SUBROUTINE DT_USRHIS(MODE)\r
153 c Dummy to make the linker happy\r
154       END\r
155 \r