8 CHARACTER frame*8,proj*8,targ*8
11 common/himain2/
katt(130000,4),
patt(130000,4)
23 common/pawc/hmemory(nwpawc)
29 write(6,*)
'====================================================='
30 write(6,*)
'The program for calculation of general properties of '
31 write(6,*)
' interactions in the HIJING model. '
32 write(6,*)
'====================================================='
34 write(6,*)
' You can work in Lab. or CM systems '
35 write(6,*)
' Would you like to use CM system? Y - Yes, N - No? '
40 if(
key.eq.
'Y'.or.
key.eq.
'y')
then
41 write(6,*)
'CM system is used --------------------------------'
44 write(6,*)
'LAB system is used -------------------------------'
48 write(6,*)
'Enter the corresponding energy per NN collisions (GeV)'
53 write(6,*)
'Enter a type of the projectile particle'
55 write(6,*)
' P proton, PBAR anti-proton,'
56 write(6,*)
' N neutron, NBAR anti-neutron,'
57 write(6,*)
' PI+ - positive pion, PI- negative pion,'
58 write(6,*)
' K+ positive kaon, K- negative kaon'
59 write(6,*)
' A - nucleus --------------------------'
67 if(proj.eq.
'P' )
izp= 1
68 if(proj.eq.
'PBAR')
izp=-1
69 if(proj.eq.
'N' )
izp= 0
70 if(proj.eq.
'NBAR')
izp= 0
71 if(proj.eq.
'PI+' )
izp= 1
72 if(proj.eq.
'PI-' )
izp=-1
73 if(proj.eq.
'K+' )
izp= 1
74 if(proj.eq.
'K-' )
izp=-1
77 write(6,*)
'Enter mass number and charge of the proj. nucleus'
82 write(6,*)
'Enter a type of the target particle (same notations)'
87 if(targ.eq.
'P' )
izt= 1
88 if(targ.eq.
'PBAR')
izt=-1
89 if(targ.eq.
'N' )
izt= 0
90 if(targ.eq.
'NBAR')
izt= 0
91 if(targ.eq.
'PI+' )
izt= 1
92 if(targ.eq.
'PI-' )
izt=-1
93 if(targ.eq.
'K+' )
izt= 1
94 if(targ.eq.
'K-' )
izt=-1
97 write(6,*)
'Enter mass number and charge of the target nucleus'
102 write(6,*)
'Enter number of events'
105 write(6,*)
'Enter FILENAME for HBOOK output'
113 WRITE(6,*)
' Simulation of interactions with'
115 WRITE(6,*)
' Proj = ',proj,
' and Targ = ',targ
116 WRITE(6,*)
' IAP =',
iap ,
' IAT =',
iat
117 WRITE(6,*)
' IZP =',
izp ,
' IZT =',
izt
119 WRITE(6,*)
' Reference frame - ',frame
120 WRITE(6,*)
' ENERGY ',
efrm,
' GeV'
121 WRITE(6,*)
' Number of generated events -',n_events
132 CALL hbook1(2,
'Impact parameter distribution',
136 CALL hbook1(4,
'Nu-distribution',
137 ,100,-0.5,float(nu_max),0.)
139 CALL hbook1(6,
'Distribution on the number of wounded A nucleons',
140 ,
iap+1,-0.5,float(
iap)+0.5,0.)
142 CALL hbook1(8,
'Distribution on the number of wounded B nucleons',
143 ,
iat+1,-0.5,float(
iat)+0.5,0.)
145 if(proj.eq.
'A'.or.targ.eq.
'A')
then
152 CALL hbook1(10,
' Charged particle multiplicity distribution',
155 if(frame.eq.
'CMS')
then
160 eta_h=alog(2.*
efrm)+2.
162 nbineta=(eta_h-eta_l)/0.2
164 CALL hbook1(20,
' Charged particle pseudo-rapidity distribution',
165 ,nbineta,eta_l,eta_h,0.)
167 if(frame.eq.
'CMS')
then
176 CALL hbook1(30,
' Charged particle rapidity distribution',
179 CALL hbook1(40,
' Charged particle Pt distribution',
182 if(frame.eq.
'CMS')
then
191 CALL hbook1(50,
' Charged particle energy distribution',
194 CALL hbook1(60,
' Charged particle Cos(Theta) distribution',
197 CALL hbook1(70,
' Charged particle Phi distribution',
200 CALL hbook2(80,
' Phi - Eta correlation of charged particles',
201 ,nbineta,eta_l,eta_h,180,-180.,180.,0.)
203 CALL hbook1(90,
' Particle composition (IDs)',
204 ,6600,-3300.,3300.,0.)
209 CALL hbook1(110,
' Negative particle multiplicity distribution',
210 ,100,-0.5,float(m_neg),0.)
212 CALL hbook1(120,
' Negative particle pseudo-rapidity distribution',
213 ,nbineta,eta_l,eta_h,0.)
215 CALL hbook1(130,
' Negative particle rapidity distribution',
218 CALL hbook1(140,
' Negative particle Pt distribution',
221 CALL hbook1(150,
' Negative particle energy distribution',
224 CALL hbook1(160,
' Negative particle Cos(Theta) distribution',
227 CALL hbook1(170,
' Negative particle Phi distribution',
230 CALL hbook2(180,
' Phi - Eta correlation of negative particles',
231 ,nbineta,eta_l,eta_h,180,-180.,180.,0.)
236 CALL hbook1(210,
' Positive particle multiplicity distribution',
237 ,100,-0.5,float(m_neg),0.)
239 CALL hbook1(220,
' Positive particle pseudo-rapidity distribution',
240 ,nbineta,eta_l,eta_h,0.)
242 CALL hbook1(230,
' Positive particle rapidity distribution',
245 CALL hbook1(240,
' Positive particle Pt distribution',
248 CALL hbook1(250,
' Positive particle energy distribution',
251 CALL hbook1(260,
' Positive particle Cos(Theta) distribution',
254 CALL hbook1(270,
' Positive particle Phi distribution',
257 CALL hbook2(280,
' Phi - Eta correlation of positive particles',
258 ,nbineta,eta_l,eta_h,180,-180.,180.,0.)
263 CALL hbook1(310,
' Proton multiplicity distribution',
264 ,100,-0.5,float(
izp+
izt)+10.,0.)
266 CALL hbook1(320,
' Proton pseudo-rapidity distribution',
267 ,nbineta,eta_l,eta_h,0.)
269 CALL hbook1(330,
' Proton rapidity distribution',
272 CALL hbook1(340,
' Proton Pt distribution',
275 CALL hbook1(350,
' Proton energy distribution',
278 CALL hbook1(360,
' Proton Cos(Theta) distribution',
281 CALL hbook1(370,
' Proton Phi distribution',
283 CALL hbook2(380,
' Phi - Eta correlation of protons',
284 ,nbineta,eta_l,eta_h,180,-180.,180.,0.)
290 CALL hbook1(410,
' Gamma multiplicity distribution',
291 ,100,-0.5,float(m_neg),0.)
293 CALL hbook1(420,
' Gamma pseudo-rapidity distribution',
294 ,nbineta,eta_l,eta_h,0.)
296 CALL hbook1(430,
' Gamma rapidity distribution',
299 CALL hbook1(440,
' Gamma Pt distribution',
302 CALL hbook1(450,
' Gamma energy distribution',
305 CALL hbook1(460,
' Gamma Cos(Theta) distribution',
308 CALL hbook1(470,
' Gamma Phi distribution',
311 CALL hbook2(480,
' Phi - Eta correlation of Gammas',
312 ,nbineta,eta_l,eta_h,180,-180.,180.,0.)
317 DO 2000 i_event=1,n_events
319 WRITE(6,*)
' Event # ',i_event,
' ------------------'
321 CALL
hijing(frame,bmin,bmax)
327 Call hf1(4,float(nu),1.)
329 Call hf1(6,float(
np),1.)
330 Call hf1(8,float(
nt),1.)
340 if(
katt(i,2).eq. 0) go
to 3000
341 if(
katt(i,2).eq. 1) go
to 3000
342 if(
katt(i,2).eq.10) go
to 3000
343 if(
katt(i,2).eq.11) go
to 3000
356 if(
p-pz.ge.1.0e-4)
then
357 eta= 0.5*alog((
p+pz)/(
p-pz))
358 elseif(
p+pz.ge.1.0e-4)
then
359 eta=-0.5*alog((
p-pz)/(
p+pz))
364 if(e-pz.ge.1.0e-4)
then
365 y= 0.5*alog((e+pz)/(e-pz))
366 elseif(e+pz.ge.1.0e-4)
then
367 y=-0.5*alog((e-pz)/(e+pz))
389 Call hf1(60,cos_theta,1.)
391 Call hfill(80,eta,
phi,1.)
392 Call hf1(90,float(
id),1.)
402 Call hf1(160,cos_theta,1.)
404 Call hfill(180,eta,
phi,1.)
414 Call hf1(260,cos_theta,1.)
416 Call hfill(280,eta,
phi,1.)
420 n_protons=n_protons+1
426 Call hf1(360,cos_theta,1.)
428 Call hfill(380,eta,
phi,1.)
438 Call hf1(460,cos_theta,1.)
440 Call hfill(480,eta,
phi,1.)
447 CALL hf1( 10,float(n_ch),1.)
448 CALL hf1(110,float(n_neg),1.)
449 CALL hf1(210,float(n_pos),1.)
450 CALL hf1(310,float(n_protons),1.)
451 CALL hf1(410,float(n_gammas ),1.)
457 c1=1./float(n_events)
460 Call hopera( 10,
'+', 10, 10,
c1,
c2)
461 Call hopera(110,
'+',110,110,
c1,
c2)
462 Call hopera(210,
'+',210,210,
c1,
c2)
463 Call hopera(310,
'+',310,310,
c1,
c2)
464 Call hopera(410,
'+',410,410,
c1,
c2)
466 c1=1./float(n_events)/((eta_h-eta_l)/nbineta)
469 Call hopera( 20,
'+', 20, 20,
c1,
c2)
470 Call hopera(120,
'+',120,120,
c1,
c2)
471 Call hopera(220,
'+',220,220,
c1,
c2)
472 Call hopera(320,
'+',320,320,
c1,
c2)
473 Call hopera(420,
'+',420,420,
c1,
c2)
475 c1=1./float(n_events)/((y_h-y_l)/nbiny)
478 Call hopera( 30,
'+', 30, 30,
c1,
c2)
479 Call hopera(130,
'+',130,130,
c1,
c2)
480 Call hopera(230,
'+',230,230,
c1,
c2)
481 Call hopera(330,
'+',330,330,
c1,
c2)
482 Call hopera(430,
'+',430,430,
c1,
c2)
484 c1=1./float(n_events)/0.1
487 Call hopera( 40,
'+', 40, 40,
c1,
c2)
488 Call hopera(140,
'+',140,140,
c1,
c2)
489 Call hopera(240,
'+',240,240,
c1,
c2)
490 Call hopera(340,
'+',340,340,
c1,
c2)
491 Call hopera(440,
'+',440,440,
c1,
c2)
493 c1=1./float(n_events)/((e_h-e_l)/nbine)
496 Call hopera( 50,
'+', 50, 50,
c1,
c2)
497 Call hopera(150,
'+',150,150,
c1,
c2)
498 Call hopera(250,
'+',250,250,
c1,
c2)
499 Call hopera(350,
'+',350,350,
c1,
c2)
500 Call hopera(450,
'+',450,450,
c1,
c2)
502 c1=1./float(n_events)/0.05
505 Call hopera( 60,
'+', 60, 60,
c1,
c2)
506 Call hopera(160,
'+',160,160,
c1,
c2)
507 Call hopera(260,
'+',260,260,
c1,
c2)
508 Call hopera(360,
'+',360,360,
c1,
c2)
509 Call hopera(460,
'+',460,460,
c1,
c2)
511 c1=1./float(n_events)
514 Call hopera( 70,
'+', 70, 70,
c1,
c2)
515 Call hopera(170,
'+',170,170,
c1,
c2)
516 Call hopera(270,
'+',270,270,
c1,
c2)
517 Call hopera(370,
'+',370,370,
c1,
c2)
518 Call hopera(470,
'+',470,470,
c1,
c2)
522 CALL hrput(0,fname,
'N')