// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // // // G4 Tools program: PhotoNuclearCalculation of gamma+A cross sections // according to the paper M.V.Kossov "Approximation of photonuclear // interaction cross sections" (EPJA,2002, be published). The cross // sections are calculated according to the exact complicated formulas // and tabulated for the fast response. The total energy range is // subdivided in three regions: // a) The GDR region (from the hadron production threshold to 106 MeV) // covering 46 nuclei: H2,He4,Li6,Li7,Be9,C12,N14,N15,O16,F19,Na23, // Mg24,Al27,Si28,S32,S34,(Ar40,Ca40),Fe54,Mn55,Fe56,Ni58,Co59,Cu,Zn // Se76,Se82,Ag,Cd,Sn,I,Sm154,Gd156,Tb159,Ho165,Er168,Yb174,Hf178,Hf180, // Ta181,W184,W186,Au197,Tl,Pb,Bi209,Th232,U235,U238,Pu239. For these // isotops the approximation fits the existing measurements. For // them the basic functions are calculated. For other isotops the // approximation is interpolated linearly with A. // b) The resonance region (from 106 MeV to 50 GeV) // covering 14 nuclei: H1,H2,He3,He4,Li6,Li7,Be,C,O,Al,Cu,Sn,Pb,U. // For these isotops the melting of resonances in nuclear matter is // measured and approximated. For them the basic functions are // calculated. For other isotops the approximation is interpolated // linearly with A. // c) The high energy region is an A-dependent function for E>100 GeV, // taking into account nuclear shaddowing. // ..................................................... // Created: M.V. Kossov, CERN/ITEP(Moscow), 10-May-02 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 // //===================================================================== #include "globals.hh" #include #include #include #include "G4ios.hh" int main() { const G4int mN=49; // A#of GDR basic nuclei const G4int mC=105; // A#of Resonance points in E (each MeV from 2 to 106) const G4double mA[mN]={ 2.,4.,6.,7.,9.,12.,14.,15.,16.,19.,23.,24.,27.,28.,32.,34.,40.,54., 55.,56.,58.7,58.9,63.5,65.4,76.,82.,107.9,112.4,118.7,126.9,154.,156.,159.,165., 168.,174.,178.,180.,181.,184.,186.,197.,204.4,207.2,209.,232.,235., 238.,239.}; const G4int nN=14; // A#of Resonance basic nuclei const G4int nC=224; // A#of Resonance points in lnE const G4double nA[nN]={1.,2.,3.,4.,6.,7.,9.,12.,16.,27.,63.5,118.7,207.2,238.}; const G4double r4[6]={0.,3.38,3.51,3.23,3.57,3.60}; const G4double t4[6]={0.,3.14,3.09,2.80,3.25,3.17}; const G4double r8[mN]={ 0.00,0.00,0.00,2.57,3.26,3.52,3.51,3.51,3.49,3.05,3.20,3.25,3.40,3.42,3.38,3.50,3.51, 3.59,3.45,3.46,3.52,3.56,3.40,3.40,3.29,3.38,3.50,3.49,3.41,3.46,3.40,3.37,3.40,3.29, 3.37,3.21,3.45,3.45,3.39,3.36,3.36,3.39,3.47,3.40,3.36,3.31,3.30,3.37,3.36}; const G4double t8[mN]={ 0.00,0.00,0.00,2.48,3.05,3.11,3.09,3.08,3.10,2.70,2.90,2.95,3.00,2.97,2.98,3.00,3.05, 2.94,2.93,2.86,2.99,3.01,2.85,2.84,2.72,2.76,2.81,2.77,2.72,2.75,2.78,2.74,2.72,2.72, 2.70,2.74,2.70,2.70,2.64,2.63,2.61,2.59,2.63,2.57,2.63,2.62,2.62,2.67,2.65}; const G4double iE=std::log(106.); // Start logarithm energy const G4double fE=std::log(50000.); // Finish logarithm energy (each 2.75 percent) const G4double dE=(fE-iE)/(nC-1); // Step in logarithm energy std::ofstream fileGDR("GDR.out", std::ios::out); fileGDR.setf( std::ios::scientific, std::ios::floatfield ); std::ofstream fileRes("Res.out", std::ios::out); fileRes.setf( std::ios::scientific, std::ios::floatfield ); G4int np=0; for(G4int m=0; m>> fun="<