Geant4 11.2.2
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}

◆ ~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: