Import Geant4 11.4.1 source tree
This commit is contained in:
@@ -5,6 +5,14 @@ which **must** added in reverse chronological order (newest at the top).
|
||||
It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2026-02-25 Vladimir Ivanchenko (particles-V11-03-02)
|
||||
- Attempt to fixed data race in ion creation (Bugzilla #2680) by extention
|
||||
of excited isomer name from 3 to 5 digits after dot.
|
||||
|
||||
## 2026-01-14 Shogo Okada
|
||||
- Fixed energy conservation in G4MuonDecayChannel (Bugzilla #2678).
|
||||
|
||||
## 2025-11-4 Shogo Okada (particles-V11-03-01)
|
||||
- Scanned all mesons and baryons, including their resonances, to compare their
|
||||
particle properties with PDG-2025. Then, updated mass, decay width, and
|
||||
|
||||
@@ -826,7 +826,7 @@ G4String G4IonTable::GetIonName(G4int Z, G4int A, G4double E,
|
||||
if (E > 0 || flb != G4Ions::G4FloatLevelBase::no_Float) {
|
||||
std::ostringstream os;
|
||||
os.setf(std::ios::fixed);
|
||||
os.precision(3);
|
||||
os.precision(5);
|
||||
// Excited nucleus
|
||||
os << '[' << E / keV;
|
||||
if (flb != G4Ions::G4FloatLevelBase::no_Float) {
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
// Contributions:
|
||||
// - 2005 - M.Melissas, J.Brunner CPPM/IN2P3
|
||||
// Added V-A fluxes for neutrinos using a new algorithm, 2005
|
||||
// - S.Okada KEK/CRC, 14 January 2026
|
||||
// Fixed energy conservation in G4MuonDecayChannel (Bugzilla #2678):
|
||||
// Corrected EMax definition to parentmass/2 and applied standard relativistic
|
||||
// formula (p=sqrt(E^2-m^2)) to compute momenta for all decay products.
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
#include "G4MuonDecayChannel.hh"
|
||||
@@ -142,7 +146,7 @@ G4DecayProducts* G4MuonDecayChannel::DecayIt(G4double)
|
||||
G4double Ee, Ene;
|
||||
|
||||
G4double gam;
|
||||
G4double EMax = parentmass / 2 - daughtermass[0];
|
||||
G4double EMax = parentmass / 2;
|
||||
|
||||
const std::size_t MAX_LOOP = 1000;
|
||||
// Generating Random Energy
|
||||
@@ -174,7 +178,7 @@ G4DecayProducts* G4MuonDecayChannel::DecayIt(G4double)
|
||||
rot.set(rphi, rtheta, rpsi);
|
||||
|
||||
// electron 0
|
||||
daughtermomentum[0] = std::sqrt(Ee * Ee * EMax * EMax + 2.0 * Ee * EMax * daughtermass[0]);
|
||||
daughtermomentum[0] = std::sqrt(Ee * Ee * EMax * EMax - daughtermass[0] * daughtermass[0]);
|
||||
G4ThreeVector direction0(0.0, 0.0, 1.0);
|
||||
|
||||
direction0 *= rot;
|
||||
@@ -186,7 +190,7 @@ G4DecayProducts* G4MuonDecayChannel::DecayIt(G4double)
|
||||
|
||||
// electronic neutrino 1
|
||||
|
||||
daughtermomentum[1] = std::sqrt(Ene * Ene * EMax * EMax + 2.0 * Ene * EMax * daughtermass[1]);
|
||||
daughtermomentum[1] = std::sqrt(Ene * Ene * EMax * EMax - daughtermass[1] * daughtermass[1]);
|
||||
G4ThreeVector direction1(sintheta, 0.0, costheta);
|
||||
|
||||
direction1 *= rot;
|
||||
@@ -197,7 +201,7 @@ G4DecayProducts* G4MuonDecayChannel::DecayIt(G4double)
|
||||
|
||||
// muonnic neutrino 2
|
||||
|
||||
daughtermomentum[2] = std::sqrt(Enm * Enm * EMax * EMax + 2.0 * Enm * EMax * daughtermass[2]);
|
||||
daughtermomentum[2] = std::sqrt(Enm * Enm * EMax * EMax - daughtermass[2] * daughtermass[2]);
|
||||
G4ThreeVector direction2(-Ene / Enm * sintheta, 0, -Ee / Enm - Ene / Enm * costheta);
|
||||
|
||||
direction2 *= rot;
|
||||
|
||||
Reference in New Issue
Block a user