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
decay
include
G4Decay.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
// ------------------------------------------------------------
31
// GEANT 4 class header file
32
//
33
// History: first implementation, based on object model of
34
// 7 July 1996 H.Kurashige
35
// ------------------------------------------------------------
36
// New Physics scheme 18 Jan. 1997 H.Kurahige
37
// ------------------------------------------------------------
38
// modified 4 Feb. 1997 H.Kurahige
39
// modified 8 Sep. 1997 H.Kurahige
40
// remove BuildPhysicsTable() 27 Nov. 1997 H.Kurashige
41
// modified for new ParticleChange 12 Mar. 1998 H.Kurashige
42
// added aPhysicsTable 2 Aug. 1998 H.Kurashige
43
// PreAssignedDecayTime 18 Jan. 2001 H.Kurashige
44
// Add External Decayer 23 Feb. 2001 H.Kurashige
45
// Remove PhysicsTable 12 Feb. 2002 H.Kurashige
46
// Fixed bug in PostStepGPIL
47
// in case of stopping during AlongStepDoIt 12 Mar. 2004 H.Kurashige
48
// Add GetRemainderLifeTime 10 Aug/2004 H.Kurashige
49
// Add DaughterPolarization 23 July 2008 H.Kurashige
50
51
52
#ifndef G4Decay_h
53
#define G4Decay_h 1
54
55
#include "
G4ios.hh
"
56
#include "
globals.hh
"
57
#include "
G4VRestDiscreteProcess.hh
"
58
#include "
G4ParticleChangeForDecay.hh
"
59
#include "
G4DecayProcessType.hh
"
60
61
class
G4VExtDecayer
;
62
63
class
G4Decay
:
public
G4VRestDiscreteProcess
64
{
65
// Class Description
66
// This class is a decay process
67
68
public
:
69
// Constructors
70
G4Decay
(
const
G4String
& processName =
"Decay"
);
71
72
// Destructor
73
virtual
~G4Decay
();
74
75
private
:
76
// copy constructor
77
G4Decay
(
const
G4Decay
&
right
);
78
79
// Assignment Operation (generated)
80
G4Decay
& operator=(
const
G4Decay
&right);
81
82
public
:
//With Description
83
// G4Decay Process has both
84
// PostStepDoIt (for decay in flight)
85
// and
86
// AtRestDoIt (for decay at rest)
87
88
virtual
G4VParticleChange
*
PostStepDoIt
(
89
const
G4Track
& aTrack,
90
const
G4Step
& aStep
91
);
92
93
virtual
G4VParticleChange
*
AtRestDoIt
(
94
const
G4Track
& aTrack,
95
const
G4Step
& aStep
96
);
97
98
virtual
void
BuildPhysicsTable
(
const
G4ParticleDefinition
&);
99
// In G4Decay, thePhysicsTable stores values of
100
// beta * std::sqrt( 1 - beta*beta)
101
// as a function of normalized kinetic enregy (=Ekin/mass),
102
// becasuse this table is universal for all particle types,
103
104
105
virtual
G4bool
IsApplicable
(
const
G4ParticleDefinition
&);
106
// returns "true" if the decay process can be applied to
107
// the particle type.
108
109
protected
:
// With Description
110
virtual
G4VParticleChange
*
DecayIt
(
111
const
G4Track
& aTrack,
112
const
G4Step
& aStep
113
);
114
// The DecayIt() method returns by pointer a particle-change object,
115
// which has information of daughter particles.
116
117
// Set daughter polarization
118
// NO OPERATION in the base class of G4Decay
119
virtual
void
DaughterPolarization
(
const
G4Track
& aTrack,
120
G4DecayProducts
* products);
121
122
public
:
123
virtual
G4double
AtRestGetPhysicalInteractionLength
(
124
const
G4Track
& track,
125
G4ForceCondition
*
condition
126
);
127
128
virtual
G4double
PostStepGetPhysicalInteractionLength
(
129
const
G4Track
& track,
130
G4double
previousStepSize,
131
G4ForceCondition
* condition
132
);
133
134
protected
:
// With Description
135
// GetMeanFreePath returns ctau*beta*gamma for decay in flight
136
// GetMeanLifeTime returns ctau for decay at rest
137
virtual
G4double
GetMeanFreePath
(
const
G4Track
& aTrack,
138
G4double
previousStepSize,
139
G4ForceCondition
* condition
140
);
141
142
virtual
G4double
GetMeanLifeTime
(
const
G4Track
& aTrack,
143
G4ForceCondition
* condition
144
);
145
146
public
:
//With Description
147
virtual
void
StartTracking
(
G4Track
*);
148
virtual
void
EndTracking
();
149
// inform Start/End of tracking for each track to the physics process
150
151
public
:
//With Description
152
void
SetExtDecayer
(
G4VExtDecayer
*);
153
const
G4VExtDecayer
*
GetExtDecayer
()
const
;
154
// Set/Get External Decayer
155
156
G4double
GetRemainderLifeTime
()
const
;
157
//Get Remainder of life time at rest decay
158
159
public
:
160
void
SetVerboseLevel
(
G4int
value
);
161
G4int
GetVerboseLevel
()
const
;
162
163
protected
:
164
G4int
verboseLevel
;
165
// controle flag for output message
166
// 0: Silent
167
// 1: Warning message
168
// 2: More
169
170
protected
:
171
// HighestValue.
172
const
G4double
HighestValue
;
173
174
// Remainder of life time at rest
175
G4double
fRemainderLifeTime
;
176
177
// ParticleChange for decay process
178
G4ParticleChangeForDecay
fParticleChangeForDecay
;
179
180
// External Decayer
181
G4VExtDecayer
*
pExtDecayer
;
182
};
183
184
inline
185
void
G4Decay::SetVerboseLevel
(
G4int
value
){
verboseLevel
=
value
; }
186
187
inline
188
G4int
G4Decay::GetVerboseLevel
()
const
{
return
verboseLevel
; }
189
190
inline
191
G4VParticleChange
*
G4Decay::AtRestDoIt
(
192
const
G4Track
& aTrack,
193
const
G4Step
& aStep
194
)
195
{
196
return
DecayIt
(aTrack, aStep);
197
}
198
199
inline
200
G4VParticleChange
*
G4Decay::PostStepDoIt
(
201
const
G4Track
& aTrack,
202
const
G4Step
& aStep
203
)
204
{
205
return
DecayIt
(aTrack, aStep);
206
}
207
208
inline
209
const
G4VExtDecayer
*
G4Decay::GetExtDecayer
()
const
210
{
211
return
pExtDecayer
;
212
}
213
214
inline
215
G4double
G4Decay::GetRemainderLifeTime
()
const
216
{
217
return
fRemainderLifeTime
;
218
}
219
220
#endif
221
222
223
224
225
226
227
228
229
230
Generated on Sat May 25 2013 14:33:29 for Geant4 by
1.8.4