Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
source
processes
hadronic
models
parton_string
qgsm
include
G4QGSMSplitableHadron.hh
이 파일의 문서화 페이지로 가기
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
#ifndef G4QGSMSplitableHadron_h
27
#define G4QGSMSplitableHadron_h 1
28
29
#include "
G4VSplitableHadron.hh
"
30
#include "
G4PartonVector.hh
"
31
#include "
G4MesonSplitter.hh
"
32
#include "
G4BaryonSplitter.hh
"
33
#include "
Randomize.hh
"
34
#include <deque>
35
36
// based on prototype by Maxim Komogorov
37
// Splitting into methods, and centralizing of model parameters HPW Feb 1999
38
// continued clean-up of interfaces and algorithms HPW 1999.
39
// Redesign of data structures and algorithms HPW Feb 1999
40
41
class
G4QGSMSplitableHadron
:
public
G4VSplitableHadron
42
{
43
44
public
:
45
G4QGSMSplitableHadron
();
46
G4QGSMSplitableHadron
(
const
G4ReactionProduct
& aPrimary);
47
G4QGSMSplitableHadron
(
const
G4ReactionProduct
& aPrimary,
G4bool
Direction
);
48
G4QGSMSplitableHadron
(
const
G4Nucleon
& aNucleon);
49
G4QGSMSplitableHadron
(
const
G4Nucleon
& aNucleon,
G4bool
Direction);
50
51
virtual
~G4QGSMSplitableHadron
();
52
53
private
:
54
const
G4QGSMSplitableHadron
&
operator=
(
const
G4QGSMSplitableHadron
&
right
);
55
56
public
:
57
virtual
void
SplitUp
();
58
virtual
void
SetFirstParton
(
G4int
PDGcode);
// Uzhi 24.11.10
59
virtual
void
SetSecondParton
(
G4int
PDGcode);
// Uzhi 24.11.10
60
virtual
G4Parton
*
GetNextParton
();
61
virtual
G4Parton
*
GetNextAntiParton
();
62
63
private
:
64
void
InitParameters
();
65
void
DiffractiveSplitUp
();
66
void
SoftSplitUp
();
67
68
G4ThreeVector
GaussianPt
(
G4double
widthSquare,
G4double
maxPtSquare);
69
void
GetValenceQuarkFlavors
(
const
G4ParticleDefinition
* aPart,
70
G4Parton
*& Parton1,
G4Parton
*& Parton2);
71
G4Parton
*
BuildSeaQuark
(
G4bool
isAntiQuark,
G4int
aPDGCode,
G4int
nSeaPair);
72
G4double
SampleX
(
G4double
anXmin,
G4int
nSea,
G4int
theTotalSea,
G4double
aBeta);
73
74
private
:
75
// aggregated data
76
G4bool
Direction
;
// FALSE is target. - candidate for more detailed design. @@@@ HPW
77
78
std::deque<G4Parton *>
Color
;
79
std::deque<G4Parton *>
AntiColor
;
80
//std::deque<G4Parton *>::iterator iP; // Uzhi
81
//std::deque<G4Parton *>::iterator iAP; // Uzhi
82
unsigned
int
iP
;
// Uzhi 5.06.2015
83
unsigned
int
iAP
;
// Uzhi 5.06.2015
84
private
:
85
86
// associated classes
87
G4MesonSplitter
theMesonSplitter
;
88
G4BaryonSplitter
theBaryonSplitter
;
89
90
private
:
91
// model parameters
92
G4double
alpha
;
93
G4double
beta
;
94
G4double
theMinPz
;
95
G4double
StrangeSuppress
;
96
G4double
sigmaPt
;
97
G4double
widthOfPtSquare
;
98
G4double
minTransverseMass
;
99
};
100
101
inline
G4Parton
*
G4QGSMSplitableHadron::GetNextParton
()
102
{
103
if
(
Color
.size()==0)
return
0;
104
105
G4Parton
*
result
=
Color
.operator[](
iP
);
106
iP
++;
if
(
iP
==
Color
.size())
iP
=0;
107
return
result
;
108
}
109
110
inline
G4Parton
*
G4QGSMSplitableHadron::GetNextAntiParton
()
111
{
112
if
(
AntiColor
.size() == 0)
return
0;
113
114
G4Parton
*
result
=
AntiColor
.operator[](
iAP
);
115
iAP
++;
if
(
iAP
==
AntiColor
.size())
iAP
=0;
116
return
result
;
117
}
118
119
inline
void
G4QGSMSplitableHadron::SetFirstParton
(
G4int
PDGcode)
120
{PDGcode++;}
121
inline
void
G4QGSMSplitableHadron::SetSecondParton
(
G4int
PDGcode)
122
{PDGcode++;}
123
#endif
124
125
right
Definition:
F04UserTrackInformation.hh:37
Randomize.hh
G4QGSMSplitableHadron::GaussianPt
G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare)
Definition:
G4QGSMSplitableHadron.cc:482
G4QGSMSplitableHadron::GetValenceQuarkFlavors
void GetValenceQuarkFlavors(const G4ParticleDefinition *aPart, G4Parton *&Parton1, G4Parton *&Parton2)
Definition:
G4QGSMSplitableHadron.cc:419
G4QGSMSplitableHadron::theMinPz
G4double theMinPz
Definition:
G4QGSMSplitableHadron.hh:94
G4QGSMSplitableHadron::InitParameters
void InitParameters()
Definition:
G4QGSMSplitableHadron.cc:54
G4Parton
Definition:
G4Parton.hh:47
G4QGSMSplitableHadron::SetFirstParton
virtual void SetFirstParton(G4int PDGcode)
Definition:
G4QGSMSplitableHadron.hh:119
G4PartonVector.hh
G4QGSMSplitableHadron::alpha
G4double alpha
Definition:
G4QGSMSplitableHadron.hh:92
G4QGSMSplitableHadron::SetSecondParton
virtual void SetSecondParton(G4int PDGcode)
Definition:
G4QGSMSplitableHadron.hh:121
G4QGSMSplitableHadron::Color
std::deque< G4Parton * > Color
Definition:
G4QGSMSplitableHadron.hh:78
G4double
double G4double
Definition:
G4Types.hh:76
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4QGSMSplitableHadron::GetNextAntiParton
virtual G4Parton * GetNextAntiParton()
Definition:
G4QGSMSplitableHadron.hh:110
G4QGSMSplitableHadron::beta
G4double beta
Definition:
G4QGSMSplitableHadron.hh:93
G4QGSMSplitableHadron::iP
unsigned int iP
Definition:
G4QGSMSplitableHadron.hh:82
G4VSplitableHadron.hh
G4QGSMSplitableHadron::~G4QGSMSplitableHadron
virtual ~G4QGSMSplitableHadron()
Definition:
G4QGSMSplitableHadron.cc:109
G4QGSMSplitableHadron::Direction
G4bool Direction
Definition:
G4QGSMSplitableHadron.hh:76
G4QGSMSplitableHadron::SampleX
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta)
Definition:
G4QGSMSplitableHadron.cc:510
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:73
G4QGSMSplitableHadron
Definition:
G4QGSMSplitableHadron.hh:41
G4BaryonSplitter.hh
G4QGSMSplitableHadron::GetNextParton
virtual G4Parton * GetNextParton()
Definition:
G4QGSMSplitableHadron.hh:101
G4QGSMSplitableHadron::BuildSeaQuark
G4Parton * BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair)
Definition:
G4QGSMSplitableHadron.cc:498
G4ReactionProduct
Definition:
G4ReactionProduct.hh:53
G4QGSMSplitableHadron::theBaryonSplitter
G4BaryonSplitter theBaryonSplitter
Definition:
G4QGSMSplitableHadron.hh:88
G4MesonSplitter.hh
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
G4QGSMSplitableHadron::AntiColor
std::deque< G4Parton * > AntiColor
Definition:
G4QGSMSplitableHadron.hh:79
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
Color
Color
Definition:
test07.cc:36
G4int
int G4int
Definition:
G4Types.hh:78
G4QGSMSplitableHadron::theMesonSplitter
G4MesonSplitter theMesonSplitter
Definition:
G4QGSMSplitableHadron.hh:87
G4QGSMSplitableHadron::minTransverseMass
G4double minTransverseMass
Definition:
G4QGSMSplitableHadron.hh:98
G4QGSMSplitableHadron::operator=
const G4QGSMSplitableHadron & operator=(const G4QGSMSplitableHadron &right)
G4VSplitableHadron
Definition:
G4VSplitableHadron.hh:53
G4QGSMSplitableHadron::DiffractiveSplitUp
void DiffractiveSplitUp()
Definition:
G4QGSMSplitableHadron.cc:149
G4QGSMSplitableHadron::SplitUp
virtual void SplitUp()
Definition:
G4QGSMSplitableHadron.cc:130
G4QGSMSplitableHadron::SoftSplitUp
void SoftSplitUp()
Definition:
G4QGSMSplitableHadron.cc:227
G4QGSMSplitableHadron::widthOfPtSquare
G4double widthOfPtSquare
Definition:
G4QGSMSplitableHadron.hh:97
G4QGSMSplitableHadron::sigmaPt
G4double sigmaPt
Definition:
G4QGSMSplitableHadron.hh:96
G4QGSMSplitableHadron::iAP
unsigned int iAP
Definition:
G4QGSMSplitableHadron.hh:83
G4MesonSplitter
Definition:
G4MesonSplitter.hh:36
G4BaryonSplitter
Definition:
G4BaryonSplitter.hh:37
G4Nucleon
Definition:
G4Nucleon.hh:54
G4QGSMSplitableHadron::G4QGSMSplitableHadron
G4QGSMSplitableHadron()
Definition:
G4QGSMSplitableHadron.cc:77
G4QGSMSplitableHadron::StrangeSuppress
G4double StrangeSuppress
Definition:
G4QGSMSplitableHadron.hh:95
다음에 의해 생성됨 :
1.8.5