Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
source
processes
hadronic
models
im_r_matrix
src
G4XAqmTotal.cc
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
// -------------------------------------------------------------------
28
// GEANT4 Class file
29
//
30
// For information related to this code contact:
31
//
32
// File name: G4XAqmTotal
33
//
34
// Author:
35
//
36
// Creation date: 15 April 1999
37
//
38
// Modifications:
39
//
40
// Additive Quark Model total cross section
41
// (H.J. Lipkin and F. Scheck, Phys.Rev. 16 (1966) 71
42
//
43
// -------------------------------------------------------------------
44
45
#include "
globals.hh
"
46
#include "
G4ios.hh
"
47
#include "
G4SystemOfUnits.hh
"
48
#include "
G4XAqmTotal.hh
"
49
#include "
G4KineticTrack.hh
"
50
#include "
G4ParticleDefinition.hh
"
51
52
53
// Validity range of this cross-section
54
const
G4double
G4XAqmTotal::_lowLimit = 0.;
55
const
G4double
G4XAqmTotal::_highLimit =
DBL_MAX
;
56
57
G4XAqmTotal::G4XAqmTotal
()
58
{
59
// As a first approximation the model is assumed to be valid over
60
// the entire energy range
61
}
62
63
64
G4XAqmTotal::~G4XAqmTotal
()
65
{ }
66
67
68
G4bool
G4XAqmTotal::operator==
(
const
G4XAqmTotal
&
right
)
const
69
{
70
return
(
this
== (
G4XAqmTotal
*) &right);
71
}
72
73
74
G4bool
G4XAqmTotal::operator!=
(
const
G4XAqmTotal
&
right
)
const
75
{
76
return
(
this
!= (
G4XAqmTotal
*) &right);
77
}
78
79
80
G4double
G4XAqmTotal::CrossSection
(
const
G4KineticTrack
& trk1,
const
G4KineticTrack
& trk2)
const
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
}
122
123
124
G4String
G4XAqmTotal::Name
()
const
125
{
126
G4String
name
(
"AqmTotalCrossSection"
);
127
return
name
;
128
}
129
130
131
132
G4bool
G4XAqmTotal::IsValid
(
G4double
e)
const
133
{
134
G4bool
answer =
InLimits
(e,_lowLimit,_highLimit);
135
136
return
answer;
137
}
right
Definition:
F04UserTrackInformation.hh:37
G4ParticleDefinition::GetAntiQuarkContent
G4int GetAntiQuarkContent(G4int flavor) const
name
const XML_Char * name
Definition:
include/expat.h:151
G4XAqmTotal::CrossSection
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
Definition:
G4XAqmTotal.cc:80
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4int
int G4int
Definition:
G4Types.hh:78
python.hepunit.millibarn
int millibarn
Definition:
hepunit.py:40
G4XAqmTotal::operator==
G4bool operator==(const G4XAqmTotal &right) const
Definition:
G4XAqmTotal.cc:68
G4KineticTrack::GetDefinition
G4ParticleDefinition * GetDefinition() const
Definition:
G4KineticTrack.hh:213
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4ParticleDefinition::GetQuarkContent
G4int GetQuarkContent(G4int flavor) const
G4ParticleDefinition.hh
globals.hh
G4XAqmTotal.hh
G4KineticTrack.hh
G4KineticTrack
Definition:
G4KineticTrack.hh:60
G4XAqmTotal::operator!=
G4bool operator!=(const G4XAqmTotal &right) const
Definition:
G4XAqmTotal.cc:74
G4XAqmTotal::IsValid
virtual G4bool IsValid(G4double e) const
Definition:
G4XAqmTotal.cc:132
G4ios.hh
G4XAqmTotal::G4XAqmTotal
G4XAqmTotal()
Definition:
G4XAqmTotal.cc:57
G4XAqmTotal
Definition:
G4XAqmTotal.hh:37
G4double
double G4double
Definition:
G4Types.hh:76
G4SystemOfUnits.hh
DBL_MAX
#define DBL_MAX
Definition:
templates.hh:83
G4XAqmTotal::Name
virtual G4String Name() const
Definition:
G4XAqmTotal.cc:124
G4VCrossSectionSource::InLimits
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const
Definition:
G4VCrossSectionSource.cc:133
G4XAqmTotal::~G4XAqmTotal
virtual ~G4XAqmTotal()
Definition:
G4XAqmTotal.cc:64
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
Generated on Wed Apr 30 2014 15:55:11 for Geant4.10 by
1.8.7