Geant4
9.6.p02
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
geant4_9_6_p02
source
processes
hadronic
models
parton_string
management
include
G4VSplitableHadron.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
//
27
// $Id$
28
//
29
30
#ifndef G4VSplitableHadron_h
31
#define G4VSplitableHadron_h 1
32
33
// ------------------------------------------------------------
34
// GEANT 4 class header file
35
//
36
// ---------------- G4VSplitableHadron----------------
37
// by Gunter Folger, June 1998.
38
// class storing an interacting particle. Used by Parton String Models.
39
// ------------------------------------------------------------
40
41
#include "
globals.hh
"
42
#include "
G4ParticleDefinition.hh
"
43
#include "
G4ReactionProduct.hh
"
44
class
G4Nucleon
;
45
#include "
G4ThreeVector.hh
"
46
#include "
G4LorentzVector.hh
"
47
class
G4Parton
;
48
class
G4VKineticNucleon
;
49
50
#include <vector>
51
52
class
G4VSplitableHadron
53
{
54
55
public
:
56
G4VSplitableHadron
();
57
G4VSplitableHadron
(
const
G4ReactionProduct
& aPrimary);
58
G4VSplitableHadron
(
const
G4Nucleon
& aNucleon);
59
G4VSplitableHadron
(
const
G4VKineticNucleon
* aNucleon);
60
61
virtual
~G4VSplitableHadron
();
62
63
64
int
operator==
(
const
G4VSplitableHadron
&
right
)
const
;
65
int
operator!=
(
const
G4VSplitableHadron
&right)
const
;
66
67
void
Set4Momentum
(
const
G4LorentzVector
&a4Momentum);
68
const
G4LorentzVector
&
Get4Momentum
()
const
;
69
70
void
SetDefinition
(
G4ParticleDefinition
*aDefinition);
71
G4ParticleDefinition
*
GetDefinition
()
const
;
72
73
void
IncrementCollisionCount
(
G4int
aCount);
74
void
SetCollisionCount
(
G4int
aCount);
75
76
void
SetTimeOfCreation
(
G4double
aTime);
// Uzhi 7.05.08
77
G4double
GetTimeOfCreation
();
// Uzhi 7.05.08
78
79
void
SetPosition
(
const
G4ThreeVector
&aPosition);
80
const
G4ThreeVector
&
GetPosition
()
const
;
81
82
void
SetStatus
(
const
G4int
aStatus);
// Uzhi 17.07.09
83
G4int
GetStatus
();
// Uzhi 17.07.09
84
85
virtual
void
SplitUp
() = 0;
86
virtual
void
SetFirstParton
(
G4int
PDGcode) = 0;
// Uzhi 24.11.10
87
virtual
void
SetSecondParton
(
G4int
PDGcode)= 0;
// Uzhi 24.11.10
88
virtual
G4Parton
*
GetNextParton
() = 0 ;
89
virtual
G4Parton
*
GetNextAntiParton
() = 0 ;
90
G4bool
IsSplit
() {
return
isSplit;}
91
92
G4int
GetSoftCollisionCount
();
93
protected
:
94
95
void
Splitting
() {isSplit =
true
;}
96
97
private
:
98
99
G4VSplitableHadron
(
const
G4VSplitableHadron
&right);
100
const
G4VSplitableHadron
& operator=(
const
G4VSplitableHadron
&right);
101
102
private
:
103
104
G4ParticleDefinition
*theDefinition;
105
106
G4LorentzVector
the4Momentum;
107
108
G4double
TimeOfCreation;
// Uzhi 7.05.08
109
G4ThreeVector
thePosition;
110
G4int
theCollisionCount;
111
112
G4int
curStatus;
// Uzhi 17.07.09
113
G4bool
isSplit;
114
115
};
116
117
inline
G4int
G4VSplitableHadron::GetSoftCollisionCount
()
118
{
119
return
theCollisionCount;
120
}
121
122
inline
void
G4VSplitableHadron::SetCollisionCount
(
G4int
aCount)
123
{
124
theCollisionCount = aCount;
125
}
126
127
inline
void
G4VSplitableHadron::Set4Momentum
(
const
G4LorentzVector
&a4Momentum)
128
{
129
the4Momentum=a4Momentum;
130
}
131
132
inline
const
G4LorentzVector
&
G4VSplitableHadron::Get4Momentum
()
const
133
{
134
return
the4Momentum;
135
}
136
137
inline
void
G4VSplitableHadron::SetDefinition
(
G4ParticleDefinition
*aDefinition)
138
{
139
theDefinition=aDefinition;
140
}
141
142
inline
G4ParticleDefinition
*
G4VSplitableHadron::GetDefinition
()
const
143
{
144
return
theDefinition;
145
}
146
147
inline
void
G4VSplitableHadron::IncrementCollisionCount
(
G4int
aCount)
148
{
149
theCollisionCount += aCount;
150
}
151
152
inline
void
G4VSplitableHadron::SetTimeOfCreation
(
G4double
aTime)
// Uzhi 7.05.08
153
{
154
TimeOfCreation=aTime;
155
}
156
157
inline
G4double
G4VSplitableHadron::GetTimeOfCreation
()
// Uzhi 7.05.08
158
{
159
return
TimeOfCreation;
160
}
161
162
inline
void
G4VSplitableHadron::SetPosition
(
const
G4ThreeVector
&aPosition)
163
{
164
thePosition=aPosition;
165
}
166
167
inline
const
G4ThreeVector
&
G4VSplitableHadron::GetPosition
()
const
168
{
169
return
thePosition;
170
}
171
172
inline
void
G4VSplitableHadron::SetStatus
(
G4int
aStatus)
// Uzhi 17.07.09
173
{
174
curStatus=aStatus;
175
}
176
177
inline
G4int
G4VSplitableHadron::GetStatus
()
// Uzhi 17.07.09
178
{
179
return
curStatus;
180
}
181
182
183
#endif
184
185
Generated on Sat May 25 2013 14:34:05 for Geant4 by
1.8.4