]> git.uio.no Git - u/mrichter/AliRoot.git/blame - DPMJET/user3.0-5.f
Starting a collection of QA/Comparison macros
[u/mrichter/AliRoot.git] / DPMJET / user3.0-5.f
CommitLineData
9aaba0d6 1*$ CREATE DPMJET.FOR
2*COPY DPMJET
3*
4*===program dpmjet=====================================================*
5*
6 PROGRAM DPMJET
7
8 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9 SAVE
10
11* block data in DPMJET library (uncomment these declarations if library
12* option is used)
13C EXTERNAL DT_BDEVAP,DT_BDNOPT,DT_BDPREE,DT_HADPRP,DT_BLKD46,
14C & DT_BLKD47,DT_RUNTT,DT_NONAME,DT_ZK,DT_BLKD43
15
16C EXTERNAL PYDATA
17
18* event flag
19 COMMON /DTEVNO/ NEVENT,ICASCA
20
21*-----------------------------------------------------------------------
22* initialization
23
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)
27
28*-----------------------------------------------------------------------
29* generation of events
30
31 DO 1 IEVT=1,NEVTS
32
33* some defaults, do not change!
34 NEVENT = IEVT
35 KKMAT = -1
36 ELAB = EPN
37* uncomment if dpmjet3 is linked to particle transport code
38C ICASCA = 1
39
40************************************************************************
41* The following lines show how to select the target nucleus for runs
42* with composite targets (and fixed projectile and energy!).
43*
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.
48 IF (IEMU.GT.0) THEN
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!
52 KKMAT = -KKMAT
53 ENDIF
54************************************************************************
55
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.
61*
62* projectile-id (for hadron projectiles)
63C IDP = 1
64* projectile mass and charge numbers
65C NPMASS = 12
66C NPCHAR = 6
67* target mass and charge numbers
68C NTMASS = 16
69C NTCHAR = 8
70* lab energy
71C ELAB = 200.0D0
72************************************************************************
73
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
77* example:
78C ELO = 10.0D0
79C EHI = 1000.0D0
80C ELAB = DT_RNDM(ELAB)*(EHI-ELO)+ELO
81************************************************************************
82
83* sampling of one event
84 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,ELAB,KKMAT,IREJ)
85 IF (IREJ.NE.0) GOTO 1
86
87* the following statement provides a call to DT_USRHIS(MODE=2) from
88* where the final state particles can be obtained
89
90 CALL PHO_PHIST(2000,DUM)
91
92 1 CONTINUE
93
94*-----------------------------------------------------------------------
95* output, statistics etc.
96
97* the following statement provides a call to DT_USRHIS(MODE=3) in
98* order to calculate histograms etc.
99 CALL DT_DTUOUT
100
101 END
102
103*$ CREATE DT_USRHIS.FOR
104*COPY DT_USRHIS
105*
106*===usrhis=============================================================*
107*
108 SUBROUTINE DT_USRHIS(MODE)
109
110 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
111 SAVE
112*
113* COMMON /DTEVT1/ :
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
121* of entry i
122* JMOHKK(2,i) pointer to the entry of the second mother
123* of entry i
124* JDAHKK(1,i) pointer to the entry of the first daughter
125* of entry i
126* JDAHKK(2,i) pointer to the entry of the second daughter
127* of entry i
128* PHKK(1..3,i) 3-momentum
129* PHKK(4,i) energy
130* PHKK(5,i) mass
131*
132* event history
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),
140 & IHIST(2,NMXHKK)
141
142 GOTO (1,2,3) MODE
143
144*------------------------------------------------------------------
145*
146 1 CONTINUE
147*
148* initializations
149*
150* Called with MODE=1 once at the beginning of the run.
151*
152 RETURN
153*
154*------------------------------------------------------------------
155*
156 2 CONTINUE
157*
158* scoring of the present event
159*
160* Called with MODE=2 every time one event has been finished.
161*
162* The final state particles from the actual event (number NEVHKK)
163* can be found in DTEVT1 and identified by their status:
164*
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)
172*
173* The types of these particles/nuclei are given in IDHKK as follows
174*
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
179*
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)
182* PHKK(4,i) energy
183* PHKK(5,i) mass
184*
185*
186*
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
190C DO 20 I=1,NHKK
191C IF (ABS(ISTHKK(I)).EQ.1) THEN
192C ELSEIF (ABS(ISTHKK(I)).EQ.1001) THEN
193C ENDIF
194C 20 CONTINUE
195
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:
198C CALL DT_EVTOUT(4)
199
200 RETURN
201*
202*------------------------------------------------------------------
203*
204 3 CONTINUE
205*
206* output/statistics/histograms etc.
207*
208* Called with MODE=3 once after all events have been sampled.
209*
210 RETURN
211
212 END