Geant4 Cross Reference |
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 // 29 // Author: E.Mendoza 30 // 31 // Creation date: May 2024 32 // 33 // Modifications: 34 // 35 // ------------------------------------------------------------------- 36 // 37 // NuDEX code (https://doi.org/10.1016/j.nima.2022.167894) 38 // 39 40 41 #ifndef NUDEXLEVELDENSITY_HH 42 #define NUDEXLEVELDENSITY_HH 1 43 44 #include <cstdlib> 45 #include <iostream> 46 #include <fstream> 47 #include <cmath> 48 49 //Level densities as they are defined in the RIPL-3 manual 50 51 //LDTYPE=1,2,3 --> Back-Shifted-Fermi-Gas model, Constant Temperature, Back-shifted: Egidy 52 53 #define DEFAULTLDTYPE 1 54 55 //using namespace std; 56 57 class G4NuDEXLevelDensity{ 58 59 public: 60 G4NuDEXLevelDensity(G4int aZ,G4int aA,G4int ldtype=DEFAULTLDTYPE); 61 ~G4NuDEXLevelDensity(){} 62 63 64 G4int ReadLDParameters(const char* dirname,const char* inputfname=0,const char* defaultinputfname=0); 65 G4int CalculateLDParameters_BSFG(const char* dirname); 66 G4int SearchLDParametersInInputFile(const char* inputfname); 67 void GetSnD0I0Vals(G4double &aSn,G4double &aD0,G4double &aI0){aSn=Sn; aD0=D0; aI0=I0;} 68 69 G4int GetLDType(){return LDType;} 70 G4double GetNucleusTemperature(G4double ExcEnergy); 71 G4double GetLevelDensity(G4double ExcEnergy_MeV,G4double spin,G4bool parity,G4bool TotalLevelDensity=false); 72 G4double EstimateInverse(G4double LevDen_iMeV,G4double spin,G4bool parity); //an approximate value of ExcEnergy(rho), the inverse function of rho(ExcEnergy) - iMeV means 1/MeV 73 G4double Integrate(G4double Emin,G4double Emax,G4double spin,G4bool parity); 74 75 void PrintParameters(std::ostream &out); 76 void PrintParametersInInputFileFormat(std::ostream &out); 77 78 private: 79 80 //General info: 81 G4int A_Int,Z_Int; 82 G4int LDType; //=1,2,3 --> Back-Shifted-Fermi-Gas model, Constant Temperature, Back-shifted: Egidy 83 G4double Sn,D0,I0; //I0 es el del nucleo A-1 (el que captura) 84 G4double Ed; 85 86 G4bool HasData; 87 88 //Level density parameters: 89 G4double A_mass,ainf_ldpar,gamma_ldpar,dW_ldpar,Delta_ldpar,T_ldpar,E0_ldpar,Ex_ldpar; 90 91 92 }; 93 94 95 96 #endif 97 98