Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4QGSMSplitableHadron.hh
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
#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
public
:
44
G4QGSMSplitableHadron
();
45
G4QGSMSplitableHadron
(
const
G4ReactionProduct
& aPrimary);
46
G4QGSMSplitableHadron
(
const
G4ReactionProduct
& aPrimary,
G4bool
Direction);
47
G4QGSMSplitableHadron
(
const
G4Nucleon
& aNucleon);
48
G4QGSMSplitableHadron
(
const
G4Nucleon
& aNucleon,
G4bool
Direction);
49
50
virtual
~G4QGSMSplitableHadron
();
51
52
private
:
53
const
G4QGSMSplitableHadron
& operator=(
const
G4QGSMSplitableHadron
&
right
);
54
55
public
:
56
virtual
void
SplitUp
();
57
virtual
void
SetFirstParton
(
G4int
PDGcode);
// Uzhi 24.11.10
58
virtual
void
SetSecondParton
(
G4int
PDGcode);
// Uzhi 24.11.10
59
virtual
G4Parton
*
GetNextParton
();
60
virtual
G4Parton
*
GetNextAntiParton
();
61
62
private
:
63
void
InitParameters();
64
void
DiffractiveSplitUp();
65
void
SoftSplitUp();
66
G4ThreeVector
GaussianPt(
G4double
widthSquare,
G4double
maxPtSquare);
67
void
GetValenceQuarkFlavors(
const
G4ParticleDefinition
* aPart,
68
G4Parton
*& Parton1,
G4Parton
*& Parton2);
69
G4Parton
* BuildSeaQuark(
G4bool
isAntiQuark,
G4int
aPDGCode,
G4int
nSeaPair);
70
G4double
SampleX(
G4double
anXmin,
G4int
nSea,
G4int
theTotalSea,
G4double
aBeta);
71
72
private
:
73
// aggregated data
74
G4bool
Direction;
// FALSE is target. - candidate for more detailed design. @@@@ HPW
75
76
std::deque<G4Parton *>
Color
;
77
std::deque<G4Parton *> AntiColor;
78
private
:
79
// associated classes
80
G4MesonSplitter
theMesonSplitter;
81
G4BaryonSplitter
theBaryonSplitter;
82
83
private
:
84
// model parameters
85
G4double
alpha;
86
G4double
beta;
87
G4double
theMinPz;
88
G4double
StrangeSuppress;
89
G4double
sigmaPt;
90
G4double
widthOfPtSquare;
91
G4double
minTransverseMass;
92
};
93
94
inline
G4Parton
*
G4QGSMSplitableHadron::GetNextParton
()
95
{
96
if
(
Color
.size()==0)
return
0;
97
G4Parton
*
result
=
Color
.back();
98
Color
.pop_back();
99
return
result
;
100
}
101
102
inline
G4Parton
*
G4QGSMSplitableHadron::GetNextAntiParton
()
103
{
104
if
(AntiColor.size() == 0)
return
0;
105
G4Parton
*
result
= AntiColor.front();
106
AntiColor.pop_front();
107
return
result
;
108
}
109
110
inline
void
G4QGSMSplitableHadron::SetFirstParton
(
G4int
PDGcode)
111
{PDGcode++;}
112
inline
void
G4QGSMSplitableHadron::SetSecondParton
(
G4int
PDGcode)
113
{PDGcode++;}
114
115
#endif
116
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
G4VSplitableHadron
Definition:
G4VSplitableHadron.hh:53
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
right
Definition:
F04UserTrackInformation.hh:37
G4QGSMSplitableHadron::~G4QGSMSplitableHadron
virtual ~G4QGSMSplitableHadron()
Definition:
G4QGSMSplitableHadron.cc:107
G4Parton
Definition:
G4Parton.hh:47
G4QGSMSplitableHadron::SetFirstParton
virtual void SetFirstParton(G4int PDGcode)
Definition:
G4QGSMSplitableHadron.hh:110
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:72
G4BaryonSplitter.hh
G4MesonSplitter.hh
G4int
int G4int
Definition:
G4Types.hh:78
G4ReactionProduct
Definition:
G4ReactionProduct.hh:53
G4QGSMSplitableHadron::GetNextAntiParton
virtual G4Parton * GetNextAntiParton()
Definition:
G4QGSMSplitableHadron.hh:102
G4BaryonSplitter
Definition:
G4BaryonSplitter.hh:37
G4VSplitableHadron.hh
G4QGSMSplitableHadron::SetSecondParton
virtual void SetSecondParton(G4int PDGcode)
Definition:
G4QGSMSplitableHadron.hh:112
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4Nucleon
Definition:
G4Nucleon.hh:54
G4QGSMSplitableHadron
Definition:
G4QGSMSplitableHadron.hh:41
Randomize.hh
G4QGSMSplitableHadron::GetNextParton
virtual G4Parton * GetNextParton()
Definition:
G4QGSMSplitableHadron.hh:94
G4QGSMSplitableHadron::SplitUp
virtual void SplitUp()
Definition:
G4QGSMSplitableHadron.cc:111
G4PartonVector.hh
Color
Color
Definition:
test07.cc:36
G4double
double G4double
Definition:
G4Types.hh:76
G4MesonSplitter
Definition:
G4MesonSplitter.hh:36
G4QGSMSplitableHadron::G4QGSMSplitableHadron
G4QGSMSplitableHadron()
Definition:
G4QGSMSplitableHadron.cc:75
source
geant4.10.03.p03
source
processes
hadronic
models
parton_string
qgsm
include
G4QGSMSplitableHadron.hh
Generated on Tue Nov 28 2017 21:44:17 for Geant4 by
1.8.5