4 *===program dpmjet=====================================================*
8 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11 * block data in DPMJET library (uncomment these declarations if library
13 C EXTERNAL DT_BDEVAP,DT_BDNOPT,DT_BDPREE,DT_HADPRP,DT_BLKD46,
14 C & DT_BLKD47,DT_RUNTT,DT_NONAME,DT_ZK,DT_BLKD43
19 COMMON /DTEVNO/ NEVENT,ICASCA
21 *-----------------------------------------------------------------------
24 * the following statement provides a call to DT_USRHIS(MODE=1) for
25 * histogram initialization etc.
26 CALL DT_DTUINI(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,IEMU)
28 *-----------------------------------------------------------------------
29 * generation of events
33 * some defaults, do not change!
37 * uncomment if dpmjet3 is linked to particle transport code
40 ************************************************************************
41 * The following lines show how to select the target nucleus for runs
42 * with composite targets (and fixed projectile and energy!).
44 * Sampling of the target nucleus (mass number NTMASS, charge NTCHAR)
45 * according to the fractions defined with EMULSION input-cards.
46 * The different nuclei are numbered as KKMAT = 1,2,3,... according to
47 * their appearance in the input-file.
49 * Replace this selection by your own one if needed.
50 CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0)
51 * Kkmat has to be negative for composite targets!
54 ************************************************************************
56 ************************************************************************
57 * The following lines show how to define projectile, target and energy
58 * for this event in runs with Glauber-data file pre-initialized for a
59 * certain range of projectiles, targets and energies. The definitions
60 * have to be within the pre-initialized parameter range.
62 * projectile-id (for hadron projectiles)
64 * projectile mass and charge numbers
67 * target mass and charge numbers
72 ************************************************************************
74 ************************************************************************
75 * If an energy-range has been defined with the ENERGY input-card the
76 * laboratory energy ELAB can be set to any value within that range. For
80 C ELAB = DT_RNDM(ELAB)*(EHI-ELO)+ELO
81 ************************************************************************
83 * sampling of one event
84 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,ELAB,KKMAT,IREJ)
87 * the following statement provides a call to DT_USRHIS(MODE=2) from
88 * where the final state particles can be obtained
90 CALL PHO_PHIST(2000,DUM)
94 *-----------------------------------------------------------------------
95 * output, statistics etc.
97 * the following statement provides a call to DT_USRHIS(MODE=3) in
98 * order to calculate histograms etc.
103 *$ CREATE DT_USRHIS.FOR
106 *===usrhis=============================================================*
108 SUBROUTINE DT_USRHIS(MODE)
110 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
114 * NHKK number of entries in common block
115 * NEVHKK number of the event
116 * ISTHKK(i) status code for entry i
117 * IDHKK(i) identifier for the entry
118 * (for particles: identifier according
119 * to the PDG numbering scheme)
120 * JMOHKK(1,i) pointer to the entry of the first mother
122 * JMOHKK(2,i) pointer to the entry of the second mother
124 * JDAHKK(1,i) pointer to the entry of the first daughter
126 * JDAHKK(2,i) pointer to the entry of the second daughter
128 * PHKK(1..3,i) 3-momentum
133 PARAMETER (NMXHKK=200000)
134 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
135 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
136 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
137 * extended event history
138 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
139 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
144 *------------------------------------------------------------------
150 * Called with MODE=1 once at the beginning of the run.
154 *------------------------------------------------------------------
158 * scoring of the present event
160 * Called with MODE=2 every time one event has been finished.
162 * The final state particles from the actual event (number NEVHKK)
163 * can be found in DTEVT1 and identified by their status:
165 * ISTHKK(i) = 1 final state particle produced in
166 * photon-/hadron-/nucleon-nucleon collisions or
167 * in intranuclear cascade processes
168 * -1 nucleons, deuterons, H-3, He-3, He-4 evaporated
169 * from excited nucleus and
170 * photons produced in nuclear deexcitation processes
171 * 1001 residual nucleus (ground state)
173 * The types of these particles/nuclei are given in IDHKK as follows
175 * all final state part. except nuclei :
176 * IDHKK(i)=particle identifier according to PDG numbering scheme
177 * nuclei (evaporation products, and residual nucleus) :
178 * IDHKK(i)=80000, IDRES(i)=mass number, IDXRES(i)=charge number
180 * The 4-momenta and masses can be found in PHKK (target nucleus rest frame):
181 * PHKK(1..3,i) 3-momentum (p_x,p_y,p_z)
187 * Pick out the final state particles from DTEVT1 in each event for
188 * instance by the following loop (NHKK=number of entries in the present
189 * event) and fill your histograms
191 C IF (ABS(ISTHKK(I)).EQ.1) THEN
192 C ELSEIF (ABS(ISTHKK(I)).EQ.1001) THEN
196 * At any time during the run a list of the actual entries in DTEVT1 and
197 * DTEVT2 can be obtained (output unit 6) by the following statement:
202 *------------------------------------------------------------------
206 * output/statistics/histograms etc.
208 * Called with MODE=3 once after all events have been sampled.