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
83
87 }
88 else{
91 }
92
96
97 const std::vector<G4double> BFMM161 = {-6.434, 1.351, -5.185, 7.754, -1.692, 1.604};
98
99 const std::vector<G4double> BFMM169 = {3.696, -5.356, -0.053, 1.941, -0.432, 1.624};
100
101 const std::vector<G4double> BFMM201 = {-1.070, -0.636, -0.009, 2.335, -0.499, 1.624};
102
103 const std::vector<G4double> BFMM197 = {1.857, -21.213, -3.448, 0.827, -0.390, 1.616};
104
105
106
107
115
116
117
121
122
129 if(rdm<0.5){
132 }
133 else{
136 }
137 }
143 if(rdm<0.5){
146 }
147 else{
150 }
151 }
158 if(rdm<0.5){
161 }
162 else{
165 }
166 }
167 else{
171 if(rdm<0.5){
174 }
175 else{
178 }
179 }
180 }
181 else{
186 if(rdm<0.5){
189 }
190 else{
193 }
194 }
200 if(rdm<0.5){
203 }
204 else{
207 }
208 }
214 if(rdm<0.5){
217 }
218 else{
221 }
222 }
223 else{
227 if(rdm<0.5){
230 }
231 else{
234 }
235 }
236 }
237 }
238 else{
244 if(rdm<0.5){
247 }
248 else{
251 }
252 }
258 if(rdm<0.5){
261 }
262 else{
265 }
266 }
272 if(rdm<0.5){
275 }
276 else{
279 }
280 }
281 else{
285 if(rdm<0.5){
288 }
289 else{
292 }
293 }
294 }
295 else{
300 if(rdm<0.5){
303 }
304 else{
307 }
308 }
314 if(rdm<0.5){
317 }
318 else{
321 }
322 }
329 if(rdm<0.5){
332 }
333 else{
336 }
337 }
338 else{
342 if(rdm<0.5){
345 }
346 else{
349 }
350 }
351 }
352 }
353
354 ParticleList list;
355 list.push_back(nucleon);
356 list.push_back(antinucleon);
357 const ThreeVector &rcol =
nucleon->getPosition();
358 const ThreeVector zero;
359
360
361 Particle *pion1 = nullptr;
362 Particle *pion2 = nullptr;
363 Particle *pion3 = nullptr;
364
365
366 if (rdm < 1.0 / 3.0) {
367 pion1 = new Particle(Pion1, zero, rcol);
368 pion2 = new Particle(Pion2, zero, rcol);
369 pion3 = new Particle(Pion3, zero, rcol);
370 } else if (rdm < 2.0 / 3.0) {
371 pion1 = new Particle(Pion1, zero, rcol);
372 pion2 = new Particle(Pion3, zero, rcol);
373 pion3 = new Particle(Pion2, zero, rcol);
374 } else {
375 pion1 = new Particle(Pion2, zero, rcol);
376 pion2 = new Particle(Pion1, zero, rcol);
377 pion3 = new Particle(Pion3, zero, rcol);
378 }
379
380 list.push_back(pion1);
381 list.push_back(pion2);
382 list.push_back(pion3);
383
385
386 fs->addModifiedParticle(nucleon);
387 fs->addModifiedParticle(antinucleon);
388 fs->addCreatedParticle(pion1);
389 fs->addCreatedParticle(pion2);
390 fs->addCreatedParticle(pion3);
391
392 }
G4double compute_xs(const std::vector< G4double > coefficients, const G4double pLab)
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4double momentumInLab(Particle const *const p1, Particle const *const p2)
gives the momentum in the lab frame of two particles.
void generate(const G4double sqrtS, ParticleList &particles)
Generate an event in the CM system.
G4bool antinucleon(G4int ityp)
G4bool nucleon(G4int ityp)