Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

multiplicity.hpp

Go to the documentation of this file.
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: 1866 $
00029  * $Date: 2006-05-15 09:12:12 -0700 (Mon, 15 May 2006) $
00030  * $Author: dbrown $
00031  * $Id: multiplicity.hpp 1866 2006-05-15 16:12:12Z dbrown $
00032  * 
00033  * ******** fete: From ENDF To ENDL *********
00034  */
00035 
00036 // header for the multiplicity class
00037 
00038 #ifndef MULTIPLICITY_CLASS
00039 #define MULTIPLICITY_CLASS
00040 
00041 #include "distrib_1d.hpp"
00042 #include "ENDF_file.hpp"
00043 
00044 // *********** class multiplicity *************
00045 //! Class to handle ENDF multiplicity data.
00046 class multiplicity : public one_d_table
00047 {
00048 public:  
00049   // to enable the use of the sum_lists routine
00050   double weight;
00051 
00052   //! Default constructor
00053   multiplicity():weight(0.0){}
00054   
00055   //! Default destructor
00056   ~multiplicity(){}
00057 
00058   //! Label for this list for gamma multiplicities
00059   inline double& E_gamma()
00060   {
00061     return tag;
00062   }
00063 
00064   //! Read in and expands the multiplicity 2-column data
00065   void read_data( int NP, ENDF_file& inFile);
00066 
00067   //! Checks the multiplicity to make sure it is constant, as it should be
00068   bool check_const_mult( );
00069   bool check_const_mult( double first_mult );
00070   
00071   //! Sets a floor/ceiling value on the multiplicity for those times where 
00072   //! it is not constant, but a minimum value is requires
00073   void set_min_mult( double min_mult );
00074   void set_max_mult( double max_mult );
00075 
00076   //! Returns the constant multiplicity as may be used in an (n, Xn) reaction
00077   int get_mult( );
00078 
00079   //! Sets the multiplicity to a constant, if we know it from another method (say the reaction MT)
00080   void set_mult( int mult );
00081 
00082   //! Scales photon multiplicity by the cross section to get photon production
00083   void scale_by_xs();
00084 
00085   //! Divides photon production by the cross section to get photon multiplicity
00086   void divide_by_xs();
00087 
00088   //! Needed to combine lists of discrete gamma multiplicities
00089   void list_interp( double e_in, multiplicity& left_list,
00090     multiplicity& right_list );
00091 
00092   //! Used to verify that the multiplicity of a single line doesn't exceed 1
00093   void check_count( ); 
00094 
00095 private:
00096 
00097 protected:
00098 
00099 };
00100 
00101 #endif

Generated on Thu Sep 7 10:30:13 2006 for fete -- From ENDFB6 To ENDL by doxygen 1.3.4