00001 /* 00002 * ******** fete: From ENDF To ENDL ********* 00003 * 00004 * Copyright (c) 2006, The Regents of the University of California. 00005 * All rights reserved. 00006 * 00007 * Produced at the Lawrence Livermore National Laboratory. 00008 * Written by David A. Brown, Gerry Hedstrom, Tony Hill 00009 * 00010 * This file is part of fete v1.0 (UCRL-CODE-218718) 00011 * 00012 * Please read the COPYING file for "Our Notice and GNU General 00013 * Public License" in the root of this software distribution. 00014 * 00015 * This program is free software; you can redistribute it and/or modify 00016 * it under the terms of the GNU General Public License (as published by 00017 * the Free Software Foundation) version 2, dated June 1991. 00018 * 00019 * This program is distributed in the hope that it will be useful, 00020 * but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms 00022 * and conditions of the GNU General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU General Public License along 00025 * with this program; if not, write to the Free Software Foundation, Inc., 00026 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00027 * 00028 * $Revision: 1735 $ 00029 * $Date: 2006-02-09 13:47:26 -0800 (Thu, 09 Feb 2006) $ 00030 * $Author: dbrown $ 00031 * $Id: mf13classes.hpp 1735 2006-02-09 21:47:26Z dbrown $ 00032 * 00033 * ******** fete: From ENDF To ENDL ********* 00034 */ 00035 00036 // header for the MF=13 translation code 00037 00038 #ifndef MF13CLASSES 00039 #define MF13CLASSES 00040 00041 #include "list_2d.hpp" 00042 #include "ENDF_file.hpp" 00043 #include "mf15classes.hpp" 00044 #include "multiplicity.hpp" 00045 00046 using namespace std; 00047 00048 // ----------- class MF13_list ----------------- 00049 // derive this class from two_d_list 00050 //! Class to handle the photon production cross sections 00051 class MF13_list : public two_d_list< multiplicity > 00052 { 00053 public: 00054 //! continuum energy distributions 00055 MF15_list cont_data; 00056 00057 //! continuum multiplicity 00058 multiplicity cont_multiple; 00059 00060 //! do we have discrete gammas (for s = 3) 00061 bool with_discrete; 00062 00063 //! Handles an MF=13 file 00064 void master( int NK, mf13_file& inFile ); 00065 00066 //! Routine to read in ENDF/B-VI probabilities of discrete gamma production 00067 void read_data( int NK, mf13_file& inFile ); 00068 00069 //! Writes a c = 55, i = 0, s = 3 ENDL file 00070 void write_endl(); 00071 00072 //! Writes a c = 55, i = 1, s = 3 ENDL file 00073 void isotropic(); 00074 00075 //! Reads gamma production and energy distributions for the continuum 00076 void continuum( int NR, int NP, mf13_file& inFile ); 00077 00078 //! Writes C55 data for the continuum 00079 void write_continuum( ); 00080 00081 }; 00082 00083 // ----------- class C55_gammas ----------------- 00084 // derive this class from two_d_list 00085 //! Class to handle all of the photon production cross sections 00086 class C55_gammas 00087 { 00088 public: 00089 00090 MF13_list MT3_gammas; 00091 MF13_list MT4_gammas; 00092 00093 bool has_MT3; 00094 bool has_MT4; 00095 00096 C55_gammas( ) 00097 { 00098 has_MT3 = false; 00099 has_MT4 = false; 00100 } 00101 00102 ~C55_gammas( ) 00103 {} 00104 00105 //! Sets the weights of the energy distributions according to the photon production cross section. 00106 void set_weights( ); 00107 00108 //! Writes the c55 files 00109 void write_endl(); 00110 }; 00111 00112 #endif