BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesShortLivedConstructor.cc
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BOOST --- BESIII Object_Oriented Simulation Tool //
3//---------------------------------------------------------------------------//
4// Descpirtion: Rewrite G4ShortLivedConstructor.hh, remove quark part
5// Author: Liuhm
6// Created: 2003/5/19
7// Modified:
8// Comment:
9//---------------------------------------------------------------------------//
10//
11#include "PhySim/BesShortLivedConstructor.hh"
12
13#include "G4ParticleDefinition.hh"
14#include "G4ParticleTable.hh"
15// #include "G4ShortLivedTable.hh"
16#include "G4DecayTable.hh"
17#include "G4PhaseSpaceDecayChannel.hh"
18#include "G4VDecayChannel.hh"
19
20using namespace CLHEP;
21
22G4bool BesShortLivedConstructor::isConstructed = false;
23
25
27
29 if ( !isConstructed )
30 {
32 isConstructed = true;
33 }
34}
35
36#include "G4ExcitedDeltaConstructor.hh"
37#include "G4ExcitedLambdaConstructor.hh"
38#include "G4ExcitedMesonConstructor.hh"
39#include "G4ExcitedNucleonConstructor.hh"
40#include "G4ExcitedSigmaConstructor.hh"
41#include "G4ExcitedXiConstructor.hh"
45
46 // N*
47 G4ExcitedNucleonConstructor nucleons;
48 nucleons.Construct();
49
50 // Delta*
51 G4ExcitedDeltaConstructor deltas;
52 deltas.Construct();
53
54 // Lambda*
55 G4ExcitedLambdaConstructor lamdas;
56 lamdas.Construct();
57
58 // Sigma*
59 G4ExcitedSigmaConstructor sigmas;
60 sigmas.Construct();
61
62 // Xi*
63 G4ExcitedXiConstructor xis;
64 xis.Construct();
65
66 // Mesons
67 G4ExcitedMesonConstructor mesons;
68 mesons.Construct();
69}
70
71#include "G4ExcitedBaryons.hh"
73 G4DecayTable* decayTable;
74 G4VDecayChannel* mode;
75 G4ExcitedBaryons* particle;
76
77 // Construct Resonace particles as dynamic object
78 // Arguments for constructor are as follows
79 // name mass width charge
80 // 2*spin parity C-conjugation
81 // 2*Isospin 2*Isospin3 G-parity
82 // type lepton number baryon number PDG encoding
83 // stable lifetime decay table
84
85 // delta baryons
86 // delta(1232)++
87 particle = new G4ExcitedBaryons( "delta++", 1.232 * GeV, 115.0 * MeV, +2.0 * eplus, 3, +1, 0,
88 3, +3, 0, "baryon", 0, +1, 2224, false, 0.0, NULL );
89 // set sub type
90 particle->SetMultipletName( "delta" );
91 // create decay table
92 decayTable = new G4DecayTable();
93 // create decay channel of delta++ -> proton + pi+
94 // parent BR #daughters
95 mode = new G4PhaseSpaceDecayChannel( "delta++", 1.000, 2, "proton", "pi+" );
96 // add decay table
97 decayTable->Insert( mode );
98 particle->SetDecayTable( decayTable );
99
100 // delta(1232)+
101 particle = new G4ExcitedBaryons( "delta+", 1.232 * GeV, 115.0 * MeV, +1.0 * eplus, 3, +1, 0,
102 3, +1, 0, "baryon", 0, +1, 2214, false, 0.0, NULL );
103 // set sub type
104 particle->SetMultipletName( "delta(1232)" );
105 // create decay table
106 decayTable = new G4DecayTable();
107 // create decay channel of delta+ -> proton + Gamma
108 // parent BR #daughters
109 mode = new G4PhaseSpaceDecayChannel( "delta+", 0.01, 2, "proton", "gamma" );
110 decayTable->Insert( mode );
111 // create decay channel of delta+ -> neutron + pi+
112 // parent BR #daughters
113 // create decay channel of delta+ -> proton + pi0
114 // parent BR #daughters
115 mode = new G4PhaseSpaceDecayChannel( "delta+", 0.495, 2, "proton", "pi0" );
116 decayTable->Insert( mode );
117 // create decay channel of delta+ -> neutron + pi+
118 // parent BR #daughters
119 mode = new G4PhaseSpaceDecayChannel( "delta+", 0.495, 2, "neutron", "pi+" );
120 decayTable->Insert( mode );
121 particle->SetDecayTable( decayTable );
122
123 // delta(1232)0
124 particle = new G4ExcitedBaryons( "delta0", 1.232 * GeV, 115.0 * MeV, +0.0 * eplus, 3, +1, 0,
125 3, -1, 0, "baryon", 0, +1, 2114, false, 0.0, NULL );
126 // set sub type
127 particle->SetMultipletName( "delta(1232)" );
128 // create decay table
129 decayTable = new G4DecayTable();
130 // create decay channel of delta+ -> neutron + gamma
131 // parent BR #daughters
132 mode = new G4PhaseSpaceDecayChannel( "delta0", 0.01, 2, "neutron", "gamma" );
133 decayTable->Insert( mode );
134 // create decay channel of delta+ -> proton + pi-
135 // parent BR #daughters
136 mode = new G4PhaseSpaceDecayChannel( "delta0", 0.495, 2, "proton", "pi-" );
137 decayTable->Insert( mode );
138 // create decay channel of delta+ -> neutron + pi0
139 // parent BR #daughters
140 mode = new G4PhaseSpaceDecayChannel( "delta0", 0.495, 2, "neutron", "pi0" );
141 decayTable->Insert( mode );
142 particle->SetDecayTable( decayTable );
143
144 // delta(1232)-
145 particle = new G4ExcitedBaryons( "delta-", 1.232 * GeV, 115.0 * MeV, -1.0 * eplus, 3, +1, 0,
146 3, -3, 0, "baryon", 0, +1, 1114, false, 0.0, NULL );
147 // set sub type
148 particle->SetMultipletName( "delta(1232)" );
149 // create decay table
150 decayTable = new G4DecayTable();
151 // create decay channel of delta+ -> neutron + pi-
152 // parent BR #daughters
153 mode = new G4PhaseSpaceDecayChannel( "delta-", 1.000, 2, "neutron", "pi-" );
154 decayTable->Insert( mode );
155 particle->SetDecayTable( decayTable );
156
157 ////////////////////////////
158 // anti_delta baryons
159 // anti_delta(1232)++
160 particle = new G4ExcitedBaryons( "anti_delta++", 1.232 * GeV, 115.0 * MeV, -2.0 * eplus, 3,
161 +1, 0, 3, -3, 0, "baryon", 0, -1, -2224, false, 0.0, NULL );
162 // set sub type
163 particle->SetMultipletName( "delta(1232)" );
164 // create decay table
165 decayTable = new G4DecayTable();
166 // create decay channel of delta++ -> anti_proton + pi-
167 // parent BR #daughters
168 mode = new G4PhaseSpaceDecayChannel( "anti_delta++", 1.000, 2, "anti_proton", "pi-" );
169 // add decay table
170 decayTable->Insert( mode );
171 particle->SetDecayTable( decayTable );
172
173 // anti_delta(1232)+
174 particle = new G4ExcitedBaryons( "anti_delta+", 1.232 * GeV, 115.0 * MeV, -1.0 * eplus, 3,
175 +1, 0, 3, -1, 0, "baryon", 0, -1, -2214, false, 0.0, NULL );
176 // set sub type
177 particle->SetMultipletName( "delta(1232)" );
178 // create decay table
179 decayTable = new G4DecayTable();
180 // create decay channel of anti_delta+ -> anti_proton + pi0
181 // parent BR #daughters
182 mode = new G4PhaseSpaceDecayChannel( "anti_delta+", 0.500, 2, "anti_proton", "pi0" );
183 decayTable->Insert( mode );
184 // create decay channel of anti_delta+ -> anti_neutron + pi-
185 // parent BR #daughters
186 mode = new G4PhaseSpaceDecayChannel( "anti_delta+", 0.500, 2, "anti_neutron", "pi-" );
187 decayTable->Insert( mode );
188 particle->SetDecayTable( decayTable );
189
190 // anti_delta(1232)0
191 particle = new G4ExcitedBaryons( "anti_delta0", 1.232 * GeV, 115.0 * MeV, +0.0 * eplus, 3,
192 +1, 0, 3, +1, 0, "baryon", 0, -1, -2114, false, 0.0, NULL );
193 // set sub type
194 particle->SetMultipletName( "delta(1232)" );
195 // create decay table
196 decayTable = new G4DecayTable();
197 // create decay channel of anti_delta+ -> anti_proton + pi+
198 // parent BR #daughters
199 mode = new G4PhaseSpaceDecayChannel( "anti_delta0", 0.500, 2, "anti_proton", "pi+" );
200 decayTable->Insert( mode );
201 // create decay channel of delta+ -> neutron + pi0
202 // parent BR #daughters
203 mode = new G4PhaseSpaceDecayChannel( "anti_delta0", 0.500, 2, "anti_neutron", "pi0" );
204 decayTable->Insert( mode );
205 particle->SetDecayTable( decayTable );
206
207 // anti_delta(1232)-
208 particle = new G4ExcitedBaryons( "anti_delta-", 1.232 * GeV, 115.0 * MeV, +1.0 * eplus, 3,
209 +1, 0, 3, +3, 0, "baryon", 0, -1, -1114, false, 0.0, NULL );
210 // set sub type
211 particle->SetMultipletName( "delta(1232)" );
212 // create decay table
213 decayTable = new G4DecayTable();
214 // create decay channel of delta- -> neutron + pi+
215 // parent BR #daughters
216 mode = new G4PhaseSpaceDecayChannel( "anti_delta-", 1.000, 2, "anti_neutron", "pi+" );
217 decayTable->Insert( mode );
218 particle->SetDecayTable( decayTable );
219}
220#include "G4ExcitedMesons.hh"
222 G4DecayTable* decayTable;
223 G4VDecayChannel* mode;
224 G4ExcitedMesons* particle;
225
226 // Construct Resonace particles as dynamic object
227 // Arguments for constructor are as follows
228 // name mass width charge
229 // 2*spin parity C-conjugation
230 // 2*Isospin 2*Isospin3 G-parity
231 // type lepton number baryon number PDG encoding
232 // stable lifetime decay table
233
234 // vector mesons
235 // omega
236 particle = new G4ExcitedMesons( "omega", 781.94 * MeV, 8.41 * MeV, +0.0 * eplus, 2, -1, -1,
237 0, +0, -1, "meson", 0, 0, 223, false, 0.0, NULL );
238 particle->SetAntiPDGEncoding( 223 );
239 // set sub type
240 particle->SetMultipletName( "omega" );
241 // create decay table
242 decayTable = new G4DecayTable();
243 // create decay channel of omega -> pi+ + pi- + pi0
244 // parent BR #daughters
245 mode = new G4PhaseSpaceDecayChannel( "omega", 0.888, 3, "pi+", "pi-", "pi0" );
246 // add decay table
247 decayTable->Insert( mode );
248 particle->SetDecayTable( decayTable );
249
250 // phi
251 particle = new G4ExcitedMesons( "phi", 1019.4 * MeV, 4.43 * MeV, +0.0 * eplus, 2, -1, -1, 0,
252 +0, -1, "meson", 0, 0, 333, false, 0.0, NULL );
253 particle->SetAntiPDGEncoding( 333 );
254 // set sub type
255 particle->SetMultipletName( "phi" );
256 // create decay table
257 decayTable = new G4DecayTable();
258 // create decay channel of phi -> kaon+ + kaon-
259 // parent BR #daughters
260 mode = new G4PhaseSpaceDecayChannel( "phi", 0.491, 2, "kaon+", "kaon-" );
261 decayTable->Insert( mode );
262 // create decay channel of phi -> kaon0S + kaon0L
263 // parent BR #daughters
264 mode = new G4PhaseSpaceDecayChannel( "phi", 0.343, 2, "kaon0S", "kaon0L" );
265 // add decay table
266 decayTable->Insert( mode );
267 // create decay channel of phi -> rho0 + pi0
268 // parent BR #daughters
269 mode = new G4PhaseSpaceDecayChannel( "phi", 0.129, 2, "rho0", "pi0" );
270 // add decay table
271 decayTable->Insert( mode );
272 particle->SetDecayTable( decayTable );
273
274 // rho+
275 particle = new G4ExcitedMesons( "rho+", 769.9 * MeV, 151.2 * MeV, +1.0 * eplus, 2, -1, -1, 2,
276 +2, +1, "meson", 0, 0, 213, false, 0.0, NULL );
277 // set sub type
278 particle->SetMultipletName( "rho" );
279 // create decay table
280 decayTable = new G4DecayTable();
281 // create decay channel of rho+ -> pi+ + pi0
282 // parent BR #daughters
283 mode = new G4PhaseSpaceDecayChannel( "rho+", 1.000, 2, "pi+", "pi0" );
284 // add decay table
285 decayTable->Insert( mode );
286 particle->SetDecayTable( decayTable );
287
288 // rho-
289 particle = new G4ExcitedMesons( "rho-", 769.9 * MeV, 151.2 * MeV, -1.0 * eplus, 2, -1, -1, 2,
290 -2, +1, "meson", 0, 0, -213, false, 0.0, NULL );
291 // set sub type
292 particle->SetMultipletName( "rho" );
293 // create decay table
294 decayTable = new G4DecayTable();
295 // create decay channel of rho- -> pi- + pi0
296 // parent BR #daughters
297 mode = new G4PhaseSpaceDecayChannel( "rho-", 1.000, 2, "pi-", "pi0" );
298 // add decay table
299 decayTable->Insert( mode );
300 particle->SetDecayTable( decayTable );
301
302 // rho0
303 particle = new G4ExcitedMesons( "rho0", 770.0 * MeV, 150.7 * MeV, 0.0, 2, -1, -1, 2, 0, +1,
304 "meson", 0, 0, 113, false, 0.0 * ns, NULL );
305 particle->SetAntiPDGEncoding( 113 );
306 // set sub type
307 particle->SetMultipletName( "rho" );
308 // create decay table
309 decayTable = new G4DecayTable();
310 // create decay channel of rho0 -> pi+ + pi-
311 // parent BR #daughters
312 mode = new G4PhaseSpaceDecayChannel( "rho0", 1.000, 2, "pi+", "pi-" );
313 // add decay table
314 decayTable->Insert( mode );
315 particle->SetDecayTable( decayTable );
316
317 // a0(980)+
318 particle = new G4ExcitedMesons( "a0(980)+", 984.8 * MeV, 60.0 * MeV, +1.0 * eplus, 0, +1, +1,
319 2, +2, -1, "meson", 0, 0, 9000211, false, 0.0, NULL );
320 // set sub type
321 particle->SetMultipletName( "a0(980)" );
322 // create decay table
323 decayTable = new G4DecayTable();
324 // create decay channel of a0(980)+ -> eta + pi+
325 // parent BR #daughters
326 mode = new G4PhaseSpaceDecayChannel( "a0(980)+", 1.000, 2, "pi+", "eta" );
327 // add decay table
328 decayTable->Insert( mode );
329 particle->SetDecayTable( decayTable );
330
331 // a0(980)-
332 particle = new G4ExcitedMesons( "a0(980)-", 984.8 * MeV, 60.0 * MeV, -1.0 * eplus, 0, +1, +1,
333 2, -2, -1, "meson", 0, 0, -9000211, false, 0.0, NULL );
334 // set sub type
335 particle->SetMultipletName( "a0(980)" );
336 // create decay table
337 decayTable = new G4DecayTable();
338 // create decay channel of a0(980)- -> eta + pi-
339 // parent BR #daughters
340 mode = new G4PhaseSpaceDecayChannel( "a0(980)-", 1.000, 2, "pi-", "eta" );
341 // add decay table
342 decayTable->Insert( mode );
343 particle->SetDecayTable( decayTable );
344
345 // a0(980)0
346 particle = new G4ExcitedMesons( "a0(980)0", 984.8 * MeV, 60.0 * MeV, 0.0, 0, +1, +1, 2, 0,
347 -1, "meson", 0, 0, 9000111, false, 0.0, NULL );
348 particle->SetAntiPDGEncoding( 9000111 );
349 // set sub type
350 particle->SetMultipletName( "a0(980)" );
351 // create decay table
352 decayTable = new G4DecayTable();
353 // create decay channel of a0(980)0 -> eta + pi0
354 // parent BR #daughters
355 mode = new G4PhaseSpaceDecayChannel( "a0(980)0", 1.000, 2, "pi0", "eta" );
356 // add decay table
357 decayTable->Insert( mode );
358 particle->SetDecayTable( decayTable );
359
360 // f0(400-1200)
361 particle = new G4ExcitedMesons( "f0(400-1200)", 470.0 * MeV, 400.0 * MeV, 0.0, 0, +1, +1, 0,
362 0, +1, "meson", 0, 0, 9000221, false, 0.0, NULL );
363 particle->SetAntiPDGEncoding( 9000221 );
364 // set sub type
365 particle->SetMultipletName( "f0(400-1200)" );
366 // create decay table
367 decayTable = new G4DecayTable();
368 // create decay channel of f0(400-1200) -> pi + pi
369 // parent BR #daughters
370 mode = new G4PhaseSpaceDecayChannel( "f0(400-1200)", 1.000, 2, "pi+", "pi-" );
371 // add decay table
372 decayTable->Insert( mode );
373 particle->SetDecayTable( decayTable );
374
375 // f0(980)
376 particle = new G4ExcitedMesons( "f0(980)", 980.0 * MeV, 40.0 * MeV, 0.0, 0, +1, +1, 0, 0, +1,
377 "meson", 0, 0, 9010221, false, 0.0, NULL );
378 particle->SetAntiPDGEncoding( 9010221 );
379 // set sub type
380 particle->SetMultipletName( "f0(980)" );
381 // create decay table
382 decayTable = new G4DecayTable();
383 // create decay channel of f0(980) -> pi + pi
384 // parent BR #daughters
385 mode = new G4PhaseSpaceDecayChannel( "f0(980)", 1.000, 2, "pi+", "pi-" );
386 // add decay table
387 decayTable->Insert( mode );
388 particle->SetDecayTable( decayTable );
389
390 // k_star+
391 particle = new G4ExcitedMesons( "k_star+", 891.6 * MeV, 50.8 * MeV, +1.0 * eplus, 2, -1, 0,
392 1, +1, 0, "meson", 0, 0, 323, false, 0.0, NULL );
393 // set sub type
394 particle->SetMultipletName( "k_star" );
395 // create decay table
396 decayTable = new G4DecayTable();
397 // create decay channel of k_star+ -> kaon+ + pi0
398 // parent BR #daughters
399 mode = new G4PhaseSpaceDecayChannel( "k_star+", 0.500, 2, "kaon+", "pi0" );
400 // add decay table
401 decayTable->Insert( mode );
402 // create decay channel of k_star+ -> kaon+ + pi0
403 // parent BR #daughters
404 mode = new G4PhaseSpaceDecayChannel( "k_star+", 0.500, 2, "kaon0", "pi+" );
405 // add decay table
406 decayTable->Insert( mode );
407 particle->SetDecayTable( decayTable );
408
409 // k_star0
410 particle = new G4ExcitedMesons( "k_star0", 896.1 * MeV, 50.5 * MeV, 0.0 * eplus, 2, -1, 0, 1,
411 -1, 0, "meson", 0, 0, 313, false, 0.0, NULL );
412 // set sub type
413 particle->SetMultipletName( "k_star" );
414 // create decay table
415 decayTable = new G4DecayTable();
416 // create decay channel of k_star0 -> kaon+ + pi-
417 // parent BR #daughters
418 mode = new G4PhaseSpaceDecayChannel( "k_star0", 0.500, 2, "kaon+", "pi-" );
419 // add decay table
420 decayTable->Insert( mode );
421 // create decay channel of k_star0 -> kaon0 + pi0
422 // parent BR #daughters
423 mode = new G4PhaseSpaceDecayChannel( "k_star0", 0.500, 2, "kaon0", "pi0" );
424 // add decay table
425 decayTable->Insert( mode );
426 particle->SetDecayTable( decayTable );
427
428 // k_star-
429 particle = new G4ExcitedMesons( "k_star-", 891.6 * MeV, 50.8 * MeV, -1.0 * eplus, 2, -1, 0,
430 1, +1, 0, "meson", 0, 0, -323, false, 0.0, NULL );
431 // set sub type
432 particle->SetMultipletName( "k_star" );
433 // create decay table
434 decayTable = new G4DecayTable();
435 // create decay channel of k_star- -> kaon- + pi0
436 // parent BR #daughters
437 mode = new G4PhaseSpaceDecayChannel( "k_star-", 0.500, 2, "kaon-", "pi0" );
438 // add decay table
439 decayTable->Insert( mode );
440 // create decay channel of k_star- -> anti_kaon0 + pi0
441 // parent BR #daughters
442 mode = new G4PhaseSpaceDecayChannel( "k_star-", 0.500, 2, "anti_kaon0", "pi+" );
443 // add decay table
444 decayTable->Insert( mode );
445 particle->SetDecayTable( decayTable );
446
447 // anti_k_star0
448 particle = new G4ExcitedMesons( "anti_k_star0", 896.1 * MeV, 50.5 * MeV, 0.0 * eplus, 2, -1,
449 0, 1, -1, 0, "meson", 0, 0, -313, false, 0.0, NULL );
450 // set sub type
451 particle->SetMultipletName( "k_star" );
452 // create decay table
453 decayTable = new G4DecayTable();
454 // create decay channel of anti_k_star0 -> kaon- + pi+
455 // parent BR #daughters
456 mode = new G4PhaseSpaceDecayChannel( "anti_k_star0", 0.500, 2, "kaon-", "pi+" );
457 // add decay table
458 decayTable->Insert( mode );
459 // create decay channel of anti_k_star0 -> anti_kaon0 + pi0
460 // parent BR #daughters
461 mode = new G4PhaseSpaceDecayChannel( "anti_k_star0", 0.500, 2, "anti_kaon0", "pi0" );
462 // add decay table
463 decayTable->Insert( mode );
464 particle->SetDecayTable( decayTable );
465}
#define ns(x)
Definition xmltok.c:1355