Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4XAqmTotal Class Reference

#include <G4XAqmTotal.hh>

Inheritance diagram for G4XAqmTotal:
G4VCrossSectionSource

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

Detailed Description

Definition at line 37 of file G4XAqmTotal.hh.

Constructor & Destructor Documentation

G4XAqmTotal::G4XAqmTotal ( )

Definition at line 57 of file G4XAqmTotal.cc.

58 {
59  // As a first approximation the model is assumed to be valid over
60  // the entire energy range
61 }
G4XAqmTotal::~G4XAqmTotal ( )
virtual

Definition at line 64 of file G4XAqmTotal.cc.

65 { }

Member Function Documentation

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

Implements G4VCrossSectionSource.

Definition at line 80 of file G4XAqmTotal.cc.

References G4ParticleDefinition::GetAntiQuarkContent(), G4KineticTrack::GetDefinition(), G4ParticleDefinition::GetQuarkContent(), and python.hepunit::millibarn.

Referenced by G4XAqmElastic::CrossSection().

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

References G4VCrossSectionSource::InLimits().

133 {
134  G4bool answer = InLimits(e,_lowLimit,_highLimit);
135 
136  return answer;
137 }
bool G4bool
Definition: G4Types.hh:79
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const
G4String G4XAqmTotal::Name ( ) const
virtual

Implements G4VCrossSectionSource.

Definition at line 124 of file G4XAqmTotal.cc.

125 {
126  G4String name("AqmTotalCrossSection");
127  return name;
128 }
const XML_Char * name
G4bool G4XAqmTotal::operator!= ( const G4XAqmTotal right) const

Definition at line 74 of file G4XAqmTotal.cc.

75 {
76  return (this != (G4XAqmTotal *) &right);
77 }
G4bool G4XAqmTotal::operator== ( const G4XAqmTotal right) const

Definition at line 68 of file G4XAqmTotal.cc.

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

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