31{
33 std::string param =
command[
"PARAM"];
35 std::vector<std::string> commandStrings;
36 if ( module == "MSTJ" ) {
37 switch (
atoi( param.c_str() ) ) {
38
39 case 11:
41 case 3:
42 commandStrings.push_back( "StringZ:usePetersonC = on" );
43 commandStrings.push_back( "StringZ:usePetersonB = on" );
44 commandStrings.push_back( "StringZ:usePetersonH = on" );
45 break;
46 case 1:
47 case 4:
48 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
49 <<
"Pythia6 parameter: MSTJ(11)=" <<
value
50 << " is only implicitly supported." << endl;
51 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
52 << "Please use MSTJ(11)=5 and ensure PARJ(46) and PARJ(47) are both set appropriately."
53 << endl;
54 ::abort();
55 case 5:
56 commandStrings.push_back( "StringZ:usePetersonC = off" );
57 commandStrings.push_back( "StringZ:usePetersonB = off" );
58 commandStrings.push_back( "StringZ:usePetersonH = off" );
59 break;
60 default:
61 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
62 <<
"Pythia6 parameter: MSTJ(11)=" <<
value
63 << " is not currently supported." << endl;
64 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
65 << "Please use MSTJ(11)=3 or MSTJ(11)=5." << endl;
66 ::abort();
67 }
68 break;
69 case 12:
71 case 2:
72 commandStrings.push_back(
73 "StringFlav:suppressLeadingB = off" );
74 break;
75 case 3:
76 commandStrings.push_back(
77 "StringFlav:suppressLeadingB = on" );
78 break;
79 default:
80 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
81 <<
"Pythia6 parameter: MSTJ(12)=" <<
value
82 << " is not currently supported." << endl;
83 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
84 << "Please use MSTJ(12)=2 or MSTJ(12)=3." << endl;
85 ::abort();
86 }
87 break;
88
89 case 26:
91 case 0:
92 commandStrings.push_back( "ParticleDecays:mixB = off" );
93 break;
94 case 1:
95 case 2:
96 commandStrings.push_back( "ParticleDecays:mixB = on" );
97 break;
98 }
99 break;
100
101
102 case 52:
104 case 9:
105 commandStrings.push_back( "BoseEinstein:Eta = on" );
106 [[fallthrough]];
107 case 7:
108 commandStrings.push_back( "BoseEinstein:Kaon = on" );
109 [[fallthrough]];
110 case 3:
111 commandStrings.push_back( "BoseEinstein:Pion = on" );
112 break;
113 default:
114 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
115 <<
"Pythia6 parameter: MSTJ(52)=" <<
value
116 << " is not allowed." << endl;
117 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
118 << "Please select 3,7 or 9." << endl;
119 ::abort();
120 }
121 break;
122
123 default:
124 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
125 << "Pythia6 parameter: " << module << "(" << param
126 << ") is not currently supported and will be ignored."
127 << endl;
128 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
129 << "A similar Pythia8 parameter may be available." << endl;
130 }
131 } else if ( module == "PARJ" ) {
132 switch (
atoi( param.c_str() ) ) {
133 case 1:
134 commandStrings.push_back( "StringFlav:probQQtoQ = " + value );
135 break;
136 case 2:
137 commandStrings.push_back( "StringFlav:probStoUD = " + value );
138 break;
139 case 3:
140 commandStrings.push_back( "StringFlav:probSQtoQQ = " + value );
141 break;
142 case 4:
143 commandStrings.push_back( "StringFlav:probQQ1toQQ0 = " + value );
144 break;
145 case 5:
146 commandStrings.push_back( "StringFlav:popcornRate = " + value );
147 break;
148 case 6:
149 commandStrings.push_back( "StringFlav:popcornSpair = " + value );
150 break;
151 case 7:
152 commandStrings.push_back( "StringFlav:popcornSmeson = " + value );
153 break;
154
155 case 11:
156 commandStrings.push_back( "StringFlav:mesonUDvector = " + value );
157 break;
158 case 12:
159 commandStrings.push_back( "StringFlav:mesonSvector = " + value );
160 break;
161 case 13:
162 commandStrings.push_back( "StringFlav:mesonCvector = " + value );
163 commandStrings.push_back( "StringFlav:mesonBvector = " + value );
164 break;
165 case 14:
166 commandStrings.push_back( "StringFlav:mesonUDL1S0J1 = " + value );
167 commandStrings.push_back( "StringFlav:mesonSL1S0J1 = " + value );
168 commandStrings.push_back( "StringFlav:mesonCL1S0J1 = " + value );
169 commandStrings.push_back( "StringFlav:mesonBL1S0J1 = " + value );
170 break;
171 case 15:
172 commandStrings.push_back( "StringFlav:mesonUDL1S1J0 = " + value );
173 commandStrings.push_back( "StringFlav:mesonSL1S1J0 = " + value );
174 commandStrings.push_back( "StringFlav:mesonCL1S1J0 = " + value );
175 commandStrings.push_back( "StringFlav:mesonBL1S1J0 = " + value );
176 break;
177 case 16:
178 commandStrings.push_back( "StringFlav:mesonUDL1S1J1 = " + value );
179 commandStrings.push_back( "StringFlav:mesonSL1S1J1 = " + value );
180 commandStrings.push_back( "StringFlav:mesonCL1S1J1 = " + value );
181 commandStrings.push_back( "StringFlav:mesonBL1S1J1 = " + value );
182 break;
183 case 17:
184 commandStrings.push_back( "StringFlav:mesonUDL1S1J2 = " + value );
185 commandStrings.push_back( "StringFlav:mesonSL1S1J2 = " + value );
186 commandStrings.push_back( "StringFlav:mesonCL1S1J2 = " + value );
187 commandStrings.push_back( "StringFlav:mesonBL1S1J2 = " + value );
188 break;
189 case 18:
190 commandStrings.push_back( "StringFlav:decupletSup = " + value );
191 break;
192 case 19:
193 commandStrings.push_back( "StringFlav:lightLeadingBSup = " +
194 value );
195 commandStrings.push_back( "StringFlav:heavyLeadingBSup = " +
196 value );
197 break;
198
199 case 25:
200 commandStrings.push_back( "StringFlav:etaSup = " + value );
201 break;
202 case 26:
203 commandStrings.push_back( "StringFlav:etaPrimeSup = " + value );
204 break;
205
206 case 33:
207 commandStrings.push_back( "StringFragmentation:stopMass = " +
208 value );
209 break;
210
211
212 case 37:
213 commandStrings.push_back( "StringFragmentation:stopSmear = " +
214 value );
215 break;
216
217 case 41:
218 commandStrings.push_back( "StringZ:aLund = " + value );
219 break;
220 case 42:
221 commandStrings.push_back( "StringZ:bLund = " + value );
222 break;
223
224 case 45:
225 commandStrings.push_back( "StringZ:aExtraDiquark = " + value );
226 break;
227 case 46:
228 commandStrings.push_back( "StringZ:rFactC = " + value );
229 break;
230 case 47:
231 commandStrings.push_back( "StringZ:rFactB = " + value );
232 break;
233
234 case 76:
235 commandStrings.push_back( "ParticleDecays:xBdMix = " + value );
236 break;
237 case 77:
238 commandStrings.push_back( "ParticleDecays:xBsMix = " + value );
239 break;
240
241 case 91:
242 commandStrings.push_back( "BoseEinstein:widthSep = " + value );
243 break;
244 case 92:
245 commandStrings.push_back( "BoseEinstein:lambda = " + value );
246 break;
247 case 93:
248 commandStrings.push_back( "BoseEinstein:QRef = " + value );
249 break;
250
251
252
253 default:
254 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
255 << "Pythia6 parameter: " << module << "(" << param
256 << ") is not currently supported and will be ignored."
257 << endl;
258 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
259 << "A similar Pythia8 parameter may be available." << endl;
260 }
261 } else {
262 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
263 << "Pythia6 parameter: " << module << "(" << param
264 << ") is not currently supported and will be ignored." << endl;
265 EvtGenReport( EVTGEN_WARNING, "EvtGen" )
266 << "A similar Pythia8 parameter may be available." << endl;
267 }
268 return commandStrings;
269}
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...