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
G4QGSParticipants.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 G4QGSParticipants_h
27
#define G4QGSParticipants_h 1
28
29
#include "
Randomize.hh
"
30
#include "
G4VParticipants.hh
"
31
#include "
G4Nucleon.hh
"
32
#include "
G4InteractionContent.hh
"
33
#include "
G4PomeronCrossSection.hh
"
34
#include "
G4QGSDiffractiveExcitation.hh
"
35
#include "
G4SingleDiffractiveExcitation.hh
"
36
#include "
G4PartonPair.hh
"
37
#include "
G4QGSMSplitableHadron.hh
"
38
#include "
G4V3DNucleus.hh
"
39
40
41
class
G4QGSParticipants
:
public
G4VParticipants
42
{
43
public
:
44
G4QGSParticipants
();
45
G4QGSParticipants
(
const
G4QGSParticipants
&
right
);
46
const
G4QGSParticipants
&
operator=
(
const
G4QGSParticipants
&right);
47
virtual
~G4QGSParticipants
();
48
49
int
operator==
(
const
G4QGSParticipants
&right)
const
;
50
int
operator!=
(
const
G4QGSParticipants
&right)
const
;
51
52
virtual
void
DoLorentzBoost
(
G4ThreeVector
aBoost)
53
{
54
if
(
theNucleus
)
theNucleus
->
DoLorentzBoost
(aBoost);
55
theBoost
= aBoost;
56
}
57
58
G4PartonPair
*
GetNextPartonPair
();
59
void
BuildInteractions
(
const
G4ReactionProduct
&thePrimary);
60
void
StartPartonPairLoop
();
61
62
protected
:
63
virtual
G4VSplitableHadron
*
SelectInteractions
(
const
G4ReactionProduct
&thePrimary);
64
void
SplitHadrons
();
65
void
PerformSoftCollisions
();
66
void
PerformDiffractiveCollisions
();
67
68
protected
:
69
struct
DeleteInteractionContent
{
void
operator()
(
G4InteractionContent
*aC){
delete
aC;}};
70
std::vector<G4InteractionContent*>
theInteractions
;
71
struct
DeleteSplitableHadron
{
void
operator()
(
G4VSplitableHadron
*aS){
delete
aS;}};
72
std::vector<G4VSplitableHadron*>
theTargets
;
73
struct
DeletePartonPair
{
void
operator()
(
G4PartonPair
*aP){
delete
aP;}};
74
std::vector<G4PartonPair*>
thePartonPairs
;
75
76
G4SingleDiffractiveExcitation
theSingleDiffExcitation
;
77
G4QGSDiffractiveExcitation
theDiffExcitaton
;
78
G4int
ModelMode
;
79
G4bool
IsSingleDiffractive
();
80
81
G4ThreeVector
theBoost
;
82
83
protected
:
84
// model parameters HPW
85
enum
{
SOFT
,
DIFFRACTIVE
};
86
const
G4int
nCutMax
;
87
const
G4double
ThresholdParameter
;
88
const
G4double
QGSMThreshold
;
89
const
G4double
theNucleonRadius
;
90
};
91
92
93
inline
G4bool
G4QGSParticipants::IsSingleDiffractive
()
94
{
95
G4bool
result
=
false
;
96
if
(
G4UniformRand
()<1.) result =
true
;
97
return
result
;
98
}
99
100
inline
void
G4QGSParticipants::StartPartonPairLoop
()
101
{
102
}
103
104
inline
G4PartonPair
*
G4QGSParticipants::GetNextPartonPair
()
105
{
106
if
(
thePartonPairs
.empty())
return
0;
107
G4PartonPair
*
result
=
thePartonPairs
.back();
108
thePartonPairs
.pop_back();
109
return
result
;
110
}
111
112
inline
void
G4QGSParticipants::SplitHadrons
()
113
{
114
unsigned
int
i;
115
for
(i = 0; i <
theInteractions
.size(); i++)
116
{
117
theInteractions
[i]->SplitHadrons();
118
}
119
}
120
121
#endif
122
result
G4double G4ParticleHPJENDLHEData::G4double result
Definition:
G4ParticleHPJENDLHEData.cc:257
G4VSplitableHadron
Definition:
G4VSplitableHadron.hh:53
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
G4InteractionContent.hh
G4SingleDiffractiveExcitation
Definition:
G4SingleDiffractiveExcitation.hh:50
G4QGSParticipants::operator==
int operator==(const G4QGSParticipants &right) const
G4QGSParticipants::DIFFRACTIVE
Definition:
G4QGSParticipants.hh:85
G4QGSParticipants::StartPartonPairLoop
void StartPartonPairLoop()
Definition:
G4QGSParticipants.hh:100
right
Definition:
F04UserTrackInformation.hh:37
G4QGSParticipants::operator!=
int operator!=(const G4QGSParticipants &right) const
G4QGSParticipants::DeletePartonPair
Definition:
G4QGSParticipants.hh:73
G4QGSParticipants::DeletePartonPair::operator()
void operator()(G4PartonPair *aP)
Definition:
G4QGSParticipants.hh:73
G4InteractionContent
Definition:
G4InteractionContent.hh:55
G4QGSParticipants::QGSMThreshold
const G4double QGSMThreshold
Definition:
G4QGSParticipants.hh:88
G4SingleDiffractiveExcitation.hh
G4QGSParticipants::SplitHadrons
void SplitHadrons()
Definition:
G4QGSParticipants.hh:112
G4QGSParticipants::IsSingleDiffractive
G4bool IsSingleDiffractive()
Definition:
G4QGSParticipants.hh:93
G4QGSDiffractiveExcitation.hh
G4int
int G4int
Definition:
G4Types.hh:78
G4QGSParticipants::G4QGSParticipants
G4QGSParticipants()
Definition:
G4QGSParticipants.cc:39
G4VParticipants.hh
G4ReactionProduct
Definition:
G4ReactionProduct.hh:53
G4QGSParticipants::DeleteSplitableHadron::operator()
void operator()(G4VSplitableHadron *aS)
Definition:
G4QGSParticipants.hh:71
G4QGSParticipants::SOFT
Definition:
G4QGSParticipants.hh:85
G4QGSParticipants::~G4QGSParticipants
virtual ~G4QGSParticipants()
Definition:
G4QGSParticipants.cc:55
G4UniformRand
#define G4UniformRand()
Definition:
Randomize.hh:97
G4PartonPair
Definition:
G4PartonPair.hh:35
G4QGSParticipants::SelectInteractions
virtual G4VSplitableHadron * SelectInteractions(const G4ReactionProduct &thePrimary)
Definition:
G4QGSParticipants.cc:81
G4QGSParticipants::DeleteInteractionContent
Definition:
G4QGSParticipants.hh:69
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4VParticipants
Definition:
G4VParticipants.hh:48
G4QGSParticipants::PerformDiffractiveCollisions
void PerformDiffractiveCollisions()
Definition:
G4QGSParticipants.cc:235
Randomize.hh
G4QGSParticipants::theDiffExcitaton
G4QGSDiffractiveExcitation theDiffExcitaton
Definition:
G4QGSParticipants.hh:77
G4VParticipants::theNucleus
G4V3DNucleus * theNucleus
Definition:
G4VParticipants.hh:67
G4QGSParticipants::operator=
const G4QGSParticipants & operator=(const G4QGSParticipants &right)
G4QGSParticipants::theBoost
G4ThreeVector theBoost
Definition:
G4QGSParticipants.hh:81
G4QGSParticipants::thePartonPairs
std::vector< G4PartonPair * > thePartonPairs
Definition:
G4QGSParticipants.hh:74
G4QGSParticipants::nCutMax
const G4int nCutMax
Definition:
G4QGSParticipants.hh:86
G4V3DNucleus::DoLorentzBoost
virtual void DoLorentzBoost(const G4LorentzVector &theBoost)=0
G4QGSParticipants::theTargets
std::vector< G4VSplitableHadron * > theTargets
Definition:
G4QGSParticipants.hh:72
G4QGSMSplitableHadron.hh
G4QGSDiffractiveExcitation
Definition:
G4QGSDiffractiveExcitation.hh:51
G4QGSParticipants::BuildInteractions
void BuildInteractions(const G4ReactionProduct &thePrimary)
Definition:
G4QGSParticipants.cc:59
G4Nucleon.hh
G4QGSParticipants::DeleteInteractionContent::operator()
void operator()(G4InteractionContent *aC)
Definition:
G4QGSParticipants.hh:69
G4QGSParticipants::PerformSoftCollisions
void PerformSoftCollisions()
Definition:
G4QGSParticipants.cc:284
G4double
double G4double
Definition:
G4Types.hh:76
G4QGSParticipants::DeleteSplitableHadron
Definition:
G4QGSParticipants.hh:71
G4QGSParticipants::theSingleDiffExcitation
G4SingleDiffractiveExcitation theSingleDiffExcitation
Definition:
G4QGSParticipants.hh:76
G4QGSParticipants::theInteractions
std::vector< G4InteractionContent * > theInteractions
Definition:
G4QGSParticipants.hh:70
G4QGSParticipants::theNucleonRadius
const G4double theNucleonRadius
Definition:
G4QGSParticipants.hh:89
G4PomeronCrossSection.hh
G4QGSParticipants::ThresholdParameter
const G4double ThresholdParameter
Definition:
G4QGSParticipants.hh:87
G4QGSParticipants
Definition:
G4QGSParticipants.hh:41
G4QGSParticipants::ModelMode
G4int ModelMode
Definition:
G4QGSParticipants.hh:78
G4QGSParticipants::DoLorentzBoost
virtual void DoLorentzBoost(G4ThreeVector aBoost)
Definition:
G4QGSParticipants.hh:52
G4QGSParticipants::GetNextPartonPair
G4PartonPair * GetNextPartonPair()
Definition:
G4QGSParticipants.hh:104
G4V3DNucleus.hh
G4PartonPair.hh
source
geant4.10.03.p03
source
processes
hadronic
models
parton_string
qgsm
include
G4QGSParticipants.hh
Generated on Tue Nov 28 2017 21:44:17 for Geant4 by
1.8.5