#include <G4XResonance.hh>
Inheritance diagram for G4XResonance:
Public Member Functions | |
G4XResonance (const G4ParticleDefinition *in1, const G4ParticleDefinition *in2, G4int iIsospinOut1, G4double iSpinOut1, G4double massOut1, G4int iIsospinOut2, G4double iSpinOut2, G4double massOut2, G4String subType1, G4String subType2, const G4VXResonanceTable &sigmaTable) | |
virtual | ~G4XResonance () |
G4bool | operator== (const G4XResonance &right) const |
G4bool | operator!= (const G4XResonance &right) const |
virtual G4double | CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const |
virtual const G4CrossSectionVector * | GetComponents () const |
virtual G4String | Name () const |
Definition at line 39 of file G4XResonance.hh.
G4XResonance::G4XResonance | ( | const G4ParticleDefinition * | in1, | |
const G4ParticleDefinition * | in2, | |||
G4int | iIsospinOut1, | |||
G4double | iSpinOut1, | |||
G4double | massOut1, | |||
G4int | iIsospinOut2, | |||
G4double | iSpinOut2, | |||
G4double | massOut2, | |||
G4String | subType1, | |||
G4String | subType2, | |||
const G4VXResonanceTable & | sigmaTable | |||
) |
Definition at line 35 of file G4XResonance.cc.
References G4VXResonanceTable::CrossSectionTable(), and G4ParticleDefinition::GetParticleName().
00040 : 00041 isoOut1(iIsospinOut1), iSpinOut1(spinOut1), mOut1(massOut1), 00042 isoOut2(iIsospinOut2), iSpinOut2(spinOut2), mOut2(massOut2) 00043 00044 { 00045 table = sigmaTable.CrossSectionTable(); 00046 // Check if there is a valid cross section table for this channel 00047 if (table == 0) 00048 throw G4HadronicException(__FILE__, __LINE__, "G4XResonance::G4XResonance - no cross section table available"); 00049 00050 name = in1->GetParticleName() + in2->GetParticleName() + " -> " + subType1 + subType2; 00051 }
G4XResonance::~G4XResonance | ( | ) | [virtual] |
G4double G4XResonance::CrossSection | ( | const G4KineticTrack & | trk1, | |
const G4KineticTrack & | trk2 | |||
) | const [virtual] |
Implements G4VCrossSectionSource.
Definition at line 78 of file G4XResonance.cc.
References G4VXResonance::DetailedBalance(), G4KineticTrack::Get4Momentum(), G4KineticTrack::GetDefinition(), G4PhysicsVector::GetValue(), G4VXResonance::IsospinCorrection(), and G4ParticleDefinition::IsShortLived().
00079 { 00080 G4bool dummy = false; 00081 G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); 00082 00083 // pp -> trk1 + trk2 cross section 00084 G4double sigma = table->GetValue(sqrtS,dummy); 00085 00086 // Isospin correction 00087 // from G4VXResonance; 00088 // G4cout << "SigmaCheck "<<sigma; 00089 sigma *= IsospinCorrection(trk1,trk2,isoOut1,isoOut2,iSpinOut1,iSpinOut2); // from G4VXResonance 00090 // G4cout << " "<<sigma<<G4endl; 00091 00092 // Detailed balance 00093 if (trk1.GetDefinition()->IsShortLived() || trk2.GetDefinition()->IsShortLived()) 00094 { 00095 sigma *= DetailedBalance(trk1,trk2, isoOut1,isoOut2, iSpinOut1,iSpinOut2, mOut1,mOut2); 00096 } 00097 00098 return sigma; 00099 00100 }
virtual const G4CrossSectionVector* G4XResonance::GetComponents | ( | ) | const [inline, virtual] |
G4String G4XResonance::Name | ( | ) | const [virtual] |
G4bool G4XResonance::operator!= | ( | const G4XResonance & | right | ) | const |
Definition at line 67 of file G4XResonance.cc.
00068 { 00069 return (this != (G4XResonance *) &right); 00070 }
G4bool G4XResonance::operator== | ( | const G4XResonance & | right | ) | const |
Definition at line 61 of file G4XResonance.cc.
00062 { 00063 return (this == (G4XResonance *) &right); 00064 }