#include <G4XMesonBaryonElastic.hh>
Inheritance diagram for G4XMesonBaryonElastic:
Public Member Functions | |
G4XMesonBaryonElastic () | |
virtual | ~G4XMesonBaryonElastic () |
G4bool | operator== (const G4XMesonBaryonElastic &right) const |
G4bool | operator!= (const G4XMesonBaryonElastic &right) const |
virtual G4double | CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const |
virtual const G4CrossSectionVector * | GetComponents () const |
virtual G4bool | IsValid (G4double e) const |
virtual G4String | Name () const |
Definition at line 50 of file G4XMesonBaryonElastic.hh.
G4XMesonBaryonElastic::G4XMesonBaryonElastic | ( | ) |
Definition at line 38 of file G4XMesonBaryonElastic.cc.
References DBL_MAX.
00039 { 00040 // As a first approximation the model is assumed to be valid over 00041 // the entire energy range 00042 lowLimit = 0.; 00043 highLimit = DBL_MAX; 00044 }
G4XMesonBaryonElastic::~G4XMesonBaryonElastic | ( | ) | [virtual] |
G4double G4XMesonBaryonElastic::CrossSection | ( | const G4KineticTrack & | trk1, | |
const G4KineticTrack & | trk2 | |||
) | const [virtual] |
Implements G4VCrossSectionSource.
Definition at line 63 of file G4XMesonBaryonElastic.cc.
References G4XPDGElastic::CrossSection(), G4XAqmElastic::CrossSection(), G4VCrossSectionSource::FindLightParticle(), G4Gamma::GammaDefinition(), G4KineticTrack::Get4Momentum(), G4KineticTrack::GetFormationTime(), G4KineticTrack::GetPosition(), G4PionPlus::PionPlusDefinition(), and G4Proton::ProtonDefinition().
00064 { 00065 G4double sigma; 00066 00067 // No gamma-baryon elastic scattering 00068 const G4ParticleDefinition* defLight = FindLightParticle(trk1,trk2); 00069 if (defLight == G4Gamma::GammaDefinition()) 00070 { 00071 sigma = 0; 00072 } 00073 else 00074 { 00075 00076 G4LorentzVector p41 = trk1.Get4Momentum(); 00077 G4ThreeVector p3 = trk1.GetPosition(); 00078 G4ParticleDefinition* def = G4PionPlus::PionPlusDefinition(); 00079 00080 G4KineticTrack piTrk(def, 00081 trk1.GetFormationTime(), 00082 p3, 00083 (G4LorentzVector&)p41); 00084 00085 G4LorentzVector p42 = trk2.Get4Momentum(); 00086 G4KineticTrack pTrk(((G4ParticleDefinition*)G4Proton::ProtonDefinition()), 00087 trk2.GetFormationTime(), 00088 (G4ThreeVector)trk2.GetPosition(), 00089 (G4LorentzVector&)p42); 00090 00091 G4XAqmElastic aqm; 00092 G4double xAqmDummy = aqm.CrossSection(piTrk,pTrk); 00093 G4double xAqm = aqm.CrossSection(trk1,trk2); 00094 G4double factor = 1.; 00095 if (xAqmDummy != 0.0) 00096 { 00097 factor = xAqm / xAqmDummy; 00098 } 00099 G4XPDGElastic pdg; 00100 00101 sigma = pdg.CrossSection(piTrk,pTrk); 00102 sigma = sigma * factor; 00103 } 00104 00105 return sigma; 00106 }
virtual const G4CrossSectionVector* G4XMesonBaryonElastic::GetComponents | ( | ) | const [inline, virtual] |
Reimplemented from G4VCrossSectionSource.
Definition at line 117 of file G4XMesonBaryonElastic.cc.
References G4VCrossSectionSource::InLimits().
G4String G4XMesonBaryonElastic::Name | ( | ) | const [virtual] |
Implements G4VCrossSectionSource.
Definition at line 109 of file G4XMesonBaryonElastic.cc.
00110 { 00111 G4String name("MesonBaryonElasticCrossSection"); 00112 return name; 00113 }
G4bool G4XMesonBaryonElastic::operator!= | ( | const G4XMesonBaryonElastic & | right | ) | const |
Definition at line 57 of file G4XMesonBaryonElastic.cc.
00058 { 00059 return (this != (G4XMesonBaryonElastic *) &right); 00060 }
G4bool G4XMesonBaryonElastic::operator== | ( | const G4XMesonBaryonElastic & | right | ) | const |
Definition at line 51 of file G4XMesonBaryonElastic.cc.
00052 { 00053 return (this == (G4XMesonBaryonElastic *) &right); 00054 }