Berkeley Nuclear Data Software
ACEIsotope.h
Go to the documentation of this file.
1 #ifndef _ACE_ISOTOPE_
2 #define _ACE_ISOTOPE_
3 #include "RIPLData.h"
4 // c++ includes
5 #include<iostream>
6 #include<iomanip>
7 #include<fstream>
8 #include<sstream>
9 #include<cmath>
10 #include<string>
11 #include<vector>
12 #include<map>
13 #include<algorithm>
14 using namespace std;
15 
19 {
20 public:
21  ACEIsotope();
22  ACEIsotope(SampleACE* a_samp);
25  int loadACEData(string a_ZAID, int a_verbose=0);
26 private:
27  void getNuBarData(const vector<double>& rawData);
28  void getDelayedNData(const vector<double>& rawData);
29  void getDelayedPreNData(const vector<double>& rawData);
30  void readOutgoingSpec(const vector<double>& rawData, string a_type);
31  int getLawLength(const vector<double>& data, int a_JED, int a_IDAT, int a_LAW);
32 
33 public:
36  int drawXSec(int a_MT, bool a_writeToFile=false);
37 
39  angDist getAngDists(int a_MT);
41  secondarySpectra getOutgoingSpec(int a_MT);
42 
44  void reset();
45 
47  int sampleMT(double a_energyIn);
48  vector<outgoingData> sampleOutgoing(double a_energyIn,
49  int a_MT,
50  bool a_sampleGamma=true);
51 
53  map<int, ACECrossSection> getMTXSecs();
54 
56  void getDrawableMTs();
57 
59  double getTotalXSec(double a_energyIn);
60 private:
61 
62  int m_verbose=0;
63 
64  map<string, int> m_nxsFlags;
65  map<string, int> m_jxsFlags;
66 
67  map<int, ACECrossSection> m_MTxsec;
68  vector<int> m_nMTsProd;
69  vector<int> m_gMTsProd;
70 
71  map<int, int> m_MTMult;
72 
73  RIPL m_riplData;
74 
75  vector<double> m_energy;
76  vector<double> m_totalXSec;
77  vector<double> m_totalRemoval;
78  vector<double> m_totalElas;
79  vector<double> m_totalHeat;
80  vector<double> m_nu_coeffsTotal;
81  vector<double> m_nu_coeffsPrompt;
82  map<int, tabData> m_pt_nuBar;
83  tabData m_d_nuBar;
84  map<int, pair<double, tabData>> m_delayNeutronPrecusor;
85  map<int, pair<int,vector<double>>> m_sigsMT;
86  map< int, angDist> m_angDistsMT;
87  map<int, secondarySpectra> m_secondSpecNMT;
88 
89  SampleACE* m_samp;
90 
91 };
92 
93 #endif
Definition: ACEIsotope.h:19
Definition: RIPLData.h:50
Class to perform random sampling of data.
Definition: SampleACE.h:18
Definition: ACEDataTypes.h:37
Definition: ACEDataTypes.h:56
Definition: ACEDataTypes.h:27