43#ifndef G4VANNIHILATIONCOLLISION_HH
44#define G4VANNIHILATIONCOLLISION_HH
71 return theAngularDistribution;
81 double BrWigInt0(
const double x,
const double gamma,
const double m0)
const
82 {
return 2.0*gamma*std::atan( 2.0 * (x-m0)/ gamma ); }
85 {
return 0.5*gamma*gamma*std::log( (x-m0)*(x-m0)+gamma*gamma/4.0 ) + m0*BrWigInt0(x,gamma,m0); }
87 double BrWigInv(
const double x,
const double gamma,
const double m0)
const
88 {
return 0.5*gamma*std::tan( 0.5*x/gamma )+m0; }
90 double SampleResonanceMass(
const double poleMass,
93 const double maxMass)
const;
virtual const G4VAngularDistribution * GetAngularDistribution() const
G4VAnnihilationCollision()
virtual ~G4VAnnihilationCollision()
G4bool operator!=(const G4VAnnihilationCollision &right) const
virtual const G4ParticleDefinition * GetOutgoingParticle(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
virtual G4KineticTrackVector * FinalState(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
G4bool operator==(const G4VAnnihilationCollision &right) const