Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
processes
hadronic
models
im_r_matrix
src
G4XAqmTotal.cc
이 파일의 문서화 페이지로 가기
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 "
G4Pow.hh
"
48
#include "
G4SystemOfUnits.hh
"
49
#include "
G4XAqmTotal.hh
"
50
#include "
G4KineticTrack.hh
"
51
#include "
G4ParticleDefinition.hh
"
52
53
54
// Validity range of this cross-section
55
const
G4double
G4XAqmTotal::_lowLimit
= 0.;
56
const
G4double
G4XAqmTotal::_highLimit
=
DBL_MAX
;
57
58
G4XAqmTotal::G4XAqmTotal
()
59
{
60
// As a first approximation the model is assumed to be valid over
61
// the entire energy range
62
}
63
64
65
G4XAqmTotal::~G4XAqmTotal
()
66
{ }
67
68
69
G4bool
G4XAqmTotal::operator==
(
const
G4XAqmTotal
&
right
)
const
70
{
71
return
(
this
== (
G4XAqmTotal
*) &right);
72
}
73
74
75
G4bool
G4XAqmTotal::operator!=
(
const
G4XAqmTotal
&
right
)
const
76
{
77
return
(
this
!= (
G4XAqmTotal
*) &right);
78
}
79
80
81
G4double
G4XAqmTotal::CrossSection
(
const
G4KineticTrack
& trk1,
const
G4KineticTrack
& trk2)
const
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
}
123
124
125
G4String
G4XAqmTotal::Name
()
const
126
{
127
G4String
name
(
"AqmTotalCrossSection"
);
128
return
name
;
129
}
130
131
132
133
G4bool
G4XAqmTotal::IsValid
(
G4double
e
)
const
134
{
135
G4bool
answer =
InLimits
(e,
_lowLimit
,
_highLimit
);
136
137
return
answer;
138
}
G4XAqmTotal::operator!=
G4bool operator!=(const G4XAqmTotal &right) const
Definition:
G4XAqmTotal.cc:75
right
Definition:
F04UserTrackInformation.hh:37
name
const XML_Char * name
Definition:
expat.h:151
G4XAqmTotal::~G4XAqmTotal
virtual ~G4XAqmTotal()
Definition:
G4XAqmTotal.cc:65
G4KineticTrack.hh
G4XAqmTotal::_lowLimit
static const G4double _lowLimit
Definition:
G4XAqmTotal.hh:66
G4KineticTrack
Definition:
G4KineticTrack.hh:57
G4XAqmTotal::Name
virtual G4String Name() const
Definition:
G4XAqmTotal.cc:125
G4ios.hh
G4XAqmTotal::G4XAqmTotal
G4XAqmTotal()
Definition:
G4XAqmTotal.cc:58
G4KineticTrack::GetDefinition
const G4ParticleDefinition * GetDefinition() const
Definition:
G4KineticTrack.hh:210
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
G4XAqmTotal::CrossSection
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
Definition:
G4XAqmTotal.cc:81
G4Pow.hh
G4XAqmTotal::operator==
G4bool operator==(const G4XAqmTotal &right) const
Definition:
G4XAqmTotal.cc:69
G4Pow::powN
G4double powN(G4double x, G4int n) const
Definition:
G4Pow.cc:177
G4XAqmTotal.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4bool
bool G4bool
Definition:
G4Types.hh:79
millibarn
static constexpr double millibarn
Definition:
G4SIunits.hh:106
G4Pow::GetInstance
static G4Pow * GetInstance()
Definition:
G4Pow.cc:57
G4ParticleDefinition::GetQuarkContent
G4int GetQuarkContent(G4int flavor) const
G4SystemOfUnits.hh
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:73
globals.hh
G4XAqmTotal
Definition:
G4XAqmTotal.hh:37
G4int
int G4int
Definition:
G4Types.hh:78
G4ParticleDefinition.hh
G4XAqmTotal::_highLimit
static const G4double _highLimit
Definition:
G4XAqmTotal.hh:67
G4XAqmTotal::IsValid
virtual G4bool IsValid(G4double e) const
Definition:
G4XAqmTotal.cc:133
e
Float_t e
Definition:
extended/medical/dna/range/plot.C:35
DBL_MAX
#define DBL_MAX
Definition:
templates.hh:83
G4ParticleDefinition::GetAntiQuarkContent
G4int GetAntiQuarkContent(G4int flavor) const
G4VCrossSectionSource::InLimits
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const
Definition:
G4VCrossSectionSource.cc:134
다음에 의해 생성됨 :
1.8.5