Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#ifndef _DecayDataBank_
#define _DecayDataBank_
/*!
\file
\brief Header file for DecayDataBank class.
@version 2.0
*/
#include "CLASSObject.hxx"
#include "EvolutionData.hxx"
#include "IsotopicVector.hxx"
#include <map>
#include <vector>
using namespace std;
typedef long long int cSecond;
class ZAI;
class CLASSLogger;
double ReactionRateWeightedDistance(IsotopicVector IV1, EvolutionData DB );
double ReactionRateWeightedDistance(EvolutionData DB, IsotopicVector IV1 );
//-----------------------------------------------------------------------------//
//! Describes outcore radioactive decays
/*!
Define a DecayDataBank.
The aim of these class is to describe the evolution of "all" evoluting systems in CLASS.
For the Decay Matrix the DecayDataBank mainly contains a map of <ZAI,EvolutionData>.This map do the correspondance between a ZAI and its decay evolution (containing all the daughter nuclei comming from the decay of the original ZAI and quantities evolutions).
@author BaM
@author Marc
@author PTO for a part of the Decay management -- steal from MURE (Even if he does not kown it!! :))
@version 2.0
*/
//________________________________________________________________________
class DecayDataBank : public CLASSObject
{
public :
//********* Constructor/Desctructor *********//
/*!
\name Constructor/Desctructor
*/
//@{
/// Normal Constructor.
DecayDataBank();
//{
/// Special Constructor.
/*!
Use to load a DecayDataBank
\param DB_index_file : path to the index file
\param olfreadmethod : true if the old format of EvolutionData are used (deprecated) (ie without the key word such as Inv, XSFiss...)
*/
DecayDataBank(string DB_index_file );
//}
//{
/// Special Constructor.
/*!
Use to load a DecayDataBank
\param Log : CLASSLogger used for the log.
\param DB_index_file : path to the index file
\param olfreadmethod : true if the old format of EvolutionData are used (ie without the key word such as Inv, XSFiss...)
*/
DecayDataBank(CLASSLogger* Log, string DB_index_file );
//}
//{
/// Normal Destructor.
/*!
Delete the DecayDataBank and all associated EvolutionData(s)...
*/
~DecayDataBank();
//}
//{
/// Reset the DecayDataBank.
/*!
Use to reset the DecayDataBank to its default values whihout deleting the EvolutionData (which contain pointer... ).
it just clears the different maps
*/
void Clear();
//}
//@}
//********* Get Method *********//
/*!
\name Get Method
*/
//@{
map<ZAI ,EvolutionData > GetDecayDataBank() const { return fDecayDataBank; } //!< Return the DecayDataBank
bool IsDefine(const ZAI& zai) const; //!< True if the key is define, false unstead
string GetDataBaseIndex() const { return fDataBaseIndex; } //!< Return the index name
IsotopicVector GetDecay(IsotopicVector isotopicvector, cSecond t); //!< Get IsotopicVector decay at time t
//@}
//********* Set Method *********//
/*!
\name Set Method
*/
//@{
void SetDecayDataBank(map<ZAI ,EvolutionData > mymap)
{ fDecayDataBank = mymap; } //!< Set the DecayDataBank map
void SetDataBaseIndex(string database) { fDataBaseIndex = database;; ReadDataBase(); } //!< Set the name of the database index
void SetFastCalculation(bool val) { fFastCalculation = val; }
//}
//********* Evolution Method *********//
//@}
/*!
\name Evolution Method
*/
//@{
IsotopicVector Evolution(const ZAI& zai, double dt); ///< Return the IsotopicVector from the decay of zai during a dt period
//@}
//********* Other Method *********//
/*!
\name Other Method
*/
//@{
void ReadDataBase(); ///< Read the index file and fill the EvolutionData map
void Print() const;
//@}
protected :
bool fFastCalculation;
map<ZAI, EvolutionData> fDecayDataBank; ///< DataBank map
string fDataBaseIndex; ///< Name of the index
Doligez
committed
private :
ClassDef(CLASSObject,1);