ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4StatMFMicroPartition.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4StatMFMicroPartition.hh
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 G4StatMFMicroPartition_h
32 #define G4StatMFMicroPartition_h 1
33 
34 #include <vector>
35 
36 #include "globals.hh"
37 #include "G4StatMFParameters.hh"
38 #include "G4StatMFChannel.hh"
39 
41 
42 public:
43  // Constructor
45  theA(A), theZ(Z), _Probability(0.0), _Temperature(0.0),
46  _Entropy(0.0) {};
47 
48 
49  // Destructor
51 
52 
53 private:
54  // Default constructor
56 
57  // Copy constructor
59 
60  // operators
62 public:
65 
66 public:
67 
68  // Gives fragments charges
69  G4StatMFChannel * ChooseZ(G4int A0, G4int Z0, G4double MeanT);
70 
72  { return _Probability; }
73 
75  {
76  _thePartition.push_back(anA);
77  CoulombFreeEnergy(anA);
78  }
79 
80  void Normalize(G4double Normalization)
81  { _Probability /= Normalization; }
82 
84  G4double FreeInternalE0,
85  G4double SCompound);
86 
88  {
89  return _Temperature;
90  }
91 
93  {
94  return _Entropy;
95  }
96 
97 private:
98 
99  void CoulombFreeEnergy(G4int anA);
100 
102  G4double FreeInternalE0);
103 
105 
107 
109 
111  {
112  // Calculate Inverse Density Level
113  // Epsilon0*(1 + 3 /(Af - 1))
114  if (Af < 1.5) return 0.0;
115  else return G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(Af - 1.0));
116  }
117 
118 private:
119 
120  // A and Z of initial nucleus
123 
124  // Partition probability
126 
127  // Partition temperature
129 
130  // Partition entropy
132 
133  // The partition itself
134  std::vector<G4int> _thePartition;
135 
136  std::vector<G4double> _theCoulombFreeEnergy;
137 
138 };
139 
140 #endif