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

#include <G4XAqmTotal.hh>

Inheritance diagram for G4XAqmTotal:

Public Member Functions

 G4XAqmTotal ()
virtual ~G4XAqmTotal ()
G4bool operator== (const G4XAqmTotal &right) const
G4bool operator!= (const G4XAqmTotal &right) const
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual const G4CrossSectionVectorGetComponents () const
virtual G4bool IsValid (G4double e) const
virtual G4String Name () const
Public Member Functions inherited from G4VCrossSectionSource
 G4VCrossSectionSource ()
virtual ~G4VCrossSectionSource ()
G4bool operator== (const G4VCrossSectionSource &right) const
G4bool operator!= (const G4VCrossSectionSource &right) const
virtual void Print () const
virtual void PrintAll (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual G4double HighLimit () const
virtual G4double LowLimit () const

Additional Inherited Members

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
const G4ParticleDefinitionFindKeyParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const

Detailed Description

Definition at line 37 of file G4XAqmTotal.hh.

Constructor & Destructor Documentation

◆ G4XAqmTotal()

G4XAqmTotal::G4XAqmTotal ( )

Definition at line 58 of file G4XAqmTotal.cc.

59{
60 // As a first approximation the model is assumed to be valid over
61 // the entire energy range
62}

Referenced by operator!=(), and operator==().

◆ ~G4XAqmTotal()

G4XAqmTotal::~G4XAqmTotal ( )
virtual

Definition at line 65 of file G4XAqmTotal.cc.

66{ }

Member Function Documentation

◆ CrossSection()

G4double G4XAqmTotal::CrossSection ( const G4KineticTrack & trk1,
const G4KineticTrack & trk2 ) const
virtual

Implements G4VCrossSectionSource.

Definition at line 81 of file G4XAqmTotal.cc.

82{
83 G4double sigma = 0.;
84
85 // Get strangeness content
86 const G4ParticleDefinition* def1 = trk1.GetDefinition();
87 G4int sTrk1 = def1->GetQuarkContent(3) + def1->GetAntiQuarkContent(3);
88 const G4ParticleDefinition* def2 = trk2.GetDefinition();
89 G4int sTrk2 = def2->GetQuarkContent(3) + def2->GetAntiQuarkContent(3);
90
91 // Get non-strange quark content
92 G4int qTrk1 = def1->GetQuarkContent(1) + def1->GetAntiQuarkContent(1) +
93 def1->GetQuarkContent(2) + def1->GetAntiQuarkContent(2) +
94 def1->GetQuarkContent(4) + def1->GetAntiQuarkContent(4) +
95 def1->GetQuarkContent(5) + def1->GetAntiQuarkContent(5) +
96 def1->GetQuarkContent(6) + def1->GetAntiQuarkContent(6);
97
98 G4int qTrk2 = def2->GetQuarkContent(1) + def2->GetAntiQuarkContent(1) +
99 def2->GetQuarkContent(2) + def2->GetAntiQuarkContent(2) +
100 def2->GetQuarkContent(4) + def2->GetAntiQuarkContent(4) +
101 def2->GetQuarkContent(5) + def2->GetAntiQuarkContent(5) +
102 def2->GetQuarkContent(6) + def2->GetAntiQuarkContent(6);
103
104 G4double sRatio1 = 0.;
105 if (qTrk1 != 0) sRatio1 = sTrk1 / qTrk1;
106
107 G4double sRatio2 = 0.;
108 if (qTrk2 != 0) sRatio2 = sTrk2 / qTrk2;
109
110 // Calculate the number of colliding mesons
111 G4int nMesons = 0;
112 G4int nQ1 = sTrk1 + qTrk1;
113
114 if (nQ1 == 2) nMesons++;
115 G4int nQ2 = sTrk2 + qTrk2;
116 if (nQ2 == 2) nMesons++;
117
118 // Cross-section (units to be checked!)
119 sigma = 40. * G4Pow::GetInstance()->powN((2.0/3.0),nMesons) * (1. - 0.4 * sRatio1) * (1. - 0.4 * sRatio2) * millibarn;
120
121 return sigma;
122}
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
const G4ParticleDefinition * GetDefinition() const
G4int GetQuarkContent(G4int flavor) const
G4int GetAntiQuarkContent(G4int flavor) const
static G4Pow * GetInstance()
Definition G4Pow.cc:41
G4double powN(G4double x, G4int n) const
Definition G4Pow.cc:162

Referenced by G4XAqmElastic::CrossSection().

◆ GetComponents()

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

Implements G4VCrossSectionSource.

Definition at line 51 of file G4XAqmTotal.hh.

51{ return 0; }

◆ IsValid()

G4bool G4XAqmTotal::IsValid ( G4double e) const
virtual

Reimplemented from G4VCrossSectionSource.

Definition at line 133 of file G4XAqmTotal.cc.

134{
135 G4bool answer = InLimits(e,_lowLimit,_highLimit);
136
137 return answer;
138}
bool G4bool
Definition G4Types.hh:86
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const

◆ Name()

G4String G4XAqmTotal::Name ( ) const
virtual

Implements G4VCrossSectionSource.

Definition at line 125 of file G4XAqmTotal.cc.

126{
127 G4String name("AqmTotalCrossSection");
128 return name;
129}
const char * name(G4int ptype)

◆ operator!=()

G4bool G4XAqmTotal::operator!= ( const G4XAqmTotal & right) const

Definition at line 75 of file G4XAqmTotal.cc.

76{
77 return (this != (G4XAqmTotal *) &right);
78}

◆ operator==()

G4bool G4XAqmTotal::operator== ( const G4XAqmTotal & right) const

Definition at line 69 of file G4XAqmTotal.cc.

70{
71 return (this == (G4XAqmTotal *) &right);
72}

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