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: 1748 $ 00029 * $Date: 2006-03-14 12:18:15 -0800 (Tue, 14 Mar 2006) $ 00030 * $Author: dbrown $ 00031 * $Id: mf14table.hpp 1748 2006-03-14 20:18:15Z dbrown $ 00032 * 00033 * ******** fete: From ENDF To ENDL ********* 00034 */ 00035 00036 // header for the translation of MF=14 tabular data 00037 00038 #ifndef MF14TABLE 00039 #define MF14TABLE 00040 00041 #include "mf4classes.hpp" 00042 #include "mf12classes.hpp" 00043 #include "mf6classes.hpp" 00044 00045 using namespace std; 00046 00047 // ----------- class MF14_table_raw ----------------- 00048 //! This class reads and stores the MF=14 tabular data in ENDF format. 00049 //! The data is a list of mf4_table, one for each gamma. 00050 class MF14_table_raw : public list< mf4_table > 00051 { 00052 private: 00053 void fill_mu( ); 00054 00055 public: 00056 // ! Read the ENDF data 00057 void read_data( mf14_file& inFile, int num_gamma ); 00058 00059 //! Ensure common E_in values 00060 void fill_E_in( ); 00061 00062 }; 00063 00064 // ----------- class MF14_table ----------------- 00065 //! This class is for anisotropic gamma tables (LTT = 2) which are not c55 data 00066 class MF14_table : public ENDL_table 00067 { 00068 private: 00069 // the total multiplicity 00070 multiplicity multiple; 00071 00072 // The mf12 multiplicity data for the lines 00073 MF12_raw line_mult; 00074 00075 // The ENDF mf14 tabular data 00076 MF14_table_raw endf_mf14; 00077 00078 //! Reads the gamma multiplicities 00079 void read_mf12( mf12_file& mult_file, int num_mf12 ); 00080 00081 //! Weights the raw mf14 data by their multiplicity 00082 void mult_weight( ); 00083 00084 //! Puts the data into ENDL order 00085 void ENDL_order( ); 00086 00087 //! Converts the lines to delta-functions 00088 void widen_deltas( ); 00089 00090 //! Creates the ENDL i = 1 angular distributions 00091 void make_i1( ); 00092 00093 public: 00094 //! Handles the mf12 and mf14 tabular data 00095 void master( mf12_file& mult_file, mf14_file& angle_file, 00096 int num_mf12, int num_mf14 ); 00097 }; 00098 00099 #endif 00100 00101