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
de_excitation
multifragmentation
include
G4StatMFChannel.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
// Hadronic Process: Nuclear De-excitations
30
// by V. Lara
31
32
#ifndef G4StatMFChannel_h
33
#define G4StatMFChannel_h 1
34
35
#include <deque>
36
37
#include "
G4StatMFParameters.hh
"
38
#include "
G4StatMFFragment.hh
"
39
40
41
class
G4StatMFChannel
{
42
43
public
:
44
// Default Constructor
45
G4StatMFChannel
();
46
47
// Destructor
48
~G4StatMFChannel
();
49
50
private
:
51
52
// Copy constructor
53
G4StatMFChannel
(
const
G4StatMFChannel
&
right
);
54
55
// operators
56
G4StatMFChannel
& operator=(
const
G4StatMFChannel
& right);
57
58
G4bool
operator==(
const
G4StatMFChannel
& right)
const
;
59
G4bool
operator!=(
const
G4StatMFChannel
& right)
const
;
60
61
public
:
62
63
void
CreateFragment
(
G4int
A,
G4int
Z
);
64
65
inline
size_t
GetMultiplicity
(
void
) {
return
_theFragments.size();}
66
67
// Return false if there is some unphysical fragment
68
G4bool
CheckFragments
(
void
);
69
70
G4double
GetFragmentsCoulombEnergy
(
void
);
71
72
G4double
GetFragmentsEnergy
(
G4double
T)
const
;
73
74
G4FragmentVector
*
GetFragments
(
G4int
anA,
G4int
anZ,
G4double
T);
75
76
private
:
77
78
// This method calculates asymptotic fragments momenta.
79
void
CoulombImpulse(
G4int
anA,
G4int
anZ,
G4double
T);
80
81
void
PlaceFragments(
G4int
anA);
82
83
void
SolveEqOfMotion(
G4int
anA,
G4int
anZ,
G4double
T);
84
85
// Calculates fragments momentum components at the breakup instant.
86
// Fragment kinetic energies will be calculated according to the
87
// Boltzamann distribution at given temperature.
88
void
FragmentsMomenta(
G4int
NF,
G4int
idx,
G4double
T);
89
90
91
// Samples a isotropic random vectorwith a magnitud given by Magnitude.
92
// By default Magnitude = 1
93
G4ThreeVector
IsotropicVector(
G4double
Magnitude = 1.0);
94
95
96
// Rotates a 3-vector P to close momentum triangle Pa + V + P = 0
97
G4ThreeVector
RotateMomentum(
G4ThreeVector
Pa,
G4ThreeVector
V,
98
G4ThreeVector
P);
99
100
private
:
101
102
std::deque<G4StatMFFragment*> _theFragments;
103
104
G4int
_NumOfNeutralFragments;
105
106
G4int
_NumOfChargedFragments;
107
108
struct
DeleteFragment
109
{
110
template
<
typename
T>
111
void
operator()(
const
T* ptr)
const
112
{
113
delete
ptr;
114
}
115
};
116
117
};
118
119
#endif
120
121
122
123
124
125
126
Generated on Sat May 25 2013 14:33:54 for Geant4 by
1.8.4