54 if ( iter!=minMassCache.end() )
56 minResonanceMass = (*iter).second;
77 const G4double thresholdChannelProbability = 0.10;
78 G4double foundChannelAboveThresholdProbability =
false;
79 G4double minMassMostProbableChannel = 0.0;
80 G4double highestChannelProbability = 0.0;
81 for (
G4int i=0; i<nDecays; i++)
85 if (decayBr >
std::min(highestChannelProbability, thresholdChannelProbability))
89 for (
G4int j=0; j<nDaughters; j++)
93 if (!minMass) minMass =
DBL_MAX;
94 minChannelMass+=minMass;
96 if (decayBr > highestChannelProbability)
98 highestChannelProbability = decayBr;
99 minMassMostProbableChannel = minChannelMass;
101 if (decayBr > thresholdChannelProbability)
103 foundChannelAboveThresholdProbability =
true;
104 if (minChannelMass < minResonanceMass) minResonanceMass = minChannelMass;
108 if ( ! foundChannelAboveThresholdProbability ) {
109 minResonanceMass = minMassMostProbableChannel;
127 return minResonanceMass;
153 G4double protectedMinMass = minMass;
154 if ( minMass > maxMass )
158 protectedMinMass = maxMass;
170 double fmin =
BrWigInt0(protectedMinMass, gamma, poleMass);
171 double fmax =
BrWigInt0(maxMass, gamma, poleMass);
173 returnMass =
BrWigInv(f, gamma, poleMass);
G4VDecayChannel * GetDecayChannel(G4int index) const
G4bool IsShortLived() const
G4double GetPDGMass() const
G4double GetPDGWidth() const
G4DecayTable * GetDecayTable() const
std::map< const G4ParticleDefinition *, G4double, std::less< const G4ParticleDefinition * > > minMassMapType
static G4ThreadLocal minMassMapType * minMassCache_G4MT_TLS_
G4double BrWigInt0(const G4double x, const G4double gamma, const G4double m0) const
G4double SampleMass(const G4double poleMass, const G4double gamma, const G4double minMass, const G4double maxMass) const
std::map< constG4ParticleDefinition *, G4double, std::less< constG4ParticleDefinition * > >::const_iterator minMassMapIterator
G4double BrWigInv(const G4double x, const G4double gamma, const G4double m0) const
G4double GetMinimumMass(const G4ParticleDefinition *p) const
G4int GetNumberOfDaughters() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments