File indexing completed on 2025-08-05 08:15:42
0001
0002
0003
0004
0005
0006
0007
0008 CHARACTER FRAME*8,PROJ*8,TARG*8
0009
0010 COMMON/HIMAIN1/ NATT,EATT,JATT,NT,NP,N0,N01,N10,N11
0011 COMMON/HIMAIN2/KATT(130000,4),PATT(130000,4)
0012
0013
0014
0015 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0016 SAVE /HIPARNT/
0017
0018
0019
0020 CHARACTER *1 KEY
0021 CHARACTER *12 FNAME
0022
0023 PARAMETER (NWPAWC=1000000)
0024 COMMON/PAWC/HMEMORY(NWPAWC)
0025
0026 COMMON/RANSEED/NSEED
0027 SAVE /RANSEED/
0028 NSEED=0
0029
0030 write(6,*)'====================================================='
0031 write(6,*)'The program for calculation of general properties of '
0032 write(6,*)' neutral particles (Pi_0, Lambda0, K0_S, Phi '
0033 write(6,*)' in the HIJING model. '
0034 write(6,*)'====================================================='
0035 write(6,*)
0036 write(6,*)' You can work in Lab. or CM systems '
0037 write(6,*)' Would you like to use CM system? Y - Yes, N - No? '
0038
0039 read(5,1001) KEY
0040 1001 format(A1)
0041
0042 if(KEY.eq.'Y'.or.KEY.eq.'y') then
0043 write(6,*)'CM system is used --------------------------------'
0044 FRAME='CMS'
0045 else
0046 write(6,*)'LAB system is used -------------------------------'
0047 FRAME='LAB'
0048 endif
0049
0050 write(6,*)'Enter the corresponding energy per NN collisions (GeV)'
0051
0052 read(5,*) EFRM
0053
0054 write(6,*)
0055 write(6,*)'Enter a type of the projectile particle'
0056 write(6,*)
0057 write(6,*)' P proton, PBAR anti-proton,'
0058 write(6,*)' N neutron, NBAR anti-neutron,'
0059 write(6,*)' PI+ - positive pion, PI- negative pion,'
0060 write(6,*)' K+ positive kaon, K- negative kaon'
0061 write(6,*)' A - nucleus --------------------------'
0062
0063 read(5,1002) PROJ
0064 1002 format(A8)
0065
0066 if(PROJ.ne.'A') then
0067 IAP=1
0068 if(PROJ.eq.'P' ) IZP= 1
0069 if(PROJ.eq.'PBAR') IZP=-1
0070 if(PROJ.eq.'N' ) IZP= 0
0071 if(PROJ.eq.'NBAR') IZP= 0
0072 if(PROJ.eq.'PI+' ) IZP= 1
0073 if(PROJ.eq.'PI-' ) IZP=-1
0074 if(PROJ.eq.'K+' ) IZP= 1
0075 if(PROJ.eq.'K-' ) IZP=-1
0076 else
0077 write(6,*)
0078 write(6,*)'Enter mass number and charge of the proj. nucleus'
0079 read(5,*) IAP, IZP
0080 endif
0081
0082 write(6,*)
0083 write(6,*)'Enter a type of the target particle (same notations)'
0084 read(5,1002) TARG
0085
0086 if(TARG.ne.'A') then
0087 IAT=1
0088 if(TARG.eq.'P' ) IZT= 1
0089 if(TARG.eq.'PBAR') IZT=-1
0090 if(TARG.eq.'N' ) IZT= 0
0091 if(TARG.eq.'NBAR') IZT= 0
0092 if(TARG.eq.'PI+' ) IZT= 1
0093 if(TARG.eq.'PI-' ) IZT=-1
0094 if(TARG.eq.'K+' ) IZT= 1
0095 if(TARG.eq.'K-' ) IZT=-1
0096 else
0097 write(6,*)
0098 write(6,*)'Enter mass number and charge of the target nucleus'
0099 read(5,*) IAT, IZT
0100 endif
0101
0102 write(6,*)
0103 write(6,*)'Enter number of events'
0104 read(5,*) N_events
0105
0106 write(6,*)'Enter FILENAME for HBOOK output'
0107 read(5,1003) FNAME
0108 1003 format(A12)
0109
0110
0111 CALL HIJSET(EFRM,FRAME,PROJ,TARG,IAP,IZP,IAT,IZT)
0112
0113
0114 WRITE(6,*)' Simulation of interactions with'
0115 WRITE(6,*)
0116 WRITE(6,*)' Proj = ',PROJ,' and Targ = ',TARG
0117 WRITE(6,*)' IAP =',IAP ,' IAT =',IAT
0118 WRITE(6,*)' IZP =',IZP ,' IZT =',IZT
0119 WRITE(6,*)
0120 WRITE(6,*)' Reference frame - ',FRAME
0121 WRITE(6,*)' ENERGY ',EFRM,' GeV'
0122 WRITE(6,*)' Number of generated events -',N_events
0123 WRITE(6,*)
0124
0125 BMIN=0.
0126 BMAX=HIPR1(34)+HIPR1(35)
0127
0128 WRITE(6,*)
0129
0130
0131 CALL HLIMIT(NWPAWC)
0132
0133
0134
0135
0136 Nu_max=MIN(IAP*IAT+1,2000)
0137
0138 if(PROJ.eq.'A'.or.TARG.eq.'A') then
0139 CH_max=5*Nu_max/2.
0140 else
0141 CH_max=99.5
0142 endif
0143
0144 CALL HBOOK1(10,' Pi0 meson multiplicity distribution',
0145 ,100,-0.5,CH_max,0.)
0146
0147 if(FRAME.eq.'CMS') then
0148 Eta_l=-15.
0149 Eta_h=+15.
0150 else
0151 Eta_l=-2.0
0152 Eta_h=Alog(2.*EFRM)+2.
0153 endif
0154 NbinEta=(Eta_h-Eta_l)/0.2
0155
0156 CALL HBOOK1(20,' Pi0 meson pseudo-rapidity distribution',
0157 ,NbinEta,Eta_l,Eta_h,0.)
0158
0159 if(FRAME.eq.'CMS') then
0160 Y_l=-Alog(EFRM)-2.
0161 Y_h=+Alog(EFRM)+2.
0162 else
0163 Y_l=-2.0
0164 Y_h=Alog(2.*EFRM)+2.
0165 endif
0166 NbinY=(Y_h-Y_l)/0.2
0167
0168 CALL HBOOK1(30,' Pi0 meson rapidity distribution',
0169 ,NbinY,Y_l,Y_h,0.)
0170
0171 CALL HBOOK1(40,' Pi0 meson Pt distribution',
0172 ,100,0.,10.,0.)
0173
0174 if(FRAME.eq.'CMS') then
0175 E_l= 0.
0176 E_h=EFRM/2.
0177 else
0178 E_l= 0.
0179 E_h=EFRM
0180 endif
0181 NbinE=(E_h-E_l)/0.5
0182
0183 CALL HBOOK1(50,' Pi0 meson energy distribution',
0184 ,NbinE,E_l,E_h,0.)
0185
0186 CALL HBOOK1(60,' Pi0 meson Cos(Theta) distribution',
0187 ,40,-1.,1.,0.)
0188
0189 CALL HBOOK1(70,' Pi0 meson Phi distribution',
0190 ,180,0.,180.,0.)
0191
0192 CALL HBOOK2(80,' Phi - Eta correlation of Pi0 meson',
0193 ,NbinEta,Eta_l,Eta_h,180,-180.,180.,0.)
0194
0195
0196
0197
0198 CALL HBOOK1(110,' Lambda0 multiplicity distribution',
0199 ,100,-0.5,float(IAP+IAT),0.)
0200
0201 CALL HBOOK1(120,' Lambda0 pseudo-rapidity distribution',
0202 ,NbinEta,Eta_l,Eta_h,0.)
0203
0204 CALL HBOOK1(130,' Lambda0 rapidity distribution',
0205 ,NbinY,Y_l,Y_h,0.)
0206
0207 CALL HBOOK1(140,' Lambda0 Pt distribution',
0208 ,100,0.,10.,0.)
0209
0210 CALL HBOOK1(150,' Lambda0 energy distribution',
0211 ,NbinE,E_l,E_h,0.)
0212
0213 CALL HBOOK1(160,' Lambda0 Cos(Theta) distribution',
0214 ,40,-1.,1.,0.)
0215
0216 CALL HBOOK1(170,' Lambda0 Phi distribution',
0217 ,180,0.,180.,0.)
0218
0219 CALL HBOOK2(180,' Phi - Eta correlation of Lambda0',
0220 ,NbinEta,Eta_l,Eta_h,180,-180.,180.,0.)
0221
0222
0223
0224
0225 CALL HBOOK1(210,' K0S multiplicity distribution',
0226 ,100,-0.5,CH_max,0.)
0227
0228 CALL HBOOK1(220,' K0S pseudo-rapidity distribution',
0229 ,NbinEta,Eta_l,Eta_h,0.)
0230
0231 CALL HBOOK1(230,' K0S rapidity distribution',
0232 ,NbinY,Y_l,Y_h,0.)
0233
0234 CALL HBOOK1(240,' K0S Pt distribution',
0235 ,100,0.,10.,0.)
0236
0237 CALL HBOOK1(250,' K0S energy distribution',
0238 ,NbinE,E_l,E_h,0.)
0239
0240 CALL HBOOK1(260,' K0S Cos(Theta) distribution',
0241 ,40,-1.,1.,0.)
0242
0243 CALL HBOOK1(270,' K0S Phi distribution',
0244 ,180,0.,180.,0.)
0245
0246 CALL HBOOK2(280,' Phi - Eta correlation of K0S',
0247 ,NbinEta,Eta_l,Eta_h,180,-180.,180.,0.)
0248
0249
0250
0251
0252 CALL HBOOK1(310,' Phi meson multiplicity distribution',
0253 ,100,-0.5,CH_max/3.,0.)
0254
0255 CALL HBOOK1(320,' Phi meson pseudo-rapidity distribution',
0256 ,NbinEta,Eta_l,Eta_h,0.)
0257
0258 CALL HBOOK1(330,' Phi meson rapidity distribution',
0259 ,NbinY,Y_l,Y_h,0.)
0260
0261 CALL HBOOK1(340,' Phi meson Pt distribution',
0262 ,100,0.,10.,0.)
0263
0264 CALL HBOOK1(350,' Phi meson energy distribution',
0265 ,NbinE,E_l,E_h,0.)
0266
0267 CALL HBOOK1(360,' Phi meson Cos(Theta) distribution',
0268 ,40,-1.,1.,0.)
0269
0270 CALL HBOOK1(370,' Phi meson Phi distribution',
0271 ,180,0.,180.,0.)
0272
0273 CALL HBOOK2(380,' Phi - Eta correlation of Phi meson',
0274 ,NbinEta,Eta_l,Eta_h,180,-180.,180.,0.)
0275
0276
0277
0278 IHPR2(12)=1 ! To suppress the particle decays
0279 CALL LUGIVE('MDCY(C333,1)=0') ! To suppress Phi decay
0280
0281
0282
0283 Pi=4.*ATAN(1.) ! 3.14159
0284
0285 DO 2000 I_event=1,N_events
0286
0287 WRITE(6,*)' Event # ',I_event,' ------------------'
0288
0289 CALL HIJING(FRAME,BMIN,BMAX)
0290
0291 N_pi0=0
0292 N_lam=0
0293 N_k0s=0
0294 N_phi=0
0295
0296
0297 DO 3000 I=1,NATT
0298
0299
0300
0301 if(KATT(I,2).eq. 0) go to 3000 ! reject non-interacting projectile
0302 if(KATT(I,2).eq. 1) go to 3000 ! reject elastic scattering
0303 if(KATT(I,2).eq.10) go to 3000 ! reject non-interacting target
0304 if(KATT(I,2).eq.11) go to 3000 ! reject elastic scattering
0305
0306 ID=KATT(i,1)
0307
0308 ICH=LUCHGE(KATT(I,1))/3
0309
0310 Amass=ULMASS(KATT(I,1))
0311
0312 E=PATT(i,4)
0313 Pz=PATT(i,3)
0314 Pt=sqrt(PATT(i,1)**2+PATT(i,2)**2)
0315 P=sqrt(Pz**2+Pt**2)
0316
0317 if(P-Pz.ge.1.0e-4) then
0318 Eta= 0.5*Alog((P+Pz)/(P-Pz))
0319 elseif(P+Pz.ge.1.0e-4) then
0320 Eta=-0.5*Alog((P-Pz)/(P+pz))
0321 else
0322 Eta=15.
0323 endif
0324
0325 if(E-Pz.ge.1.0e-4) then
0326 Y= 0.5*Alog((E+Pz)/(E-Pz))
0327 elseif(E+Pz.ge.1.0e-4) then
0328 Y=-0.5*Alog((E-Pz)/(E+pz))
0329 else
0330 Y=15.
0331 endif
0332
0333
0334 if(P.ge.1.0e-4) then
0335 Cos_Theta=Pz/P
0336 else
0337 Cos_Theta=1.
0338 endif
0339
0340 Phi=ULANGL(PATT(i,1),PATT(i,2))*180./Pi
0341
0342
0343 if(ID.eq.111) then ! Pi_0
0344 N_pi0=N_pi0+1
0345
0346 Call HF1(20,Eta,1.)
0347 Call HF1(30, Y,1.)
0348 Call HF1(40, Pt,1.)
0349 Call HF1(50, E,1.)
0350 Call HF1(60,Cos_Theta,1.)
0351 Call HF1(70,Phi,1.)
0352 Call HFILL(80,Eta,Phi,1.)
0353 Call Hf1(90,Float(Id),1.)
0354 endif
0355
0356 if(ID.eq.3122) then ! Lambda0
0357 N_lam=N_lam+1
0358
0359 Call HF1(120,Eta,1.)
0360 Call HF1(130, Y,1.)
0361 Call HF1(140, Pt,1.)
0362 Call HF1(150, E,1.)
0363 Call HF1(160,Cos_Theta,1.)
0364 Call HF1(170,Phi,1.)
0365 Call HFILL(180,Eta,Phi,1.)
0366 endif
0367
0368 if(ID.eq.310) then ! K0_S
0369 N_k0s=N_k0s+1
0370
0371 Call HF1(220,Eta,1.)
0372 Call HF1(230, Y,1.)
0373 Call HF1(240, Pt,1.)
0374 Call HF1(250, E,1.)
0375 Call HF1(260,Cos_Theta,1.)
0376 Call HF1(270,Phi,1.)
0377 Call HFILL(280,Eta,Phi,1.)
0378 endif
0379
0380 if(Id.eq.333) then ! Phi
0381 N_phi=N_phi+1
0382
0383 Call HF1(320,Eta,1.)
0384 Call HF1(330, Y,1.)
0385 Call HF1(340, Pt,1.)
0386 Call HF1(350, E,1.)
0387 Call HF1(360,Cos_Theta,1.)
0388 Call HF1(370,Phi,1.)
0389 Call HFILL(380,Eta,Phi,1.)
0390 endif
0391
0392 3000 CONTINUE
0393
0394
0395 CALL HF1( 10,float(N_pi0),1.)
0396 CALL HF1(110,float(N_lam),1.)
0397 CALL HF1(210,float(N_k0s),1.)
0398 CALL HF1(310,float(N_phi),1.)
0399
0400 2000 CONTINUE
0401
0402
0403
0404 C1=1./float(N_events) ! Multiplicity distr.
0405 C2=0.
0406
0407 Call HOPERA( 10,'+', 10, 10,C1,C2)
0408 Call HOPERA(110,'+',110,110,C1,C2)
0409 Call HOPERA(210,'+',210,210,C1,C2)
0410 Call HOPERA(310,'+',310,310,C1,C2)
0411
0412 C1=1./float(N_events)/((Eta_h-Eta_l)/NbinEta)! Eta distr.
0413 C2=0.
0414
0415 Call HOPERA( 20,'+', 20, 20,C1,C2)
0416 Call HOPERA(120,'+',120,120,C1,C2)
0417 Call HOPERA(220,'+',220,220,C1,C2)
0418 Call HOPERA(320,'+',320,320,C1,C2)
0419
0420 C1=1./float(N_events)/((Y_h-Y_l)/NbinY) ! Y distr.
0421 C2=0.
0422
0423 Call HOPERA( 30,'+', 30, 30,C1,C2)
0424 Call HOPERA(130,'+',130,130,C1,C2)
0425 Call HOPERA(230,'+',230,230,C1,C2)
0426 Call HOPERA(330,'+',330,330,C1,C2)
0427
0428 C1=1./float(N_events)/0.1 ! Pt distr.
0429 C2=0.
0430
0431 Call HOPERA( 40,'+', 40, 40,C1,C2)
0432 Call HOPERA(140,'+',140,140,C1,C2)
0433 Call HOPERA(240,'+',240,240,C1,C2)
0434 Call HOPERA(340,'+',340,340,C1,C2)
0435
0436 C1=1./float(N_events)/((E_h-E_l)/NbinE) ! E distr.
0437 C2=0.
0438
0439 Call HOPERA( 50,'+', 50, 50,C1,C2)
0440 Call HOPERA(150,'+',150,150,C1,C2)
0441 Call HOPERA(250,'+',250,250,C1,C2)
0442 Call HOPERA(350,'+',350,350,C1,C2)
0443
0444 C1=1./float(N_events)/0.05 ! Cos Theta distr.
0445 C2=0.
0446
0447 Call HOPERA( 60,'+', 60, 60,C1,C2)
0448 Call HOPERA(160,'+',160,160,C1,C2)
0449 Call HOPERA(260,'+',260,260,C1,C2)
0450 Call HOPERA(360,'+',360,360,C1,C2)
0451
0452 C1=1./float(N_events) ! Phi distr.
0453 C2=0.
0454
0455 Call HOPERA( 70,'+', 70, 70,C1,C2)
0456 Call HOPERA(170,'+',170,170,C1,C2)
0457 Call HOPERA(270,'+',270,270,C1,C2)
0458 Call HOPERA(370,'+',370,370,C1,C2)
0459
0460
0461
0462 CALL HRPUT(0,FNAME,'N')
0463 END
0464
0465 FUNCTION RAN(NSEED)
0466 RAN=RLU(NSEED)
0467 RETURN
0468 END