54 if ( iter!=minMassCache.end() )
56 minResonanceMass = (*iter).second;
65 for (
G4int i=0; i<nDecays; i++)
72 for (
G4int j=0; j<nDaughters; j++)
76 if (!minMass) minMass =
DBL_MAX;
77 minChannelMass+=minMass;
80 if (minChannelMass < minResonanceMass) minResonanceMass = minChannelMass;
99 return minResonanceMass;
119 if ( minMass > maxMass )
122 "SampleResonanceMass: mass range negative (minMass>maxMass)");
133 double fmin =
BrWigInt0(minMass, gamma, poleMass);
134 double fmax =
BrWigInt0(maxMass, gamma, poleMass);
136 returnMass =
BrWigInv(f, gamma, poleMass);
G4double SampleMass(const G4double poleMass, const G4double gamma, const G4double minMass, const G4double maxMass) const
static G4ThreadLocal minMassMapType * minMassCache_G4MT_TLS_
G4int GetNumberOfDaughters() const
G4double BrWigInt0(const G4double x, const G4double gamma, const G4double m0) const
G4VDecayChannel * GetDecayChannel(G4int index) const
G4DecayTable * GetDecayTable() const
G4double GetPDGWidth() const
std::map< const G4ParticleDefinition *, G4double, std::less< const G4ParticleDefinition * > >::const_iterator minMassMapIterator
G4double GetMinimumMass(const G4ParticleDefinition *p) const
G4bool IsShortLived() const
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double BrWigInv(const G4double x, const G4double gamma, const G4double m0) const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
std::map< const G4ParticleDefinition *, G4double, std::less< const G4ParticleDefinition * > > minMassMapType