Geant4.10
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ENDFTapeRead.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 /*
27  * File: G4ENDFTapeRead.hh
28  * Author: B. Wendt (wendbryc@isu.edu)
29  *
30  * Created on September 6, 2011, 10:01 AM
31  */
32 
33 #ifndef G4ENDFTAPEREAD_HH
34 #define G4ENDFTAPEREAD_HH
35 
36 #include "globals.hh"
37 
39 #include "G4FFGEnumerations.hh"
40 #include "G4TableTemplate.hh"
41 
42 /** G4ENDFTapeRead is a class designed to read in data from unformatted ENDF data
43  * tapes for MT = 454 or MT = 459, which correspond to independent fission
44  * yields and cumulative fission yields, respectively. The data is stored
45  * internally and can be recalled one product at a time by calling
46  * G4GetNextYield().
47  */
49 {
50 public:
51 // Constructor definition
52  /** Default constructor
53  * - Usage:
54  * - \p FileLocation: the absolute path to the file
55  * - \p FileName: the name of the data file
56  * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE
57  * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED
58  *
59  * - Notes: The data will be read in immediately upon construction.
60  */
61  G4ENDFTapeRead( G4String FileLocation,
62  G4String FileName,
65  /** Overloaded constructor
66  * - Usage:
67  * - \p FileLocation: the absolute path to the file
68  * - \p FileName: the name of the data file
69  * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE
70  * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED
71  * - \p Verbosity: Verbosity level
72  *
73  * - Notes: The data will be read in immediately upon construction.
74  */
75  G4ENDFTapeRead( G4String FileLocation,
76  G4String FileName,
79  G4int Verbosity );
80  /** Overloaded constructor
81  * - Usage:
82  * - \p DataFile: The absolute path to the data file
83  * - \p WhichYield: \p INDEPENDENT or \p CUMULATIVE
84  * - \p WhichCause: \p SPONTANEOUS or \p N_INDUCED
85  * - \p Verbosity: Verbosity level
86  *
87  * - Notes: The data will be read in immediately upon construction.
88  */
89  G4ENDFTapeRead( std::istringstream& dataStream,
92  G4int Verbosity );
93 protected:
94  /** Initialize is a common function called by all constructors. */
95  void Initialize( G4String dataFile );
96  /** Initialize is a common function calles by all constructors */
97  void Initialize( std::istringstream& dataStream );
98 
99 public:
100 // Functions
101  /** Returns and array containing the values of each of the energy groups
102  * - Usage: No arguments required
103  *
104  * - Notes:
105  */
107  /** Returns the number of energy yield groups that were extracted from the
108  * ENDF tape file
109  * - Usage: No arguments required
110  *
111  * - Notes:
112  */
114  /** Returns the number of fission products that were extracted from the
115  * ENDF tape file
116  * - Usage: No arguments required
117  *
118  * - Notes:
119  */
121  /** Returns the data for the requested fission product
122  * - Usage:
123  * - \p WhichYield: 0-based index of the fission product for which to
124  * get the yield data
125  *
126  * - Notes:
127  * - This will return a pointer to the next G4FissionYieldContainer.
128  * NULL will be returned if no more fission containers exist.
129  */
131  /** Sets the verbosity levels
132  * - Usage:
133  * - \p WhichVerbosity: Combination of levels
134  *
135  * - Notes:
136  * - \p SILENT: All verbose output is repressed
137  * - \p UPDATES: Only high-level internal changes are reported
138  * - \p DAUGHTER_INFO: Displays information about daughter product sampling
139  * - \p NEUTRON_INFO: Displays information about neutron sampling
140  * - \p GAMMA_INFO: Displays information about gamma sampling
141  * - \p ALPHA_INFO: Displays information about alpha sampling
142  * - \p MOMENTUM_INFO: Displays information about momentum balancing
143  * - \p EXTRAPOLATION_INTERPOLATION_INFO: Displays information about any data extrapolation or interpolation that occurs
144  * - \p DEBUG: Reports program flow as it steps through functions
145  * - \p PRINT_ALL: Displays any and all output
146  */
147  void G4SetVerbosity( G4int WhatVerbosity );
148 
149 private:
150 // Functions
151  /** Read in the data from an ENDF data tape. */
152  void ReadInData( std::istringstream& dataStream );
153 
154 // Data members
155  /** Stores the number corresponding to the fission cause that will be extracted */
156  //const G4FFGEnumerations::FissionCause Cause_;
157  /** Counter for the number of energy groups that were extracted */
158  G4int EnergyGroups_;
159  /** Array containing the values of the extracted energy groups */
160  G4double* EnergyGroupValues_;
161  /** Verbosity level */
162  G4int Verbosity_;
163  /** Storage for the extracted data */
164  G4TableTemplate< G4ENDFYieldDataContainer >* YieldContainerTable_;
165  /** Stores the number corresponding to the yield type that will be extracted */
166  const G4FFGEnumerations::YieldType YieldType_;
167 
168 // Destructor function(s)
169 public:
170  /** Default Deconstructor */
171  ~G4ENDFTapeRead( void );
172 };
173 
174 #endif /* G4ENDFTAPEREAD_HH */
175 
G4ENDFYieldDataContainer * G4GetYield(G4int WhichYield)
void Initialize(G4String dataFile)
int G4int
Definition: G4Types.hh:78
G4ENDFTapeRead(G4String FileLocation, G4String FileName, G4FFGEnumerations::YieldType WhichYield, G4FFGEnumerations::FissionCause WhichCause)
G4int G4GetNumberOfEnergyGroups(void)
void G4SetVerbosity(G4int WhatVerbosity)
G4int G4GetNumberOfFissionProducts(void)
double G4double
Definition: G4Types.hh:76
G4double * G4GetEnergyGroupValues(void)