-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPACIAE.sh
1755 lines (1688 loc) · 123 KB
/
PACIAE.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/bin/bash
#SBATCH -J PACIAE_SLURM # Task running name. Arbitrary.
#SBATCH -N 1 # Number of nodes. Modify as needed.
#SBATCH --ntasks-per-node=1 # Number of cores used per node. Modify as needed.
#SBATCH -p middle # Name of sequence. Modify as needed.
# Above statements are for normal LINUX system in PC and the SLURM scheduling
# system on the computing cluster or super-computer.
# Do not delete them but modify them as needed.
# For LSF scheduling system on the computing clusters or super-computers.
APP_NAME=Gsx_normal # Name of sequence. Modify as needed.
NP=18 # Total number of cores used. Modify as needed.
NP_PER_NODE=18 # Number of cores used per node. Modify as needed.
RUN="RAW" # Additional option. Not required to be modified usually.
################################################################################
################################################################################
################################################################################
### ###
### PPPPPPP AAAAA CCCCCCC IIIIIII AAAAA EEEEEEEEE ###
### P p A A C C I A A E ###
### P p A A C I A A E ###
### P p A A C I A A E ###
### PPPPPPP AAAAAAAAA C I AAAAAAAAA EEEEEEEEE ###
### P A A C I A A E ###
### P A A C I A A E ###
### P A A C C I A A E ###
### P A A CCCCCCC IIIIIII A A EEEEEEEEE ###
### ###
################################################################################
################################################################################
# #
# #
################################################################################
# #
# This is a universal toy SHELL-script for PACIAE running on normal LINUX #
# system in the personal-computer and task submitting on SLURM and LSF #
# scheduling systems in the computing cluster and the sunper-computer. #
# #
# Mainly for NN, NA and AA collisions. #
# #
# This shell script will generate usu.dat and Makefile automatically. Then #
# run / submit tasks automatically, too. #
# A series of folders will be generated to store different type of files, #
# including src (source folder, stores the source code files), bin (binary #
# folder, stores binary executable files), log (log records folder, stores #
# running informations) , and etc (editable text configuration folder, #
# stores configuration and other files). The PACIAE running folder with the #
# name of collisions system is also generated for easier management. #
# #
# It makes the (pseudo-)SPMD (single program, multiple data) possible to #
# achieve the (pseudo-)parallel running. #
# Total N events are split up to multiple separate (N/number_of_CPU) events #
# and run simultaneously on multiple processors with different input random #
# seed based on the real-time clock of the machine. #
# This random number generator seed is set in PACIAE internal code (main.f). #
# #
# One needs to note that it's just a pseudo-parallism. In other words, this #
# script just performs PACIAE running one-by-one automatically instead of #
# manual runs. One also needs another program to aggregate and average all #
# the results (in rms.out) after the whole PACIAE running finished. #
# #
# This script has been tested on UBUNTU 20.04 in PC, on SLURM in CCNU #
# FARM-cluster (middle partition), and on LSF in National SuperComputing #
# Center in Shenzhen (NSCCSZ, Gsx_normal partition). #
# #
################################################################################
# #
# How to use: #
# #
# 1. First and formost, give this script file "executable permission" by #
# typing command "chmod +x PACIAE.sh". In addition, one needs "make" #
# tool. Install "make" using the command, for example on UBUNTU, #
# "sudo apt install make". #
# #
# 2. Modify the variabls needed. #
# 2.1 Modify the names of source files for Makefile. They shoud be the #
# same as the real ones (except for name_x, it's user-defined). #
# 2.2 Modify the variables: the number of program-running (n_run, #
# preferably not larger than the total number of CPU cores of the #
# computer), the number of events per program-running (n_eve), #
# and other main setups of incident particles and collisions etc. #
# "(D=)" means default value. #
# Here, the variables are aliases for the ones in usu.dat. #
# More detailed setups can be modified in the closely following #
# usu.dat directly. Search keywords "usu.dat" to find them. #
# 2.3 On SLURM/LSF scheduling systems in the computing cluster and the #
# sunper-computer. One needs modify the additional statements of #
# the settings at the beginning of file. (SBATCH, APP_NAME...) #
# #
# 3. Execution. #
# 3.1 On normal LINUX, to run this script by typing command #
# "./PACIAE.sh". #
# The more recommended command is #
# "time ./PACIAE.sh | tee $(date "+%Y%m%d%H%M%S").log", #
# which stores the screen information to a log file. #
# Also, one can execute them in the backgroud using #
# "nohup ./PACIAE.sh &" or #
# "nohup time ./PACIAE.sh | tee $(date "+%Y%m%d%H%M%S").log &" #
# 3.2 On SLURM: "sbatch PACIAE.sh". On LSF: "bsub PACIAE.sh" #
# #
# By An-Ke Lei at CCNU on 17/10/2022 #
# #
# Last updated by An-Ke Lei on 15/10/2024 #
################################################################################
################################################################################
################################################################################
# Gets current date and time.
echo
current_date_and_time=$(date "+%Y%m%d%H%M%S")
echo "Now is $(date +"%Y-%m-%d %T")"
# mv ./usu.dat ./default_usu.dat
echo
################################################################################
# Modify the following statements as needed. #
################################################################################
################################################################################
################################################################################
#################### Files name ########################
# For Makefile.
name_x="xPaciae.x" # Name of the executable. User-defined.
name_f1="main_30" # Names of the source files.
name_f2="parini_30"
name_f3="parcas_30"
name_f4="sfm_30"
name_f5="coales_30"
name_f6="hadcas_30"
name_f7="analy"
name_f8="p_30"
# name_f9="stahad_30" # Not used now.
# name_f10="eps09" # Not used now.
name_xRms="xRms_analysis.x" #Lei20230608
name_rms="rms_analysis" #Lei20230608
#################### Files name ########################
################################################################################
################################################################################
################################################################################
################################################################################
#################### Variable's alias for usu.dat ####################
#*******************************************************************************
# Setups of the program-running.
# Total number of events in all program-runnings = n_run * n_eve.
n_run=10 # Number of program-running, i.e. total number of CPU cores used.
# n_run=${NP} # Uncommented this line if submit jods on LSF system.
# ((n_run=SLURM_JOB_NUM_NODES*SLURM_NTASKS_PER_NODE)) # Uncommented for SLURM.
n_eve=10 # neve, number of events per program-running (per core).
n_out=1 # (D=neve/10) nout, outputs per n_out events.
n_osc=0 # (D=0) nosc, OSCAR-1997A/1999A/2013A output or not (1/2/3/0)
i_random=1 # (D=1) adj1(26), random generator seed in PYTHIA:
# =0, default PYTHIA seed (19780503), can be used for debug
# =1, seed from the real-time clock (h-min-s-ms)
# >1, seed from adj1(26), can be used for debug
#*******************************************************************************
# Setups of the collision system.
# The "ipden" and "itden" in PACIAE for different systems.
# If others, please select them manually.
i_proj=1 # (D=1) ipden:
# =2, for e+e-
# =11, if projectile is e- (e+)
# =12, if projectile is nu_e (nu_ebar)
# =13, if projectile is mu- (mu+)
# =14, if projectile is nu_mu (nu_mubar)
# =15, if projectile is tau- (tau+)
# =16, if projectile is nu_tau (nu_taubar)
# =0, if projectile is N (anti-N)
# =1, if A
# For N and A, it will be given antomatically.
i_targ=2 # (D=2) itden: (only e-, N (anti-N) and A, no other type)
# =2, for e+e-
# =0, if N (anti-N)
# =1, if A
# For N and A, it will be given antomatically.
# For ep, eA, nu_eA, etc.:
# e-p : nap=1, nzp=-1, ipden=11, itden=0;
# e+p : nap=1, nzp= 1, ipden=11, itden=0;
# e-A : nap=1, nzp=-1, ipden=11, itden=1;
# e+A : nap=1, nzp= 1, ipden=11, itden=1;
# nu_eA : nap=1, nzp=-1, ipden=12, itden=1;
# nu_ebarA : nap=1, nzp= 1, ipden=12, itden=1.
# Setups of the incident particles.
na_proj=197 # nap, nucleon number of projectile
nz_proj=79 # nzp, proton number of projectile
na_targ=197 # nat, nucleon number of target
nz_targ=79 # nzt, proton number of target
# For NN, NA (AN), and AB collisions:
# p+p : 1,1,1,1;
# p+pbar: 1,1,1,-1; pbar+p: 1,-1,1,1
# p+n : 1,1,1, 0; n+p : 1, 0,1,1
# n+n : 1,0,1, 0;
# p+Pb : 1,1,208,82; Pb+p: 208,82,1,1;
# Au+Au : 197,79,197,79; Pb+Pb: 208,82,208,82;
# Xe+Xe : 129,54,129,54; U + U: 238,92,238,92;
# Ag+Ag : 108,47,108,47; Cu+Cu: 63,29,63,29;
# Ru+Ru : 96,44, 96,44; Zr+Zr: 96,40,96,40;
# O + O : 16, 8, 16, 8; C + C: 12, 6,12 ,6.
# For e+e-, lp & (lbar + p) and lA & (lbar + A) collisions:
# e+e- : 1,1,1,-1;
# l+p : 1,1,1,1 wtih i_proj > 10;
# lbar+p: 1,-1,1,1 wtih i_proj > 10;
# l+A : 1,1,A,Z wtih i_proj > 10;
# lbar+A: 1,-1,A,Z wtih i_proj > 10.
#*******************************************************************************
# Setups of the simulation.
i_sim_mode=3 # (D=3) iMode, simulation mode:
# =1, PACIAE hadronic simulation
# =2, PYTHIA-like hadronic simulation
# =3, PACIAE parton-hadron cascade simulation
# =4, D-framework
#*******************************************************************************
# Setups of the collision.
b_min=0 #8.99 #0 #8.76 # bmin, min b parameter
b_max=3.72 #10.19 #3.72 #9.93 # bmax, max b parameter
i_frame=1 # (D=1) ifram, collision frame, 1=collider, 0=fixed target.
energy=200 # (GeV) win, colliding CMS energy SQRT(s_NN) / incident momentum
i_channel=8 # (D=0) nchan, =0: inelastic (INEL)
# 1: Non Single Difractive (NSD)
# 2: Drell-Yan process
# 3: J/psi production
# 4: heavy-flavor production
# 5: direct photon
# 6: soft only
# 7: W+/- production
# 8: PYTHIA default (msel=1)
# 9: Z0 production
i_stage=4 # (D=4) adj1(40), =1, stops event after parini
# 2, ... parcas
# 3, ... hadronization with coal from parini
# 4, ... whole simulation
i_tune=0 # (D=0) i_tune. i.e. MSTP(5) in PYTHIA, tune number
##------------------------------------------------------------------------------
# Setups for A-framework.
prob_Delta_decay=0.9 # (D=0.9) decpro, Delta decay probability in A-framework
#*******************************************************************************
# Setups of the parton initialization (parini).
k_PYTHIA=2.5 # (D=1.5) adj1(10), K factor multiplying the differential
# cross sections for hard parton-parton
# process in PYTHIA.
sig_kPerp=2 # (D=2.) adj1(39), width of parton promordial transverse
# momentum k_perp inside hadron.
#*******************************************************************************
# Setups of the parton cascade/rescattering (parcas).
k_parcas=1 # (D=1.) adj1(1), K factor multiplying on the differential
# cross-section in parton cascade.
# =0, without parton cascade.
#*******************************************************************************
# Setups of the hadronization (sfm/coal).
i_hadronization=0 # (D=0) adj1(12), model for hadronization
# =0, string fragmentation (sfm)
# =1, Monte-Carlo coalescence (coal)
# =2, coal with gluon splitting and
# deexcitation before parcas
# =3, sfm with gluon splitting and
# deexcitation before parcas
i_fragment_function=0 # (D=0) adj1(29), fragmentation function:
# i.e. MSTJ(11). Choice of longitudinal
# fragmentation function, i.e. how large a
# fraction of the energy available a
# newly-created hadron/qqbar takes:
# =1: Lund symmetric fragmentation function
# =2: Field–Feynman(FF) + Peterson/SLAC(P/S)
# =3: LUND + Peterson/SLAC
# =4: LUND + Bowler, default in PYTHIA
# =5: as = 4, but interpolate for c and b
# =0: as = 4 for sfm / random z for coal
p_perp_min=1.9 # (D=1.9) adj1(9), PARP(81) in PYTHIA, effective minimum
# transverse momentum p_erp_min of multiple
# interactions if MSTP(82)=1.
p_perp0=2.5 # (D=2.) parp82, PARP(82) in PYTHIA, regularization scale p_erp_0
# of the transverse-momentum spectrum for multiple
# interactions with MSTP(82) >= 2.
pT_width=0.45 # (D=0.36) adj1(34), i.e. PARJ(21) in PYTHIA, width of pT sampling
##------------------------------------------------------------------------------
## String fragmentation parameter (sfm).
# i_fragment_function=4 # (D=4)
a_lund=0.3 # (D=0.3) adj1(6), alpha in the LUND string fragmentation function.
b_lund=0.1 # (D=0.58) adj1(7), beta.
##------------------------------------------------------------------------------
## Coalescence parameter (Coal).
# i_fragment_function=0 # (D=0)
i_pT_samp=1 # (D=3) i_pT, pT sampling method of the daughter qqbar pair in coal:
# = 1, Gaussian px and py with width PARJ(21)
# = 2, Exponential px and py with width PARJ(21)
# = 3, Exponential pT with width PARJ(21)
# = 4, random pT from mother
# = 5, random px and random py from mother, different factor
# = 6, random (px and py) from mother, the same factor
# = 7, random (px and py) from mother, the same random
# factor as z which related to adj1(29).
# = 8, random pT from mother, the same random
# factor as z which related to adj1(29).
i_pT_max=0 # (D=0) i_pT_max, with/without max value constraint in pT sampling.
e_deex=2 # (D=2.) adj1(17), deexcitation threshold energy.
i_phase_constraint=0 # (D=0) adj1(21), phase-space constraint in coalescence.
# =0, without
# =1, with complete phase-space
# =2, with position-space only
# =3, with momentum-space only
#*******************************************************************************
# Setups of the hadron cascade/rescattering (hadcas).
i_hadcas=1 # (D=1) kjp21, = 0, without hadron cascade; 1, with
ratio_xSec_inel_over_tot=0.85 # (D=0.85) x_ratio, ratio of inela. cross
# section to total cross section
# of hadron-hadron collisions in
# A-framework and hadcas.
# = 0.85 for B- & C-framework
# = automatically calculated at
# E_CMS < 3 GeV in A-framework
################################################################################
# The above setups are enough to run program normally. #
# The following statements are optional. Usually, they are good enough. #
################################################################################
#*******************************************************************************
# The initial geometry and effects.
b_samp=2 # (D=2) psno, b parameter sampling method for [b_min,b_max].
# =0, fixed b
# 1, systematic sampling
# 2, random sampling
i_overlap=1 # (D=1) adj1(30), initial nuclon distribution.
# =0, without more requirements
# =1, distributes the participant nucleons in
# the overlapping region forcely
i_shadow=1 # (D=1) adj1(5), choice of nuclear shadowing for partons.
# =0, without nuclear shadowing,
# =1, Wang's nuclear shadowing (PLB 527(2002)85).
i_cme=1 # (D=1) adj1(23), choice of chiral magnetic effect(CME) for partons.
# =0, without CME-induced charge separation mechanism
# =1, with
parecc=0. # (D=0.) parecc, parameter converting initial spatial space
# eccentricity to final momentum space ellipticity
pT_perturb=0. # (D=0.) smadel, small perturbation of pT ellipse from circle
# when generates transverse momentum
# according to a Gaussian distribution.
##------------------------------------------------------------------------------
# Max simulated volum.
volum_factor=200 # (D=200) para10, factor of effective rescattering region size
# in the partonic and hadronic rescattering.
# ( r_max = para10 * MAX(r_A,r_B) )
ex_volum_factor=1 # (D=1) adj1(28), extra factor of effective rescattering region
# size in the hadronic rescattering.
# ( r_max = para10 * MAX(r_A,r_B) * adj1(28) )
#*******************************************************************************
# Processes in parcas.
i_inelastic=0 # (D=0) iparres, consider inelastic processes or not
# =0, elastic processes 1, 2, 3, 5, 8, and 9 only
# =1, elastic + inelastic
i_inel_proc=7 # (D=7) i_inel_proc, when i_inelastic=1 (iparres=1),
# =6, with all the inelastic processes 4, 6, 7
# =7, only the inelastic process 7
i_t_shower=0 # (D=0) i_time_shower, when i_inelastic=1 (iparres=1),
# =0, without final state time-like parton shower
# =1, with
#*******************************************************************************
# Options in string fragmentation.
i_string_tension=4 # (D=4) kjp22, selects the form of string rension in sfm.
# =1, variable single string tension
# 2, variable multiple string tension
# 3, variable (single+multiple) string tension
# 4, default constant string tension
cp0=1. # (D=1.) cp0, cr0, parameters in parameterization
cr0=0.2 # (D=0.2) of multiple string effect
seco=0.05 # (D-0.05) seco, correction of PARJ(1) in popcorn mechanism
parj4=0.05 # (D=0.05) dparj4, PARJ(4) in PYTHIA
#*******************************************************************************
# Options in coalescence.
i_deex=3 # (D=3) i_deex, the deexcitation mode used in coal
# =1, light-cone variable mode
# =2, energy mode
# =3, light-cone variable mode, local pT compensation,
# and sample z for qqbar.
# =4, light-cone variable mode, local pT compensation,
# and sample z for q0-q or q0-qbar.
i_deex_gen=1 # (D=1) adj1(16), the deexcitation generation of newly qqbar
n_deex_step=999 # (D=999) n_deex_step, the number of deexcitation steps per q.
prob_ratio=(1 1 0.3 0 0 0) # (D= 1 1 0.3 0 0) Probability ratio of
# u:d:s:c:b:t for qqbar sampling.
ratio_B_to_M=0.167 # (D=0.167) bmrat, the ratio of baryons to mesons.
#*******************************************************************************
# Time accuracy.
dt_parini=0.00001 # (D=0.00001) ddt, min distinguishble collision time used in
# the partonic initiation
dt_parcas=0.03 # (D=0.03) adj1(19), time accuracy used in the parton cascade
dt_hadcas=0.1 # (D=0.1) adj1(11), time accuracy used in the hadron cascade
#*******************************************************************************
# Statistical histogram bins in analy. The "asd(i)"" in usu.dat.
bin_1=0.35 # (D=0.35) y bin
bin_2=0.25 # (D=0.5) pT bin (inv. pT)
bin_3=0.35 # (D=0.35) eta bin
bin_4=0.25 # (D=0.3) mT bin
bin_5=25 # (D=25) multiplicity bin
bin_6=0.25 # (D=0.5) pT bin (dN/dpT)
i_y_or_eta=1 # (D=1) yOrEta, selects y or eta in partial-space statistics.
# = 0 , y
# = 1 , eta
# For 20 particles, use the same cuts.
pT_low=0.2 # pT lower cut
pT_upp=5. # pT upper cut
rap_low=0.2 # y/eta lower cut
rap_upp=1.4 # y/eta upper cut
################################################################################
# The following lines do not need to change. Normally automatical calculation. #
################################################################################
#*******************************************************************************
# Total number of events in all program-runnings.
((tot_eve=n_run*n_eve))
# The "ipden" and "itden" in PACIAE for different systems.
i_proj_o=${i_proj}
i_targ_o=${i_targ}
if [[ "${nA_proj}" = "1" ]]; then # For N.
i_proj=0
elif [[ "${nA_proj}" > "1" ]]; then # For A.
i_proj=1
fi
if [[ "${nA_targ}" = "1" ]]; then # For N.
i_targ=0
elif [[ "${nA_targ}" > "1" ]]; then # For A.
i_targ=1
fi
if [[ "${i_proj}" = "0" && "${i_targ}" = "0" ]]; then
b_samp=0
fi
# If others, please select them manully.
#Lei20231106B---------
if [[ "${i_proj_o}" = "2" && "${i_targ_o}" = "2" ]]; then # For e+e-.
i_proj=${i_proj_o}
i_targ=${i_targ_o}
nA_proj=1
nZ_proj=1
nA_targ=1
nZ_targ=-1
b_samp=0
elif [[ "${i_proj_o}" > "1" ]]; then # For lA.
i_proj=${i_proj_o}
# nZ_proj=1
# nZ_proj=-1
if [[ "${i_targ}" = "0" ]]; then # For lN.
nZ_targ=1
b_samp=0
fi
fi
#Lei20231106E---------
# i_proj=1 # ipden =0, if projectile is nucleon (anti-nucleon)
# =1, if nucleus
# =2, for e+e-
# =11, if projectile is e- (e+)
# =12, if projectile is nu_e (nu_ebar)
# =13, if projectile is mu- (mu+)
# =14, if projectile is nu_mu (nu_mubar)
# =15, if projectile is tau- (tau+)
# =16, if projectile is nu_tau (nu_taubar)
# i_targ=1 # itden =0, if target is nucleon (anti-nucleon)
# =1, if nucleus
# =2, for e+e-
#...
# for eA, nu_eA, etc.:
# e^-A: nap=1, nzp=-1, ipden=11, itden=1,
# e^+A: nap=1, nzp=1, ipden=11, itden=1,
# nu_eA: nap=1, nzp=-1, ipden=12, itden=1,
# nu_ebarA: nap=1, nzp=1, ipden=12, itden=1,
#################### Variable's alias for usu.dat ####################
################################################################################
################################################################################
# More options could be modified on the following "usu.dat" directly.
################################################################################
################################################################################
#################### usu.dat ########################
echo "${n_eve},${n_out},${n_osc} ! neve,nout,nosc" > usu.dat
echo "${na_proj},${nz_proj},${na_targ},${nz_targ} ! nap,nzp,nat,nzt" >> usu.dat
echo "${dt_parini},${ratio_xSec_inel_over_tot},${b_min},${b_max},10 ! ddt,x_ratio,bmin,bmax,nmax" >> usu.dat
echo "${i_hadcas},${i_frame},1.2,${volum_factor},1 ! kjp21,ifram,para7,para10,kjp20" >> usu.dat
echo "3.1416,${i_proj},${i_targ} ! pio,ipden,itden" >> usu.dat
echo "20,6,2 ! ispmax,isdmax,iflmax" >> usu.dat
echo "0,0,0,0,0,0,0,0,0,0 ! KF code of particles not to decay" >> usu.dat
echo "0,0,0,0,0,0,0,0,0,0 ! KF code of particles not to decay" >> usu.dat
echo "211,-211,321,-321,3122,-3122,3312,-3312,3334,-3334 ! KF code of particles to be analyzed online" >> usu.dat
echo "2212,-2212,2112,-2112,3212,-3212,3112,3222,333,443 ! KF code of particles to be analyzed online" >> usu.dat
echo "${bin_1},${bin_2},${bin_3},${bin_4},${bin_5},${bin_6} ! asd(i), i=1,6" >> usu.dat
echo "${rap_low},${rap_upp} ! afl(j=1,i=1,1), afl(j=1,i=1,2) " >> usu.dat
echo "${pT_low},${pT_upp} ! afl(j=1,i=2,1), afl(j=1,i=2,2) " >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "${rap_low},${rap_upp}" >> usu.dat
echo "${pT_low},${pT_upp}" >> usu.dat
echo "2.7,${i_y_or_eta},${energy} ! parp2,yOrEta,win" >> usu.dat
echo "0.,0.5,1,1,${i_channel} ! ttaup,taujp,iabsb,iabsm,nchan" >> usu.dat
echo "7.2,4.,${b_samp},40.,20.,0.,0.1 ! para13,para14,psno,para15,para16,ajpsi,vneum" >> usu.dat
echo "0,40,25,10 ! para1_1,para1_2,para2,para4" >> usu.dat
echo "${i_deex},${n_deex_step},${i_pT_samp},${i_pT_max},${i_tune},2 ! i_deex,n_deex_step,i_pT,i_pT_max,i_tune,i_mm" >> usu.dat
echo "0.77,0.05,0.005,${p_perp0},${ratio_B_to_M} ! a_FF,aPS_c,aPS_b,parp82,bmrat" >> usu.dat
echo "1,${i_inel_proc},${i_t_shower},${i_sim_mode},${prob_Delta_decay},2 ! mstu21,i_inel_proc,i_time_shower,iMode,decpro,itorw" >> usu.dat
echo "${k_parcas},0.47,0.4,1000,${i_shadow},${a_lund},${b_lund},4,${p_perp_min},${k_PYTHIA} ! adj1(1)- adj1(10) " >> usu.dat
echo "${dt_hadcas},${i_hadronization},30,45,1.,${i_deex_gen},${e_deex},0,${dt_parcas},1 ! adj1(11)- adj1(20) " >> usu.dat
echo "${i_phase_constraint},4.,${i_cme},0.15,0.4,${i_random},800000.,${ex_volum_factor},${i_fragment_function},${i_overlap} ! adj1(21)- adj1(30) " >> usu.dat
echo "0.1,0.3,0.4,${pT_width},1,0,100.,3.,${sig_kPerp},${i_stage} ! adj1(31)- adj1(40) " >> usu.dat
echo "${i_string_tension},2,2,0.025,0 ! kjp22,kjp23,kjp24,parp78,mstptj" >> usu.dat
echo "${parecc},${i_inelastic},${pT_perturb},${parj4},${cp0},${cr0},${seco} ! parecc,iparres,smadel,dparj4,cp0,cr0,seco" >> usu.dat
echo "${prob_ratio[0]},${prob_ratio[1]},${prob_ratio[2]},${prob_ratio[3]},${prob_ratio[4]},${prob_ratio[5]} ! prob_ratio_q" >> usu.dat
#################### usu.dat ########################
################################################################################
#################### ########################
#################### Annotation of usu.dat ########################
#################### ########################
################################################################################
echo "" >> usu.dat
echo "###################### Annotation of usu.dat ####################" >> usu.dat
echo "# neve,nout,nosc (D=xxx, xxx/10, 0)" >> usu.dat
echo "# neve: events number to be generated" >> usu.dat
echo "# nout: output the event per nout events" >> usu.dat
echo "# nosc: OSCAR standard output (oscar.out)" >> usu.dat
echo "# = 0 : no OSCAR output, see subroutine oscar" >> usu.dat
echo "# = 1 : OSCAR1997A (final_id_p_x, just PACIAE final output)" >> usu.dat
echo "# = 2 : OSCAR1999A (full_event_history)" >> usu.dat
echo "# = 3 : OSCAR2013A (full_event_history, dummy now)" >> usu.dat
echo "#" >> usu.dat
echo "# nap,nzp,nat,nzt (D=197, 79, 197, 79 or 208, 82, 208, 82)" >> usu.dat
echo "# for NN, NA(AN), AA, etc." >> usu.dat
echo "# nap(nzp): nucleons (protons) number of projectile" >> usu.dat
echo "# nat(nzt): nucleons (protons) number of target" >> usu.dat
echo "# for NN along with ipden=itden=0" >> usu.dat
echo "# p+p : 1, 1, 1, 1 ;" >> usu.dat
echo "# p+pbar: 1, 1, 1,-1 ;" >> usu.dat
echo "# pbar+p: 1,-1, 1, 1 ;" >> usu.dat
echo "# p+n : 1, 1, 1, 0 ;" >> usu.dat
echo "# n+p : 1, 0, 1, 1 ;" >> usu.dat
echo "# n+n : 1, 0, 1, 0 ;" >> usu.dat
echo "# for pA(Ap) along with ipden=0, itden=1 (ipden=1, itden=0)" >> usu.dat
echo "# p+Pb : 1, 1, 208, 82;" >> usu.dat
echo "# Pb+p : 208, 82, 1, 1;" >> usu.dat
echo "# for A+B along with ipden=itden=1" >> usu.dat
echo "# Au+Au: 197, 79, 197, 79; Pb+Pb: 208, 82, 208, 82;" >> usu.dat
echo "# Xe+Xe: 129, 54, 129, 54; U + U: 238, 92, 238, 92;" >> usu.dat
echo "# Ag+Ag: 108, 47, 108, 47; Cu+Cu: 63, 29, 63, 29;" >> usu.dat
echo "# Ru+Ru: 96, 44, 96, 44; Zr+Zr: 96, 40, 96, 40;" >> usu.dat
echo "# O + O: 16, 8, 16, 8; C + C: 12, 6, 12, 6." >> usu.dat
echo "# for e+e-, lp & (lbar + p) and lA & (lbar + A) collisions:" >> usu.dat
echo "# e+e- : 1,1,1,-1;" >> usu.dat
echo "# l+p : 1,1,1,1 with ipden > 10;" >> usu.dat
echo "# lbar+p: 1,-1,1,1 with ipden > 10;" >> usu.dat
echo "# l+A : 1,1,A,Z with ipden > 10;" >> usu.dat
echo "# lbar+A: 1,-1,A,Z with ipden > 10." >> usu.dat
echo "# for ep, eA, nu_eA, etc." >> usu.dat
echo "# e^-p: nap=1, nzp=-1, ipden=11, itden=0," >> usu.dat
echo "# e^+p: nap=1, nzp= 1, ipden=11, itden=0," >> usu.dat
echo "# e^-A: nap=1, nzp=-1, ipden=11, itden=1," >> usu.dat
echo "# e^+A: nap=1, nzp= 1, ipden=11, itden=1," >> usu.dat
echo "# nu_eA: nap=1, nzp=-1, ipden=12, itden=1," >> usu.dat
echo "# nu_ebarA: nap=1, nzp= 1, ipden=12, itden=1." >> usu.dat
echo "#" >> usu.dat
echo "# ddt,x_ratio,bmin,bmax,nmax (D=0.00001, 0.85, xxx, xxx, 10)" >> usu.dat
echo "# ddt: minimum distinguishble collision time interval used in " >> usu.dat
echo "# partonic initiation in parini.f" >> usu.dat
echo "# x_ratio: param(6), ratio of inel. cross section to total cross " >> usu.dat
echo "# section of hadron-hadron scattering, automatically " >> usu.dat
echo "# calculated at E_CMS < 3 GeV in A-framework" >> usu.dat
echo "# bmin: minimum impact parameters, " >> usu.dat
echo "# bmax: maximum impact parameters," >> usu.dat
echo "# nmax: the number of intervals segmented in [bmin,bmax] when psno=1" >> usu.dat
echo "#" >> usu.dat
echo "# kjp21,ifram,para7,para10,kjp20 (D=1, 1, 1.2, 200, 1)" >> usu.dat
echo "# kjp21: =0, without hadron rescattering" >> usu.dat
echo "# =1, with hadron rescattering" >> usu.dat
echo "# ifram: choice collision system type" >> usu.dat
echo "# =0, fixed target" >> usu.dat
echo "# =1, collider" >> usu.dat
echo "# para7: proper formation time in rest-frame of particle" >> usu.dat
echo "# para10: largest allowed size of partonic (hadronic) rescattering" >> usu.dat
echo "# region which is product of para10 and target radius" >> usu.dat
echo "# kjp20: choice the cross sections in hadron rescattering (hadcas.f)" >> usu.dat
echo "# =1, constant cross sections " >> usu.dat
echo "# =0, energy dependent cross sections" >> usu.dat
echo "#" >> usu.dat
echo "# pio,ipden,itden (D=3.1416, 1, 1 for A+B)" >> usu.dat
echo "# pio: pi=3.1416" >> usu.dat
echo "# ipden: =0, if projectile is nucleon (anti-nucleon)" >> usu.dat
echo "# =1, if projectile is nucleus" >> usu.dat
echo "# =2, for e+e-" >> usu.dat
echo "# =11, if projectile is e- (e+)" >> usu.dat
echo "# =12, if projectile is nu_e (nu_ebar)" >> usu.dat
echo "# =13, if projectile is mu- (mu+)" >> usu.dat
echo "# =14, if projectile is nu_mu (nu_mubar)" >> usu.dat
echo "# =15, if projectile is tau- (tau+)" >> usu.dat
echo "# =16, if projectile is nu_tau (nu_taubar)" >> usu.dat
echo "# itden: =0, if target is nucleon (anti-nucleon)" >> usu.dat
echo "# =1, if projectile is nucleus" >> usu.dat
echo "# =2, for e+e-" >> usu.dat
echo "# ..." >> usu.dat
echo "#" >> usu.dat
echo "# ispmax,isdmax,iflmax (D=20, 6, 2)" >> usu.dat
echo "# ispmax: maximum # of different particle pieces to be considered" >> usu.dat
echo "# isdmax: maximum # of different distributions to be considered" >> usu.dat
echo "# iflmax: maximum # of windows to be set, =0 means no window at all" >> usu.dat
echo "#" >> usu.dat
echo "# ispkf(i,i=1,ispmax):" >> usu.dat
echo "# KF code: particle code used in PYTHIA and PACIAE, " >> usu.dat
echo "# (list at the end and see detail in reference: arXiv:hep-ph/0603175)" >> usu.dat
echo "#" >> usu.dat
echo "# asd(i=1,isdmax): interval of the i-th distribution" >> usu.dat
echo "# for pp, pbarp, pA(Ap), AB etc." >> usu.dat
echo "# (D=0.35, 0.5, 0.35, 0.3, 25, 0.5)" >> usu.dat
echo "# i=1: rapidity distribution (dN/dy v.s. y)" >> usu.dat
echo "# =2: invariant transverse momentum distribution (1/pT*dN/dpT v.s. pT)" >> usu.dat
echo "# =3: pesudorapidity distribution (dN/deta v.s. eta)" >> usu.dat
echo "# =4: transverse mass distribution (1/mT*dN/dmT v.s. mT)" >> usu.dat
echo "# =5: event-wise multiplicity distribution" >> usu.dat
echo "# =6: transverse momentum distribution (dN/dpT v.s. pT)" >> usu.dat
echo "# for ep, nu_ep, etc." >> usu.dat
echo "# i=1: Q^2=-q^2 (fq2 in code) distribution" >> usu.dat
echo "# =2: W^2 (w21) distribution" >> usu.dat
echo "# =3: y (yyl) distribution" >> usu.dat
echo "# =4: p_h (pph) distribution" >> usu.dat
echo "# =5: z (zl) distribution" >> usu.dat
echo "#" >> usu.dat
echo "# afl(j,i,1): lower-boundary of i-th window for j-th particle" >> usu.dat
echo "# afl(j,i,2): upper-boundary of i-th window for j-th particle" >> usu.dat
echo "# for pp, pbarp, pA(Ap), AB etc." >> usu.dat
echo "# i=1, rapidity/pesudorapidity window (D= -1.,1. )" >> usu.dat
echo "# =2, transverse momentum (D= 0.,50. )" >> usu.dat
echo "# for ep, nu_ep, etc." >> usu.dat
echo "# i=1, Q^2=-q^2 window" >> usu.dat
echo "# =2, W^2" >> usu.dat
echo "# =3, y" >> usu.dat
echo "# =4, p_h (hadron momentum)" >> usu.dat
echo "# =5: z" >> usu.dat
echo "#" >> usu.dat
echo "# parp2,yOrEta,win (D=2.7, 1, xxx)" >> usu.dat
echo "# parp2: lowest CM energy running 'PYTHIA'" >> usu.dat
echo "# yOrEta: select y or eta in partial phase-space statistics (analy.f)" >> usu.dat
echo "# = 0 , y" >> usu.dat
echo "# = 1 , eta" >> usu.dat
echo "# win = cms energy if ifram=1 (collider)" >> usu.dat
echo "# = incident momentum if ifram=0 (fixed target)" >> usu.dat
echo "#" >> usu.dat
echo "# ttaup,taujp,iabsb,iabsm,nchan (D=0., 0.5, 1, 1, 8)" >> usu.dat
echo "# ttaup: proper formation time of particles generated in hadronic rescattering" >> usu.dat
echo "# taujp: formation time of J/psi" >> usu.dat
echo "# iabsb: =0, without J/psi (psi') + baryon" >> usu.dat
echo "# =1, with J/psi (psi') + baryon" >> usu.dat
echo "# iabsm: =0, without J/psi (psi') + meson" >> usu.dat
echo "# =1, with J/psi (psi') + meson" >> usu.dat
echo "# nchan: to choose which subset of parton-parton subprocesses to include in" >> usu.dat
echo "# the generration" >> usu.dat
echo "# =0, inelastic (INEL)" >> usu.dat
echo "# =1, Non-Single Difractive (NSD)" >> usu.dat
echo "# =2, Drell-Yan process" >> usu.dat
echo "# =3, J/psi production" >> usu.dat
echo "# =4, heavy-flavor production" >> usu.dat
echo "# =5, direct photon" >> usu.dat
echo "# =6, soft only" >> usu.dat
echo "# =7, W+/- production" >> usu.dat
echo "# =8: PYTHIA default (MSEL=1)" >> usu.dat
echo "# =9: Z0 production" >> usu.dat
echo "#" >> usu.dat
echo "# para13,para14,psno,para15,para16,ajpsi,vneum (D=7.2, 4., 2, 40., 20., 0, 0.1)" >> usu.dat
echo "# para13: total cross-section of J/psi + n" >> usu.dat
echo "# para14: total cross-section of J/psi + meson" >> usu.dat
echo "# psno: =0 fixed impact parameter" >> usu.dat
echo "# =1 impact parameter is sampled by systematic sampling method" >> usu.dat
echo "# =2 randomly sampled impact parameter" >> usu.dat
echo "# para15: total cross-section of psi' + n" >> usu.dat
echo "# para16: total cross-section of psi' + meson" >> usu.dat
echo "# ajpsi: not used now" >> usu.dat
echo "# vneum: relevant to average binary collision number, now it is recalculated" >> usu.dat
echo "# in program" >> usu.dat
echo "#" >> usu.dat
echo "# para1_1,para1_2,para2,para4 (D= 0, 40, 25, 10)" >> usu.dat
echo "# para1_1: nn total cross section used in parton initiation" >> usu.dat
echo "# (now it will be recalculated in program)" >> usu.dat
echo "# para1_2: nn total cross section used in hadron cascade" >> usu.dat
echo "# para2: total cross-section of pi-nucleon" >> usu.dat
echo "# para4: total cross-section of pi-pi" >> usu.dat
echo "#" >> usu.dat
echo "# i_deex,n_deex_step,i_pT,i_pT_max,i_tune,i_mm" >> usu.dat
echo "# (D=3, 999, 1, 0, 0, 2)" >> usu.dat
echo "# i_deex: the deexcitation mode used in coal" >> usu.dat
echo "# = 1, light-cone variable mode" >> usu.dat
echo "# = 2, energy mode" >> usu.dat
echo "# = 3, light-cone variable mode, with local pT compensation " >> usu.dat
echo "# and sampling z for qqbar" >> usu.dat
echo "# = 4, energy mode, with local pT compensation " >> usu.dat
echo "# and sampling z for qqbar" >> usu.dat
echo "# n_deex_step: the number of deexcitation steps per q/qbar" >> usu.dat
echo "# i_pT: the pT sampling method of the daughter qqbar pair in coal" >> usu.dat
echo "# = 1, Gaussian px and py with width PARJ(21)" >> usu.dat
echo "# = 2, Exponential px and py with width PARJ(21)" >> usu.dat
echo "# = 3, Exponential pT with width PARJ(21)" >> usu.dat
echo "# = 4, random pT from mother" >> usu.dat
echo "# = 5, random px and random py from mother, different random factors" >> usu.dat
echo "# = 6, random (px and py) from mother, the same random factor" >> usu.dat
echo "# = 7, random (px and py) from mother, the same random factor as " >> usu.dat
echo "# z which related to adj1(29)" >> usu.dat
echo "# i_pT_max: whether the sampled pT in coal deexitation is greater than the " >> usu.dat
echo "# the mother quark or not." >> usu.dat
echo "# i_tune: MSTP(5), tune number of PYTHIA. = 350, Perugia 2011 tune." >> usu.dat
echo "# i_mm: only the hadrons below numb(i_mm) (cf. 'filt' in parini.f)" >> usu.dat
echo "# join in updating the hh collision time list (cf. parini.f)." >> usu.dat
echo "# Originally i_mm=2, i.e. only p (proton) and n (neutron) join in" >> usu.dat
echo "# updating the collision time list in parton initialization;" >> usu.dat
echo "# if i_mm=6, p, n, pbar, nbar, pi+ and pi- will join in updating" >> usu.dat
echo "# the collision time list in parton initialization." >> usu.dat
echo "#" >> usu.dat
echo "# a_FF,aPS_c,aPS_b,parp82,bmrat" >> usu.dat
echo "# (D=0.77, 0.05, 0.005, 2., 0.167)" >> usu.dat
echo "# a_FF: parameter for light hadron in Field-Feynman function, i.e. u, d, and s " >> usu.dat
echo "# hadron --PARJ(51), (52), and (53)--, set them equal" >> usu.dat
echo "# aPS_c: -PARJ(54), parameter for charm-hadron in Petersono/SLAC" >> usu.dat
echo "# aPS_b: -PARJ(55), parameter for bottom-hadron in P/S function, note the minus" >> usu.dat
echo "# parp82: PARP(82) in PYTHIA, regularization scale p_erp_0 of the " >> usu.dat
echo "# transverse-momentum spectrum for multiple interactions with " >> usu.dat
echo "# MSTP(82) >= 2." >> usu.dat
echo "# bmrat: ratio of baryon to meson used in coalescence model." >> usu.dat
echo "#" >> usu.dat
echo "# mstu21,i_inel_proc,i_time_shower,iMode,decpro,itorw (D=1, 7, 0, 3, 0.9, 2)" >> usu.dat
echo "# mstu21: parameter mstu(21) in PYTHIA" >> usu.dat
echo "# i_inel_proc: = 6, with inelastic processes 4, 6, and 7 if iparres=1" >> usu.dat
echo "# = 7, with inelastic process 7 only if iparres=1 (in parcas.f)" >> usu.dat
echo "# i_time_shower: = 0, w/o final state time-like parton shower if iparres=1" >> usu.dat
echo "# = 1, w/ final state time-like parton shower if iparres=1" >> usu.dat
echo "# iMode: =1, low energy simulation A-framework" >> usu.dat
echo "# =2, PYTHIA-like simulation B-framework" >> usu.dat
echo "# =3, PACIAE simulation C-framework" >> usu.dat
echo "# =4, PACIAE simulation D-framework" >> usu.dat
echo "# decpro: is Delta decay probability in low energy A-framework" >> usu.dat
echo "# itorw: =1, executing pyevnt" >> usu.dat
echo "# =2, executing pyevnw" >> usu.dat
echo "#" >> usu.dat
echo "# adj1(i), i=1,40: switches and/or parameters" >> usu.dat
echo "# --------------------------------------------------------------------------------" >> usu.dat
echo "# D= 1-10 : 1., 0.47, 0.4, 1000, 1, 0.3, 0.58, 4, 1.9, 1.5" >> usu.dat
echo "# 11-20: 0.1, 0, 30, 45, 1., 1, 2., 0, 0.03, 1" >> usu.dat
echo "# 21-30: 0, 4., 1, 0.15, 0.4, 1, 800000., 1., 4, 0" >> usu.dat
echo "# 31-40: 0.1, 0.3, 0.4, 0.36, 1, 0, 100., 3., 2., 4." >> usu.dat
echo "# --------------------------------------------------------------------------------" >> usu.dat
echo "# i=1: K factor in parton rescattering; K=0: no parton rescattering." >> usu.dat
echo "# 2: alpha_s, effective coupling constant in parton rescattering." >> usu.dat
echo "# 3: mu^2 (tcut in program), the regulation factor introduced in " >> usu.dat
echo "# the parton-parton differential cross section (parcas)." >> usu.dat
echo "# 4: idw, the number of intervals in the numerical integration." >> usu.dat
echo "# 5: =1: with Wang's nuclear shadowing (PLB 527(2002)85)," >> usu.dat
echo "# =0: without nuclear shadowing." >> usu.dat
echo "# 6: 'a' in the LUND string fragmentation function (PARJ(41) in PYTHIA)." >> usu.dat
echo "# 7: 'b' in the LUND string fragmentation function (PARJ(42) in PYTHIA)." >> usu.dat
echo "# 8: MSTP(82) in PYTHIA." >> usu.dat
echo "# 9: PARP(81) in PYTHIA." >> usu.dat
echo "# 10: K factor (PARP(31) in PYTHIA)." >> usu.dat
echo "# 11: time accuracy used in the hadron rescattering." >> usu.dat
echo "# 12: model for hadronization:" >> usu.dat
echo "# =0, string fragmentation;" >> usu.dat
echo "# =1, Monte Carlo coalescence model;" >> usu.dat
echo "# =2, with gluon splitting & quark deexcitation before parcas and " >> usu.dat
echo "# hadronized by coalescence model;" >> usu.dat
echo "# =3, with gluon splitting & quark deexcitation before parcas and " >> usu.dat
echo "# hadronized by string frafmentation." >> usu.dat
echo "# 13: dimension of meson table considered in coalescence model." >> usu.dat
echo "# 14: dimension of baryon table considered coalescence model." >> usu.dat
echo "# 15: string tension of qqbar simple string." >> usu.dat
echo "# 16: number of loops in the deexcitation of one energetic quark in the " >> usu.dat
echo "# Monte Carlo coalescence model." >> usu.dat
echo "# 17: the threshold energy in the deexcitation of energetic quark in " >> usu.dat
echo "# the Monte Carlo coalescence model." >> usu.dat
echo "# 18: =0, rest partons hadronize by string fragmentation," >> usu.dat
echo "# =1, rest partons hadronize by coalescence." >> usu.dat
echo "# 19: time accuracy used in the parton rescattering." >> usu.dat
echo "# 20: the optional parton-parton cross section in the parton rescattering:" >> usu.dat
echo "# =0, LO pQCD parton-parton cross section," >> usu.dat
echo "# =1, keeping only leading divergent terms in the LO pQCD parton-parton " >> usu.dat
echo "# cross section (B. Zhang)," >> usu.dat
echo "# =2, the same as 0 but flat scattering angle distribution is assumed," >> usu.dat
echo "# =3, the same as 1 but flat scattering angle distribution is assumed." >> usu.dat
echo "# 21: with or without phase space constraint in the Monte Carlo coalescence model:" >> usu.dat
echo "# =0, without phase space constraint," >> usu.dat
echo "# =1, with complete phase space constraint," >> usu.dat
echo "# =2, with spatial phase space constraint only," >> usu.dat
echo "# =3, with momentum phase space constraint only." >> usu.dat
echo "# 22: critical value (D=4) of the product of radii in position and momentum " >> usu.dat
echo "# phase spaces." >> usu.dat
echo "# 23: switch for chiral magnetic effect (CME):" >> usu.dat
echo "# =0: CME off," >> usu.dat
echo "# =1: CME on." >> usu.dat
echo "# 24: the virtuality cut ('tl0' in program) in the time-like radiation in parton " >> usu.dat
echo "# rescattering." >> usu.dat
echo "# 25: Lambda_QCD in parton rescattering." >> usu.dat
echo "# 26: selection of random number seed:" >> usu.dat
echo "# =0, default PYTHIA seed (19780503), can be used for debug," >> usu.dat
echo "# =other, seed from the real-time clock." >> usu.dat
echo "# 27: largest momentum allowed for produced particle." >> usu.dat
echo "# 28: concerned to the largest position allowed for produced particle in " >> usu.dat
echo "# hadcas, it will be recalculated in program running " >> usu.dat
echo "# ( drmax=para10*dmax1(rnt,rnp) )." >> usu.dat
echo "# 29: For sfm in PYTHIA, it is MSTJ(11). Choice of longitudinal " >> usu.dat
echo "# fragmentation function, i.e. how large a fraction of the energy " >> usu.dat
echo "# available a newly-created hadron takes." >> usu.dat
echo "# For coal, sampling deexcited daughter qqbar-pair energy fraction z " >> usu.dat
echo "# taking from mother by 'PYZDIS' in PYTHIA or 'funcz' or random z." >> usu.dat
echo "# =1: Lund symmetric fragmentation function, see PARJ(41) - PARJ(45)" >> usu.dat
echo "# =2: Field-Feynman + Peterson/SLAC, see PARJ(51) PARJ(59)" >> usu.dat
echo "# =3: Lund + Peterson/SLAC (light flavor + heavier)" >> usu.dat
echo "# =4: default PYTHIA. Lund + Bowler" >> usu.dat
echo "# =5: as = 4, but interpolate for c and b; see PARJ(46) and PARJ(47)" >> usu.dat
echo "# =0: as = 4 in sfm / random z in coal" >> usu.dat
echo "# 30: =1, distribute the participant nucleons in overlapping region forcely," >> usu.dat
echo "# =0, without more requirements." >> usu.dat
echo "# 31: PARJ(1) in PYTHIA." >> usu.dat
echo "# 32: PARJ(2) in PYTHIA." >> usu.dat
echo "# 33: PARJ(3) in PYTHIA." >> usu.dat
echo "# 34: PARJ(21) width of px/py/pT sampling in PYPTDI/PAPTDI." >> usu.dat
echo "# 35: MSTP(91) in PYTHIA, parton transverse momentum (k_perp) distribution " >> usu.dat
echo "# inside hadron:" >> usu.dat
echo "# =1: Gaussian," >> usu.dat
echo "# =2: exponential." >> usu.dat
echo "# 36: with or without phenomenological parton energy loss in parton rescattering:" >> usu.dat
echo "# =0, without," >> usu.dat
echo "# =1, with." >> usu.dat
echo "# 37: the coefficient in phenomenological parton energy loss." >> usu.dat
echo "# 38: p_T cut in phenomenological parton energy loss." >> usu.dat
echo "# 39: PARP(91) (D=2.), width of Gaussian parton k_perp distribution in hadron " >> usu.dat
echo "# if MSTP(91)=1," >> usu.dat
echo "# PARP(92) (D=0.4), width of Exponential k_perp distribution in hadron " >> usu.dat
echo "# if MSTP(91)=2 ( ~ PARP(91)/SQRT(6) )." >> usu.dat
echo "# 40: optional event stopping point" >> usu.dat
echo "# =1, after parton initiation," >> usu.dat
echo "# =2, after parton rescattering," >> usu.dat
echo "# =3, after hadronization with coalescence from parton initiation directly," >> usu.dat
echo "# =4, after the whole simulation." >> usu.dat
echo "#" >> usu.dat
echo "# kjp22,kjp23,kjp24,parp78,mstptj (D=4, 2, 2, 0.025, 0)" >> usu.dat
echo "# kjp22: =1, variable single string tension and PARJ(1) etc." >> usu.dat
echo "# =2, variable multiple string tension and PARJ(1) etc." >> usu.dat
echo "# =3, variable (single+multiple) string tension and PARJ(1) etc." >> usu.dat
echo "# =4, default string tension and PARJ(1) etc." >> usu.dat
echo "# kjp23: optional model for the calculation of participant nucleon (Npart)" >> usu.dat
echo "# =1, geometric model" >> usu.dat
echo "# =2, Glauber model" >> usu.dat
echo "# kjp24: optional distribution in Glauber model" >> usu.dat
echo "# =1, sharp sphere" >> usu.dat
echo "# =2, Woods-Saxon" >> usu.dat
echo "# parp78: parameter controling amount of colour reconnection in final state" >> usu.dat
echo "# mstptj: =0, input MSTP(111) (MSTJ(1)) for pp, pA (AP), and AA (for e+e-) in" >> usu.dat
echo "# PACIAE simulation developed from partonic initial stage, " >> usu.dat
echo "# to partonic rescattering, hadronization, and to hadronic" >> usu.dat
echo "# rescttering stage" >> usu.dat
echo "# =1, PYTHIA like simulation without partonic & hadronic " >> usu.dat
echo "# rescatterings but with setting of kjp21=0" >> usu.dat
echo "# It will be set automatically in program now." >> usu.dat
echo "#" >> usu.dat
echo "# parecc,iparres,smadel,dparj4,cp0,cr0,seco (D=0., 0, 0., 0.05, 1., 0.2, 0.05)" >> usu.dat
echo "# parecc: proportional factor between initial spatial space eccentricity and final " >> usu.dat
echo "# momentum space ellipticity" >> usu.dat
echo "# iparres: =0 consider elastic parton-parton collisions only in parton rescattering" >> usu.dat
echo "# =1 otherwise" >> usu.dat
echo "# smadel: small perpurbation of ellipse from circle" >> usu.dat
echo "# dparj4: default PARJ(4)" >> usu.dat
echo "# cp0,cr0: parameters in parameterization of multiple string effect" >> usu.dat
echo "# seco: parameter in popcorn mechanism for correction of PARJ(1)" >> usu.dat
echo "#" >> usu.dat
echo "# prob_ratio_q (D=1, 1, 0.3, 0, 0, 0)" >> usu.dat
echo "# prob_ratio_q: probability ratio u-ubar:d-dbar:s-sbar:c-cbar:b-bbar:t-tbar." >> usu.dat
echo "#" >> usu.dat
echo "#" >> usu.dat
echo "###################### Annotation of usu.dat ####################" >> usu.dat
echo "################################################################################" >> usu.dat
echo "" >> usu.dat
echo "" >> usu.dat
echo "" >> usu.dat
echo "################################################################################" >> usu.dat
echo "################################################################################" >> usu.dat
echo "#" >> usu.dat
echo "# List of KF codes in program" >> usu.dat
echo "#" >> usu.dat
echo "# 1 d -1 dbar " >> usu.dat
echo "# 2 u -2 ubar " >> usu.dat
echo "# 3 s -3 sbar " >> usu.dat
echo "# 4 c -4 cbar " >> usu.dat
echo "# 5 b -5 bbar " >> usu.dat
echo "# 6 t -6 tbar " >> usu.dat
echo "# 7 b' -7 b'bar " >> usu.dat
echo "# 8 t' -8 t'bar " >> usu.dat
echo "# 11 e- -11 e+ " >> usu.dat
echo "# 12 nu_e -12 nu_ebar " >> usu.dat
echo "# 13 mu- -13 mu+ " >> usu.dat
echo "# 14 nu_mu -14 nu_mubar " >> usu.dat
echo "# 15 tau- -15 tau+ " >> usu.dat
echo "# 16 nu_tau -16 nu_taubar " >> usu.dat
echo "# 17 tau'- -17 tau'+ " >> usu.dat
echo "# 18 nu'_tau -18 nu'_taubar " >> usu.dat
echo "# 21 g " >> usu.dat
echo "# 22 gamma " >> usu.dat
echo "# 23 Z0 " >> usu.dat
echo "# 24 W+ -24 W- " >> usu.dat
echo "# 25 h0 " >> usu.dat
echo "# 32 Z'0 " >> usu.dat
echo "# 33 Z\"0 " >> usu.dat
echo "# 34 W'+ -34 W'- " >> usu.dat
echo "# 35 H0 " >> usu.dat
echo "# 36 A0 " >> usu.dat
echo "# 37 H+ -37 H- " >> usu.dat
echo "# 39 Graviton " >> usu.dat
echo "# 41 R0 -41 Rbar0 " >> usu.dat
echo "# 42 LQ_ue -42 LQ_uebar " >> usu.dat
echo "# 2101 ud_0 -2101 ud_0bar " >> usu.dat
echo "# 3101 sd_0 -3101 sd_0bar " >> usu.dat
echo "# 3201 su_0 -3201 su_0bar " >> usu.dat
echo "# 4101 cd_0 -4101 cd_0bar " >> usu.dat
echo "# 4201 cu_0 -4201 cu_0bar " >> usu.dat
echo "# 4301 cs_0 -4301 cs_0bar " >> usu.dat
echo "# 5101 bd_0 -5101 bd_0bar " >> usu.dat
echo "# 5201 bu_0 -5201 bu_0bar " >> usu.dat
echo "# 5301 bs_0 -5301 bs_0bar " >> usu.dat
echo "# 5401 bc_0 -5401 bc_0bar " >> usu.dat
echo "# 1103 dd_1 -1103 dd_1bar " >> usu.dat
echo "# 2103 ud_1 -2103 ud_1bar " >> usu.dat
echo "# 2203 uu_1 -2203 uu_1bar " >> usu.dat
echo "# 3103 sd_1 -3103 sd_1bar " >> usu.dat
echo "# 3203 su_1 -3203 su_1bar " >> usu.dat
echo "# 3303 ss_1 -3303 ss_1bar " >> usu.dat
echo "# 4103 cd_1 -4103 cd_1bar " >> usu.dat
echo "# 4203 cu_1 -4203 cu_1bar " >> usu.dat
echo "# 4303 cs_1 -4303 cs_1bar " >> usu.dat
echo "# 4403 cc_1 -4403 cc_1bar " >> usu.dat
echo "# 5103 bd_1 -5103 bd_1bar " >> usu.dat
echo "# 5203 bu_1 -5203 bu_1bar " >> usu.dat
echo "# 5303 bs_1 -5303 bs_1bar " >> usu.dat
echo "# 5403 bc_1 -5403 bc_1bar " >> usu.dat
echo "# 5503 bb_1 -5503 bb_1bar " >> usu.dat
echo "# 111 pi0 " >> usu.dat
echo "# 211 pi+ -211 pi- " >> usu.dat
echo "# 221 eta " >> usu.dat
echo "# 311 K0 -311 Kbar0 " >> usu.dat
echo "# 130 K_L0 " >> usu.dat
echo "# 310 K_S0 " >> usu.dat
echo "# 321 K+ -321 K- " >> usu.dat