Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh (Version 11.3.0) and /processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh (Version 10.5.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 //                                                 27 //
 28 // Hadronic Process: Nuclear De-excitations        28 // Hadronic Process: Nuclear De-excitations
 29 // by V. Lara (Oct 1998)                           29 // by V. Lara (Oct 1998)
 30                                                    30 
 31 #ifndef G4CompetitiveFission_h                     31 #ifndef G4CompetitiveFission_h
 32 #define G4CompetitiveFission_h 1                   32 #define G4CompetitiveFission_h 1
 33                                                    33 
 34 #include "G4VEvaporationChannel.hh"                34 #include "G4VEvaporationChannel.hh"
 35 #include "G4Fragment.hh"                           35 #include "G4Fragment.hh"
                                                   >>  36 #include "G4VFissionBarrier.hh"
                                                   >>  37 #include "G4FissionBarrier.hh"
 36 #include "G4VEmissionProbability.hh"               38 #include "G4VEmissionProbability.hh"
                                                   >>  39 #include "G4FissionProbability.hh"
                                                   >>  40 #include "G4VLevelDensityParameter.hh"
                                                   >>  41 #include "G4FissionLevelDensityParameter.hh"
 37 #include "G4FissionParameters.hh"                  42 #include "G4FissionParameters.hh"
                                                   >>  43 #include "Randomize.hh"
 38 #include <CLHEP/Units/SystemOfUnits.h>             44 #include <CLHEP/Units/SystemOfUnits.h>
 39 #include "G4Exp.hh"                            << 
 40                                                << 
 41 class G4VFissionBarrier;                       << 
 42 class G4VEmissionProbability;                  << 
 43 class G4VLevelDensityParameter;                << 
 44 class G4PairingCorrection;                     << 
 45                                                    45 
 46 class G4CompetitiveFission : public G4VEvapora     46 class G4CompetitiveFission : public G4VEvaporationChannel
 47 {                                                  47 {
 48 public:                                            48 public:
 49                                                    49   
 50   G4CompetitiveFission();                      <<  50   explicit G4CompetitiveFission();
 51   ~G4CompetitiveFission() override;            <<  51   virtual ~G4CompetitiveFission();
 52                                                    52 
 53   void Initialise() override;                  <<  53   virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus);
 54                                                << 
 55   G4Fragment* EmittedFragment(G4Fragment* theN << 
 56                                                    54 
 57   G4double GetEmissionProbability(G4Fragment*  <<  55   virtual G4double GetEmissionProbability(G4Fragment* theNucleus);
 58                                                    56 
 59   void SetFissionBarrier(G4VFissionBarrier * a <<  57   inline void SetFissionBarrier(G4VFissionBarrier * aBarrier);
 60                                                    58 
 61   void SetEmissionStrategy(G4VEmissionProbabil <<  59   inline void SetEmissionStrategy(G4VEmissionProbability * aFissionProb);
 62                                                    60 
 63   void SetLevelDensityParameter(G4VLevelDensit <<  61   inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity);
 64                                                    62 
 65   inline G4double GetFissionBarrier(void) cons     63   inline G4double GetFissionBarrier(void) const;
 66                                                    64 
 67   inline G4double GetLevelDensityParameter(voi     65   inline G4double GetLevelDensityParameter(void) const;
 68                                                    66 
 69   inline G4double GetMaximalKineticEnergy(void     67   inline G4double GetMaximalKineticEnergy(void) const;
 70                                                    68 
 71   G4CompetitiveFission(const G4CompetitiveFiss << 
 72   const G4CompetitiveFission & operator=(const << 
 73   G4bool operator==(const G4CompetitiveFission << 
 74   G4bool operator!=(const G4CompetitiveFission << 
 75                                                << 
 76 private:                                           69 private:
 77                                                    70 
 78   // Sample AtomicNumber of Fission products       71   // Sample AtomicNumber of Fission products
 79   G4int FissionAtomicNumber(G4int A);              72   G4int FissionAtomicNumber(G4int A);
 80                                                    73 
 81   G4double MassDistribution(G4double x, G4int      74   G4double MassDistribution(G4double x, G4int A);
 82                                                    75 
 83   // Sample Charge of fission products             76   // Sample Charge of fission products
 84   G4int FissionCharge(G4int A, G4int Z, G4doub     77   G4int FissionCharge(G4int A, G4int Z, G4double Af);
 85                                                    78 
 86   // Sample Kinetic energy of fission products     79   // Sample Kinetic energy of fission products
 87   G4double FissionKineticEnergy(G4int A, G4int     80   G4double FissionKineticEnergy(G4int A, G4int Z,
 88         G4int Af1, G4int Zf1,                      81         G4int Af1, G4int Zf1,
 89         G4int Af2, G4int Zf2,                      82         G4int Af2, G4int Zf2,
 90         G4double U, G4double Tmax);                83         G4double U, G4double Tmax);
 91                                                    84     
 92   inline G4double Ratio(G4double A, G4double A <<  85   inline G4double Ratio(G4double A, G4double A11, G4double B1, G4double A00);
 93                         G4double B1, G4double  << 
 94                                                    86 
 95   inline G4double SymmetricRatio(G4int A, G4do <<  87   inline G4double SymmetricRatio(G4int A, G4double A11);
 96                                                    88 
 97   inline G4double AsymmetricRatio(G4int A, G4d <<  89   inline G4double AsymmetricRatio(G4int A, G4double A11);
 98                                                    90 
 99   inline G4double LocalExp(G4double x) const;  <<  91   G4CompetitiveFission(const G4CompetitiveFission &right) = delete;
                                                   >>  92   const G4CompetitiveFission & operator=(const G4CompetitiveFission &right) = delete;
                                                   >>  93   G4bool operator==(const G4CompetitiveFission &right) const = delete;
                                                   >>  94   G4bool operator!=(const G4CompetitiveFission &right) const = delete;
100                                                    95 
101   // Maximal Kinetic Energy that can be carrie     96   // Maximal Kinetic Energy that can be carried by fragment
102   G4double maxKineticEnergy{0.0};              <<  97   G4double MaximalKineticEnergy;
103   G4double fissionBarrier{0.0};                << 
104   G4double fissionProbability{0.0};            << 
105   G4double fFactor{1.0};                       << 
106                                                    98 
107   // For Fission barrier                           99   // For Fission barrier
108   G4VFissionBarrier* theFissionBarrierPtr;     << 100   G4VFissionBarrier * theFissionBarrierPtr;
                                                   >> 101   G4double FissionBarrier;
                                                   >> 102   G4bool MyOwnFissionBarrier;
109                                                   103 
110   // For Fission probability emission             104   // For Fission probability emission
111   G4VEmissionProbability* theFissionProbabilit << 105   G4VEmissionProbability * theFissionProbabilityPtr;
                                                   >> 106   G4double FissionProbability;
                                                   >> 107   G4bool MyOwnFissionProbability;
112                                                   108 
113   // For Level Density calculation                109   // For Level Density calculation
114   G4VLevelDensityParameter* theLevelDensityPtr << 110   G4bool MyOwnLevelDensity;
                                                   >> 111   G4VLevelDensityParameter * theLevelDensityPtr;
115   G4PairingCorrection* pairingCorrection;         112   G4PairingCorrection* pairingCorrection;
116                                                   113 
117   G4bool myOwnFissionProbability{true};        << 
118   G4bool myOwnFissionBarrier{true};            << 
119   G4bool myOwnLevelDensity{true};              << 
120                                                << 
121   G4FissionParameters theParam;                   114   G4FissionParameters theParam;
122                                                << 115 
123   G4int theSecID;  // Creator model ID for the << 
124   G4bool isInitialised{false};                 << 
125 };                                                116 };
126                                                   117 
                                                   >> 118 inline void G4CompetitiveFission::SetFissionBarrier(G4VFissionBarrier * aBarrier)
                                                   >> 119 {
                                                   >> 120   if (MyOwnFissionBarrier) delete theFissionBarrierPtr;
                                                   >> 121   theFissionBarrierPtr = aBarrier;
                                                   >> 122   MyOwnFissionBarrier = false;
                                                   >> 123 }
                                                   >> 124 
                                                   >> 125 inline void 
                                                   >> 126 G4CompetitiveFission::SetEmissionStrategy(G4VEmissionProbability * aFissionProb)
                                                   >> 127 {
                                                   >> 128   if (MyOwnFissionProbability) delete theFissionProbabilityPtr;
                                                   >> 129   theFissionProbabilityPtr = aFissionProb;
                                                   >> 130   MyOwnFissionProbability = false;
                                                   >> 131 }
                                                   >> 132 
                                                   >> 133 inline void 
                                                   >> 134 G4CompetitiveFission::SetLevelDensityParameter(G4VLevelDensityParameter* aLevelDensity)
                                                   >> 135 { 
                                                   >> 136   if (MyOwnLevelDensity) delete theLevelDensityPtr;
                                                   >> 137   theLevelDensityPtr = aLevelDensity;
                                                   >> 138   MyOwnLevelDensity = false;
                                                   >> 139 }
                                                   >> 140 
127 inline G4double G4CompetitiveFission::GetFissi    141 inline G4double G4CompetitiveFission::GetFissionBarrier(void) const 
128 {                                                 142 { 
129   return fissionBarrier;                       << 143   return FissionBarrier; 
130 }                                                 144 }
131                                                   145 
132 inline G4double G4CompetitiveFission::GetMaxim    146 inline G4double G4CompetitiveFission::GetMaximalKineticEnergy(void) const 
133 {                                                 147 { 
134   return maxKineticEnergy;                     << 148   return MaximalKineticEnergy; 
135 }                                                 149 }
136                                                   150 
137 inline                                            151 inline
138 G4double G4CompetitiveFission::Ratio(G4double     152 G4double G4CompetitiveFission::Ratio(G4double A, G4double A11,
139              G4double B1, G4double A00) const  << 153              G4double B1, G4double A00) 
140 {                                                 154 {
141   G4double res;                                   155   G4double res;
142   if (A11 >= A*0.5 && A11 <= (A00+10.0)) {        156   if (A11 >= A*0.5 && A11 <= (A00+10.0)) {
143     G4double x = (A11-A00)/A;                     157     G4double x = (A11-A00)/A;
144     res = 1.0 - B1*x*x;                           158     res = 1.0 - B1*x*x;
145   } else {                                        159   } else {
146     G4double x = 10.0/A;                          160     G4double x = 10.0/A;
147     res = 1.0 - B1*x*x - 2.0*x*B1*(A11-A00-10.    161     res = 1.0 - B1*x*x - 2.0*x*B1*(A11-A00-10.0)/A;
148   }                                               162   }
149   return res;                                     163   return res;
150 }                                                 164 }
151                                                   165 
152 inline                                            166 inline
153 G4double G4CompetitiveFission::AsymmetricRatio << 167 G4double G4CompetitiveFission::AsymmetricRatio(G4int A, G4double A11)
154 {                                                 168 {
155   return Ratio(G4double(A),A11,23.5,134.0);       169   return Ratio(G4double(A),A11,23.5,134.0);
156 }                                                 170 }
157                                                   171 
158 inline                                            172 inline
159 G4double G4CompetitiveFission::SymmetricRatio( << 173 G4double G4CompetitiveFission::SymmetricRatio(G4int A, G4double A11)
160 {                                                 174 {
161   G4double A0 = G4double(A);                      175   G4double A0 = G4double(A);
162   return Ratio(A0,A11,5.32,A0*0.5);               176   return Ratio(A0,A11,5.32,A0*0.5);
163 }                                              << 
164                                                << 
165 inline G4double G4CompetitiveFission::LocalExp << 
166 {                                              << 
167   return (std::abs(x) < 8.) ? G4Exp(-0.5*x*x)  << 
168 }                                                 177 }
169                                                   178 
170 #endif                                            179 #endif
171                                                   180 
172                                                   181 
173                                                   182