#include <G4CollisionNN.hh>
Inheritance diagram for G4CollisionNN:
Public Member Functions | |
G4CollisionNN () | |
virtual | ~G4CollisionNN () |
G4bool | operator== (const G4CollisionNN &right) const |
G4bool | operator!= (const G4CollisionNN &right) const |
virtual G4String | GetName () const |
virtual G4double | CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const |
Protected Member Functions | |
virtual const G4VCrossSectionSource * | GetCrossSectionSource () const |
virtual const G4VAngularDistribution * | GetAngularDistribution () const |
virtual const G4CollisionVector * | GetComponents () const |
virtual const std::vector< G4String > & | GetListOfColliders (G4int whichOne) const |
Definition at line 40 of file G4CollisionNN.hh.
G4CollisionNN::G4CollisionNN | ( | ) |
Definition at line 55 of file G4CollisionNN.cc.
References G4ForEach< group >::Apply().
00056 { 00057 components=0; 00058 crossSectionSource = new G4XNNTotal(); 00059 G4CollisionComposite::Register aR; 00060 G4ForEach<theChannels>::Apply(&aR, this); 00061 }
G4CollisionNN::~G4CollisionNN | ( | ) | [virtual] |
Definition at line 64 of file G4CollisionNN.cc.
00065 { 00066 if (components) { 00067 delete components; 00068 components=0; 00069 } 00070 delete crossSectionSource; 00071 crossSectionSource = 0; 00072 }
G4double G4CollisionNN::CrossSection | ( | const G4KineticTrack & | trk1, | |
const G4KineticTrack & | trk2 | |||
) | const [virtual] |
Reimplemented from G4CollisionComposite.
Definition at line 82 of file G4CollisionNN.cc.
References G4VCrossSectionSource::CrossSection(), G4KineticTrack::Get4Momentum(), G4KineticTrack::GetActualMass(), GetCrossSectionSource(), G4KineticTrack::GetDefinition(), G4ParticleDefinition::GetPDGMass(), and G4KineticTrack::Set4Momentum().
00084 { 00085 G4double sigma = 0.; 00086 00087 // nucleon-nucleon cross-sections made for on-shell particles. 00088 // here we take the kinetic energy as the quantity relevant 00089 // for calculating the scattering cross-sections for off-shell hadrons 00090 00091 const G4VCrossSectionSource* xSource = GetCrossSectionSource(); 00092 G4LorentzVector p1 = aTrk1.Get4Momentum(); 00093 G4LorentzVector p2 = aTrk2.Get4Momentum(); 00094 G4double t1 = p1.e()-aTrk1.GetActualMass(); 00095 G4double t2 = p2.e()-aTrk2.GetActualMass(); 00096 p1.setE(t1+aTrk1.GetDefinition()->GetPDGMass()); 00097 p2.setE(t2+aTrk2.GetDefinition()->GetPDGMass()); 00098 G4KineticTrack trk1(aTrk1); 00099 trk1.Set4Momentum(p1); 00100 G4KineticTrack trk2(aTrk2); 00101 trk2.Set4Momentum(p2); 00102 if( (p1+p2).mag()<aTrk1.GetDefinition()->GetPDGMass()+aTrk2.GetDefinition()->GetPDGMass()) 00103 { 00104 return 0.; 00105 } 00106 00107 if (xSource != 0) 00108 { 00109 // There is a cross section for this Collision 00110 sigma = xSource->CrossSection(trk1,trk2); 00111 } 00112 return sigma; 00113 }
virtual const G4VAngularDistribution* G4CollisionNN::GetAngularDistribution | ( | ) | const [inline, protected, virtual] |
virtual const G4CollisionVector* G4CollisionNN::GetComponents | ( | ) | const [inline, protected, virtual] |
virtual const G4VCrossSectionSource* G4CollisionNN::GetCrossSectionSource | ( | ) | const [inline, protected, virtual] |
Reimplemented from G4CollisionComposite.
Definition at line 64 of file G4CollisionNN.hh.
Referenced by CrossSection().
const std::vector< G4String > & G4CollisionNN::GetListOfColliders | ( | G4int | whichOne | ) | const [protected, virtual] |
Implements G4VCollision.
Definition at line 75 of file G4CollisionNN.cc.
00076 { 00077 throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNN::GetListOfColliders - Argument outside valid range"); 00078 return colliders1; 00079 }
virtual G4String G4CollisionNN::GetName | ( | ) | const [inline, virtual] |
G4bool G4CollisionNN::operator!= | ( | const G4CollisionNN & | right | ) | const |
G4bool G4CollisionNN::operator== | ( | const G4CollisionNN & | right | ) | const |