ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
MCGIDI.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file MCGIDI.h
1
/*
2
# <<BEGIN-copyright>>
3
# <<END-copyright>>
4
*/
5
#ifndef MCGIDI_h_included
6
#define MCGIDI_h_included
7
8
#define MCGIDI_VERSION_MAJOR 1
9
#define MCGIDI_VERSION_MINOR 0
10
#define MCGIDI_VERSION_PATCHLEVEL 0
11
12
#ifdef WIN32
13
#define M_PI 3.141592653589793238463
14
#endif
15
16
#include <
GIDI_settings.hh
>
17
#include <map>
18
#include <vector>
19
20
#include <
statusMessageReporting.h
>
21
#include <
ptwXY.h
>
22
#include <
xDataTOM.h
>
23
24
#include "
MCGIDI_mass.h
"
25
#include "
MCGIDI_map.h
"
26
27
/* Disable Effective C++ warnings in GIDI code. */
28
#if __INTEL_COMPILER > 1399
29
#pragma warning( disable:2021 )
30
#pragma warning( disable:593 )
31
#pragma warning( disable:111 )
32
#elif __INTEL_COMPILER > 1199
33
#pragma warning( disable:2304 )
34
#endif
35
36
#if defined __cplusplus
37
extern
"C"
{
38
namespace
GIDI {
39
#endif
40
41
typedef
struct
MCGIDI_GammaBranching_s
MCGIDI_GammaBranching
;
42
typedef
struct
MCGIDI_POP_s
MCGIDI_POP
;
43
typedef
struct
MCGIDI_POPs_s
MCGIDI_POPs
;
44
typedef
struct
MCGIDI_particle_s
MCGIDI_particle
;
45
typedef
struct
MCGIDI_target_s
MCGIDI_target
;
46
typedef
struct
MCGIDI_target_heated_info_s
MCGIDI_target_heated_info
;
47
typedef
struct
MCGIDI_target_heated_sorted_s
MCGIDI_target_heated_sorted
;
48
typedef
struct
MCGIDI_target_heated_s
MCGIDI_target_heated
;
49
typedef
struct
MCGIDI_reaction_s
MCGIDI_reaction
;
50
typedef
struct
MCGIDI_outputChannel_s
MCGIDI_outputChannel
;
51
typedef
struct
MCGIDI_product_s
MCGIDI_product
;
52
typedef
struct
MCGIDI_distribution_s
MCGIDI_distribution
;
53
typedef
struct
MCGIDI_KalbachMann_s
MCGIDI_KalbachMann
;
54
typedef
struct
MCGIDI_KalbachMann_ras_s
MCGIDI_KalbachMann_ras
;
55
typedef
struct
MCGIDI_pdfOfX_s
MCGIDI_pdfOfX
;
56
typedef
struct
MCGIDI_pdfsOfXGivenW_s
MCGIDI_pdfsOfXGivenW
;
57
typedef
struct
MCGIDI_pdfsOfXGivenW_sampled_s
MCGIDI_pdfsOfXGivenW_sampled
;
58
typedef
struct
MCGIDI_angular_s
MCGIDI_angular
;
59
typedef
struct
MCGIDI_energyWeightedFunctional_s
MCGIDI_energyWeightedFunctional
;
60
typedef
struct
MCGIDI_energyWeightedFunctionals_s
MCGIDI_energyWeightedFunctionals
;
61
typedef
struct
MCGIDI_energyNBodyPhaseSpace_s
MCGIDI_energyNBodyPhaseSpace
;
62
typedef
struct
MCGIDI_energy_s
MCGIDI_energy
;
63
typedef
struct
MCGIDI_energyAngular_s
MCGIDI_energyAngular
;
64
typedef
struct
MCGIDI_angularEnergy_s
MCGIDI_angularEnergy
;
65
66
typedef
struct
MCGIDI_decaySamplingInfo_s
MCGIDI_decaySamplingInfo
;
67
typedef
struct
MCGIDI_productsInfo_s
MCGIDI_productsInfo
;
68
typedef
struct
MCGIDI_productInfo_s
MCGIDI_productInfo
;
69
typedef
struct
MCGIDI_sampledProductsData_s
MCGIDI_sampledProductsData
;
70
typedef
struct
MCGIDI_sampledProductsDatas_s
MCGIDI_sampledProductsDatas
;
71
72
#if defined __cplusplus
73
}
74
}
75
#endif
76
77
enum
MCGIDI_quantityLookupMode
{
78
MCGIDI_quantityLookupMode_pointwise
,
79
MCGIDI_quantityLookupMode_grouped
80
};
81
82
class
MCGIDI_quantitiesLookupModes
{
83
84
private
:
85
int
mProjectilesPOPID
;
86
double
mProjectileEnergy
;
87
int
mGroupIndex
;
88
double
mProjectileEnergyForGroupIndex
;
89
double
mTemperature
;
90
enum
MCGIDI_quantityLookupMode
mCrossSectionMode
;
91
enum
MCGIDI_quantityLookupMode
mMultiplicityMode
;
92
93
public
:
94
MCGIDI_quantitiesLookupModes
(
int
projectilesPOPID );
95
~MCGIDI_quantitiesLookupModes
( );
96
97
inline
double
getProjectileEnergy
(
void
)
const
{
return
(
mProjectileEnergy
); }
98
void
setProjectileEnergy
(
double
e_in ) {
mProjectileEnergy
= e_in; }
99
100
inline
int
getGroupIndex
(
void
)
const
{
return
(
mGroupIndex
); }
101
int
setGroupIndex
(
GIDI_settings
const
&settings,
bool
encloseOutOfRange );
102
103
inline
double
getTemperature
(
void
)
const
{
return
(
mTemperature
); }
104
void
setTemperature
(
double
temperature ) {
mTemperature
= temperature; }
105
106
enum
MCGIDI_quantityLookupMode
getMode
( std::string
const
&quantity )
const
;
107
enum
MCGIDI_quantityLookupMode
getCrossSectionMode
(
void
)
const
{
return
(
mCrossSectionMode
); };
108
std::vector<std::string>
getListOfLookupQuanities
( )
const
;
109
void
setMode
( std::string
const
&quantity,
enum
MCGIDI_quantityLookupMode
mode );
110
void
setCrossSectionMode
(
enum
MCGIDI_quantityLookupMode
mode ) {
mCrossSectionMode
= mode; };
111
void
setModeAll
(
enum
MCGIDI_quantityLookupMode
mode );
112
};
113
114
typedef
struct
MCGIDI_samplingMultiplicityBias_s
MCGIDI_samplingMultiplicityBias
;
115
116
struct
MCGIDI_samplingMultiplicityBias_s
{
117
int
PoPID
;
118
double
multiplicityFactor
;
119
};
120
121
class
MCGIDI_samplingMethods
{
122
123
public
:
124
MCGIDI_samplingMethods
( );
125
~MCGIDI_samplingMethods
( );
126
};
127
128
class
MCGIDI_samplingSettings
{
129
130
private
:
// This is user input.
131
enum
GIDI::xDataTOM_frame
mWantFrame
;
132
bool
mWantVelocities
;
133
double (*
mRng
)(
void
* );
134
void
*
mRngState
;
135
std::vector<struct MCGIDI_samplingMultiplicityBias_s>
mSamplingMultiplicityBiases
;
136
137
public
:
// Temporary variables used in MCGIDI sampling routines.
138
enum
GIDI::xDataTOM_frame
mGotFrame
;
139
GIDI::MCGIDI_POP
*
mPoP
;
140
double
mMu
;
141
double
mEp
;
142
143
public
:
144
MCGIDI_samplingSettings
(
enum
GIDI::xDataTOM_frame
frame,
bool
wantVelocities,
double
(*rng)(
void
* ),
void
*rngState );
145
~MCGIDI_samplingSettings
( );
146
147
inline
double
getProductMultiplicityBias
(
int
PoPID )
const
{
148
for
(
int
i1 = 0; i1 < (
int
)
mSamplingMultiplicityBiases
.size( ); ++i1 ) {
149
if
( PoPID ==
mSamplingMultiplicityBiases
[i1].PoPID )
return
(
mSamplingMultiplicityBiases
[i1].multiplicityFactor );
150
}
151
return
( 1. ); }
152
int
setProductMultiplicityBias
(
GIDI::statusMessageReporting
*smr,
int
PoPID,
double
fractor );
153
};
154
155
#if defined __cplusplus
156
extern
"C"
{
157
namespace
GIDI {
158
#endif
159
160
enum
MCGIDI_transportability
{
161
MCGIDI_transportability_unknown
,
162
MCGIDI_transportability_none
,
163
MCGIDI_transportability_partial
,
164
MCGIDI_transportability_full
};
166
#if defined __cplusplus
167
}
168
}
169
#endif
170
171
typedef
std::map<int, enum GIDI::MCGIDI_transportability>
transportabilitiesMap
;
172
173
#if defined __cplusplus
174
extern
"C"
{
175
namespace
GIDI {
176
#endif
177
178
#define MCGIDI_crossSectionType_grouped 1
179
#define MCGIDI_crossSectionType_pointwise 2
180
181
#define MCGIDI_nullReaction -10001
182
183
#define MCGIDI_speedOfLight_cm_sec 2.99792458e10
184
#define MCGIDI_AMU2MeV 931.494028
185
186
enum
MCGIDI_reactionType
{
187
MCGIDI_reactionType_unknown_e
,
/* This should never happen. */
188
MCGIDI_reactionType_null_e
,
/* Only occurs when sampling with from grouped cross sections and the projectile is below threshold. */
189
MCGIDI_reactionType_elastic_e
,
/* A nuclear elastic reaction. */
190
MCGIDI_reactionType_scattering_e
,
/* A nuclear reaction where the projectile and target are products as well as gammas,
191
excluding reactions that are MCGIDI_reactionType_elastic_e and
192
MCGIDI_reactionType_nuclearLevelTransition_e. */
193
MCGIDI_reactionType_nuclearIsomerTransmutation_e
,
/* A nuclear that changes N or Z and is not one of the others.*/
194
MCGIDI_reactionType_nuclearLevelTransition_e
,
/* Reaction in which the residual is the same isotope as the target but in a
195
different nuclear level. Mainly for meta-stables. */
196
MCGIDI_reactionType_capture_e
,
/* A nuclear capture reaction. */
197
MCGIDI_reactionType_fission_e
,
/* A nuclear fission reaction. */
198
MCGIDI_reactionType_sumOfRemainingOutputChannels_e
,
/* ENDF MT 5 reactions. */
199
MCGIDI_reactionType_atomic_e
200
};
201
202
enum
MCGIDI_channelGenre
{
MCGIDI_channelGenre_undefined_e
,
MCGIDI_channelGenre_twoBody_e
,
MCGIDI_channelGenre_uncorrelated_e
,
203
MCGIDI_channelGenre_sumOfRemaining_e
,
MCGIDI_channelGenre_twoBodyDecay_e
,
MCGIDI_channelGenre_uncorrelatedDecay_e
};
204
205
enum
MCGIDI_productMultiplicityType
{
MCGIDI_productMultiplicityType_invalid_e
,
MCGIDI_productMultiplicityType_unknown_e
,
MCGIDI_productMultiplicityType_integer_e
,
206
MCGIDI_productMultiplicityType_energyDependent_e
,
MCGIDI_productMultiplicityType_gammaBranching_e
,
MCGIDI_productMultiplicityType_mixed_e
};
207
208
enum
MCGIDI_distributionType
{
MCGIDI_distributionType_none_e
,
MCGIDI_distributionType_unknown_e
,
MCGIDI_distributionType_angular_e
,
209
MCGIDI_distributionType_KalbachMann_e
,
MCGIDI_distributionType_uncorrelated_e
,
MCGIDI_distributionType_energyAngular_e
,
210
MCGIDI_distributionType_angularEnergy_e
};
211
212
enum
MCGIDI_angularType
{
MCGIDI_angularType_isotropic
,
MCGIDI_angularType_recoil
,
MCGIDI_angularType_linear
};
213
214
enum
MCGIDI_energyType
{
MCGIDI_energyType_unknown
,
MCGIDI_energyType_primaryGamma
,
MCGIDI_energyType_discreteGamma
,
215
MCGIDI_energyType_linear
,
MCGIDI_energyType_generalEvaporation
,
MCGIDI_energyType_simpleMaxwellianFission
,
MCGIDI_energyType_evaporation
,
216
MCGIDI_energyType_Watt
,
MCGIDI_energyType_MadlandNix
,
MCGIDI_energyType_NBodyPhaseSpace
,
MCGIDI_energyType_weightedFunctional
};
217
218
extern
const
char
*
MCGIDI_productGenre_unknown
, *
MCGIDI_productGenre_twoBody_angular
, *
MCGIDI_productGenre_twoBody_formFactor
,
219
*
MCGIDI_productGenre_NBody_angular_energy
, *
MCGIDI_productGenre_NBody_pairProduction
;
220
221
#define MCGIDI_particleLevel_continuum -1
222
#define MCGIDI_particleLevel_sum -2
223
224
struct
MCGIDI_GammaBranching_s
{
225
MCGIDI_POP
*
finalLevel
;
226
double
probability
;
227
};
228
229
struct
MCGIDI_POP_s
{
230
MCGIDI_POP
*
next
;
231
MCGIDI_POP
*
parent
;
232
char
*
name
;
233
int
globalPoPsIndex
;
/* Index of particle in the PoPs library if particle can be return to packages using */
234
int
Z
,
A
, level,
m
;
/* this library. Otherwise, -1. */
235
double
mass_MeV
;
236
double
level_MeV
;
237
int
numberOfGammaBranchs
;
238
MCGIDI_GammaBranching
*
gammas
;
239
};
240
241
struct
MCGIDI_POPs_s
{
242
int
numberOfPOPs,
size
, increment;
243
MCGIDI_POP
*first, *last, **
sorted
;
244
};
245
246
struct
MCGIDI_particle_s
{
247
MCGIDI_particle
*
prior
;
248
MCGIDI_particle
*
next
;
249
int
ordinal
;
250
int
Z
,
A
,
m
;
251
double
mass_MeV
;
252
char
*
name
;
253
};
254
255
struct
MCGIDI_decaySamplingInfo_s
{
256
enum
xDataTOM_frame
frame
;
/* The frame the product data are in. */
257
int
isVelocity
;
/* See struct MCGIDI_sampledProductsData_s for meaning. This is user input. */
258
double (*rng)(
void
* );
/* User supplied rng. */
259
void
*
rngState
;
/* User supplied rng state. */
260
MCGIDI_POP
*
pop
;
/* pop for the sampled product. */
261
double
mu
;
/* mu = cos( theta ) for the sampled product. Frame is given by frame member. */
262
double
Ep
;
/* Energy of the product. Frame is given by frame member. */
263
};
264
265
struct
MCGIDI_productInfo_s
{
266
int
globalPoPsIndex
;
267
enum
MCGIDI_productMultiplicityType
productMultiplicityType
;
268
int
multiplicity
;
269
int
transportable
;
270
};
271
272
struct
MCGIDI_productsInfo_s
{
273
int
numberOfProducts
;
274
int
numberOfAllocatedProducts
;
275
MCGIDI_productInfo
*
productInfo
;
276
};
277
278
struct
MCGIDI_sampledProductsData_s
{
279
int
isVelocity
;
/* If true, px_vx, py_vy and pz_vz are velocities otherwise momenta. */
280
MCGIDI_POP
*
pop
;
281
double
kineticEnergy
;
282
double
px_vx
;
283
double
py_vy
;
284
double
pz_vz
;
285
int
delayedNeutronIndex
;
286
double
delayedNeutronRate
;
287
double
birthTimeSec
;
/* Some products, like delayed fission neutrons, are to appear (be born) later. */
288
};
289
290
struct
MCGIDI_sampledProductsDatas_s
{
291
int
numberOfProducts
;
292
int
numberAllocated
;
293
int
incrementSize
;
294
MCGIDI_sampledProductsData
*
products
;
295
};
296
297
struct
MCGIDI_pdfOfX_s
{
298
int
numberOfXs
;
299
double
*
Xs
;
300
double
*
pdf
;
301
double
*
cdf
;
302
};
303
304
struct
MCGIDI_pdfsOfXGivenW_s
{
305
int
numberOfWs
;
306
ptwXY_interpolation
interpolationWY,
interpolationXY
;
307
double
*
Ws
;
308
MCGIDI_pdfOfX
*
dist
;
309
};
310
311
struct
MCGIDI_pdfsOfXGivenW_sampled_s
{
312
statusMessageReporting
*
smr
;
313
ptwXY_interpolation
interpolationWY,
interpolationXY
;
314
int
iW, iX1,
iX2
;
315
double
x
,
w
, frac;
316
};
317
318
struct
MCGIDI_angular_s
{
319
enum
xDataTOM_frame
frame
;
320
enum
MCGIDI_angularType
type
;
321
MCGIDI_angular
*
recoilProduct
;
322
MCGIDI_pdfsOfXGivenW
dists
;
323
double
projectileMass_MeV,
targetMass_MeV
, productMass_MeV, residualMass_MeV;
324
};
325
326
struct
MCGIDI_energyWeightedFunctional_s
{
327
ptwXYPoints
*
weight
;
328
MCGIDI_energy
*
energy
;
329
};
330
331
struct
MCGIDI_energyWeightedFunctionals_s
{
332
int
numberOfWeights
;
333
MCGIDI_energyWeightedFunctional
weightedFunctional[4];
/* ??????????? Hardwired for no good reason. Will handle up to a (z,4n) reaction. */
334
};
335
336
struct
MCGIDI_energyNBodyPhaseSpace_s
{
337
int
numberOfProducts
;
338
double
mass
, massFactor, e_inCOMFactor,
Q_MeV
;
339
};
340
341
struct
MCGIDI_energy_s
{
342
enum
xDataTOM_frame
frame
;
343
enum
MCGIDI_energyType
type
;
344
double
gammaEnergy_MeV
;
345
double
primaryGammaMassFactor
;
346
double
e_inCOMFactor
;
347
MCGIDI_pdfsOfXGivenW
dists
;
348
double
U
;
349
ptwXYPoints
*
theta
, *Watt_a, *
Watt_b
;
350
ptwXY_interpolation
gInterpolation
;
351
MCGIDI_pdfOfX
g
;
352
MCGIDI_energyWeightedFunctionals
weightedFunctionals
;
353
MCGIDI_energyNBodyPhaseSpace
NBodyPhaseSpace
;
354
};
355
356
struct
MCGIDI_energyAngular_s
{
357
enum
xDataTOM_frame
frame
;
358
MCGIDI_pdfsOfXGivenW
pdfOfEpGivenE
;
359
MCGIDI_pdfsOfXGivenW
*
pdfOfMuGivenEAndEp
;
/* The number of MCGIDI_pdfsOfXGivenW allocated is given by pdfOfEpGivenE.numberOfWs. */
360
};
361
362
struct
MCGIDI_angularEnergy_s
{
363
enum
xDataTOM_frame
frame
;
364
MCGIDI_pdfsOfXGivenW
pdfOfMuGivenE
;
365
MCGIDI_pdfsOfXGivenW
*
pdfOfEpGivenEAndMu
;
/* The number of MCGIDI_pdfsOfXGivenW allocated is given by pdfOfMuGivenE.numberOfWs. */
366
};
367
368
struct
MCGIDI_KalbachMann_ras_s
{
369
double
*
rs
;
370
double
*
as
;
371
};
372
373
struct
MCGIDI_KalbachMann_s
{
374
enum
xDataTOM_frame
frame
;
375
double
energyToMeVFactor, massFactor, Sa,
Sb
, Ma, mb;
/* Needed if a(E,E') is caluclated from the formula. */
376
MCGIDI_pdfsOfXGivenW
dists
;
/* Sa currently not used. */
377
MCGIDI_KalbachMann_ras
*
ras
;
378
};
379
380
struct
MCGIDI_distribution_s
{
381
MCGIDI_product
*
product
;
382
enum
MCGIDI_distributionType
type
;
383
MCGIDI_angular
*
angular
;
/* All distribution forms must have a frame member. */
384
MCGIDI_energy
*
energy
;
385
MCGIDI_energyAngular
*
energyAngular
;
386
MCGIDI_angularEnergy
*
angularEnergy
;
387
MCGIDI_KalbachMann
*
KalbachMann
;
388
};
389
390
struct
MCGIDI_outputChannel_s
{
391
enum
MCGIDI_channelGenre
genre
;
392
MCGIDI_reaction
*
reaction
;
/* This is only used for output channels. */
393
MCGIDI_product
*
parent
;
/* This is only used for decay channels. */
394
int
QIsFloat
;
395
double
Q
;
396
int
numberOfProducts
;
397
MCGIDI_product
*
products
;
398
};
399
400
struct
MCGIDI_product_s
{
401
MCGIDI_POP
*
pop
;
402
char
*
label
;
403
MCGIDI_outputChannel
*
outputChannel
;
404
int
multiplicity
;
/* If 0, the multiplicity is either 'energyDependent' or 'partialProduction'. */
405
int
delayedNeutronIndex
;
406
double
delayedNeutronRate
;
407
ptwXYPoints
*
multiplicityVsEnergy
;
408
ptwXYPoints
*
norms
;
409
int
numberOfPiecewiseMultiplicities
;
410
ptwXYPoints
**
piecewiseMultiplicities
;
411
MCGIDI_distribution
distribution
;
412
MCGIDI_outputChannel
decayChannel
;
413
};
414
415
struct
MCGIDI_reaction_s
{
416
MCGIDI_target_heated
*
target
;
417
int
ENDF_MT, ENDL_C,
ENDL_S
;
418
enum
MCGIDI_reactionType
reactionType
;
419
char
const
*
outputChannelStr
;
420
xDataTOM_attributionList
attributes
;
/* Do not free, owned by attributes. */
421
int
domainValuesPresent
;
/* True if cross section data defined so EMin and EMax are value. */
422
int
thresholdGroupIndex
;
/* For grouped data, the group index where threshold starts. */
423
double
thresholdGroupDomain
;
/* This is groupEnergy[thresholdGroupIndex+1] - EMin. */
424
double
thresholdGroupedDeltaCrossSection
;
/* The adjusted group cross section in group thresholdGroupIndex. */
425
double
EMin, EMax,
finalQ
;
/* BRB, EMin is used as threshold. However, some reactions, especially charged particle */
426
ptwXYPoints
*
crossSection
;
/* have effective thresholds much higher than EMin, may need to handle these differently??????? */
427
ptwXPoints
*
crossSectionGrouped
;
428
MCGIDI_outputChannel
outputChannel
;
429
MCGIDI_productsInfo
productsInfo
;
/* See MCGIDI_reaction_ParseDetermineReactionProducts for description. */
430
transportabilitiesMap *
transportabilities
;
431
};
432
433
struct
MCGIDI_target_heated_s
{
434
int
ordinal
;
435
char
*
path
;
/* Partial path of input file. */
436
char
*
absPath
;
/* Full absolute path of input file. */
437
MCGIDI_POPs
pops
;
438
MCGIDI_POP
*
projectilePOP
;
439
MCGIDI_POP
*
targetPOP
;
440
xDataTOM_attributionList
attributes
;
441
char
*
contents
;
442
double
temperature_MeV
;
443
double
EMin
, EMax;
444
ptwXYPoints
*
crossSection
;
445
ptwXPoints
*
crossSectionGrouped
;
446
ptwXPoints
*
crossSectionGroupedForSampling
;
447
int
numberOfReactions
;
448
MCGIDI_reaction
*
reactions
;
449
transportabilitiesMap *
transportabilities
;
450
};
451
452
struct
MCGIDI_target_heated_info_s
{
453
int
ordinal
;
454
double
temperature
;
455
char
*
path
;
/* Full path of input file. */
456
char
*
contents
;
457
MCGIDI_target_heated
*
heatedTarget
;
458
};
459
460
struct
MCGIDI_target_s
{
461
char
*
path
;
/* Full path of input file. */
462
char
*
absPath
;
/* Full absolute path of input file. */
463
MCGIDI_POP
*
projectilePOP
;
464
MCGIDI_POP
*
targetPOP
;
465
xDataTOM_attributionList
attributes
;
466
int
nHeatedTargets,
nReadHeatedTargets
;
467
MCGIDI_target_heated
*
baseHeatedTarget
;
/* The lowest temperature whose contents is "all" data, (e.g, not just "crossSection"). */
468
MCGIDI_target_heated_info
*
heatedTargets
;
/* List of heated targets in order by temperature. */
469
MCGIDI_target_heated_info
**
readHeatedTargets
;
/* List of "read in" heated targets in order by temperature. */
470
};
471
472
char
const
*
MCGIDI_version
(
void
);
473
int
MCGIDI_versionMajor
(
void
);
474
int
MCGIDI_versionMinor
(
void
);
475
int
MCGIDI_versionPatchLevel
(
void
);
476
477
/*
478
* Routines in MCGIDI_target.c
479
*/
480
MCGIDI_target
*
MCGIDI_target_new
(
statusMessageReporting
*smr );
481
int
MCGIDI_target_initialize
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
482
MCGIDI_target
*
MCGIDI_target_newRead
(
statusMessageReporting
*smr,
const
char
*fileName );
483
int
MCGIDI_target_readFromMapViaPoPIDs
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
MCGIDI_map
*map,
const
char
*evaluation,
484
int
projectile_PoPID,
int
target_PoPID );
485
int
MCGIDI_target_readFromMap
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
MCGIDI_map
*map,
const
char
*evaluation,
const
char
*projectileName,
486
const
char
*targetName );
487
MCGIDI_target
*
MCGIDI_target_newReadFromMapViaPoPIDs
(
statusMessageReporting
*smr,
MCGIDI_map
*map,
const
char
*evaluation,
488
int
projectile_PoPID,
int
target_PoPID );
489
MCGIDI_target
*
MCGIDI_target_newReadFromMap
(
statusMessageReporting
*smr,
MCGIDI_map
*map,
const
char
*evaluation,
const
char
*projectileName,
490
const
char
*targetName );
491
MCGIDI_target
*
MCGIDI_target_free
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
492
int
MCGIDI_target_release
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
493
int
MCGIDI_target_read
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
const
char
*fileName );
494
char
const
*
MCGIDI_target_getAttributesValue
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
char
const
*
name
);
495
int
MCGIDI_target_getTemperatures
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
double
*temperatures );
496
int
MCGIDI_target_readHeatedTarget
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index );
497
MCGIDI_target_heated
*
MCGIDI_target_getHeatedTargetAtIndex_ReadIfNeeded
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index );
498
MCGIDI_target_heated
*
MCGIDI_target_getHeatedTargetAtTIndex
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index );
499
500
int
MCGIDI_target_numberOfReactions
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
501
enum
MCGIDI_reactionType
MCGIDI_target_getReactionTypeAtIndex
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index );
502
MCGIDI_reaction
*
MCGIDI_target_getReactionAtIndex
(
MCGIDI_target
*
target
,
int
index );
503
MCGIDI_reaction
*
MCGIDI_target_getReactionAtIndex_smr
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index );
504
int
MCGIDI_target_numberOfProductionReactions
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
505
506
transportabilitiesMap
const
*
MCGIDI_target_getUniqueProducts
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
);
507
int
MCGIDI_target_recast
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
GIDI_settings
&settings );
508
509
int
MCGIDI_target_getDomain
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
double
*EMin,
double
*EMax );
510
double
MCGIDI_target_getTotalCrossSectionAtTAndE
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
MCGIDI_quantitiesLookupModes
&modes,
511
bool
sampling );
512
double
MCGIDI_target_getIndexReactionCrossSectionAtE
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
int
index,
MCGIDI_quantitiesLookupModes
&modes,
513
bool
sampling );
514
int
MCGIDI_target_sampleReaction
(
statusMessageReporting
*smr,
MCGIDI_target
*
target
,
MCGIDI_quantitiesLookupModes
&modes,
double
totalXSec,
515
double
(*userrng)(
void
* ),
void
*rngState );
516
int
MCGIDI_target_sampleNullReactionProductsAtE
(
statusMessageReporting
*smr,
MCGIDI_target
*target,
517
MCGIDI_quantitiesLookupModes
&modes,
MCGIDI_decaySamplingInfo
*decaySamplingInfo,
MCGIDI_sampledProductsDatas
*productDatas );
518
int
MCGIDI_target_sampleIndexReactionProductsAtE
(
statusMessageReporting
*smr,
MCGIDI_target
*target,
int
index,
519
MCGIDI_quantitiesLookupModes
&modes,
MCGIDI_decaySamplingInfo
*decaySamplingInfo,
MCGIDI_sampledProductsDatas
*productData );
520
double
MCGIDI_target_getIndexReactionFinalQ
(
statusMessageReporting
*smr,
MCGIDI_target
*target,
int
index,
MCGIDI_quantitiesLookupModes
&modes );
521
522
/*
523
* Routines in MCGIDI_target_heated.c
524
*/
525
MCGIDI_target_heated
*
MCGIDI_target_heated_new
(
statusMessageReporting
*smr );
526
int
MCGIDI_target_heated_initialize
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
527
MCGIDI_target_heated
*
MCGIDI_target_heated_newRead
(
statusMessageReporting
*smr,
const
char
*fileName );
528
MCGIDI_target_heated
*
MCGIDI_target_heated_free
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
529
int
MCGIDI_target_heated_release
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
530
int
MCGIDI_target_heated_read
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
const
char
*fileName );
531
int
MCGIDI_target_heated_numberOfReactions
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
532
int
MCGIDI_target_heated_numberOfProductionReactions
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
533
MCGIDI_reaction
*
MCGIDI_target_heated_getReactionAtIndex
(
MCGIDI_target_heated
*target,
int
index );
534
MCGIDI_reaction
*
MCGIDI_target_heated_getReactionAtIndex_smr
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index );
535
#if 0
536
MCGIDI_reaction
*MCGIDI_target_heated_getProductionReactionAtIndex(
MCGIDI_target_heated
*target,
int
index );
537
#endif
538
MCGIDI_POP
*
MCGIDI_target_heated_getPOPForProjectile
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
539
MCGIDI_POP
*
MCGIDI_target_heated_getPOPForTarget
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
540
double
MCGIDI_target_heated_getProjectileMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
541
double
MCGIDI_target_heated_getTargetMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
542
int
MCGIDI_target_heated_getEnergyGrid
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
double
**energyGrid );
543
double
MCGIDI_target_heated_getTotalCrossSectionAtE
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
MCGIDI_quantitiesLookupModes
&modes,
544
bool
sampling );
545
double
MCGIDI_target_heated_getIndexReactionCrossSectionAtE
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index,
546
MCGIDI_quantitiesLookupModes
&modes,
bool
sampling );
547
int
MCGIDI_target_heated_sampleIndexReactionProductsAtE
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index,
548
MCGIDI_quantitiesLookupModes
&modes,
MCGIDI_decaySamplingInfo
*decaySamplingInfo,
MCGIDI_sampledProductsDatas
*productData );
549
double
MCGIDI_target_heated_getReactionsThreshold
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index );
550
int
MCGIDI_target_heated_getReactionsDomain
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index,
double
*EMin,
double
*EMax );
551
double
MCGIDI_target_heated_getIndexReactionFinalQ
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
int
index,
552
MCGIDI_quantitiesLookupModes
&modes );
553
554
transportabilitiesMap
const
*
MCGIDI_target_heated_getUniqueProducts
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target );
555
int
MCGIDI_target_heated_recast
(
statusMessageReporting
*smr,
MCGIDI_target_heated
*target,
GIDI_settings
&settings );
556
557
/*
558
* Routines in MCGIDI_reaction.c
559
*/
560
MCGIDI_reaction
*
MCGIDI_reaction_new
(
statusMessageReporting
*smr );
561
int
MCGIDI_reaction_initialize
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
562
MCGIDI_reaction
*
MCGIDI_reaction_free
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
563
int
MCGIDI_reaction_release
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
564
int
MCGIDI_reaction_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_target_heated
*target,
565
MCGIDI_POPs
*pops,
MCGIDI_reaction
*reaction );
566
enum
MCGIDI_reactionType
MCGIDI_reaction_getReactionType
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
567
MCGIDI_target_heated
*
MCGIDI_reaction_getTargetHeated
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
568
double
MCGIDI_reaction_getProjectileMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
569
double
MCGIDI_reaction_getTargetMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction );
570
int
MCGIDI_reaction_getDomain
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction,
double
*EMin,
double
*EMax );
571
int
MCGIDI_reaction_fixDomains
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction,
double
EMin,
double
EMax,
nfu_status
*status );
572
double
MCGIDI_reaction_getCrossSectionAtE
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction,
MCGIDI_quantitiesLookupModes
&modes,
bool
sampling );
573
double
MCGIDI_reaction_getFinalQ
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction,
MCGIDI_quantitiesLookupModes
&modes );
574
int
MCGIDI_reaction_getENDF_MTNumber
(
MCGIDI_reaction
*reaction );
575
int
MCGIDI_reaction_getENDL_CSNumbers
(
MCGIDI_reaction
*reaction,
int
*
S
);
576
int
MCGIDI_reaction_recast
(
statusMessageReporting
*smr,
MCGIDI_reaction
*reaction,
GIDI_settings
&settings,
577
GIDI_settings_particle
const
*projectileSettings,
double
temperature_MeV,
ptwXPoints
*totalGroupedCrossSection );
578
579
MCGIDI_productsInfo
*
MCGIDI_reaction_getProductsInfo
(
MCGIDI_reaction
*reaction );
580
int
MCGIDI_productsInfo_getNumberOfUniqueProducts
(
MCGIDI_productsInfo
*productsInfo );
581
int
MCGIDI_productsInfo_getPoPsIndexAtIndex
(
MCGIDI_productsInfo
*productsInfo,
int
index );
582
enum
MCGIDI_productMultiplicityType
MCGIDI_productsInfo_getMultiplicityTypeAtIndex
(
MCGIDI_productsInfo
*productsInfo,
int
index );
583
int
MCGIDI_productsInfo_getIntegerMultiplicityAtIndex
(
MCGIDI_productsInfo
*productsInfo,
int
index );
584
int
MCGIDI_productsInfo_getTransportableAtIndex
(
MCGIDI_productsInfo
*productsInfo,
int
index );
585
586
/*
587
* Routines in MCGIDI_pop.c
588
*/
589
MCGIDI_POPs
*
MCGIDI_POPs_new
(
statusMessageReporting
*smr,
int
size );
590
int
MCGIDI_POPs_initial
(
statusMessageReporting
*smr,
MCGIDI_POPs
*pops,
int
size );
591
void
*
MCGIDI_POPs_free
(
MCGIDI_POPs
*pops );
592
int
MCGIDI_POPs_release
(
MCGIDI_POPs
*pops );
593
MCGIDI_POP
*
MCGIDI_POPs_addParticleIfNeeded
(
statusMessageReporting
*smr,
MCGIDI_POPs
*pops,
char
const
*
name
,
double
mass_MeV,
594
double
level_MeV,
MCGIDI_POP
*parent,
int
globalParticle );
595
int
MCGIDI_POPs_findParticleIndex
(
MCGIDI_POPs
*pops,
char
const
*
name
);
596
MCGIDI_POP
*
MCGIDI_POPs_findParticle
(
MCGIDI_POPs
*pops,
char
const
*
name
);
597
void
MCGIDI_POPs_writeSortedList
(
MCGIDI_POPs
*pops, FILE *
f
);
598
void
MCGIDI_POPs_printSortedList
(
MCGIDI_POPs
*pops );
599
600
MCGIDI_POP
*
MCGIDI_POP_new
(
statusMessageReporting
*smr,
char
const
*
name
,
double
mass_MeV,
double
level_MeV,
MCGIDI_POP
*parent );
601
MCGIDI_POP
*
MCGIDI_POP_free
(
MCGIDI_POP
*pop );
602
MCGIDI_POP
*
MCGIDI_POP_release
(
MCGIDI_POP
*pop );
603
double
MCGIDI_POP_getMass_MeV
(
MCGIDI_POP
*pop );
604
605
/*
606
* Routines in MCGIDI_particle.c
607
*/
608
MCGIDI_particle
*
MCGIDI_particle_new
(
statusMessageReporting
*smr );
609
int
MCGIDI_particle_initialize
(
statusMessageReporting
*smr,
MCGIDI_particle
*
particle
);
610
MCGIDI_particle
*
MCGIDI_particle_free
(
statusMessageReporting
*smr,
MCGIDI_particle
*
particle
);
611
int
MCGIDI_particle_release
(
statusMessageReporting
*smr,
MCGIDI_particle
*
particle
);
612
int
MCGIDI_particle_freeInternalList
(
statusMessageReporting
*smr );
613
MCGIDI_particle
*
MCGIDI_particle_getInternalID
(
statusMessageReporting
*smr,
const
char
*
const
name
,
MCGIDI_POPs
*pops );
614
int
MCGIDI_particle_printInternalSortedList
(
statusMessageReporting
*smr );
615
616
/*
617
* Routines in MCGIDI_outputChannel.c
618
*/
619
MCGIDI_outputChannel
*
MCGIDI_outputChannel_new
(
statusMessageReporting
*smr );
620
int
MCGIDI_outputChannel_initialize
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
621
MCGIDI_outputChannel
*
MCGIDI_outputChannel_free
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
622
int
MCGIDI_outputChannel_release
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
623
int
MCGIDI_outputChannel_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_POPs
*pops,
MCGIDI_outputChannel
*outputChannel,
624
MCGIDI_reaction
*reaction,
MCGIDI_product
*parent );
625
int
MCGIDI_outputChannel_numberOfProducts
(
MCGIDI_outputChannel
*outputChannel );
626
MCGIDI_product
*
MCGIDI_outputChannel_getProductAtIndex
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel,
int
i );
627
int
MCGIDI_outputChannel_getDomain
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel,
double
*EMin,
double
*EMax );
628
MCGIDI_target_heated
*
MCGIDI_outputChannel_getTargetHeated
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
629
double
MCGIDI_outputChannel_getProjectileMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
630
double
MCGIDI_outputChannel_getTargetMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel );
631
double
MCGIDI_outputChannel_getQ_MeV
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel,
double
e_in );
632
double
MCGIDI_outputChannel_getFinalQ
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel,
double
e_in );
633
int
MCGIDI_outputChannel_sampleProductsAtE
(
statusMessageReporting
*smr,
MCGIDI_outputChannel
*outputChannel,
MCGIDI_quantitiesLookupModes
&modes,
634
MCGIDI_decaySamplingInfo
*decaySamplingInfo,
MCGIDI_sampledProductsDatas
*productDatas,
double
*masses );
635
636
/*
637
* Routines in MCGIDI_product.c
638
*/
639
MCGIDI_product
*
MCGIDI_product_new
(
statusMessageReporting
*smr );
640
int
MCGIDI_product_initialize
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
641
MCGIDI_product
*
MCGIDI_product_free
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
642
int
MCGIDI_product_release
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
643
int
MCGIDI_product_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_outputChannel
*outputChannel,
644
MCGIDI_POPs
*pops,
MCGIDI_product
*product,
int
*delayedNeutronIndex );
645
int
MCGIDI_product_getDomain
(
statusMessageReporting
*smr,
MCGIDI_product
*product,
double
*EMin,
double
*EMax );
646
int
MCGIDI_product_setTwoBodyMasses
(
statusMessageReporting
*smr,
MCGIDI_product
*product,
double
projectileMass_MeV,
double
targetMass_MeV,
647
double
productMass_MeV,
double
residualMass_MeV );
648
double
MCGIDI_product_getMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
649
MCGIDI_target_heated
*
MCGIDI_product_getTargetHeated
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
650
double
MCGIDI_product_getProjectileMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
651
double
MCGIDI_product_getTargetMass_MeV
(
statusMessageReporting
*smr,
MCGIDI_product
*product );
652
int
MCGIDI_product_sampleMultiplicity
(
statusMessageReporting
*smr,
MCGIDI_product
*product,
double
e_in,
double
r
);
653
int
MCGIDI_product_sampleMu
(
statusMessageReporting
*smr,
MCGIDI_product
*product,
MCGIDI_quantitiesLookupModes
&modes,
654
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
655
656
int
MCGIDI_sampledProducts_initialize
(
statusMessageReporting
*smr,
MCGIDI_sampledProductsDatas
*sampledProductsDatas,
int
incrementSize );
657
int
MCGIDI_sampledProducts_release
(
statusMessageReporting
*smr,
MCGIDI_sampledProductsDatas
*sampledProductsDatas );
658
int
MCGIDI_sampledProducts_remalloc
(
statusMessageReporting
*smr,
MCGIDI_sampledProductsDatas
*sampledProductsDatas );
659
int
MCGIDI_sampledProducts_addProduct
(
statusMessageReporting
*smr,
MCGIDI_sampledProductsDatas
*sampledProductsDatas,
660
MCGIDI_sampledProductsData
*sampledProductsData );
661
int
MCGIDI_sampledProducts_number
(
MCGIDI_sampledProductsDatas
*sampledProductsDatas );
662
MCGIDI_sampledProductsData
*
MCGIDI_sampledProducts_getProductAtIndex
(
MCGIDI_sampledProductsDatas
*sampledProductsDatas,
int
index );
663
664
/*
665
* Routines in MCGIDI_distribution.c
666
*/
667
MCGIDI_distribution
*
MCGIDI_distribution_new
(
statusMessageReporting
*smr );
668
int
MCGIDI_distribution_initialize
(
statusMessageReporting
*smr,
MCGIDI_distribution
*distribution );
669
MCGIDI_distribution
*
MCGIDI_distribution_free
(
statusMessageReporting
*smr,
MCGIDI_distribution
*distribution );
670
int
MCGIDI_distribution_release
(
statusMessageReporting
*smr,
MCGIDI_distribution
*distribution );
671
int
MCGIDI_distribution_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_product
*product,
MCGIDI_POPs
*pops,
ptwXYPoints
*norms );
672
673
/*
674
* Routines in MCGIDI_angular.c
675
*/
676
MCGIDI_angular
*
MCGIDI_angular_new
(
statusMessageReporting
*smr );
677
int
MCGIDI_angular_initialize
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular );
678
MCGIDI_angular
*
MCGIDI_angular_free
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular );
679
int
MCGIDI_angular_release
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular );
680
int
MCGIDI_angular_setTwoBodyMasses
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular,
double
projectileMass_MeV,
double
targetMass_MeV,
681
double
productMass_MeV,
double
residualMass_MeV );
682
int
MCGIDI_angular_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution,
ptwXYPoints
*norms );
683
int
MCGIDI_angular_sampleMu
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular,
MCGIDI_quantitiesLookupModes
&modes,
684
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
685
686
/*
687
* Routines in MCGIDI_energy.c
688
*/
689
MCGIDI_energy
*
MCGIDI_energy_new
(
statusMessageReporting
*smr );
690
int
MCGIDI_energy_initialize
(
statusMessageReporting
*smr,
MCGIDI_energy
*
energy
);
691
MCGIDI_energy
*
MCGIDI_energy_free
(
statusMessageReporting
*smr,
MCGIDI_energy
*
energy
);
692
int
MCGIDI_energy_release
(
statusMessageReporting
*smr,
MCGIDI_energy
*
energy
);
693
int
MCGIDI_energy_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution,
ptwXYPoints
*norms,
694
enum
MCGIDI_energyType
energyType,
double
gammaEnergy_MeV );
695
int
MCGIDI_energy_sampleEnergy
(
statusMessageReporting
*smr,
MCGIDI_energy
*
energy
,
MCGIDI_quantitiesLookupModes
&modes,
696
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
697
698
/*
699
* Routines in MCGIDI_energyAngular.c
700
*/
701
int
MCGIDI_energyAngular_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution );
702
MCGIDI_energyAngular
*
MCGIDI_energyAngular_new
(
statusMessageReporting
*smr );
703
int
MCGIDI_energyAngular_initialize
(
statusMessageReporting
*smr,
MCGIDI_energyAngular
*energyAngular );
704
MCGIDI_energyAngular
*
MCGIDI_energyAngular_free
(
statusMessageReporting
*smr,
MCGIDI_energyAngular
*energyAngular );
705
int
MCGIDI_energyAngular_release
(
statusMessageReporting
*smr,
MCGIDI_energyAngular
*energyAngular );
706
int
MCGIDI_energyAngular_sampleDistribution
(
statusMessageReporting
*smr,
MCGIDI_distribution
*distribution,
MCGIDI_quantitiesLookupModes
&modes,
707
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
708
709
/*
710
* Routines in MCGIDI_angularEnergy.c
711
*/
712
MCGIDI_angularEnergy
*
MCGIDI_angularEnergy_new
(
statusMessageReporting
*smr );
713
int
MCGIDI_angularEnergy_initialize
(
statusMessageReporting
*smr,
MCGIDI_angularEnergy
*energyAngular );
714
MCGIDI_angularEnergy
*
MCGIDI_angularEnergy_free
(
statusMessageReporting
*smr,
MCGIDI_angularEnergy
*energyAngular );
715
int
MCGIDI_angularEnergy_release
(
statusMessageReporting
*smr,
MCGIDI_angularEnergy
*energyAngular );
716
int
MCGIDI_angularEnergy_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution );
717
int
MCGIDI_angularEnergy_sampleDistribution
(
statusMessageReporting
*smr,
MCGIDI_angularEnergy
*angularEnergy,
MCGIDI_quantitiesLookupModes
&modes,
718
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
719
720
/*
721
* Routines in MCGIDI_KalbachMann.c
722
*/
723
MCGIDI_KalbachMann
*
MCGIDI_KalbachMann_new
(
statusMessageReporting
*smr,
ptwXY_interpolation
interpolationWY,
ptwXY_interpolation
interpolationXY );
724
int
MCGIDI_KalbachMann_initialize
(
statusMessageReporting
*smr,
MCGIDI_KalbachMann
*KalbachMann,
ptwXY_interpolation
interpolationWY,
ptwXY_interpolation
interpolationXY );
725
MCGIDI_KalbachMann
*
MCGIDI_KalbachMann_free
(
statusMessageReporting
*smr,
MCGIDI_KalbachMann
*KalbachMann );
726
int
MCGIDI_KalbachMann_release
(
statusMessageReporting
*smr,
MCGIDI_KalbachMann
*KalbachMann );
727
int
MCGIDI_KalbachMann_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution );
728
int
MCGIDI_KalbachMann_sampleEp
(
statusMessageReporting
*smr,
MCGIDI_KalbachMann
*KalbachMann,
MCGIDI_quantitiesLookupModes
&modes,
729
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
730
731
/*
732
* Routines in MCGIDI_uncorrelated.c
733
*/
734
int
MCGIDI_uncorrelated_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution,
ptwXYPoints
*norms,
735
enum
MCGIDI_energyType
energyType,
double
gammaEnergy_MeV );
736
int
MCGIDI_uncorrelated_sampleDistribution
(
statusMessageReporting
*smr,
MCGIDI_distribution
*distribution,
MCGIDI_quantitiesLookupModes
&modes,
737
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
738
739
/*
740
* Routines in MCGIDI_LLNLAngular_angularEnergy.c
741
*/
742
int
MCGIDI_LLNLAngular_angularEnergy_parseFromTOM
(
statusMessageReporting
*smr,
xDataTOM_element
*element,
MCGIDI_distribution
*distribution );
743
744
/*
745
* Routines in MCGIDI_kinetics.c
746
*/
747
int
MCGIDI_kinetics_2BodyReaction
(
statusMessageReporting
*smr,
MCGIDI_angular
*angular,
double
K,
double
mu,
double
phi
,
748
MCGIDI_sampledProductsData
*outgoingData );
749
int
MCGIDI_kinetics_COMKineticEnergy2LabEnergyAndMomentum
(
statusMessageReporting
*smr,
double
beta,
double
e_kinetic_com,
double
mu,
double
phi
,
750
double
m3cc,
double
m4cc,
MCGIDI_sampledProductsData
*outgoingData );
751
int
MCGIDI_kinetics_COM2Lab
(
statusMessageReporting
*smr,
MCGIDI_quantitiesLookupModes
&modes,
MCGIDI_decaySamplingInfo
*decaySamplingInfo,
double
masses[3] );
752
753
/*
754
* Routines in MCGIDI_sampling.c
755
*/
756
int
MCGIDI_sampling_pdfsOfXGivenW_initialize
(
statusMessageReporting
*smr,
MCGIDI_pdfsOfXGivenW
*dists );
757
int
MCGIDI_sampling_pdfsOfXGivenW_release
(
statusMessageReporting
*smr,
MCGIDI_pdfsOfXGivenW
*dists );
758
int
MCGIDI_sampling_pdfsOfX_release
(
statusMessageReporting
*smr,
MCGIDI_pdfOfX
*dist );
759
int
MCGIDI_sampling_sampleX_from_pdfsOfXGivenW
(
MCGIDI_pdfsOfXGivenW
*dists,
MCGIDI_pdfsOfXGivenW_sampled
*sampled,
double
r
);
760
int
MCGIDI_sampling_sampleX_from_pdfOfX
(
MCGIDI_pdfOfX
*dist,
MCGIDI_pdfsOfXGivenW_sampled
*sampled,
double
r
);
761
int
MCGIDI_sampling_doubleDistribution
(
statusMessageReporting
*smr,
MCGIDI_pdfsOfXGivenW
*pdfOfWGivenV,
MCGIDI_pdfsOfXGivenW
*pdfOfXGivenVAndW,
762
MCGIDI_quantitiesLookupModes
&modes,
MCGIDI_decaySamplingInfo
*decaySamplingInfo );
763
int
MCGIDI_sampling_interpolationValues
(
statusMessageReporting
*smr,
ptwXY_interpolation
interpolation,
double
*ws,
double
y1
,
double
y2
,
double
*
y
);
764
double
MCGIDI_sampling_ptwXY_getValueAtX
(
ptwXYPoints
*ptwXY,
double
x1
);
765
766
/*
767
* Routines in MCGIDI_misc.c
768
*/
769
int
MCGIDI_misc_NumberOfZSymbols
(
void
);
770
const
char
*
MCGIDI_misc_ZToSymbol
(
int
iZ );
771
int
MCGIDI_misc_symbolToZ
(
const
char
*
Z
);
772
int
MCGIDI_miscNameToZAm
(
statusMessageReporting
*smr,
const
char
*
name
,
int
*
Z
,
int
*
A
,
int
*
m
,
int
*level );
773
xDataTOM_Int
MCGIDI_misc_binarySearch
(
xDataTOM_Int
n
,
double
*ds,
double
d
);
774
int
MCGIDI_misc_PQUStringToDouble
(
statusMessageReporting
*smr,
char
const
*str,
char
const
*unit,
double
conversion,
double
*
value
);
775
int
MCGIDI_misc_PQUStringToDoubleInUnitOf
(
statusMessageReporting
*smr,
char
const
*str,
char
const
*toUnit,
double
*
value
);
776
void
MCGIDI_misc_updateTransportabilitiesMap
( transportabilitiesMap *transportabilities,
int
PoPID,
enum
MCGIDI_transportability
transportability );
777
void
MCGIDI_misc_updateTransportabilitiesMap2
( transportabilitiesMap *transportabilities,
int
PoPID,
int
transportable );
778
779
#if defined __cplusplus
780
}
781
}
782
#endif
783
784
#endif
/* End of MCGIDI_h_included. */
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
lend
include
MCGIDI.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:46
using
1.8.2 with
ECCE GitHub integration