Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4XAqmTotal Class Reference

#include <G4XAqmTotal.hh>

Inheritance diagram for G4XAqmTotal:
Collaboration 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
G4CrossSectionVector
GetComponents () 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 ( )

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 ( )
virtual

Definition at line 65 of file G4XAqmTotal.cc.

66 { }

Member Function Documentation

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 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:128
G4int GetAntiQuarkContent(G4int flavor) const
int G4int
Definition: G4Types.hh:78
G4int GetQuarkContent(G4int flavor) const
double G4double
Definition: G4Types.hh:76
const G4ParticleDefinition * GetDefinition() const
static constexpr double millibarn
Definition: G4SIunits.hh:106

Here is the call graph for this function:

Here is the caller graph for this function:

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

Implements G4VCrossSectionSource.

Definition at line 51 of file G4XAqmTotal.hh.

51 { return 0; }
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:79
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const

Here is the call graph for this function:

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 XML_Char * name
Definition: expat.h:151
G4bool G4XAqmTotal::operator!= ( const G4XAqmTotal right) const

Definition at line 75 of file G4XAqmTotal.cc.

76 {
77  return (this != (G4XAqmTotal *) &right);
78 }
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: