diff --git a/DDG4/examples/SiD_Markus.py b/DDG4/examples/SiD_Markus.py index 23769ca60c0560a80ae85274800960078c90aeb6..ce1a154c8d8ec8dcb614cf19fe8b9d6691efa766 100644 --- a/DDG4/examples/SiD_Markus.py +++ b/DDG4/examples/SiD_Markus.py @@ -154,7 +154,7 @@ def run(): DDG4.Core.setPrintLevel(Output.DEBUG) DDG4.Core.setPrintFormat("%-32s %6s %s") - kernel.NumberOfThreads = 3 + kernel.NumberOfThreads = 1 geant4 = DDG4.Geant4(kernel,tracker='Geant4TrackerWeightedAction') geant4.printDetectors() # Configure UI @@ -217,8 +217,14 @@ def run(): #seq,act = geant4.setupCalorimeter('BeamCal') # Now build the physics list: - phys = geant4.setupPhysics('QGSP_BERT') - phys.dump() + seq = geant4.setupPhysics('QGSP_BERT') + phys = DDG4.PhysicsList(geant4.master(),'Geant4PhysicsList/MyPhysics') + part = DDG4.Action(geant4.master(),'Geant4ExtraParticles/extraparts') + part.pdgfile = 'checkout/DDG4/examples/particle.tbl' + phys.adoptPhysicsConstructor(part.get()) + seq.add(phys) + + geant4.run() #kernel.configure() #kernel.initialize() diff --git a/DDG4/examples/particle.tbl b/DDG4/examples/particle.tbl new file mode 100644 index 0000000000000000000000000000000000000000..8f1b7b174364c6272bc3e5f8c9fcada4f7b0f89b --- /dev/null +++ b/DDG4/examples/particle.tbl @@ -0,0 +1,549 @@ +// This table was generated from +// http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/SimGeneral/HepPDTESSource/data/Pythia6Table.tbl?rev=1.2&cvsroot=CMSSW&content-type=text/vnd.viewcvs-markup +// (version 1.2). +// It is essentially a copy of the pythia particle table, with a few heavy ions +// The ID numbers and names conform to the 2006 PDG standard. +// +// This table can be read with the addParticleTable function. +// Fixed columns are not required +// Blank characters in the middle of particle names are illegal +// and will result in nonsense. +// +// Comments are identified by either "//" or "#", beginning in the first column. +// Comments MUST be in the first column. +// +// ID name chg mass total width lifetime +// + 1 d -1 0.33000 0.00000 0.00000E+00 + -1 d~ 1 0.33000 0.00000 0.00000E+00 + 2 u 2 0.33000 0.00000 0.00000E+00 + -2 u~ -2 0.33000 0.00000 0.00000E+00 + 3 s -1 0.50000 0.00000 0.00000E+00 + -3 s~ 1 0.50000 0.00000 0.00000E+00 + 4 c 2 1.50000 0.00000 0.00000E+00 + -4 c~ -2 1.50000 0.00000 0.00000E+00 + 5 b -1 4.80000 0.00000 0.00000E+00 + -5 b~ 1 4.80000 0.00000 0.00000E+00 + 6 t 2 175.00000 1.39816 0.00000E+00 + -6 t~ -2 175.00000 1.39816 0.00000E+00 + 7 b' -1 400.00000 0.00000 0.00000E+00 + -7 b'~ 1 400.00000 0.00000 0.00000E+00 + 8 t' 2 400.00000 0.00000 0.00000E+00 + -8 t'~ -2 400.00000 0.00000 0.00000E+00 + 11 e^- -3 0.00051 0.00000 0.00000E+00 + -11 e^+ 3 0.00051 0.00000 0.00000E+00 + 12 nu_e 0 0.00000 0.00000 0.00000E+00 + -12 nu_e~ 0 0.00000 0.00000 0.00000E+00 + 13 mu^- -3 0.10566 0.00000 6.58654E+05 + -13 mu^+ 3 0.10566 0.00000 6.58654E+05 + 14 nu_mu 0 0.00000 0.00000 0.00000E+00 + -14 nu_mu~ 0 0.00000 0.00000 0.00000E+00 + 15 tau^- -3 1.77700 0.00000 8.72000E-02 + -15 tau^+ 3 1.77700 0.00000 8.72000E-02 + 16 nu_tau 0 0.00000 0.00000 0.00000E+00 + -16 nu_tau~ 0 0.00000 0.00000 0.00000E+00 + 17 tau'^- -3 400.00000 0.00000 0.00000E+00 + -17 tau'^+ 3 400.00000 0.00000 0.00000E+00 + 18 nu_tau' 0 0.00000 0.00000 0.00000E+00 + -18 nu_tau'~ 0 0.00000 0.00000 0.00000E+00 + 21 g 0 0.00000 0.00000 0.00000E+00 + 22 gamma 0 0.00000 0.00000 0.00000E+00 + 23 Z^0 0 91.18800 2.47813 0.00000E+00 + 24 W^+ 3 80.45000 2.07115 0.00000E+00 + -24 W^- -3 80.45000 2.07115 0.00000E+00 + 25 H_1^0 0 115.00000 0.00367 0.00000E+00 + 32 Z_2^0 0 500.00000 14.54029 0.00000E+00 + 33 Z_3^0 0 900.00000 0.00000 0.00000E+00 + 34 W_2^+ 3 500.00000 16.66099 0.00000E+00 + -34 W_2^- -3 500.00000 16.66099 0.00000E+00 + 35 H_2^0 0 300.00000 8.38842 0.00000E+00 + 36 H_3^0 0 300.00000 3.37520 0.00000E+00 + 37 H^+ 3 300.00000 4.17669 0.00000E+00 + -37 H^- -3 300.00000 4.17669 0.00000E+00 + 39 G 0 0.00000 0.00000 0.00000E+00 + 41 R^0 0 5000.00000 417.29147 0.00000E+00 + -41 R~^0 0 5000.00000 417.29147 0.00000E+00 + 42 LQ_c -1 200.00000 0.39162 0.00000E+00 + -42 LQ_c~ 1 200.00000 0.39162 0.00000E+00 + 81 generator-specific 0 0.00000 0.00000 0.00000E+00 + 82 generator-specific 0 0.00000 0.00000 0.00000E+00 + -82 generator-specific 0 0.00000 0.00000 0.00000E+00 + 83 generator-specific 0 1.00000 0.00000 0.00000E+00 + 84 generator-specific 2 2.00000 0.00000 1.00000E-01 + -84 generator-specific -2 2.00000 0.00000 1.00000E-01 + 85 generator-specific -1 5.00000 0.00000 3.87000E-01 + -85 generator-specific 1 5.00000 0.00000 3.87000E-01 + 88 generator-specific 0 0.00000 0.00000 0.00000E+00 + 90 generator-specific 0 0.00000 0.00000 0.00000E+00 + 91 generator-specific 0 0.00000 0.00000 0.00000E+00 + 92 generator-specific 0 0.00000 0.00000 0.00000E+00 + 93 generator-specific 0 0.00000 0.00000 0.00000E+00 + 94 generator-specific 0 0.00000 0.00000 0.00000E+00 + 95 generator-specific 0 0.00000 0.00000 0.00000E+00 + 96 generator-specific 0 0.00000 0.00000 0.00000E+00 + 97 generator-specific 0 0.00000 0.00000 0.00000E+00 + 98 generator-specific 0 0.00000 0.00000 0.00000E+00 + 99 generator-specific 0 0.00000 0.00000 0.00000E+00 + 110 reggeon 0 0.00000 0.00000 0.00000E+00 + 111 pi^0 0 0.13498 0.00000 3.00000E-05 + 113 rho(770)^0 0 0.76850 0.15100 0.00000E+00 + 115 a_2(1320)^0 0 1.31800 0.10700 0.00000E+00 + 130 K_L^0 0 0.49767 0.00000 1.55000E+04 + 211 pi^+ 3 0.13957 0.00000 7.80450E+03 + -211 pi^- -3 0.13957 0.00000 7.80450E+03 + 213 rho(770)^+ 3 0.76690 0.14900 0.00000E+00 + -213 rho(770)^- -3 0.76690 0.14900 0.00000E+00 + 215 a_2(1320)^+ 3 1.31800 0.10700 0.00000E+00 + -215 a_2(1320)^- -3 1.31800 0.10700 0.00000E+00 + 221 eta 0 0.54745 0.0000013 0.00000E+00 + 223 omega(782) 0 0.78194 0.00843 0.00000E+00 + 225 f_2(1270) 0 1.27500 0.18500 0.00000E+00 + 310 K_S^0 0 0.49767 0.00000 2.67620E+01 + 311 K^0 0 0.49767 -1.00000 0.00000E+00 + -311 K~^0 0 0.49767 -1.00000 0.00000E+00 + 313 K*(892)^0 0 0.89610 0.05050 0.00000E+00 + -313 K*(892)~^0 0 0.89610 0.05050 0.00000E+00 + 315 K*_2(1430)^0 0 1.43200 0.10900 0.00000E+00 + -315 K*_2(1430)~^0 0 1.43200 0.10900 0.00000E+00 + 321 K^+ 3 0.49360 0.00000 3.70900E+03 + -321 K^- -3 0.49360 0.00000 3.70900E+03 + 323 K*(892)^+ 3 0.89160 0.04980 0.00000E+00 + -323 K*(892)^- -3 0.89160 0.04980 0.00000E+00 + 325 K*_2(1430)^+ 3 1.42500 0.09800 0.00000E+00 + -325 K*_2(1430)^- -3 1.42500 0.09800 0.00000E+00 + 331 eta'(958) 0 0.95777 0.00020 0.00000E+00 + 333 phi(1020) 0 1.01940 0.00443 0.00000E+00 + 335 f'_2(1525) 0 1.52500 0.07600 0.00000E+00 + 411 D^+ 3 1.86930 0.00000 3.17000E-01 + -411 D^- -3 1.86930 0.00000 3.17000E-01 + 413 D*(2010)^+ 3 2.01000 0.000096 0.00000E+00 + -413 D*(2010)^- -3 2.01000 0.000096 0.00000E+00 + 415 D*_2(2460)^+ 3 2.46000 0.02300 0.00000E+00 + -415 D*_2(2460)^- -3 2.46000 0.02300 0.00000E+00 + 421 D^0 0 1.86450 0.00000 1.24400E-01 + -421 D~^0 0 1.86450 0.00000 1.24400E-01 + 423 D*(2007)^0 0 2.00670 0.00200 0.00000E+00 + -423 D*(2007)~^0 0 2.00670 0.00200 0.00000E+00 + 425 D*_2(2460)^0 0 2.46000 0.02300 0.00000E+00 + -425 D*_2(2460)~^0 0 2.46000 0.02300 0.00000E+00 + 431 D_s^+ 3 1.96850 0.00000 1.40000E-01 + -431 D_s^- -3 1.96850 0.00000 1.40000E-01 + 433 D*_s^+ 3 2.11240 0.00150 0.00000E+00 + -433 D*_s^- -3 2.11240 0.00150 0.00000E+00 + 435 D*_s2(2573)^+ 3 2.57350 0.01500 0.00000E+00 + -435 D*_s2(2573)^- -3 2.57350 0.01500 0.00000E+00 + 441 eta_c(1S) 0 2.97980 0.00130 0.00000E+00 + 443 J/psi(1S) 0 3.09688 0.0000934 0.00000E+00 + 445 chi_c2(1P) 0 3.55620 0.00200 0.00000E+00 + 511 B^0 0 5.27920 0.00000 4.68000E-01 + -511 B~^0 0 5.27920 0.00000 4.68000E-01 + 513 B*^0 0 5.32480 -1.00000 0.00000E+00 + -513 B*~^0 0 5.32480 -1.00000 0.00000E+00 + 515 B*_2^0 0 5.83000 0.02000 0.00000E+00 + -515 B*_2~^0 0 5.83000 0.02000 0.00000E+00 + 521 B^+ 3 5.27890 0.00000 4.62000E-01 + -521 B^- -3 5.27890 0.00000 4.62000E-01 + 523 B*^+ 3 5.32480 0.00000 0.00000E+00 + -523 B*^- -3 5.32480 0.00000 0.00000E+00 + 525 B*_2^+ 3 5.83000 0.02000 0.00000E+00 + -525 B*_2^- -3 5.83000 0.02000 0.00000E+00 + 531 B_s^0 0 5.36930 0.00000 4.83000E-01 + -531 B_s~^0 0 5.36930 0.00000 4.83000E-01 + 533 B*_s^0 0 5.41630 -1.00000 0.00000E+00 + -533 B*_s~^0 0 5.41630 -1.00000 0.00000E+00 + 535 B*_s2^0 0 6.07000 0.02000 0.00000E+00 + -535 B*_s2~^0 0 6.07000 0.02000 0.00000E+00 + 541 B_c^+ 3 6.59400 0.00000 1.50000E-01 + -541 B_c^- -3 6.59400 0.00000 1.50000E-01 + 543 B*_c^+ 3 6.60200 -1.00000 0.00000E+00 + -543 B*_c^- -3 6.60200 -1.00000 0.00000E+00 + 545 B*_c2^+ 3 7.35000 0.02000 0.00000E+00 + -545 B*_c2^- -3 7.35000 0.02000 0.00000E+00 + 551 eta_b(1S) 0 9.40000 -1.00000 0.00000E+00 + 553 Upsilon(1S) 0 9.46030 0.000054 0.00000E+00 + 555 chi_b2(1P) 0 9.91320 -1.00000 0.00000E+00 + 990 pomeron 0 0.00000 0.00000 0.00000E+00 + 1103 dd_1 -2 0.77133 0.00000 0.00000E+00 + -1103 dd_1~ 2 0.77133 0.00000 0.00000E+00 + 1114 Delta^- -3 1.23400 0.12000 0.00000E+00 + -1114 Delta~^+ 3 1.23400 0.12000 0.00000E+00 + 2101 ud_0 1 0.57933 0.00000 0.00000E+00 + -2101 ud_0~ -1 0.57933 0.00000 0.00000E+00 + 2103 ud_1 1 0.77133 0.00000 0.00000E+00 + -2103 ud_1~ -1 0.77133 0.00000 0.00000E+00 + 2112 n^0 0 0.93957 0.00000 0.00000E+00 + -2112 n~^0 0 0.93957 0.00000 0.00000E+00 + 2114 Delta^0 0 1.23300 0.12000 0.00000E+00 + -2114 Delta~^0 0 1.23300 0.12000 0.00000E+00 + 2203 uu_1 4 0.77133 0.00000 0.00000E+00 + -2203 uu_1~ -4 0.77133 0.00000 0.00000E+00 + 2212 p^+ 3 0.93827 0.00000 0.00000E+00 + -2212 p~^- -3 0.93827 0.00000 0.00000E+00 + 2214 Delta^+ 3 1.23200 0.12000 0.00000E+00 + -2214 Delta~^- -3 1.23200 0.12000 0.00000E+00 + 2224 Delta^++ 6 1.23100 0.12000 0.00000E+00 + -2224 Delta~^-- -6 1.23100 0.12000 0.00000E+00 + 3101 sd_0 -2 0.80473 0.00000 0.00000E+00 + -3101 sd_0~ 2 0.80473 0.00000 0.00000E+00 + 3103 sd_1 -2 0.92953 0.00000 0.00000E+00 + -3103 sd_1~ 2 0.92953 0.00000 0.00000E+00 + 3112 Sigma^- -3 1.19744 0.00000 4.43400E+01 + -3112 Sigma~^+ 3 1.19744 0.00000 4.43400E+01 + 3114 Sigma*^- -3 1.38720 0.03940 0.00000E+00 + -3114 Sigma*~^+ 3 1.38720 0.03940 0.00000E+00 + 3122 Lambda^0 0 1.11568 0.00000 7.88800E+01 + -3122 Lambda~^0 0 1.11568 0.00000 7.88800E+01 + 3201 su_0 1 0.80473 0.00000 0.00000E+00 + -3201 su_0~ -1 0.80473 0.00000 0.00000E+00 + 3203 su_1 1 0.92953 0.00000 0.00000E+00 + -3203 su_1~ -1 0.92953 0.00000 0.00000E+00 + 3212 Sigma^0 0 1.19255 0.00000 2.20000E-08 + -3212 Sigma~^0 0 1.19255 0.00000 2.20000E-08 + 3214 Sigma*^0 0 1.38370 0.03600 0.00000E+00 + -3214 Sigma*~^0 0 1.38370 0.03600 0.00000E+00 + 3222 Sigma^+ 3 1.18937 0.00000 2.39600E+01 + -3222 Sigma~^- -3 1.18937 0.00000 2.39600E+01 + 3224 Sigma*^+ 3 1.38280 0.03580 0.00000E+00 + -3224 Sigma*~^- -3 1.38280 0.03580 0.00000E+00 + 3303 ss_1 -2 1.09361 0.00000 0.00000E+00 + -3303 ss_1~ 2 1.09361 0.00000 0.00000E+00 + 3312 Xi^- -3 1.32130 0.00000 4.91000E+01 + -3312 Xi~^+ 3 1.32130 0.00000 4.91000E+01 + 3314 Xi*^- -3 1.53500 0.00990 0.00000E+00 + -3314 Xi*~^+ 3 1.53500 0.00990 0.00000E+00 + 3322 Xi^0 0 1.31490 0.00000 8.71000E+01 + -3322 Xi~^0 0 1.31490 0.00000 8.71000E+01 + 3324 Xi*^0 0 1.53180 0.00910 0.00000E+00 + -3324 Xi*~^0 0 1.53180 0.00910 0.00000E+00 + 3334 Omega^- -3 1.67245 0.00000 2.46000E+01 + -3334 Omega~^+ 3 1.67245 0.00000 2.46000E+01 + 4101 cd_0 1 1.96908 0.00000 0.00000E+00 + -4101 cd_0~ -1 1.96908 0.00000 0.00000E+00 + 4103 cd_1 1 2.00808 0.00000 0.00000E+00 + -4103 cd_1~ -1 2.00808 0.00000 0.00000E+00 + 4112 Sigma_c^0 0 2.45210 0.00220 0.00000E+00 + -4112 Sigma_c~^0 0 2.45210 0.00220 0.00000E+00 + 4114 Sigma*_c^0 0 2.50000 0.01610 0.00000E+00 + -4114 Sigma*_c~^0 0 2.50000 0.01610 0.00000E+00 + 4122 Lambda_c^+ 3 2.28490 0.00000 6.18000E-02 + -4122 Lambda_c~^- -3 2.28490 0.00000 6.18000E-02 + 4132 Xi_c^0 0 2.47030 0.00000 2.90000E-02 + -4132 Xi_c~^0 0 2.47030 0.00000 2.90000E-02 + 4201 cu_0 4 1.96908 0.00000 0.00000E+00 + -4201 cu_0~ -4 1.96908 0.00000 0.00000E+00 + 4203 cu_1 4 2.00808 0.00000 0.00000E+00 + -4203 cu_1~ -4 2.00808 0.00000 0.00000E+00 + 4212 Sigma_c^+ 3 2.45350 0.00400 0.00000E+00 + -4212 Sigma_c~^- -3 2.45350 0.00400 0.00000E+00 + 4214 Sigma*_c^+ 3 2.50000 0.01600 0.00000E+00 + -4214 Sigma*_c~^- -3 2.50000 0.01600 0.00000E+00 + 4222 Sigma_c^++ 6 2.45290 0.00200 0.00000E+00 + -4222 Sigma_c~^-- -6 2.45290 0.00200 0.00000E+00 + 4224 Sigma*_c^++ 6 2.50000 0.01490 0.00000E+00 + -4224 Sigma*_c~^-- -6 2.50000 0.01490 0.00000E+00 + 4232 Xi_c^+ 3 2.46560 0.00000 1.06000E-01 + -4232 Xi_c~^- -3 2.46560 0.00000 1.06000E-01 + 4301 cs_0 1 2.15432 0.00000 0.00000E+00 + -4301 cs_0~ -1 2.15432 0.00000 0.00000E+00 + 4303 cs_1 1 2.17967 0.00000 0.00000E+00 + -4303 cs_1~ -1 2.17967 0.00000 0.00000E+00 + 4312 Xi'_c^0 0 2.55000 -1.00000 0.00000E+00 + -4312 Xi'_c~^0 0 2.55000 -1.00000 0.00000E+00 + 4314 Xi*_c^0 0 2.63000 0.00500 0.00000E+00 + -4314 Xi*_c~^0 0 2.63000 0.00500 0.00000E+00 + 4322 Xi'_c^+ 3 2.55000 -1.00000 0.00000E+00 + -4322 Xi'_c~^- -3 2.55000 -1.00000 0.00000E+00 + 4324 Xi*_c^+ 3 2.63000 0.00300 0.00000E+00 + -4324 Xi*_c~^- -3 2.63000 0.00300 0.00000E+00 + 4332 Omega_c^0 0 2.70400 0.00000 1.90000E-02 + -4332 Omega_c~^0 0 2.70400 0.00000 1.90000E-02 + 4334 Omega*_c^0 0 2.80000 -1.00000 0.00000E+00 + -4334 Omega*_c~^0 0 2.80000 -1.00000 0.00000E+00 + 4403 cc_1 4 3.27531 0.00000 0.00000E+00 + -4403 cc_1~ -4 3.27531 0.00000 0.00000E+00 + 4412 Xi_cc^+ 3 3.59798 0.00000 1.00000E-01 + -4412 Xi_cc~^- -3 3.59798 0.00000 1.00000E-01 + 4414 Xi*_cc^+ 3 3.65648 0.00000 1.00000E-01 + -4414 Xi*_cc~^- -3 3.65648 0.00000 1.00000E-01 + 4422 Xi_cc^++ 6 3.59798 0.00000 1.00000E-01 + -4422 Xi_cc~^-- -6 3.59798 0.00000 1.00000E-01 + 4424 Xi*_cc^++ 6 3.65648 0.00000 1.00000E-01 + -4424 Xi*_cc~^-- -6 3.65648 0.00000 1.00000E-01 + 4432 Omega_cc^+ 3 3.78663 0.00000 1.00000E-01 + -4432 Omega_cc~^- -3 3.78663 0.00000 1.00000E-01 + 4434 Omega*_cc^+ 3 3.82466 0.00000 1.00000E-01 + -4434 Omega*_cc~^- -3 3.82466 0.00000 1.00000E-01 + 4444 Omega*_ccc^++ 6 4.91594 0.00000 1.00000E-01 + -4444 Omega*_ccc~^-- -6 4.91594 0.00000 1.00000E-01 + 5101 bd_0 -2 5.38897 0.00000 0.00000E+00 + -5101 bd_0~ 2 5.38897 0.00000 0.00000E+00 + 5103 bd_1 -2 5.40145 0.00000 0.00000E+00 + -5103 bd_1~ 2 5.40145 0.00000 0.00000E+00 + 5112 Sigma_b^- -3 5.80000 -1.00000 0.00000E+00 + -5112 Sigma_b~^+ 3 5.80000 -1.00000 0.00000E+00 + 5114 Sigma*_b^- -3 5.81000 -1.00000 0.00000E+00 + -5114 Sigma*_b~^+ 3 5.81000 -1.00000 0.00000E+00 + 5122 Lambda_b^0 0 5.64100 0.00000 3.42000E-01 + -5122 Lambda_b~^0 0 5.64100 0.00000 3.42000E-01 + 5132 Xi_b^- -3 5.84000 0.00000 3.87000E-01 + -5132 Xi_b~^+ 3 5.84000 0.00000 3.87000E-01 + 5142 Xi_bc^0 0 7.00575 0.00000 3.87000E-01 + -5142 Xi_bc~^0 0 7.00575 0.00000 3.87000E-01 + 5201 bu_0 1 5.38897 0.00000 0.00000E+00 + -5201 bu_0~ -1 5.38897 0.00000 0.00000E+00 + 5203 bu_1 1 5.40145 0.00000 0.00000E+00 + -5203 bu_1~ -1 5.40145 0.00000 0.00000E+00 + 5212 Sigma_b^0 0 5.80000 -1.00000 0.00000E+00 + -5212 Sigma_b~^0 0 5.80000 -1.00000 0.00000E+00 + 5214 Sigma*_b^0 0 5.81000 -1.00000 0.00000E+00 + -5214 Sigma*_b~^0 0 5.81000 -1.00000 0.00000E+00 + 5222 Sigma_b^+ 3 5.80000 -1.00000 0.00000E+00 + -5222 Sigma_b~^- -3 5.80000 -1.00000 0.00000E+00 + 5224 Sigma*_b^+ 3 5.81000 -1.00000 0.00000E+00 + -5224 Sigma*_b~^- -3 5.81000 -1.00000 0.00000E+00 + 5232 Xi_b^0 0 5.84000 0.00000 3.87000E-01 + -5232 Xi_b~^0 0 5.84000 0.00000 3.87000E-01 + 5242 Xi_bc^+ 3 7.00575 0.00000 3.87000E-01 + -5242 Xi_bc~^- -3 7.00575 0.00000 3.87000E-01 + 5301 bs_0 -2 5.56725 0.00000 0.00000E+00 + -5301 bs_0~ 2 5.56725 0.00000 0.00000E+00 + 5303 bs_1 -2 5.57536 0.00000 0.00000E+00 + -5303 bs_1~ 2 5.57536 0.00000 0.00000E+00 + 5312 Xi'_b^- -3 5.96000 -1.00000 0.00000E+00 + -5312 Xi'_b~^+ 3 5.96000 -1.00000 0.00000E+00 + 5314 Xi*_b^- -3 5.97000 -1.00000 0.00000E+00 + -5314 Xi*_b~^+ 3 5.97000 -1.00000 0.00000E+00 + 5322 Xi'_b^0 0 5.96000 -1.00000 0.00000E+00 + -5322 Xi'_b~^0 0 5.96000 -1.00000 0.00000E+00 + 5324 Xi*_b^0 0 5.97000 -1.00000 0.00000E+00 + -5324 Xi*_b~^0 0 5.97000 -1.00000 0.00000E+00 + 5332 Omega_b^- -3 6.12000 0.00000 3.87000E-01 + -5332 Omega_b~^+ 3 6.12000 0.00000 3.87000E-01 + 5334 Omega*_b^- -3 6.13000 -1.00000 0.00000E+00 + -5334 Omega*_b~^+ 3 6.13000 -1.00000 0.00000E+00 + 5342 Omega_bc^0 0 7.19099 0.00000 3.87000E-01 + -5342 Omega_bc~^0 0 7.19099 0.00000 3.87000E-01 + 5401 bc_0 1 6.67143 0.00000 0.00000E+00 + -5401 bc_0~ -1 6.67143 0.00000 0.00000E+00 + 5403 bc_1 1 6.67397 0.00000 0.00000E+00 + -5403 bc_1~ -1 6.67397 0.00000 0.00000E+00 + 5412 Xi'_bc^0 0 7.03724 0.00000 3.87000E-01 + -5412 Xi'_bc~^0 0 7.03724 0.00000 3.87000E-01 + 5414 Xi*_bc^0 0 7.04850 0.00000 3.87000E-01 + -5414 Xi*_bc~^0 0 7.04850 0.00000 3.87000E-01 + 5422 Xi'_bc^+ 3 7.03724 0.00000 3.87000E-01 + -5422 Xi'_bc~^- -3 7.03724 0.00000 3.87000E-01 + 5424 Xi*_bc^+ 3 7.04850 0.00000 3.87000E-01 + -5424 Xi*_bc~^- -3 7.04850 0.00000 3.87000E-01 + 5432 Omega'_bc^0 0 7.21101 0.00000 3.87000E-01 + -5432 Omega'_bc~^0 0 7.21101 0.00000 3.87000E-01 + 5434 Omega*_bc^0 0 7.21900 0.00000 3.87000E-01 + -5434 Omega*_bc~^0 0 7.21900 0.00000 3.87000E-01 + 5442 Omega_bcc^+ 3 8.30945 0.00000 3.87000E-01 + -5442 Omega_bcc~^- -3 8.30945 0.00000 3.87000E-01 + 5444 Omega*_bcc^+ 3 8.31325 0.00000 3.87000E-01 + -5444 Omega*_bcc~^- -3 8.31325 0.00000 3.87000E-01 + 5503 bb_1 -2 10.07354 0.00000 0.00000E+00 + -5503 bb_1~ 2 10.07354 0.00000 0.00000E+00 + 5512 Xi_bb^- -3 10.42272 0.00000 3.87000E-01 + -5512 Xi_bb~^+ 3 10.42272 0.00000 3.87000E-01 + 5514 Xi*_bb^- -3 10.44144 0.00000 3.87000E-01 + -5514 Xi*_bb~^+ 3 10.44144 0.00000 3.87000E-01 + 5522 Xi_bb^0 0 10.42272 0.00000 3.87000E-01 + -5522 Xi_bb~^0 0 10.42272 0.00000 3.87000E-01 + 5524 Xi*_bb^0 0 10.44144 0.00000 3.87000E-01 + -5524 Xi*_bb~^0 0 10.44144 0.00000 3.87000E-01 + 5532 Omega_bb^- -3 10.60209 0.00000 3.87000E-01 + -5532 Omega_bb~^+ 3 10.60209 0.00000 3.87000E-01 + 5534 Omega*_bb^- -3 10.61426 0.00000 3.87000E-01 + -5534 Omega*_bb~^+ 3 10.61426 0.00000 3.87000E-01 + 5542 Omega_bbc^0 0 11.70767 0.00000 3.87000E-01 + -5542 Omega_bbc~^0 0 11.70767 0.00000 3.87000E-01 + 5544 Omega*_bbc^0 0 11.71147 0.00000 3.87000E-01 + -5544 Omega*_bbc~^0 0 11.71147 0.00000 3.87000E-01 + 5554 Omega*_bbb^- -3 15.11061 0.00000 3.87000E-01 + -5554 Omega*_bbb~^+ 3 15.11061 0.00000 3.87000E-01 + 9000111 a_0(980)^0 0 0.98350 0.06000 0.00000E+00 + 10113 b_1(1235)^0 0 1.23100 0.14200 0.00000E+00 + 9000211 a_0(980)^+ 3 0.98350 0.06000 0.00000E+00 + -9000211 a_0(980)^- -3 0.98350 0.06000 0.00000E+00 + 10213 b_1(1235)^+ 3 1.23100 0.14200 0.00000E+00 + -10213 b_1(1235)^- -3 1.23100 0.14200 0.00000E+00 + 9010221 f_0(980) 0 1.00000 0.04000 0.00000E+00 + 10223 h_1(1170) 0 1.17000 0.36000 0.00000E+00 + 10311 K*_0(1430)^0 0 1.42900 0.28700 0.00000E+00 + -10311 K*_0(1430)~^0 0 1.42900 0.28700 0.00000E+00 + 10313 K_1(1270)^0 0 1.29000 0.09000 0.00000E+00 + -10313 K_1(1270)~^0 0 1.29000 0.09000 0.00000E+00 + 10321 K*_0(1430)^+ 3 1.42900 0.28700 0.00000E+00 + -10321 K*_0(1430)^- -3 1.42900 0.28700 0.00000E+00 + 10323 K_1(1270)^+ 3 1.29000 0.09000 0.00000E+00 + -10323 K_1(1270)^- -3 1.29000 0.09000 0.00000E+00 + 10221 f_0(1370) 0 1.40000 0.25000 0.00000E+00 + 10333 h_1(1380) 0 1.40000 0.08000 0.00000E+00 + 10411 D*_0(2400)^+ 3 2.27200 0.05000 0.00000E+00 + -10411 D*_0(2400)^- -3 2.27200 0.05000 0.00000E+00 + 10413 D_1(2420)^+ 3 2.42400 0.02000 0.00000E+00 + -10413 D_1(2420)^- -3 2.42400 0.02000 0.00000E+00 + 10421 D*_0(2400)^0 0 2.27200 0.05000 0.00000E+00 + -10421 D*_0(2400)~^0 0 2.27200 0.05000 0.00000E+00 + 10423 D_1(2420)^0 0 2.42400 0.02000 0.00000E+00 + -10423 D_1(2420)~^0 0 2.42400 0.02000 0.00000E+00 + 10431 D*_s0(2317)^+ 3 2.50000 0.05000 0.00000E+00 + -10431 D*_s0(2317)^- -3 2.50000 0.05000 0.00000E+00 + 10433 D_s1(2536)^+ 3 2.53600 0.00200 0.00000E+00 + -10433 D_s1(2536)^- -3 2.53600 0.00200 0.00000E+00 + 10441 chi_c0(1P) 0 3.41510 0.01400 0.00000E+00 + 10443 hc(1P) 0 3.46000 0.01000 0.00000E+00 + 10511 B*_0^0 0 5.68000 0.05000 0.00000E+00 + -10511 B*_0~^0 0 5.68000 0.05000 0.00000E+00 + 10513 B_1(L)^0 0 5.73000 0.05000 0.00000E+00 + -10513 B_1(L)~^0 0 5.73000 0.05000 0.00000E+00 + 10521 B*_0^+ 3 5.68000 0.05000 0.00000E+00 + -10521 B*_0^- -3 5.68000 0.05000 0.00000E+00 + 10523 B_1(L)^+ 3 5.73000 0.05000 0.00000E+00 + -10523 B_1(L)^- -3 5.73000 0.05000 0.00000E+00 + 10531 B*_s0^0 0 5.92000 0.05000 0.00000E+00 + -10531 B*_s0~^0 0 5.92000 0.05000 0.00000E+00 + 10533 B_s1(L)^0 0 5.97000 0.05000 0.00000E+00 + -10533 B_s1(L)~^0 0 5.97000 0.05000 0.00000E+00 + 10541 B*_c0^+ 3 7.25000 0.05000 0.00000E+00 + -10541 B*_c0^- -3 7.25000 0.05000 0.00000E+00 + 10543 B_c1(L)^+ 3 7.30000 0.05000 0.00000E+00 + -10543 B_c1(L)^- -3 7.30000 0.05000 0.00000E+00 + 10551 chi_b0(1P) 0 9.85980 -1.00000 0.00000E+00 + 10553 h_b(1P) 0 9.87500 0.01000 0.00000E+00 + 20113 a_1(1260)^0 0 1.23000 0.40000 0.00000E+00 + 20213 a_1(1260)^+ 3 1.23000 0.40000 0.00000E+00 + -20213 a_1(1260)^- -3 1.23000 0.40000 0.00000E+00 + 20223 f_1(1285) 0 1.28200 0.02500 0.00000E+00 + 20313 K_1(1400)^0 0 1.40200 0.17400 0.00000E+00 + -20313 K_1(1400)~^0 0 1.40200 0.17400 0.00000E+00 + 20323 K_1(1400)^+ 3 1.40200 0.17400 0.00000E+00 + -20323 K_1(1400)^- -3 1.40200 0.17400 0.00000E+00 + 20333 f_1(1420) 0 1.42700 0.05300 0.00000E+00 + 20413 D_1(H)^+ 3 2.37200 0.05000 0.00000E+00 + -20413 D_1(H)^- -3 2.37200 0.05000 0.00000E+00 + 20423 D_1(2430)^0 0 2.37200 0.05000 0.00000E+00 + -20423 D_1(2430)~^0 0 2.37200 0.05000 0.00000E+00 + 20433 D_s1(2460)^+ 3 2.56000 0.05000 0.00000E+00 + -20433 D_s1(2460)^- -3 2.56000 0.05000 0.00000E+00 + 20443 chi_c1(1P) 0 3.51060 0.00090 0.00000E+00 + 20513 B_1(H)^0 0 5.78000 0.05000 0.00000E+00 + -20513 B_1(H)~^0 0 5.78000 0.05000 0.00000E+00 + 20523 B_1(H)^+ 3 5.78000 0.05000 0.00000E+00 + -20523 B_1(H)^- -3 5.78000 0.05000 0.00000E+00 + 20533 B_s1(H)^0 0 6.02000 0.05000 0.00000E+00 + -20533 B_s1(H)~^0 0 6.02000 0.05000 0.00000E+00 + 20543 B_c1(H)^+ 3 7.30000 0.05000 0.00000E+00 + -20543 B_c1(H)^- -3 7.30000 0.05000 0.00000E+00 + 20553 chi_b1(1P) 0 9.89190 -1.00000 0.00000E+00 + 100443 psi(2S) 0 3.68600 0.000337 0.00000E+00 + 100553 Upsilon(2S) 0 10.02330 0.000032 0.00000E+00 + 1000001 susy-d_L -1 500.00000 1.00000 0.00000E+00 + -1000001 susy-d_L~ 1 500.00000 1.00000 0.00000E+00 + 1000002 susy-u_L 2 500.00000 1.00000 0.00000E+00 + -1000002 susy-u_L~ -2 500.00000 1.00000 0.00000E+00 + 1000003 susy-s_L -1 500.00000 1.00000 0.00000E+00 + -1000003 susy-s_L~ 1 500.00000 1.00000 0.00000E+00 + 1000004 susy-c_L 2 500.00000 1.00000 0.00000E+00 + -1000004 susy-c_L~ -2 500.00000 1.00000 0.00000E+00 + 1000005 susy-b_1 -1 500.00000 1.00000 0.00000E+00 + -1000005 susy-b_1~ 1 500.00000 1.00000 0.00000E+00 + 1000006 susy-t_1 2 500.00000 1.00000 0.00000E+00 + -1000006 susy-t_1~ -2 500.00000 1.00000 0.00000E+00 + 1000011 susy-e_L^- -3 500.00000 1.00000 0.00000E+00 + -1000011 susy-e_L^+ 3 500.00000 1.00000 0.00000E+00 + 1000012 susy-nu_eL 0 500.00000 1.00000 0.00000E+00 + -1000012 susy-nu_eL~ 0 500.00000 1.00000 0.00000E+00 + 1000013 susy-mu_L^- -3 500.00000 1.00000 0.00000E+00 + -1000013 susy-mu_L^+ 3 500.00000 1.00000 0.00000E+00 + 1000014 susy-nu_muL 0 500.00000 1.00000 0.00000E+00 + -1000014 susy-nu_muL~ 0 500.00000 1.00000 0.00000E+00 + 1000015 susy-tau_L^- -3 500.00000 1.00000 0.00000E+00 + -1000015 susy-tau_L^+ 3 500.00000 1.00000 0.00000E+00 + 1000016 susy-nu_tauL 0 500.00000 1.00000 0.00000E+00 + -1000016 susy-nu_tauL~ 0 500.00000 1.00000 0.00000E+00 + 1000021 gluino 0 500.00000 1.00000 0.00000E+00 + 1000022 susy-chi_1^0 0 98.4791005 1.00000 0.00000E+00 + 1000023 susy-chi_2^0 0 500.00000 1.00000 0.00000E+00 + 1000024 susy-chi_1^+ 3 500.00000 1.00000 0.00000E+00 + -1000024 susy-chi_1^- -3 500.00000 1.00000 0.00000E+00 + 1000025 susy-chi_3^0 0 500.00000 1.00000 0.00000E+00 + 1000035 susy-chi_4^0 0 500.00000 1.00000 0.00000E+00 + 1000037 susy-chi_2^+ 3 500.00000 1.00000 0.00000E+00 + -1000037 susy-chi_2^- -3 500.00000 1.00000 0.00000E+00 + 1000039 gravitino 0 500.00000 0.00000 0.00000E+00 + 2000001 susy-d_R -1 500.00000 1.00000 0.00000E+00 + -2000001 susy-d_R~ 1 500.00000 1.00000 0.00000E+00 + 2000002 susy-u_R 2 500.00000 1.00000 0.00000E+00 + -2000002 susy-u_R~ -2 500.00000 1.00000 0.00000E+00 + 2000003 susy-s_R -1 500.00000 1.00000 0.00000E+00 + -2000003 susy-s_R~ 1 500.00000 1.00000 0.00000E+00 + 2000004 susy-c_R 2 500.00000 1.00000 0.00000E+00 + -2000004 susy-c_R~ -2 500.00000 1.00000 0.00000E+00 + 2000005 susy-b_R -1 500.00000 1.00000 0.00000E+00 + -2000005 susy-b_R~ 1 500.00000 1.00000 0.00000E+00 + 2000006 susy-t_R 2 500.00000 1.00000 0.00000E+00 + -2000006 susy-t_R~ -2 500.00000 1.00000 0.00000E+00 + 2000011 susy-e_R^- -3 500.00000 1.00000 0.00000E+00 + -2000011 susy-e_R^+ 3 500.00000 1.00000 0.00000E+00 + 2000012 susy-nu_eR 0 500.00000 0.00000 0.00000E+00 + -2000012 susy-nu_eR~ 0 500.00000 0.00000 0.00000E+00 + 2000013 susy-mu_R^- -3 500.00000 1.00000 0.00000E+00 + -2000013 susy-mu_R^+ 3 500.00000 1.00000 0.00000E+00 + 2000014 susy-nu_muR 0 500.00000 0.00000 0.00000E+00 + -2000014 susy-nu_muR~ 0 500.00000 0.00000 0.00000E+00 + 2000015 susy-tau_R^- -3 500.00000 1.00000 0.00000E+00 + -2000015 susy-tau_R^+ 3 500.00000 1.00000 0.00000E+00 + 2000016 susy-nu_tauR 0 500.00000 0.00000 0.00000E+00 + -2000016 susy-nu_tauR~ 0 500.00000 0.00000 0.00000E+00 + 3000111 pi_tech^0 0 110.00000 0.02911 0.00000E+00 + 3000211 pi_tech^+ 3 110.00000 0.01741 0.00000E+00 + -3000211 pi_tech^- -3 110.00000 0.01741 0.00000E+00 + 3000221 pi'_tech 0 110.00000 0.04536 0.00000E+00 + 3100221 eta_tech 0 350.00000 0.09511 0.00000E+00 + 3000113 rho_tech^0 0 210.00000 0.86860 0.00000E+00 + 3000213 rho_tech^+ 3 210.00000 0.62395 0.00000E+00 + -3000213 rho_tech^- -3 210.00000 0.62395 0.00000E+00 + 3000223 omega_tech 0 210.00000 0.19192 0.00000E+00 + 3100021 V8_tech 0 500.00000 123.27638 0.00000E+00 + 3060111 pi_tech_22_1 0 125.00000 0.02296 0.00000E+00 + 3160111 pi_tech_22_8 0 250.00000 0.18886 0.00000E+00 + 3130113 rho_tech_11 0 400.00000 23.26819 0.00000E+00 + 3140113 rho_tech_12 0 350.00000 2.86306 0.00000E+00 + 3150113 rho_tech_21 0 350.00000 0.00000 0.00000E+00 + 3160113 rho_tech_22 0 300.00000 3.45903 0.00000E+00 + 4000001 d* -1 400.00000 2.59359 0.00000E+00 + -4000001 d*~ 1 400.00000 2.59359 0.00000E+00 + 4000002 u* 2 400.00000 2.59687 0.00000E+00 + -4000002 u*~ -2 400.00000 2.59687 0.00000E+00 + 4000011 e*^- -3 400.00000 0.42896 0.00000E+00 + -4000011 e*^+ 3 400.00000 0.42896 0.00000E+00 + 4000012 nu*_e 0 400.00000 0.41912 0.00000E+00 + -4000012 nu*_e~ 0 400.00000 0.41912 0.00000E+00 + 4000039 G* 0 1000.00000 0.14153 0.00000E+00 + 9900012 nu_Re 0 500.00000 0.00098 0.00000E+00 + 9900014 nu_Rmu 0 500.00000 0.00098 0.00000E+00 + 9900016 nu_Rtau 0 500.00000 0.00097 0.00000E+00 + 9900023 Z_R^0 0 1200.00000 26.72450 0.00000E+00 + 9900024 W_R^+ 3 750.00000 21.74916 0.00000E+00 + -9900024 W_R^- -3 750.00000 21.74916 0.00000E+00 + 9900041 H_L^++ 6 200.00000 0.88159 0.00000E+00 + -9900041 H_L^-- -6 200.00000 0.88159 0.00000E+00 + 9900042 H_R^++ 6 200.00000 0.88001 0.00000E+00 + -9900042 H_R^-- -6 200.00000 0.88001 0.00000E+00 + 9910113 rho_diffr^0 0 0.00000 0.00000 0.00000E+00 + 9910211 pi_diffr^+ 3 0.00000 0.00000 0.00000E+00 + -9910211 pi_diffr^- -3 0.00000 0.00000 0.00000E+00 + 9910223 omega_diffr 0 0.00000 0.00000 0.00000E+00 + 9910333 phi_diffr 0 0.00000 0.00000 0.00000E+00 + 9910443 psi_diffr 0 0.00000 0.00000 0.00000E+00 + 9912112 n_diffr^0 0 0.00000 0.00000 0.00000E+00 + -9912112 n_diffr~^0 0 0.00000 0.00000 0.00000E+00 + 9912212 p_diffr^+ 3 0.00000 0.00000 0.00000E+00 + -9912212 p_diffr~^- -3 0.00000 0.00000 0.00000E+00 + 1000010020 Deuterium 3 1.87561 0.00000 0.00000E+00 + 1000010030 Tritium 3 2.80925 0.00000 0.00000E+00 + 1000020030 He3 6 2.80923 0.00000 0.00000E+00 + 1000020040 Alpha-(He4) 6 3.72742 0.00000 0.00000E+00 diff --git a/DDG4/plugins/Geant4ExtraParticles.cpp b/DDG4/plugins/Geant4ExtraParticles.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bb1e80dcf4d50040dcde88811df6cc7c917db10b --- /dev/null +++ b/DDG4/plugins/Geant4ExtraParticles.cpp @@ -0,0 +1,176 @@ +// +// Authors: Tomohiko Tanabe <tomohiko@icepp.s.u-tokyo.ac.jp> +// Taikan Suehara <suehara@icepp.s.u-tokyo.ac.jp> +// Proted from Mokka by A.Sailer (CERN ) +// +// $Id$ +// $Name: $ + +#include "Geant4ExtraParticles.h" +#include "DDG4/Factories.h" + +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4SystemOfUnits.hh" +#include "G4PhysicalConstants.hh" +#include "G4Version.hh" + +#include "DDG4/Factories.h" +#include <fstream> +#include <sstream> +#include <string> + +using namespace DD4hep::Simulation; + +Geant4ExtraParticles::Geant4ExtraParticles(Geant4Context* ctxt, const std::string& nam) + : G4VPhysicsConstructor(nam), Geant4Action(ctxt, nam) +{ + declareProperty("pdgfile", m_pdgfile); +} + +Geant4ExtraParticles::~Geant4ExtraParticles() { +} + +// bool Geant4ExtraParticles::FileExists() { +// std::ifstream pdgFile( m_pdgfile.c_str(), std::ifstream::in ); +// return pdgFile.is_open(); +// } + +void Geant4ExtraParticles::ConstructParticle() { + if (m_pdgfile.empty()) return; + + std::cout << "m_pdgfile: " << m_pdgfile << std::endl; + + G4ParticleTable *theParticleTable = G4ParticleTable::GetParticleTable(); + std::ifstream pdgFile( m_pdgfile.c_str(), std::ifstream::in ); + + if (!pdgFile.is_open()) { + std::cout << "Could not open m_pdgfile: " << m_pdgfile << std::endl; + return; + } + + std::cout << "opened m_pdgfile: " << m_pdgfile << std::endl; + + while ( !pdgFile.eof() ) { + // read line + std::string linebuf; + getline( pdgFile, linebuf ); + + // ignore comments + if (linebuf.substr(0,1) == "#") continue; + if (linebuf.substr(0,2) == "//") continue; + + // ignore empty lines + if (linebuf.empty()) continue; + + // parse line + int pdg; + std::string nam; + double charge; + double mass; + double width; + double lifetime; + + std::istringstream istr(linebuf); + + istr >> pdg >> nam >> charge >> mass >> width >> lifetime; + + // do add particles that don't fly + // if (lifetime == 0) continue; + + if(width<0) width = 0; + + // normalize to G4 units + mass *= GeV; + + if (charge != 0) { + charge /= 3.; + } + + if (lifetime > 0) { + lifetime = lifetime*mm/c_light; + } + + if (width == 0 && lifetime > 0) { + width = hbar_Planck/lifetime; + } + + // don't add if the particle already exists + G4ParticleDefinition* p = theParticleTable->FindParticle(pdg); + if ( !p ) { + + if (abs(pdg)>80 && abs(pdg)<=100) { + // don't add generator-specific particles + } else { + /* + if (pdg==5122) { + G4cout << "Lambda_b0: " << "PDG=" << pdg << ", name=" << name << ", chrg=" << charge + << ", mass=" << mass << ", width=" << width << ", lifetime=" << lifetime << "\n"; + G4cout << "debug: mass=" << 5.62 << ", width =" << 1.39e-12/6.582e-16 << ", lifetime=" << 1.39e-12 << "\n"; + } + //*/ + p = new G4ParticleDefinition( + nam, // name + mass, // mass + width, // width + charge, // charge + 0, // 2*spin + 0, // parity + 0, // C-conjugation + 0, // 2*isospin + 0, // 2*isospin3 + 0, // G-parity + "extra", // type + 0, // lepton number + 0, // baryon number + pdg, // PDG encoding + width==0?true:false, // stable + lifetime, // lifetime + NULL, // decay table + false); // short lived + } + } + } + + G4cout << "Loaded extra particles using file: " << m_pdgfile << G4endl; +} + +void Geant4ExtraParticles::ConstructProcess() { +#if G4VERSION_NUMBER >= 1000 + ParticleIterator=aParticleIterator; +#else + ParticleIterator=theParticleIterator; +#endif + + ParticleIterator->reset(); + while((*ParticleIterator)()) { + G4ParticleDefinition* pdef = ParticleIterator->value(); + G4ProcessManager* pmgr = pdef->GetProcessManager(); + if (pdef->GetParticleType() == "extra") { + if (pdef->GetPDGCharge() != 0) { +#if G4VERSION_NUMBER < 940 + pmgr->AddProcess(&_scatter, -1, 1, 1); // multiple scattering + pmgr->AddProcess(&_ionise, -1, 2, 2); // ionisation + pmgr->AddProcess(&_decay, -1, -1, 2); // decay +#else + pmgr->AddProcess(new G4hMultipleScattering(), -1, 1, 1); //multiple scattering + pmgr->AddProcess(new G4hIonisation(), -1, 2, 2); // ionisation + pmgr->AddProcess(new G4Decay(), -1, -1, 2); // decay +#endif + + } else { + +#if G4VERSION_NUMBER < 940 + pmgr->AddProcess(&_scatter, -1, 1, 1); // multiple scattering + pmgr->AddProcess(&_decay, -1, -1, 2); // decay +#else + // pmgr->AddProcess(new G4hMultipleScattering(), -1, 1, 1); // multiple scattering + pmgr->AddProcess(new G4Decay(), -1, -1, 2); // decay +#endif + + } + } + } +} + +DECLARE_GEANT4ACTION(Geant4ExtraParticles) diff --git a/DDG4/plugins/Geant4ExtraParticles.h b/DDG4/plugins/Geant4ExtraParticles.h new file mode 100644 index 0000000000000000000000000000000000000000..e4054806762b19523f1e9304d35400c74af663d9 --- /dev/null +++ b/DDG4/plugins/Geant4ExtraParticles.h @@ -0,0 +1,49 @@ +// +// Authors: Tomohiko Tanabe <tomohiko@icepp.s.u-tokyo.ac.jp> +// Taikan Suehara <suehara@icepp.s.u-tokyo.ac.jp> +// Proted from Mokka by A.Sailer (CERN ) +// +// $Id$ +// $Name: $ + +#ifndef ExtraParticles_hh +#define ExtraParticles_hh 1 + +#include "DDG4/Geant4Action.h" + +// geant4 +#include "G4VPhysicsConstructor.hh" +#include "G4ProcessManager.hh" +#include "G4Decay.hh" +#include "G4hIonisation.hh" +#include "G4hMultipleScattering.hh" +#include "G4ParticleTable.hh" + +namespace DD4hep { + + namespace Simulation { + + class Geant4ExtraParticles : public G4VPhysicsConstructor, + public Geant4Action + { + public: + Geant4ExtraParticles(Geant4Context* ctxt, const std::string& nam); + virtual ~Geant4ExtraParticles(); + void ConstructParticle(); + void ConstructProcess(); + //static bool FileExists(); + + private: + + G4ParticleTable::G4PTblDicIterator* ParticleIterator; + + std::string m_pdgfile; + + + G4Decay _decay; + G4hIonisation _ionise; + G4hMultipleScattering _scatter; + }; + }} +#endif +