ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4StatMFMacroCanonical.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4StatMFMacroCanonical.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 G4StatMFMacroCanonical_h
32 #define G4StatMFMacroCanonical_h 1
33 
34 #include "G4Fragment.hh"
35 #include "G4StatMFFragment.hh"
36 #include "G4VStatMFEnsemble.hh"
37 #include "G4VStatMFMacroCluster.hh"
38 #include "G4StatMFMacroNucleon.hh"
43 #include "G4StatMFParameters.hh"
44 #include "G4StatMFChannel.hh"
46 #include "Randomize.hh"
47 
48 
50 
51 public:
52 
53  // G4StatMFMacroCanonical class must be initialized with a G4Fragment.
54  G4StatMFMacroCanonical(G4Fragment const & theFragment);
55 
56  // destructor
58 
59 private:
60  // default constructor
62 
63 
64  // copy constructor
66 
67 
68  // operators
72 
73 
74 public:
75 
76  // Choice of fragment atomic numbers and charges.
77  G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment);
78 
79 private:
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
92  std::vector<G4int> & FragmentsA);
93 
94  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
95 
96 
97  // Chemical Potential \mu
99 
100  // Chemical Potential \nu
102 
103 
104  // Parameter Kappa
106 
107  // Clusters
108  std::vector<G4VStatMFMacroCluster*> _theClusters;
109 
111  {
112  template<typename T>
113  void operator()(const T* ptr) const
114  {
115  delete ptr;
116  }
117  };
118 
119 
120 };
121 
122 #endif