-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPACIAE.sh
2295 lines (2135 loc) · 114 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
#!/usr/bin/env bash
# PACIAE.sh is a part of the PACIAE event generator.
# Copyright (C) 2024 PACIAE Group.
# PACIAE is licensed under the GNU GPL v2 or later, see LICENSE for details.
# Open source: https://github.com/ArcsaberHep/PACIAE4
# Author: An-Ke Lei, October 2022 - January 2025.
# This is a toy SHELL-script to run PACIAE program.
# By An-Ke at CCNU on 17/10/2022
# Last updated by An-Ke at UiO on 17/01/2025
################################################################################
################################################################################
################################################################################
### ###
### 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 the normal LINUX #
# system in the personal-computer and the task submitting on SLURM (LSF, #
# PBS) scheduling systems in the computing cluster and the super-computer. #
# #
# This shell script will generate executable program, "usu.dat", #
# "pythia6_extra.cfg", "pythia8_extra.cfg", "Makefile" and an inner #
# "PACIAE_SIM.sh" shell script, then run / submit tasks automatically. #
# #
# A series of folders will be generated by "Makefile" to store different type #
# of files, including "src" (source folder, stores the source code files), #
# "bin" (binary folder, stores the binary executable files), "obj" (object #
# folder, stores the compiling intermediate files), "include" (include #
# folder, stores the header files), "lib" (library folder, stores the #
# libarary files), "log" (log record folder, stores the running informations #
# if user has specified), "bak" (backup folder, stroes the backup files), #
# "doc" (document folder, stroes the program manual and other readable #
# documents), "etc" (etcetera folder, stores the configuration and other #
# files), "fig" (figure folder, stores figure files, free for user) and #
# "sim" (simulation folder, stroes the outputs of PACIAE simulation). The #
# PACIAE running folder with the name of collisions system will be also #
# generated in the "sim" folder for easier management. #
# #
# It makes the (pseudo-)SPMD (single program, multiple data) possible to #
# achieve the (pseudo-)parallel running via a secondary SHELL-script file #
# "PACIAE_SIM.sh". #
# 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.f90). #
# #
# 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 needed after the entire PACIAE runnings finished. A simple #
# averaging program, independent of the PACIAE program, "Rms_analysis.f90" #
# was provided to do average over the result of "rms.out" the PACIAE #
# generated, which gives simple results and reports of the simulation. #
# #
# This script has been tested on WSL/UBUNTU-22.04 on PC, on SLURM on the #
# Norwegian Research Infrastructure Services Saga cluster (NRIS Saga, normal #
# partition), and on LSF on the 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 "sudo chmod +x PACIAE.sh" (only once). In addition, #
# one needs "make" tool, "gfortran" and "g++"" compilers. Install them #
# using the command, for example on UBUNTU, "sudo apt install make". #
# #
# 2. Modify the variabls needed. #
# 2.1 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. #
# Here, some variables are aliases for the ones in "usu.dat". #
# More detailed setups can be modified in the closely following #
# "usu.dat", "pythia6_extra.cfg" and "pythia8_extra.cfg" #
# directly. Search keywords "usu.dat" etc. to find them. #
# The parameters include two parts mainly: PACIAE-related and #
# PYTHIA-related. #
# 2.3 On SLURM/LSF/PBS scheduling systems in the computing cluster and #
# the super-computer. One needs specify the additional statements #
# of the settings at the lines of "Scheduling System Setting" #
# (#SBATCH, #APP_NAME, #PBS, ...). #
# #
# 3. Execution. #
# On the normal LINUX, run this script by typing command #
# "./PACIAE.sh". #
# Furthermore, the command #
# "time ./PACIAE.sh | tee $(date "+%Y%m%d%H%M%S").log", #
# will stores the screen information to a log file. #
# #
# By An-Ke Lei at CCNU on 17/10/2022 #
# #
# Last updated by An-Ke Lei at UiO on 11/11/2024 #
################################################################################
################################################################################
################################################################################
# Gets and prompts the current date and time.
current_date_and_time=$(date "+%Y%m%d%H%M%S")
echo -e "\nNow is $(date +"%Y-%m-%d %T")"
################################################################################
# Modify the following statements as needed. #
################################################################################
################################################################################
################################################################################
############### Scheduling System Setting ##############
# If you do not use the scheduling system (normally on the computing cluster
# and the super-computer), just ignore this part.
# Flag of running system. LINUX/SLURM/LSF/PBS.
FLAG_SYSTEM=LINUX
# FLAG_SYSTEM=SLURM
# FLAG_SYSTEM=LSF
# FLAG_SYSTEM=PBS
#
# Example statements for the SLURM scheduling system:
read -d "" SCHEDULE_SYSTEM << SCHEDULE_SYSTEM_BLOCKTEXT
#SBATCH --account=nn9773k"
#SBATCH --partition=normal"
#SBATCH --job-name=PACIAE_${current_date_and_time}"
#SBATCH --time=1:00:00 ## Maxmum 168:00:00 in Saga."
#SBATCH --mem-per-cpu=500M"
SCHEDULE_SYSTEM_BLOCKTEXT
# Adds statements above the "SCHEDULE_SYSTEM_BLOCKTEXT" line.
############### Scheduling System Setting ##############
################################################################################
################################################################################
################################################################################
################################################################################
#################### 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=1 # Number of program-running tasks.
n_eve=1000 # neve: number of events per program-running task.
n_out=100 # (D=neve/10) nout: output the event logs per nout events.
n_osc=0 # (D=0) nosc: OSCAR-1997A/1999A output or not (1/2/0).
i_random=1 # (D=1) adj1(26): random generator seed in PYTHIA.
# =0, default PACIAE seed (20240116), can be used for debug.
# =1, seed from the real-time system clock (h-min-s-ms).
# >1, sets seed as "i_random".
i_stage=4 # (D=4) adj1(40), simulation stop point:
# =1, stops simulation after parini.
# 2, ... parcas.
# 3, ... hadronization with coal from parini.
# 4, ... entire simulation.
#******************************************************************************#
# Setups of the simulation framework (mode).
i_sim_mode=6 # (D=6) i_mode, simulation mode:
# =1, PACIAE low-energy hadronic simulation,
# E_CMS < 3 GeV (A).
# =2, PYTHIA-like pure hadronic simulation based
# on PYTHIA 6 (B_PY6).
# =3, PACIAE parton-hadron cascade simulation based
# on PYTHIA 6 (C_PY6).
# =4, PACIAE experimental mode for pA/Ap simulation
# based on PYTHIA 6 (D).
# =5, PYTHIA-like pure hadronic simulation based
# on PYTHIA 8 (B_PY8).
# =6, PACIAE parton-hadron cascade simulation based
# on PYTHIA 8 (C_PY8).
# =7, dummy now.
# =8, PYTHIA-like pure hadronic simulation based
# on PYTHIA8/Angantyr (B_ANG).
# =9, PACIAE parton-hadron cascade simulation based
# on PYTHIA8/Angantyr (C_ANG).
#******************************************************************************#
# Setups of the incident particles.
KF_proj=2212 # KF_proj: PDG id code (KF code) of the projectile.
KF_targ=2212 # KF_targ: PDG id code (KF code) of the target.
# E.g.
# subatomic particles:
# p: 2212, pbar: -2212;
# n: 2112, nbar: -2212;
# pi+: 211, pi-: -221;
# e-: 11, e+: -11;
# nu_e: 12, nu_ebar: -12;
# ...
# nuclei:
# 197Au: 1000791970; 208Pb: 1000822080;
# 96Zr: 1000400960; 96Ru: 1000440960;
# 2H: 1000010020; 4He: 1000020040;
# 12C: 1000060120; 16O: 1000080160;
# 63Cu: 1000290630; 107Ag: 1000471070;
# 129Xe: 1000541290; 238U: 1000922380;
# ...
#******************************************************************************#
# Setups of the collision.
b_min=0 # (D=0.) bmin, min impact parameter.
b_max=20 # (D=20.) bmax, max impact parameter.
b_samp=2 # (D=2) psno, b parameter sampling method for [b_min,b_max].
# =0, fixed b
# 1, systematic sampling
# 2, random sampling
# 3, for Angantyr ion mode, original Gaussian sampling.
# This option will generate weighted events and set
# a large range of 0 < b < 20+ fm automatically.
i_frame=1 # (D=1) ifram, collision frame: 0 = fixed target with a incident pz;
# 1 = collider with CMS energy (win);
# 2 = back-to-back beams with
# +Z energy_A and -Z energy_B.
# This option could be used for
# the fixed-target (e=0) or the
# asymmetric collision systems
# like pA/Ap in the Lab frame.
energy=2760 # (GeV) win/energy_A, the incident momentum +pz if i_frame = 0;
# the CMS energy SQRT(s) if i_frame = 1;
# the energy of +Z beam if i_frame = 2.
energy_B=0 # (GeV) energy_B, energy of -Z beam if i_frame = 2.
# This variable can be used for the asymmetric
# colliding system like pA/Ap collsions in the
# Lab frame if i_frame = 2, e.g.
# LHC p+Pb at a CMS energy
# SQRT(s_NN) = 5.02 TeV:
# energy_A = 4.0 TeV, energy_B = 1.575 TeV, i_frame = 2;
# SQRT(s_NN) = 8.16 TeV:
# energy_A = 6.5 TeV, energy_B = 2.561 TeV, i_frame = 2.
i_channel=10 # (D=10) nchan, collision channel for non-A simulation frameworks:
# =0, inelastic (INEL).
# 1, Non Single Difractive (NSD).
# 2, Drell-Yan process.
# 3, J/psi production (color singlet).
# 4, heavy-flavor production.
# 5, direct photon.
# 6, soft only.
# 7, W+/- production.
# 8, PYTHIA default hard QCD (MSEL = 1).
# 9, Z0 production.
# 10, inelastic, non-diffractive (minimum-bias).
# <0, -MSEL defined in PYTHIA 6.
# -61, NRQCD charmonium production.
# -62, NRQCD bottomonium production.
# -63, NRQCD onia production (charm- and bottom-).
# others, requires user to specify in the program
# or "pythia6_extra.cfg" /
# "pythia8_extra.cfg" files.
# Setups of the hadronization (string fragmentation:SFM; coalescence: 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 (same as
# =1 plus kjp22=2)
# =3, SFM with gluon splitting and
# deexcitation before parcas
# Subclass please see "kjp22".
#******************************************************************************#
#**************** Setups of PYTHIA ****************#
#**************** (D=PY6 PY8): default value for PYTHIA6/8 ****************#
#
# Extra parameters and switches of PYTHIA 6 & 8 please specify on the following
# "pythia6_extra.cfg" and "pythia8_extra.cfg" parts directly.
#
k_PYTHIA=1 # (D=1. 1.) adj1(10), i.e. PARP(31) in PYTHIA: K factor multiplying
# the differential cross sections for hard parton-parton
# process (multiple parton interaction) in PYTHIA.
a_lund=0.68 # (D=0.35 0.68) adj1(6), i.e. PARJ(41) in PYTHIA: a in Lund
# string fragmentation function.
b_lund=0.98 # (D=0.8 0.98) adj1(7), i.e. PARJ(42) in PYTHIA: b in Lund ... .
pT_width=0.335 # (D=0.33 0.335) adj1(34), i.e. PARJ(21) in PYTHIA: width of pT
# sampling (sigma) in Lund ... .
i_fragment_mode=5 # (D=5 5) kjp22, fragmentation mode.
# =1, fragmentation string by string, with
# the single string structure induced
# variable string tension and PARJ(1) etc
# =2, fragmentation string by string, with
# the multiple string interaction induced
# variable string tension and ...
# =3, fragmentation string by string, with
# the (single string structure + multiple
# tring interaction) induced string
# tension and ...
# =4, fragmentation of all strings at once
# with default string tension and ...
# =5, fragmentation NN pair by pair, with
# default string tension and ...
# For PYTHIA 8 only:
# =6, fragmentation by the Rope Hadronization
# with Flavour Ropes.
# =7, fragmentation by the Rope Hadronization
# with String Shoving.
# =8, fragmentation by the Rope Hadronization
# with Flavour Ropes + String Shoving.
# =9, Thermodynamical String Fragmentation.
i_color_reconnection=8 # (D=8 8) i_color_reconnection, i.e. MSTP(95) in PYTHIA:
# selection of color-reconnection model.
# = 0, no color-reconnection.
# For PYTHIA 6:
# "S": Seattle model, "P": Paquis model.
# = 1, Old cut-and-paste style CR, handled in PYMIHK.
# = 2, Annealing Type I(no gg loops); hadron-hadron.
# = 3, Annealing Type I(no gg loops); all beams.
# = 4, Annealing Type II(gg loops) ; hadron-hadron.
# = 5, Annealing Type II(gg loops) ; all beams.
# = 6, Annealing Type S ; hadron-hadron.
# = 7, Annealing Type S ; all beams.
# = 8, Annealing Type P ; hadron-hadron.
# = 9, Annealing Type P ; all beams.
# =11, Soft Color Interaction (SCI model).
# =12, SCI without diffraction (no inter-remnant CR).
# =13, Generalized Area Law (GAL model).
# =14, GAL without diffraction (no inter-remnant CR).
# For PYTHIA 8:
# <15, The MPI-based original PYTHIA 8 scheme (MPI-CR)
# =15, The new more QCD based scheme(QCD-, QCD-BLC-CR)
# =16, The new gluon-move model.
# =17, The SK I e+e- CR model.
# =18, The SK II e+e- CR model.
#******************************************************************************#
#**************** Setups of PACIAE ****************#
#
# More options could be modified on the following "usu.dat" part directly.
#
##--------------- Setups of parcas ----------------#
# Setups of the partonic 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 hadronization ----------------#
### Setups of the coalescence model (Coal).
### NOTE that the following "coal" parameters works when "i_hadronization=1/2/3"
i_coal_mode=5 # (D=5) kjp22, coalescence mode
# =1, mode 1, gluon splitting and energetic quark
# deexcitation AFTER partonic rescattering,
# via the traversal coalescence.
# =2, mode 2, gluon splitting and energetic quark
# deexcitation BEFORE partonic rescattering.
# via the traversal coalescence.
# =3, mode 3, as = 1, but only quark deexcitation.
# =4, mode 4, as = 2, but only quark deexcitation.
# =5, as = 2, to keep the consistency of "kjp22".
# New coalescence scheme:
# =6-9, mode 6-9, as = 1-4, but the random coal.
i_deex=1 # (D=1) i_deex, the deexcitation (gluon splitting) scheme in coal
# =1, light-cone momentum scheme.
# =2, energy scheme.
# =3, longitudinal momentum pz scheme.
i_deex_function=5 # (D=0) adj1(29), Choice of the deexcitation function i.e.
# how large a fraction of the light-cone
# /energy/pz available a newly-created
# qqbar takes.
# =0, random z for coal.
# =1, Lund symmetric fragmentation function.
# =2, Field–Feynman(FF) + Peterson/SLAC(PS).
# =3, Lund + Peterson/SLAC.
# =4, Lund + Bowler.
# =5, as = 4, but interpolate for c and b.
a_Lund_coal=0.68 # (D=0.68) adj1(8), see PYTHIA part above.
b_Lund_coal=0.98 # (D=0.98) adj1(9), See PYTHIA part above.
pT_width_coal=0.45 # (D=0.45) adj1(35), See PYTHIA part above.
a_FF=0.77 # (D=0.77) a_FF, parameter for uds in FF.
aPS_c=0.05 # (D=0.05) aPS_c, parameter for c in PS.
aPS_b=0.005 # (D=0.005) aPS_b, parameter for b in PS.
prob_ratio=(1 1 0.225 0 0 0) # (D= 1 1 0.225 0 0) Probability ratio of
# u:d:s:c:b:t for qqbar sampling.
ratio_B_to_M=0.08 # (D=0.08) bmrat, parameter related to the ratio of
# baryons to mesons.
e_deex=1.5 # (D=1.5) adj1(17), quark deexcitation threshold energy.
e_split=0.66 # (D=0.66) adj1(39), gluon splitting threshold energy.
n_deex_step=1 # (D=1) n_deex_step, the number of deexcitation steps per q.
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 hadcas ----------------#
# Setups of the hadronic cascade/rescattering (hadcas).
i_hadcas=1 # (D=1) kjp21, = 0, without hadron cascade;
# 1, with PACIAE built-in hadronic rescattering.
#
##--------------- Setups of A-framework ----------------#
# Setups for A-framework.
prob_Delta_decay=0.9 # (D=0.9) decpro, Delta decay probability in A-framework
x_ratio=0.85 # (D=0.85) x_ratio, ratio of the inela. cross section to
# the total cross section of hadron-hadron
# collisions in A-framework and hadcas.
# = 0.85 for the high-energy B-, C & D-framework
# = 0.1 for the A-framework (E_CMS < 3 GeV)
#******************************************************************************#
#****************** Setups of Analysis ******************#
n_particle_specie=20 # (D=20) ispmax, number of particle species to be counted.
n_distribution=7 # (D=7) isdmax, number of statistical distributions.
n_kine_cut=2 # (D=2) iflmax, number of kinematic cut (default pT, y/eta)
n_bin_hist=40 # (D=40) n_bin_hist, number of bins in histograms.
# The "asd(i)" in usu.dat, i.e. bin width.
bin_1=0.35 # (D=0.35) y bin width (dN/dy VS. y)
bin_2=0.25 # (D=0.5) pT bin width (inv. pT, 1/pT*dN/dpT VS. pT)
bin_3=0.35 # (D=0.35) eta bin width (dN/deta)
bin_4=0.5 # (D=0.5) mT bin width (inv. mT, 1/mT*dN/dmT VS. mT)
bin_5=2.5 # (D=25) multiplicity bin width (dNev/dmult VS. mult)
bin_6=0.25 # (D=0.5) pT bin width (dN/dpT VS. pT)
bin_7=2.5 # (D=25) multiplicity bin width (<pT> VS. mult)
i_y_or_eta=1 # (D=1) i_y_or_eta, selects y or eta in partial-space statistics.
# = 0 , y
# = 1 , eta
# For 20 particles, use the same cuts.
rap_low=-0.8 # (D=-1) afl(*,1,1), y/eta lower cut
rap_upp=0.8 # (D= 1) afl(*,1,2), y/eta upper cut
pT_low=0.15 # (D=0.) afl(*,2,1), pT lower cut
pT_upp=999. # (D=50.) afl(*,2,2), pT upper cut
#******************************************************************************#
# The following lines are not required to be changed.
if [[ "${i_hadronization}" -gt "3" ]]; then
i_hadronization=0
fi
if [[ "${i_hadronization}" -eq "1" || "${i_hadronization}" -eq "2" ]]; then
i_fragment_mode=${i_coal_mode}
if [[ "${i_hadronization}" -eq "2" ]]; then
i_hadronization=1
i_fragment_mode=2
fi
fi
#
#################### Variable's alias for usu.dat ####################
################################################################################
################################################################################
# More options could be modified on the following "usu.dat" directly.
################################################################################
################################################################################
#################### usu.dat ########################
read -d "" USU_DAT << USU_DAT_BLOCKTEXT
${n_eve},${n_out},${n_osc} ! neve,nout,nosc
${KF_proj},${KF_targ} ! KF_proj,KF_targ. E.g. e-: 11; e+: -11; p: 2212; n: 2112; Au(79,197): 1000791970; Pb(82,208): 1000822080.
${i_sim_mode},${i_frame},${i_channel} ! i_mode,ifram,nchan
${energy},${energy_B} ! win(energy_A),energy_B
${b_min},${b_max},${b_samp},10 ! bmin,bmax,psno,nmax
${i_hadcas},${x_ratio},${prob_Delta_decay} ! kjp21,x_ratio,decpro
${n_particle_specie},${n_distribution},${n_kine_cut},${n_bin_hist},${i_y_or_eta} ! ispmax,isdmax,iflmax,n_bin_hist,i_y_or_eta
0,0,0,0,0,0,0,0,0,0 ! KF code of particles not to decay (1-10)
0,0,0,0,0,0,0,0,0,0 ! KF code of particles not to decay (11-ispmax)
211,-211,321,-321,3122,-3122,3312,-3312,3334,-3334 ! KF code of particles to be analyzed online (1-10)
2212,-2212,2112,-2112,3212,-3212,3112,3222,333,443 ! KF code of particles to be analyzed online (11-ispmax)
${bin_1},${bin_2},${bin_3},${bin_4},${bin_5},${bin_6},${bin_7} ! ( asd(i), i=1,isdmax )
${rap_low},${rap_upp} ! afl(1,1,1), afl(1,1,2)
${pT_low},${pT_upp} ! afl(1,2,1), afl(1,2,2)
${rap_low},${rap_upp} ! afl(2,1,1), afl(2,1,2)
${pT_low},${pT_upp} ! afl(2,2,1), afl(2,2,2)
${rap_low},${rap_upp} ! afl(3,1,1), afl(3,1,2)
${pT_low},${pT_upp} ! afl(3,2,1), afl(3,2,2)
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp}
${pT_low},${pT_upp}
${rap_low},${rap_upp} ! afl(ispmax,1,1), afl(ispmax,1,2)
${pT_low},${pT_upp} ! afl(ispmax,2,1), afl(ispmax,2,2)
0.00001,2 ! ddt,i_mm
0,7,0 ! iparres,i_inel_proc,i_time_shower
1.2,0.,0.5,200. ! para(7),ttaup,taujp,para(10)
1,1 ! i_sigma_AQM,kjp20
0.,40.,25.,21.,10.,2. ! para1_1,para1_2,para(2),para(3),para(4),para(5)
7.2,4.,14.,8. ! para(13),para(14),para(15),para(16)
${k_parcas},0.47,0.4,1000,1,${a_lund},${b_lund},${a_Lund_coal},${b_Lund_coal},${k_PYTHIA} ! adj1(1)-adj1(10)
0.1,${i_hadronization},0,0,1.,1,${e_deex},0,0.03,1 ! adj1(11)-adj1(20)
${i_phase_constraint},4.,1,0.15,0.4,${i_random},800000.,1.,${i_deex_function},1 ! adj1(21)-adj1(30)
0,0,0,${pT_width},${pT_width_coal},0,100.,3.,${e_split},${i_stage} ! adj1(31)-adj1(40)
${i_fragment_mode},2,2,${i_color_reconnection},0 ! kjp22,kjp23,kjp24,i_color_reconnection,i_tune
0.,0.,1.,0.2,0.05 ! parecc,smadel,cp0,cr0,seco
${i_deex},${n_deex_step},1,0 ! i_deex,n_deex_step,i_pT_coal,i_pT_endpoint
${a_FF},${aPS_c},${aPS_b},${ratio_B_to_M} ! a_FF,aPS_c,aPS_b,bmrat
${prob_ratio[0]},${prob_ratio[1]},${prob_ratio[2]},${prob_ratio[3]},${prob_ratio[4]},${prob_ratio[5]} ! prob_ratio_q
USU_DAT_BLOCKTEXT
# Modifys parameters manually above "USU_DAT_BLOCKTEXT" line.
echo "${USU_DAT}" > usu.dat
#################### usu.dat ########################
################################################################################
################################################################################
# Extra parameters and switches of PYTHIA 6 & 8 please specify on the following
# "pythia6_extra.cfg" and "pythia8_extra.cfg" directly.
################################################################################
################################################################################
################ pythia6/8_extra.cfg #################
# pythia6_extra.cfg
read -d "" PY6_CFG << PY6_CFG_BLOCKTEXT
!!==============================================================================
!! 1. You can add extra PYTHIA 6 parameters and switches in this file directly.
!! 2. Note that settings here will mask PYTHIA6-related ones in "usu.dat".
!! 3. Do not use separate blank lines and separate comment lines beginning with
!! non-'!' !
!!
!! Example statements:
!! MSUB(68) = 1 !! Opens Hard QCD process g + g -> g + g.
!! MDCY(C-411,1) = 0 !! Prohibits the decay of D- particle.
!!
!! More parameters and switches please refer to the PYTHIA 6.4 manual
!! [JHEP 05 (2006) 026].
!!==============================================================================
!!
CKIN(3) = 1.0 ! (D=0.0 GeV) The lower limit of allowed pT for hard processes.
PARJ(1) = 0.087 ! (D=0.087) Diquark suppression
PARJ(2) = 0.190 ! (D=0.190) Strangeness suppression
PARJ(3) = 0.950 ! (D=0.950) Strange diquark suppression
PY6_CFG_BLOCKTEXT
# Adds statements above the "PY6_CFG_BLOCKTEXT" line.
echo "${PY6_CFG}" > pythia6_extra.cfg
# pythia8_extra.cfg
read -d "" PY8_CFG << PY8_CFG_BLOCKTEXT
//==============================================================================
// 1. You can add extra PYTHIA 8 parameters and switches in this file directly.
// 2. Note that settings here will mask PYTHIA8-related ones in "usu.dat".
// 3. You can use separate blank lines and separate comment lines beginning with
// non-alphanumeric character, like '#', '!' and '/' .
//
// 4.1 Example statements 1:
// HardQCD:gg2gg = on // Opens Hard QCD process g + g -> g + g.
// -411:mayDecay = false // Prohibits the decay of D- particle.
//
// 4.2 Example statements 2:
// Add new particles/nuclei to PYTHIA8/Angantyr. Tails can be omitted.
// id:all = name antiName spinType chargeType colType m0 mWidth mMin mMax tau0
// 1000400960:all = 96Zr 96Zrbar
// 1000440960:all = 96Ru 96Rubar
//
// More parameters and switches please refer to the PYTHIA 8 online manual
// [https://pythia.org//latest-manual/Welcome.html].
//==============================================================================
PhaseSpace:pTHatMin = 1.0 // (D=0.0 GeV) The minimum invariant pT.
StringFlav:probQQtoQ = 0.081 // (D=0.081) Diquark suppression
StringFlav:probStoUD = 0.217 // (D=0.217) Strangeness suppression
StringFlav:probSQtoQQ = 0.915 // (D=0.915) Strange diquark suppression
PY8_CFG_BLOCKTEXT
# Adds statements above the "PY8_CFG_BLOCKTEXT" line.
echo "${PY8_CFG}" > pythia8_extra.cfg
################ pythia6/8_extra.cfg #################
################################################################################
################################################################################
################################################################################
# The following statements are not required to be modified. #
################################################################################
################################################################################
#################### ########################
#################### Annotation of usu.dat ########################
#################### ########################
################################################################################
echo "" >> usu.dat
read -d "" USU_ANNO << USU_ANNO_BLOCKTEXT
###################### Annotation of usu.dat ####################
# neve,nout,nosc (D=xxx, xxx/10, 0)
# neve: number of events to be generated
# nout: output the event logs (main.out, rms.out) per nout events
# nosc: OSCAR standard output (oscar.out)
# = 0 : no OSCAR output, see subroutine oscar
# = 1 : OSCAR1997A (final_id_p_x, just PACIAE final output)
# = 2 : OSCAR1999A (full_event_history)
# = 3 : OSCAR2013A (full_event_history, dummy now)
#
# KF_proj,KF_targ (D=1000791970, 1000791970)
# KF_proj: PDG id (KF code) of the projectile
# KF_targ: PDG id (KF code) of the target
# E.g.
# subatomic particles:
# p: 2212, pbar: -2212;
# n: 2112, nbar: -2212;
# e-: 11, e+: -11;
# nu_e: 12, nu_ebar: -12;
# ...
# nuclei: (100ZZZAAA0)
# 197Au: 1000791970; 208Pb: 1000822080;
# 96Zr: 1000400960; 96Ru: 1000440960;
# 2H: 1000010020; 4He: 1000020040;
# 12C: 1000060120; 16O: 1000080160;
# 63Cu: 1000290630; 107Ag: 1000471070;
# 129Xe: 1000541290; 238U: 1000922380; ... .
# Cf.
# 1. PDG RPP2024: Phys.Rev.D 110 (2024) 3, 030001
# https://pdg.lbl.gov/2024/reviews/rpp2024-rev-monte-carlo-numbering.pdf
# 2. PYTHIA 6.4 munual: JHEP 05 (2006) 026
# https://arxiv.org/abs/hep-ph/0603175
# 3. PYTHIA 8 online manual:
# https://pythia.org//latest-manual/ParticleData.html
# 4. The end part of "usu.dat".
#
# i_mode,ifram,nchan (D=6, 1, 10)
# i_mode: =1, PACIAE low-energy hadronic simulation A-framework (E_CMS < 3 GeV)
# =2, PYTHIA-like pure hadronic simulation B-framework based on PYTHIA 6
# =3, PACIAE parton-hadron cascade simulation C-framework based on PYTHIA 6
# =4, PACIAE experimental mode for pA/Ap simulation D-framework based on PYTHIA 6
# =5, PYTHIA-like pure hadronic simulation B-framework based on PYTHIA 8
# =6, PACIAE parton-hadron cascade simulation C-framework based on PYTHIA 8
# =7, dummy now
# =8, PYTHIA-like pure hadronic simulation B-framework based on PYTHIA8/Angantyr
# =9, PACIAE parton-hadron cascade simulation C-framework based on PYTHIA8/Angantyr
# ifram: to choose the collision system frame type
# =0, fixed target with the incident momentum +pz (win)
# =1, collider with CMS energy (win)
# =2, back-to-back beams with +Z energy_A (win) and -Z energy_B.
# This option could be used for the fixed-target (energy_B=0) or the
# asymmetric collision systems like pA/Ap in the Lab frame.
# nchan: to choose which subset of subprocesses to include in
# the generration
# =0, inelastic (INEL)
# =1, Non-Single Difractive (NSD)
# =2, Drell-Yan process
# =3, J/psi production (color singlet)
# =4, heavy-flavor production
# =5, direct photon
# =6, soft only
# =7, W+/- production
# =8: PYTHIA default (MSEL=1)
# =9: Z0 production
# =10: inelastic, non-diffractive (minimum-bias)
# <0: -MSEL defined in PYTHIA 6
# -61: NRQCD charmonium production
# -62: NRQCD bottomonium production
# -63: NRQCD onia production (charm- and bottom-)
# others: requires the user to specify in the program or "pythia6_extra.cfg" /
# "pythia8_extra.cfg" files.
#
# win(energy_A),energy_B (D=200., 0.)
# win = incident momentum +pz (GeV) if ifram=0 (fixed target)
# = cms energy (GeV) if ifram=1 (collider)
# = (energy_A) energy of +Z beam if ifram=2 of the back-to-back collision
# energy_B: energy of -Z beam if ifram=2 of the back-to-back collision
#
# bmin,bmax,psno,nmax (D=0., 20., 2, 10)
# bmin: minimum impact parameters (fm)
# bmax: maximum impact parameters
# psno: =0 fixed impact parameter
# =1 impact parameter is sampled by the systematic sampling method
# =2 randomly sampled impact parameter
# =3 for PYTHIA8/Angantyr mode, the original Gaussian sampling method
# This option will generate weighted events and set a large range of
# 0 < b < 20+ fm automatically.
# nmax: the number of intervals segmented in [bmin,bmax] when psno=1
#
# kjp21,x_ratio,decpro (D=1, 0.85/0.1, 0.9)
# kjp21: =0, without hadron rescattering
# =1, with hadron rescattering via PACIAE
# x_ratio: PARAM(6), ratio of inel. cross section to total cross
# section of hadron-hadron scattering, with default value of
# D=0.85 for the high energy and
# D=0.1 for the low energy A-framework
# decpro: is the Delta particle decay probability in low energy A-framework
#
# ispmax,isdmax,iflmax,n_bin_hist,i_y_or_eta (D=20, 7, 2, 40, 1)
# ispmax: the maximum number of particle KF code to be counted
# isdmax: the maximum number of statistical distributions
# iflmax: the maximum number of the kinematic cuts
# ispmax: the maximum number of bins for histograms
# i_y_or_eta: select y or eta in partial phase-space statistics (analy.f90)
# = 0, y
# = 1, eta
#
# KF_woDecay(i,i=1,ispmax): KF code of particles specified not to decay.
# ispkf(i): KF code of i-th particle to be counted online
# id/KF code: particle code used in PYTHIA and PACIAE,
# (list at the end and see details in reference: arXiv:hep-ph/0603175)
# asd(i=1,isdmax): interval of the i-th distribution, i.e. bin width
# for pp, pbarp, pA(Ap), AB etc.
# (D=0.35, 0.5, 0.35, 0.5, 25, 0.5, 25)
# i=1: rapidity distribution (dN/dy v.s. y)
# =2: invariant transverse momentum distribution (1/pT*dN/dpT v.s. pT)
# =3: pseudorapidity distribution (dN/deta v.s. eta)
# =4: transverse mass distribution (1/mT*dN/dmT v.s. mT)
# =5: event-wise multiplicity distribution (dNev/dmult)
# =6: transverse momentum distribution (dN/dpT v.s. pT)
# =7: mean transverse momentum distribution (<pT> v.s. mult)
# for ep, nu_ep, etc.
# i=1: Q^2=-q^2 (fq2 in code) distribution
# =2: W^2 (w21) distribution
# =3: y (yyl) distribution
# =4: p_h (pph) distribution
# =5: z (zl) distribution
#
# afl(j,i,1): lower-boundary of i-th window for j-th particle
# afl(j,i,2): upper-boundary of i-th window for j-th particle
# for pp, pbarp, pA(Ap), AB etc.
# i=1, rapidity/pseudorapidity window (D= -1.,1. ) (depends on i_y_or_eta)
# =2, transverse momentum (D= 0.,50. )
# for ep, nu_ep, etc.
# i=1, Q^2=-q^2 window
# =2, W^2
# =3, y
# =4, p_h (hadron momentum)
# =5: z
#
# ddt,i_mm (D=0.00001, 2)
# ddt: minimum distinguishble collision time interval used in
# partonic initiation in parini.f90
# i_mm: only the hadrons below numb(i_mm) (cf. 'filt' in parini.f90)
# join in updating the hh collision time list (cf. parini.f90).
# Originally i_mm=2, i.e. only p (proton) and n (neutron) join in
# updating the collision time list in parton initialization;
# if i_mm=6, p, n, pbar, nbar, pi+ and pi- will join in updating
# the collision time list in parton initialization.
#
# iparres, i_inel_proc, i_time_shower (D=0, 7, 0)
# iparres: =0, consider only the elastic collisions in the parton rescattering,
# with diquarks breaking-up
# =1, elastic + inelastic, with diquarks breaking-up
# =2, elastic only, without diquarks breaking-up
# =3, elastic + inelastic, without diquarks breaking-up
# i_inel_proc: = 6, with inelastic processes 4, 6, and 7 if iparres=1/3
# = 7, with inelastic process 7 only if iparres=1/3 (in parcas.f90)
# i_time_shower: = 0, w/o final state time-like parton shower if iparres=1/3
# = 1, w/ final state time-like parton shower if iparres=1/3
#
# para(7), ttaup, taujp, para(10) (D=1.2, 0., 0.5, 200.)
# para(7): proper formation time in rest-frame of particle
# ttaup: extra factor of the formation time of particles
# (for protons in parini, for all of hadrons in hadcas)
# taujp: extra factor of the formation time of J/psi
# para(10): largest allowed size of partonic (hadronic) rescattering
# region which is product of para(10) and target radius
#
# i_sigma_AQM, kjp20 (D=1, 1)
# i_sigma_AQM: = 1, uses input total cross sections of piN, KN, pi+pi,
# Jpsi(psi')+N, Jpsi(psi')+N, Jpsi(psi')+pi/rho,
# and AQM cross sections for D+N/pi/rho in hadcas.
# Ignores the channels which are not well defined.
# = 2, uses input cross sections of piN, KN, ... ,
# AQM cross sections for D+N/pi/rho and the channels
# which are not well defined (treated as elastic).
# = 3, uses AQM cross sections of piN, KN,... and D+N/pi/rho.
# Ignores the channels which are not well defined.
# = 4, uses AQM cross sections of piN, KN, ..., D+N/pi/rho,
# and the channels which are not well defined (treated
# as elastic).
# kjp20: choice the cross sections in hadron rescattering (hadcas.f90)
# =0, energy dependent ones
# =1, constant cross sections for piN -> K+Sigma/Lambda/Delta,
# piN -> pi+Delta and NN -> N+Delta in hadcas.
#
# para1_1,para1_2,para(2),para(3),para(4),para(5) (D=0, 40, 25, 21, 10, 2)
# para1_1: NN total cross section used in constructing the initial collision list
# <= 0, it will be evaluated in the program (PAXTOT)
# > 0, accept the input one
# para1_2: NN total cross section used in hadron cascade
# para(2): total cross-section of pi-N
# para(3): total cross-section of K-N
# para(4): total cross-section of pi-pi
# para(5): the cross-section of pi-pi -> K-Kbar
#
# para(13),para(14),para(15),para(16) (D=7.2, 4., 14., 8.)
# para(13): total cross-section of J/psi + N
# para(14): total cross-section of J/psi + pi/rho
# para(15): total cross-section of psi' + N
# para(16): total cross-section of psi' + pi/rho
#
# adj1(i), i=1,40: switches and parameters
# --------------------------------------------------------------------------------
# For PYTHIA 6 new model (PYEVNW):
# D= 1-10 : 1., 0.47, 0.4, 1000, 1, 0.35, 0.8, 0.35, 0.8, 1.
# 11-20: 0.1, 0, 0, 0, 1., 1, 1.5, 0, 0.03, 1
# 21-30: 0, 4., 1, 0.15, 0.4, 1, 800000., 1., 5, 0
# 31-40: 0, 0, 0, 0.33, 0, 0, 100., 3., 0.66, 4.
# --------------------------------------------------------------------------------
# For PYTHIA 8 / Angantyr:
# D= 1-10 : 1., 0.47, 0.4, 1000, 1, 0.68, 0.98, 0.68, 0.98, 1.
# 11-20: 0.1, 0, 0, 0, 1., 1, 1.5, 0, 0.03, 1
# 21-30: 0, 4., 1, 0.15, 0.4, 1, 800000., 1., 5, 0
# 31-40: 0, 0, 0, 0.335, 0.45, 0, 100., 3., 0.66, 4.
# --------------------------------------------------------------------------------
# i=1: K factor in parton rescattering; K=0: no parton rescattering.
# 2: alpha_s, effective coupling constant in parton rescattering.
# 3: mu^2 (tcut in program), the regulation factor introduced in
# the parton-parton differential cross section (parcas).
# 4: idw, the number of intervals in the numerical integration.
# 5: choice of nuclear shadowing or nPDF for partons in nuclei,
# available only for the ion-collisions.
# =0: without nuclear shadowing or nPDF.
# For PYTHIA 6:
# =1, Wang's nuclear shadowing (PLB 527 (2002) 85).
# =2, EPS09 shadowing. (not available temporarily)
# =other, same as 1
# For PYTHIA 8:
# =-1, only Isospin effect.
# = 1, EPS09, LO nPDF.
# = 1, EPS09, NLO nPDF.
# = 1, EPPS16, NLO nPDF.
# EPS/EPPS shadowing requirs for grid files. There is only one default
# EPS09 LO grid file for Pb208 in PYTHIA 8. One needs add other
# grid files manually for other nulei or NLO nPDF.
# 6: 'a' in the Lund fragmentation function of the string fragmentation model (PARJ(41) in PYTHIA).
# 7: 'b' in the Lund fragmentation function of the string fragmentation model (PARJ(42) in PYTHIA).
# 8: 'a' in the Lund deexcitation function of the coalescence model. See adj1(29).
# 9: 'b' in the Lund deexcitation function of the coalescence model. See adj1(29).
# 10: K factor PARP(31) in PYTHIA.
# 11: time accuracy used in the hadronic rescattering.
# 12: model for hadronization:
# =0, string fragmentation.
# =1, Monte Carlo coalescence model;
# =2, with gluon splitting & quark deexcitation before parcas and
# hadronized by coalescence model (same as adj1(12)=1 + kjp22=2);
# =3, with gluon splitting & quark deexcitation before parcas and
# hadronized by string frafmentation.
# The subclasses please see "kjp22".
# 13: not used.
# 14: not used.
# 15: string tension of qqbar simple string (D= 1 GeV/fm ~ 0.2 GeV^2).
# 16: allowable number of generations of the quark deexcitation in the
# Monte Carlo coalescence model.
# 0 = without quark/anti-quark deexcitation.
# 1 = deexcites only the original 1-th q/qbars.
# 2 = same as 1, and deexcites the newly 2-th q/qbars excited from 1-th.
# 3/4/... = ...
# 17: the threshold energy in the deexcitation of energetic quark in
# the Monte Carlo coalescence model.
# 18: =0, rest partons hadronize by string fragmentation via PYTHIA 6.
# =1, rest partons hadronize by coalescence.
# <0, no treatment for the rest partons.
# 19: time accuracy used in the parton rescattering.
# 20: the optional parton-parton cross section in the parton rescattering:
# =0, LO pQCD parton-parton cross section,
# =1, keeping only leading divergent terms in the LO pQCD parton-parton
# cross section (B. Zhang, Comput. Phys. Commun. 109 (1998) 193),
# =2, the same as 0 but flat scattering angle distribution is assumed,
# =3, the same as 1 but flat scattering angle distribution is assumed.
# 21: with or without phase space constraint in the Monte Carlo coalescence model:
# =0, without phase space constraint,
# =1, with complete phase space constraint,
# =2, with spatial phase space constraint only,
# =3, with momentum phase space constraint only.
# 22: critical value (D=4) of the product of radii in position and momentum
# phase spaces.
# 23: switch for chiral magnetic effect (CME) induced charge seperation:
# =0: CME off,
# =1: CME on.
# 24: the virtuality cut ('tl0' in program) in the time-like radiation in parton
# rescattering.
# 25: Lambda_QCD in parton rescattering.
# 26: selection of random number seed:
# =0, default PACIAE seed (20240116), can be used for debug;
# =1, seed from the real-time clock.
# >1, sets seed as "adj1(26)".
# 27: largest momentum allowed for particles into rescatterings (dpmax).
# 28: concerned to the largest position allowed for particle in
# hadcas, it will be recalculated in program running
# ( drmax=para(10)*dmax1(rnt,rnp)*adj1(28) ).
# 29: For coal, sample the deexcited daughter qqbar-pair energy/light-cone
# momentum fraction z taking from mother
# =0 : random z in coal
# =1 : Lund symmetric function, see adj1(8) and adj1(9)
# =2 : Field-Feynman + Peterson/SLAC, aFF_coal, aPS_c and aPS_b
# =3 : Lund + Peterson/SLAC (light flavor + heavier)
# =4 : Lund + Bowler
# =5 : as = 4, but interpolate for c and b
# For coal, when using 11, 12, or 13, it is the simple Lund/FF/PS.
# 30: =1, distribute the participant nucleons in overlapping region forcely,
# =0, without more requirements.
# 31: not used.
# 32: not used.
# 33: not used.
# 34: PARJ(21) (Lund) width of px/py/pT sampling in PYPTDI of the string fragmentation nmodel.
# 35: width of px/py/pT sampling in the coalescence model. See i_pT_coal.
# 36: with or without phenomenological parton energy loss in parton rescattering:
# =0, without,
# =1, with. (Do not use this option with the paronic rescattering openning altogether. If so, double-counting!)
# 37: the coefficient in phenomenological parton energy loss.
# 38: pT cut in phenomenological parton energy loss.
# 39: the threshold energy in the gluon splitting in the Monte Carlo coalescence model.
# 40: optional event stopping point
# =1, after parton initiation,
# =2, after parton rescattering,
# =3, after hadronization with coalescence from parton initiation directly,
# =4, after the entire simulation.
#
# kjp22,kjp23,kjp24,i_color_reconnection,i_tune (D=5, 2, 2, 8, 0)
# kjp22: optional hadronization subclass
# For sfm:
# =1, fragmentation string by string, with the single string
# structure induced variable string tension and PARJ(1) etc.
# =2, fragmentation string by string, with the multiple string
# interaction induced variable string tension and PARJ(1) etc.
# =3, fragmentation string by string, with the (single string
# structure + multiple string interaction) induced variable
# string tension and PARJ(1) etc.
# =4, fragmentation of all strings at once with the
# default string tension and parj(1) etc.
# =5, fragmentation NN pair by pair with the
# default string tension and parj(1) etc.
# For PYTHIA 8 only:
# =6, fragmentation by the Rope Hadronization with Flavour Ropes.
# =7, fragmentation by the Rope Hadronization with String Shoving.
# =8, fragmentation by Rope Hadronization with Flavour Ropes
# + String Shoving.
# =9, Thermodynamical String Fragmentation.
# For coal:
# =1, mode 1, with both the gluon splitting and the energetic
# quark deexcitation AFTER the partonic rescattering,
# via the traversal coalescence.
# =2, mode 2, with both gluon splitting and the energetic quark
# deexcitation BEFORE the partonic rescattering,
# via the traversal coalescence.
# =3, mode 3, as = 1, but with only the quark deexcitation.
# =4, mode 4, as = 2, but with only the quark deexcitation.
# =5, as = 2, to keep the consistency of "kjp22" switch.
# =6, mode 6, as = 1, but via the random coalescence.
# =7, mode 7, as = 2, but via the random coalescence.
# =8, mode 8, as = 3, but via the random coalescence.
# =9, mode 9, as = 4, but via the random coalescence.
# kjp23: optional model for the calculation of participant nucleon (Npart)
# in the independent Optical Glauber model
# =1, geometric model
# =2, Glauber model
# kjp24: optional distribution in the independent Optical Glauber model
# =1, sharp sphere
# =2, Woods-Saxon
# i_color_reconnection: MSTP(95) in PYTHIA, selection of color-reconnection model.
# =0, no color-reconnection (CR).
# For PYTHIA 6: