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: mf6_gammas.hpp 1735 2006-02-09 21:47:26Z dbrown $ 00032 * 00033 * ******** fete: From ENDF To ENDL ********* 00034 */ 00035 00036 // header for the special class for mf6 gammas 00037 00038 #ifndef MF6_GAMMAS_DEF 00039 #define MF6_GAMMAS_DEF 00040 00041 #include "list_3d.hpp" 00042 00043 00044 // ----------- class mf6_table ----------------- 00045 //! Class to handle the MF=6 tabular data 00046 class mf6_table : public three_d_link< one_d_table > 00047 { 00048 public: 00049 // ********* implement virtual functions ******************* 00050 // Append a new mf6_table 00051 mf6_table::iterator new_one_d( mf6_table::iterator where ); 00052 // ********** end of virtual functions ********************* 00053 00054 //! Reads in all the data from inFile for NE energies 00055 void read_data( mf6_file& inFile, int LEP, int NE ); 00056 00057 //! Reads in the data for a particular energy 00058 void one_E_in( mf6_file& inFile, int LEP ); 00059 00060 }; 00061 00062 // ----------- class mf6_gammas --------------------- 00063 // derive this class from three_d_list 00064 //! Class to handle the gammas from MF=6 files. 00065 class mf6_gammas : public three_d_list< mf6_table > 00066 { 00067 public: 00068 //! Reads in the gamma data and makes a three_d_list 00069 void read_data( mf6_file& inFile, int LEP, int NR, int num_E_in ); 00070 00071 //! Creates isotropic double differential data for a single incident neutron energy 00072 void expand_E_in(mf6_table::iterator e_dist_ptr, 00073 mf6_gammas::iterator this_link); 00074 00075 }; 00076 00077 #endif