|
||||
File indexing completed on 2025-01-18 09:58:13
0001 // 0002 // ******************************************************************** 0003 // * License and Disclaimer * 0004 // * * 0005 // * The Geant4 software is copyright of the Copyright Holders of * 0006 // * the Geant4 Collaboration. It is provided under the terms and * 0007 // * conditions of the Geant4 Software License, included in the file * 0008 // * LICENSE and available at http://cern.ch/geant4/license . These * 0009 // * include a list of copyright holders. * 0010 // * * 0011 // * Neither the authors of this software system, nor their employing * 0012 // * institutes,nor the agencies providing financial support for this * 0013 // * work make any representation or warranty, express or implied, * 0014 // * regarding this software system or assume any liability for its * 0015 // * use. Please see the license in the file LICENSE and URL above * 0016 // * for the full disclaimer and the limitation of liability. * 0017 // * * 0018 // * This code implementation is the result of the scientific and * 0019 // * technical work of the GEANT4 collaboration. * 0020 // * By using, copying, modifying or distributing the software (or * 0021 // * any work based on the software) you agree to acknowledge its * 0022 // * use in resulting scientific publications, and indicate your * 0023 // * acceptance of all terms of the Geant4 Software license. * 0024 // ******************************************************************** 0025 // 0026 /* 0027 * File: G4ENDFTapeRead.hh 0028 * Author: B. Wendt (wendbryc@isu.edu) 0029 * 0030 * Created on September 6, 2011, 10:01 AM 0031 */ 0032 0033 #ifndef G4ENDFTAPEREAD_HH 0034 #define G4ENDFTAPEREAD_HH 0035 0036 #include "G4ENDFYieldDataContainer.hh" 0037 #include "G4FFGEnumerations.hh" 0038 #include "G4TableTemplate.hh" 0039 #include "globals.hh" 0040 0041 /** G4ENDFTapeRead is a class designed to read in data from unformatted ENDF data 0042 * tapes for MT = 454 or MT = 459, which correspond to independent fission 0043 * yields and cumulative fission yields, respectively. The data is stored 0044 * internally and can be recalled one product at a time by calling 0045 * G4GetNextYield(). 0046 */ 0047 class G4ENDFTapeRead 0048 { 0049 public: 0050 // Constructor definition 0051 /** Default constructor 0052 * - Usage: 0053 * - \p FileLocation: the absolute path to the file 0054 * - \p FileName: the name of the data file 0055 * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE 0056 * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED 0057 * 0058 * - Notes: The data will be read in immediately upon construction. 0059 */ 0060 G4ENDFTapeRead(G4String FileLocation, G4String FileName, 0061 G4FFGEnumerations::YieldType WhichYield, 0062 G4FFGEnumerations::FissionCause WhichCause); 0063 /** Overloaded constructor 0064 * - Usage: 0065 * - \p FileLocation: the absolute path to the file 0066 * - \p FileName: the name of the data file 0067 * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE 0068 * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED 0069 * - \p Verbosity: Verbosity level 0070 * 0071 * - Notes: The data will be read in immediately upon construction. 0072 */ 0073 G4ENDFTapeRead(G4String FileLocation, G4String FileName, 0074 G4FFGEnumerations::YieldType WhichYield, 0075 G4FFGEnumerations::FissionCause WhichCause, G4int Verbosity); 0076 /** Overloaded constructor 0077 * - Usage: 0078 * - \p DataFile: The absolute path to the data file 0079 * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE 0080 * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED 0081 * - \p Verbosity: Verbosity level 0082 * 0083 * - Notes: The data will be read in immediately upon construction. 0084 */ 0085 G4ENDFTapeRead(std::istringstream& dataStream, G4FFGEnumerations::YieldType WhichYield, 0086 G4FFGEnumerations::FissionCause WhichCause, G4int Verbosity); 0087 0088 protected: 0089 /** Initialize is a common function called by all constructors. */ 0090 void Initialize(G4String dataFile); 0091 /** Initialize is a common function calles by all constructors */ 0092 void Initialize(std::istringstream& dataStream); 0093 0094 public: 0095 // Functions 0096 /** Returns and array containing the values of each of the energy groups 0097 * - Usage: No arguments required 0098 * 0099 * - Notes: 0100 */ 0101 G4double* G4GetEnergyGroupValues(); 0102 /** Returns the number of energy yield groups that were extracted from the 0103 * ENDF tape file 0104 * - Usage: No arguments required 0105 * 0106 * - Notes: 0107 */ 0108 G4int G4GetNumberOfEnergyGroups(); 0109 /** Returns the number of fission products that were extracted from the 0110 * ENDF tape file 0111 * - Usage: No arguments required 0112 * 0113 * - Notes: 0114 */ 0115 G4int G4GetNumberOfFissionProducts(); 0116 /** Returns the data for the requested fission product 0117 * - Usage: 0118 * - \p WhichYield: 0-based index of the fission product for which to 0119 * get the yield data 0120 * 0121 * - Notes: 0122 * - This will return a pointer to the next G4FissionYieldContainer. 0123 * NULL will be returned if no more fission containers exist. 0124 */ 0125 G4ENDFYieldDataContainer* G4GetYield(G4int WhichYield); 0126 /** Sets the verbosity levels 0127 * - Usage: 0128 * - \p WhichVerbosity: Combination of levels 0129 * 0130 * - Notes: 0131 * - \p SILENT: All verbose output is repressed 0132 * - \p UPDATES: Only high-level internal changes are reported 0133 * - \p DAUGHTER_INFO: Displays information about daughter product sampling 0134 * - \p NEUTRON_INFO: Displays information about neutron sampling 0135 * - \p GAMMA_INFO: Displays information about gamma sampling 0136 * - \p ALPHA_INFO: Displays information about alpha sampling 0137 * - \p MOMENTUM_INFO: Displays information about momentum balancing 0138 * - \p EXTRAPOLATION_INTERPOLATION_INFO: Displays information about any data extrapolation 0139 * or interpolation that occurs 0140 * - \p DEBUG: Reports program flow as it steps through functions 0141 * - \p PRINT_ALL: Displays any and all output 0142 */ 0143 void G4SetVerbosity(G4int WhatVerbosity); 0144 0145 private: 0146 // Functions 0147 /** Read in the data from an ENDF data tape. */ 0148 void ReadInData(std::istringstream& dataStream); 0149 0150 // Data members 0151 /** Stores the number corresponding to the fission cause that will be extracted */ 0152 // const G4FFGEnumerations::FissionCause Cause_; 0153 /** Counter for the number of energy groups that were extracted */ 0154 G4int EnergyGroups_; 0155 /** Array containing the values of the extracted energy groups */ 0156 G4double* EnergyGroupValues_; 0157 /** Verbosity level */ 0158 G4int Verbosity_; 0159 /** Storage for the extracted data */ 0160 G4TableTemplate<G4ENDFYieldDataContainer>* YieldContainerTable_; 0161 /** Stores the number corresponding to the yield type that will be extracted */ 0162 const G4FFGEnumerations::YieldType YieldType_; 0163 0164 // Destructor function(s) 0165 public: 0166 /** Default Deconstructor */ 0167 ~G4ENDFTapeRead(); 0168 }; 0169 0170 #endif /* G4ENDFTAPEREAD_HH */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |