Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4StatMFMacroCanonical.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//
28// Hadronic Process: Nuclear De-excitations
29// by V. Lara
30
31#ifndef G4StatMFMacroCanonical_h
32#define G4StatMFMacroCanonical_h 1
33
34#include "G4Fragment.hh"
35#include "G4StatMFFragment.hh"
36#include "G4VStatMFEnsemble.hh"
43#include "G4StatMFParameters.hh"
44#include "G4StatMFChannel.hh"
46#include "Randomize.hh"
47
48
50
51public:
52
53 // G4StatMFMacroCanonical class must be initialized with a G4Fragment.
54 G4StatMFMacroCanonical(G4Fragment const & theFragment);
55
56 // destructor
58
59private:
60 // default constructor
62
63
64 // copy constructor
66
67
68 // operators
69 G4StatMFMacroCanonical & operator=(const G4StatMFMacroCanonical & right);
70 G4bool operator==(const G4StatMFMacroCanonical & right) const;
71 G4bool operator!=(const G4StatMFMacroCanonical & right) const;
72
73
74public:
75
76 // Choice of fragment atomic numbers and charges.
77 G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment);
78
79private:
80
81 // Initailization method
82 void Initialize(const G4Fragment & theFragment);
83
84 //
85 void CalculateTemperature(const G4Fragment & theFragment);
86
87 // Determines fragments multiplicities and compute total fragment multiplicity
88 G4double ChooseA(G4int A, std::vector<G4int> & ANumbers);
89
90 // Samples charges of fragments
91 G4StatMFChannel * ChooseZ(G4int & Z,
92 std::vector<G4int> & FragmentsA);
93
94 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
95
96
97 // Chemical Potential \mu
98 G4double _ChemPotentialMu;
99
100 // Chemical Potential \nu
101 G4double _ChemPotentialNu;
102
103
104 // Parameter Kappa
105 G4double _Kappa;
106
107 // Clusters
108 std::vector<G4VStatMFMacroCluster*> _theClusters;
109
110 struct DeleteFragment
111 {
112 template<typename T>
113 void operator()(const T* ptr) const
114 {
115 delete ptr;
116 }
117 };
118
119
120};
121
122#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment)