#include <G4VAnnihilationCollision.hh>
Inheritance diagram for G4VAnnihilationCollision:
Public Member Functions | |
G4VAnnihilationCollision () | |
virtual | ~G4VAnnihilationCollision () |
G4bool | operator== (const G4VAnnihilationCollision &right) const |
G4bool | operator!= (const G4VAnnihilationCollision &right) const |
virtual G4KineticTrackVector * | FinalState (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const |
virtual const G4VAngularDistribution * | GetAngularDistribution () const |
Protected Member Functions | |
virtual const G4ParticleDefinition * | GetOutgoingParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0 |
Definition at line 55 of file G4VAnnihilationCollision.hh.
G4VAnnihilationCollision::G4VAnnihilationCollision | ( | ) |
G4VAnnihilationCollision::~G4VAnnihilationCollision | ( | ) | [virtual] |
Definition at line 49 of file G4VAnnihilationCollision.cc.
00050 { 00051 if (theAngularDistribution) { 00052 delete theAngularDistribution; 00053 theAngularDistribution=0; 00054 } 00055 }
G4KineticTrackVector * G4VAnnihilationCollision::FinalState | ( | const G4KineticTrack & | trk1, | |
const G4KineticTrack & | trk2 | |||
) | const [virtual] |
Implements G4VCollision.
Definition at line 58 of file G4VAnnihilationCollision.cc.
References G4KineticTrack::Get4Momentum(), GetOutgoingParticle(), and G4KineticTrack::GetPosition().
00060 { 00061 G4LorentzVector p = trk1.Get4Momentum() + trk2.Get4Momentum(); 00062 G4double sqrtS = p.m(); 00063 // G4double s = sqrtS * sqrtS; 00064 00065 // G4double m1 = trk1.GetActualMass(); 00066 // G4double m2 = trk2.GetActualMass(); 00067 00068 G4ParticleDefinition* OutputDefinition = const_cast<G4ParticleDefinition *>( GetOutgoingParticle(trk1,trk2) ); 00069 00070 // Unit vector of three-momentum 00071 00072 G4ThreeVector pFinal(0.0, 0.0, 0.0); 00073 G4double eFinal = sqrtS; 00074 00075 G4LorentzVector p4Final(pFinal, eFinal); 00076 00077 // Lorentz transformation 00078 G4LorentzRotation toLabFrame(p.boostVector()); 00079 p4Final *= toLabFrame; 00080 00081 G4KineticTrack* final = new G4KineticTrack(OutputDefinition, 0.0, 00082 trk1.GetPosition(), p4Final); 00083 00084 G4KineticTrackVector* finalTracks = new G4KineticTrackVector; 00085 00086 finalTracks->push_back(final); 00087 00088 return finalTracks; 00089 }
virtual const G4VAngularDistribution* G4VAnnihilationCollision::GetAngularDistribution | ( | ) | const [inline, virtual] |
virtual const G4ParticleDefinition* G4VAnnihilationCollision::GetOutgoingParticle | ( | const G4KineticTrack & | trk1, | |
const G4KineticTrack & | trk2 | |||
) | const [protected, pure virtual] |
G4bool G4VAnnihilationCollision::operator!= | ( | const G4VAnnihilationCollision & | right | ) | const |
G4bool G4VAnnihilationCollision::operator== | ( | const G4VAnnihilationCollision & | right | ) | const |