Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4XResonance Class Reference

#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 G4CrossSectionVectorGetComponents () const
 
virtual G4String Name () const
 
- Public Member Functions inherited from G4VXResonance
 G4VXResonance ()
 
virtual ~G4VXResonance ()
 
G4bool operator== (const G4VXResonance &right) const
 
G4bool operator!= (const G4VXResonance &right) const
 
- Public Member Functions inherited from G4VCrossSectionSource
 G4VCrossSectionSource ()
 
virtual ~G4VCrossSectionSource ()
 
G4bool operator== (const G4VCrossSectionSource &right) const
 
G4bool operator!= (const G4VCrossSectionSource &right) const
 
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
 
virtual const G4CrossSectionVectorGetComponents () const =0
 
virtual G4String Name () const =0
 
virtual void Print () const
 
virtual void PrintAll (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 
virtual G4bool IsValid (G4double e) const
 
virtual G4double HighLimit () const
 
virtual G4double LowLimit () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VXResonance
 G4VXResonance (const G4VXResonance &right)
 
G4VXResonanceoperator= (const G4VXResonance &right)
 
G4double DegeneracyFactor (const G4KineticTrack &trk1, const G4KineticTrack &trk2, G4double iSpinOut1, G4double iSpinOut2) const
 
G4double DetailedBalance (const G4KineticTrack &trk1, const G4KineticTrack &trk2, G4int isoOut1, G4int isoOut2, G4double iSpinOut1, G4double iSpinOut2, G4double mOut1, G4double mOut2) const
 
G4double IsospinCorrection (const G4KineticTrack &trk1, const G4KineticTrack &trk2, G4int isoOut1, G4int isoOut2, G4double iSpinOut1, G4double iSpinOut2) const
 
- Protected Member Functions inherited from G4VCrossSectionSource
G4bool InLimits (G4double e, G4double eLow, G4double eHigh) const
 
const G4ParticleDefinitionFindLightParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 
G4double FcrossX (G4double e, G4double e0, G4double sigma, G4double eParam, G4double power) const
 
G4ParticleDefinitionFindKeyParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
 
G4double GetTransversePionMass () const
 
G4double GetMinStringMass () const
 

Detailed Description

Definition at line 39 of file G4XResonance.hh.

Constructor & Destructor Documentation

◆ G4XResonance()

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.

40 :
41 isoOut1(iIsospinOut1), iSpinOut1(spinOut1), mOut1(massOut1),
42 isoOut2(iIsospinOut2), iSpinOut2(spinOut2), mOut2(massOut2)
43
44{
45 table = sigmaTable.CrossSectionTable();
46 // Check if there is a valid cross section table for this channel
47 if (table == 0)
48 throw G4HadronicException(__FILE__, __LINE__, "G4XResonance::G4XResonance - no cross section table available");
49
50 name = in1->GetParticleName() + in2->GetParticleName() + " -> " + subType1 + subType2;
51}
const G4String & GetParticleName() const
virtual G4PhysicsVector * CrossSectionTable() const =0

◆ ~G4XResonance()

G4XResonance::~G4XResonance ( )
virtual

Definition at line 54 of file G4XResonance.cc.

55{
56 delete table;
57 table = 0;
58}

Member Function Documentation

◆ CrossSection()

G4double G4XResonance::CrossSection ( const G4KineticTrack trk1,
const G4KineticTrack trk2 
) const
virtual

Implements G4VCrossSectionSource.

Definition at line 78 of file G4XResonance.cc.

79{
80 G4bool dummy = false;
81 G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
82
83 // pp -> trk1 + trk2 cross section
84 G4double sigma = table->GetValue(sqrtS,dummy);
85
86 // Isospin correction
87 // from G4VXResonance;
88// G4cout << "SigmaCheck "<<sigma;
89 sigma *= IsospinCorrection(trk1,trk2,isoOut1,isoOut2,iSpinOut1,iSpinOut2); // from G4VXResonance
90// G4cout << " "<<sigma<<G4endl;
91
92 // Detailed balance
93 if (trk1.GetDefinition()->IsShortLived() || trk2.GetDefinition()->IsShortLived())
94 {
95 sigma *= DetailedBalance(trk1,trk2, isoOut1,isoOut2, iSpinOut1,iSpinOut2, mOut1,mOut2);
96 }
97
98 return sigma;
99
100}
double G4double
Definition: G4Types.hh:64
bool G4bool
Definition: G4Types.hh:67
G4ParticleDefinition * GetDefinition() const
const G4LorentzVector & Get4Momentum() const
G4double GetValue(G4double theEnergy, G4bool &isOutRange)
G4double DetailedBalance(const G4KineticTrack &trk1, const G4KineticTrack &trk2, G4int isoOut1, G4int isoOut2, G4double iSpinOut1, G4double iSpinOut2, G4double mOut1, G4double mOut2) const
G4double IsospinCorrection(const G4KineticTrack &trk1, const G4KineticTrack &trk2, G4int isoOut1, G4int isoOut2, G4double iSpinOut1, G4double iSpinOut2) const

◆ GetComponents()

virtual const G4CrossSectionVector * G4XResonance::GetComponents ( ) const
inlinevirtual

Implements G4VCrossSectionSource.

Definition at line 59 of file G4XResonance.hh.

59{ return 0; }

◆ Name()

G4String G4XResonance::Name ( ) const
virtual

Implements G4VCrossSectionSource.

Definition at line 73 of file G4XResonance.cc.

74{
75 return name;
76}

◆ operator!=()

G4bool G4XResonance::operator!= ( const G4XResonance right) const

Definition at line 67 of file G4XResonance.cc.

68{
69 return (this != (G4XResonance *) &right);
70}

◆ operator==()

G4bool G4XResonance::operator== ( const G4XResonance right) const

Definition at line 61 of file G4XResonance.cc.

62{
63 return (this == (G4XResonance *) &right);
64}

The documentation for this class was generated from the following files: