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.4.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 // $Id: G4CompetitiveFission.hh 107060 2017-11-01 15:00:04Z gcosmo $
 27 //                                                 28 //
 28 // Hadronic Process: Nuclear De-excitations        29 // Hadronic Process: Nuclear De-excitations
 29 // by V. Lara (Oct 1998)                           30 // by V. Lara (Oct 1998)
 30                                                    31 
 31 #ifndef G4CompetitiveFission_h                     32 #ifndef G4CompetitiveFission_h
 32 #define G4CompetitiveFission_h 1                   33 #define G4CompetitiveFission_h 1
 33                                                    34 
 34 #include "G4VEvaporationChannel.hh"                35 #include "G4VEvaporationChannel.hh"
 35 #include "G4Fragment.hh"                           36 #include "G4Fragment.hh"
                                                   >>  37 #include "G4VFissionBarrier.hh"
                                                   >>  38 #include "G4FissionBarrier.hh"
 36 #include "G4VEmissionProbability.hh"               39 #include "G4VEmissionProbability.hh"
                                                   >>  40 #include "G4FissionProbability.hh"
                                                   >>  41 #include "G4VLevelDensityParameter.hh"
                                                   >>  42 #include "G4FissionLevelDensityParameter.hh"
 37 #include "G4FissionParameters.hh"                  43 #include "G4FissionParameters.hh"
                                                   >>  44 #include "Randomize.hh"
 38 #include <CLHEP/Units/SystemOfUnits.h>             45 #include <CLHEP/Units/SystemOfUnits.h>
 39 #include "G4Exp.hh"                            << 
 40                                                << 
 41 class G4VFissionBarrier;                       << 
 42 class G4VEmissionProbability;                  << 
 43 class G4VLevelDensityParameter;                << 
 44 class G4PairingCorrection;                     << 
 45                                                    46 
 46 class G4CompetitiveFission : public G4VEvapora     47 class G4CompetitiveFission : public G4VEvaporationChannel
 47 {                                                  48 {
 48 public:                                            49 public:
 49                                                    50   
 50   G4CompetitiveFission();                      <<  51   explicit G4CompetitiveFission();
 51   ~G4CompetitiveFission() override;            <<  52   virtual ~G4CompetitiveFission();
 52                                                    53 
 53   void Initialise() override;                  <<  54   virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus);
 54                                                << 
 55   G4Fragment* EmittedFragment(G4Fragment* theN << 
 56                                                    55 
 57   G4double GetEmissionProbability(G4Fragment*  <<  56   virtual G4double GetEmissionProbability(G4Fragment* theNucleus);
 58                                                    57 
 59   void SetFissionBarrier(G4VFissionBarrier * a <<  58   inline void SetFissionBarrier(G4VFissionBarrier * aBarrier);
 60                                                    59 
 61   void SetEmissionStrategy(G4VEmissionProbabil <<  60   inline void SetEmissionStrategy(G4VEmissionProbability * aFissionProb);
 62                                                    61 
 63   void SetLevelDensityParameter(G4VLevelDensit <<  62   inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity);
 64                                                    63 
 65   inline G4double GetFissionBarrier(void) cons     64   inline G4double GetFissionBarrier(void) const;
 66                                                    65 
 67   inline G4double GetLevelDensityParameter(voi     66   inline G4double GetLevelDensityParameter(void) const;
 68                                                    67 
 69   inline G4double GetMaximalKineticEnergy(void     68   inline G4double GetMaximalKineticEnergy(void) const;
 70                                                    69 
 71   G4CompetitiveFission(const G4CompetitiveFiss << 
 72   const G4CompetitiveFission & operator=(const << 
 73   G4bool operator==(const G4CompetitiveFission << 
 74   G4bool operator!=(const G4CompetitiveFission << 
 75                                                << 
 76 private:                                           70 private:
 77                                                    71 
 78   // Sample AtomicNumber of Fission products       72   // Sample AtomicNumber of Fission products
 79   G4int FissionAtomicNumber(G4int A);              73   G4int FissionAtomicNumber(G4int A);
 80                                                    74 
 81   G4double MassDistribution(G4double x, G4int      75   G4double MassDistribution(G4double x, G4int A);
 82                                                    76 
 83   // Sample Charge of fission products             77   // Sample Charge of fission products
 84   G4int FissionCharge(G4int A, G4int Z, G4doub     78   G4int FissionCharge(G4int A, G4int Z, G4double Af);
 85                                                    79 
 86   // Sample Kinetic energy of fission products     80   // Sample Kinetic energy of fission products
 87   G4double FissionKineticEnergy(G4int A, G4int     81   G4double FissionKineticEnergy(G4int A, G4int Z,
 88         G4int Af1, G4int Zf1,                      82         G4int Af1, G4int Zf1,
 89         G4int Af2, G4int Zf2,                      83         G4int Af2, G4int Zf2,
 90         G4double U, G4double Tmax);                84         G4double U, G4double Tmax);
 91                                                    85     
 92   inline G4double Ratio(G4double A, G4double A <<  86   inline G4double Ratio(G4double A, G4double A11, G4double B1, G4double A00);
 93                         G4double B1, G4double  << 
 94                                                    87 
 95   inline G4double SymmetricRatio(G4int A, G4do <<  88   inline G4double SymmetricRatio(G4int A, G4double A11);
 96                                                    89 
 97   inline G4double AsymmetricRatio(G4int A, G4d <<  90   inline G4double AsymmetricRatio(G4int A, G4double A11);
 98                                                    91 
 99   inline G4double LocalExp(G4double x) const;  <<  92   G4CompetitiveFission(const G4CompetitiveFission &right) = delete;
                                                   >>  93   const G4CompetitiveFission & operator=(const G4CompetitiveFission &right) = delete;
                                                   >>  94   G4bool operator==(const G4CompetitiveFission &right) const = delete;
                                                   >>  95   G4bool operator!=(const G4CompetitiveFission &right) const = delete;
100                                                    96 
101   // Maximal Kinetic Energy that can be carrie     97   // Maximal Kinetic Energy that can be carried by fragment
102   G4double maxKineticEnergy{0.0};              <<  98   G4double MaximalKineticEnergy;
103   G4double fissionBarrier{0.0};                << 
104   G4double fissionProbability{0.0};            << 
105   G4double fFactor{1.0};                       << 
106                                                    99 
107   // For Fission barrier                          100   // For Fission barrier
108   G4VFissionBarrier* theFissionBarrierPtr;     << 101   G4VFissionBarrier * theFissionBarrierPtr;
                                                   >> 102   G4double FissionBarrier;
                                                   >> 103   G4bool MyOwnFissionBarrier;
109                                                   104 
110   // For Fission probability emission             105   // For Fission probability emission
111   G4VEmissionProbability* theFissionProbabilit << 106   G4VEmissionProbability * theFissionProbabilityPtr;
                                                   >> 107   G4double FissionProbability;
                                                   >> 108   G4bool MyOwnFissionProbability;
112                                                   109 
113   // For Level Density calculation                110   // For Level Density calculation
114   G4VLevelDensityParameter* theLevelDensityPtr << 111   G4bool MyOwnLevelDensity;
115   G4PairingCorrection* pairingCorrection;      << 112   G4VLevelDensityParameter * theLevelDensityPtr;
                                                   >> 113   G4double LevelDensityParameter;
116                                                   114 
117   G4bool myOwnFissionProbability{true};        << 115   G4PairingCorrection* pairingCorrection;
118   G4bool myOwnFissionBarrier{true};            << 
119   G4bool myOwnLevelDensity{true};              << 
120                                                   116 
121   G4FissionParameters theParam;                   117   G4FissionParameters theParam;
122                                                << 118 
123   G4int theSecID;  // Creator model ID for the << 
124   G4bool isInitialised{false};                 << 
125 };                                                119 };
126                                                   120 
                                                   >> 121 inline void G4CompetitiveFission::SetFissionBarrier(G4VFissionBarrier * aBarrier)
                                                   >> 122 {
                                                   >> 123   if (MyOwnFissionBarrier) delete theFissionBarrierPtr;
                                                   >> 124   theFissionBarrierPtr = aBarrier;
                                                   >> 125   MyOwnFissionBarrier = false;
                                                   >> 126 }
                                                   >> 127 
                                                   >> 128 inline void 
                                                   >> 129 G4CompetitiveFission::SetEmissionStrategy(G4VEmissionProbability * aFissionProb)
                                                   >> 130 {
                                                   >> 131   if (MyOwnFissionProbability) delete theFissionProbabilityPtr;
                                                   >> 132   theFissionProbabilityPtr = aFissionProb;
                                                   >> 133   MyOwnFissionProbability = false;
                                                   >> 134 }
                                                   >> 135 
                                                   >> 136 inline void 
                                                   >> 137 G4CompetitiveFission::SetLevelDensityParameter(G4VLevelDensityParameter* aLevelDensity)
                                                   >> 138 { 
                                                   >> 139   if (MyOwnLevelDensity) delete theLevelDensityPtr;
                                                   >> 140   theLevelDensityPtr = aLevelDensity;
                                                   >> 141   MyOwnLevelDensity = false;
                                                   >> 142 }
                                                   >> 143 
127 inline G4double G4CompetitiveFission::GetFissi    144 inline G4double G4CompetitiveFission::GetFissionBarrier(void) const 
128 {                                                 145 { 
129   return fissionBarrier;                       << 146   return FissionBarrier; 
                                                   >> 147 }
                                                   >> 148 
                                                   >> 149 inline G4double G4CompetitiveFission::GetLevelDensityParameter(void) const 
                                                   >> 150 { 
                                                   >> 151   return LevelDensityParameter; 
130 }                                                 152 }
131                                                   153 
132 inline G4double G4CompetitiveFission::GetMaxim    154 inline G4double G4CompetitiveFission::GetMaximalKineticEnergy(void) const 
133 {                                                 155 { 
134   return maxKineticEnergy;                     << 156   return MaximalKineticEnergy; 
135 }                                                 157 }
136                                                   158 
137 inline                                            159 inline
138 G4double G4CompetitiveFission::Ratio(G4double     160 G4double G4CompetitiveFission::Ratio(G4double A, G4double A11,
139              G4double B1, G4double A00) const  << 161              G4double B1, G4double A00) 
140 {                                                 162 {
141   G4double res;                                   163   G4double res;
142   if (A11 >= A*0.5 && A11 <= (A00+10.0)) {        164   if (A11 >= A*0.5 && A11 <= (A00+10.0)) {
143     G4double x = (A11-A00)/A;                     165     G4double x = (A11-A00)/A;
144     res = 1.0 - B1*x*x;                           166     res = 1.0 - B1*x*x;
145   } else {                                        167   } else {
146     G4double x = 10.0/A;                          168     G4double x = 10.0/A;
147     res = 1.0 - B1*x*x - 2.0*x*B1*(A11-A00-10.    169     res = 1.0 - B1*x*x - 2.0*x*B1*(A11-A00-10.0)/A;
148   }                                               170   }
149   return res;                                     171   return res;
150 }                                                 172 }
151                                                   173 
152 inline                                            174 inline
153 G4double G4CompetitiveFission::AsymmetricRatio << 175 G4double G4CompetitiveFission::AsymmetricRatio(G4int A, G4double A11)
154 {                                                 176 {
155   return Ratio(G4double(A),A11,23.5,134.0);       177   return Ratio(G4double(A),A11,23.5,134.0);
156 }                                                 178 }
157                                                   179 
158 inline                                            180 inline
159 G4double G4CompetitiveFission::SymmetricRatio( << 181 G4double G4CompetitiveFission::SymmetricRatio(G4int A, G4double A11)
160 {                                                 182 {
161   G4double A0 = G4double(A);                      183   G4double A0 = G4double(A);
162   return Ratio(A0,A11,5.32,A0*0.5);               184   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 }                                                 185 }
169                                                   186 
170 #endif                                            187 #endif
171                                                   188 
172                                                   189 
173                                                   190