Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
processes
hadronic
models
lend
include
tpia_target.h
Go to the documentation of this file.
1
/*
2
# <<BEGIN-copyright>>
3
# Copyright (c) 2010, Lawrence Livermore National Security, LLC.
4
# Produced at the Lawrence Livermore National Laboratory
5
# Written by Bret R. Beck, beck6@llnl.gov.
6
# CODE-461393
7
# All rights reserved.
8
#
9
# This file is part of GIDI. For details, see nuclear.llnl.gov.
10
# Please also read the "Additional BSD Notice" at nuclear.llnl.gov.
11
#
12
# Redistribution and use in source and binary forms, with or without modification,
13
# are permitted provided that the following conditions are met:
14
#
15
# 1) Redistributions of source code must retain the above copyright notice,
16
# this list of conditions and the disclaimer below.
17
# 2) Redistributions in binary form must reproduce the above copyright notice,
18
# this list of conditions and the disclaimer (as noted below) in the
19
# documentation and/or other materials provided with the distribution.
20
# 3) Neither the name of the LLNS/LLNL nor the names of its contributors may be
21
# used to endorse or promote products derived from this software without
22
# specific prior written permission.
23
#
24
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
25
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
26
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
27
# SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR
28
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
31
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
33
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
# <<END-copyright>>
35
*/
36
#ifndef tpia_target_h_included
37
#define tpia_target_h_included
38
39
#if defined __cplusplus
40
extern
"C"
{
41
#endif
42
43
#include <
xData.h
>
44
#include <
tpia_defs.h
>
45
#include <
tpia_map.h
>
46
#include <
tpi_IDs.h
>
47
48
#if defined __cplusplus
49
namespace
GIDI {
50
#endif
51
52
typedef
struct
tpia_particle_s
tpia_particle
;
53
typedef
struct
tpia_target_s
tpia_target
;
54
typedef
struct
tpia_target_heated_info_s
tpia_target_heated_info
;
55
typedef
struct
tpia_target_heated_sorted_s
tpia_target_heated_sorted
;
56
typedef
struct
tpia_target_heated_s
tpia_target_heated
;
57
typedef
struct
tpia_decaySamplingInfo_s
tpia_decaySamplingInfo
;
58
typedef
struct
tpia_productOutgoingData_s
tpia_productOutgoingData
;
59
typedef
struct
tpia_multiplicity_s
tpia_multiplicity
;
60
typedef
struct
tpia_samplingMethods_s
tpia_samplingMethods
;
61
typedef
struct
tpia_EqualProbableBinSpectra_s
tpia_EqualProbableBinSpectra
;
62
typedef
struct
tpia_EqualProbableBinSpectrum_s
tpia_EqualProbableBinSpectrum
;
63
typedef
struct
tpia_LegendreBin_s
tpia_LegendreBin
;
64
typedef
struct
tpia_angularEnergyBin_s
tpia_angularEnergyBin
;
65
typedef
struct
tpia_angular_s
tpia_angular
;
66
typedef
struct
tpia_Legendre_s
tpia_Legendre
;
67
typedef
struct
tpia_angularEnergy_s
tpia_angularEnergy
;
68
typedef
struct
tpia_decayChannel_s
tpia_decayChannel
;
69
typedef
struct
tpia_product_s
tpia_product
;
70
typedef
struct
tpia_1dData_s
tpia_1dData
;
71
typedef
struct
tpia_2dData_s
tpia_2dData
;
72
typedef
struct
tpia_channel_s
tpia_channel
;
73
typedef
struct
tpia_data_frame_s
tpia_data_frame
;
74
75
//#include <xData.h>
76
#include <
tpia_mass.h
>
77
//#include <tpia_map.h>
78
//#include <tpi_IDs.h>
79
80
#define tpia_mode_MonteCarlo 1
81
#define tpia_mode_Pn 2
82
#define tpia_maxNumberOfFrames 8
83
#define tpia_referenceFrame_None 0
84
#define tpia_referenceFrame_COM 1
85
#define tpia_referenceFrame_lab 2
86
#define tpia_referenceFrame_Max tpia_referenceFrame_lab
87
88
#define tpia_crossSectionType_grouped 1
89
#define tpia_crossSectionType_pointwise 2
90
91
#define tpia_m_depositionEnergy 1
92
#define tpia_m_multiplicity ( 1 << 1 )
93
#define tpia_m_decayChannel ( 1 << 2 )
94
#define tpia_m_commonShift 3
95
#define tpia_m_angular ( 1 << 3 )
96
#define tpia_m_formFactor ( 1 << 4 )
97
#define tpia_m_Legendre ( 1 << 5 )
98
#define tpia_m_angular_energy ( 1 << 6 )
99
100
#define tpia_speedOfLight_cm_sec 2.99792458e10
101
#define tpia_AMU2MeV 931.494028
102
103
extern
DLL_LEND
const
char
*
tpia_productGenre_unknown
, *
tpia_productGenre_twoBody_angular
, *
tpia_productGenre_twoBody_formFactor
,
104
*
tpia_productGenre_NBody_Legendre
, *
tpia_productGenre_NBody_angular_energy
, *
tpia_productGenre_NBody_uncorrelate_Legendre
,
105
*
tpia_productGenre_NBody_pairProduction
;
106
107
extern
DLL_LEND
const
char
*
tpia_samplingMethods_constant
, *
tpia_samplingMethods_linear
;
108
109
//extern const char *tpia_samplingMethods_constant = "constant";
110
//extern const char *tpia_samplingMethods_linear = "linear";
111
112
//#define tpia_samplingMethods_isConstant( method ) ( method == tpia_samplingMethods_constant )
113
//#define tpia_samplingMethods_isLinear( method ) ( method == tpia_samplingMethods_linear )
114
115
//tpia_samplingMethods_constant and tpia_samplingMethods_linear are defined in src/tpia_samplingMethods.cc in namespace GIDI.
116
//So TK directory write the values in follwoing macros. 110527
117
//#define tpia_samplingMethods_isConstant( method ) ( method == "constant" )
118
//#define tpia_samplingMethods_isLinear( method ) ( method == "linear" )
119
//Fix above bug. 110602
120
#define tpia_samplingMethods_isConstant( method ) ( strcmp ( method , "constant" ) == 0 )
121
#define tpia_samplingMethods_isLinear( method ) ( strcmp ( method , "linear" ) == 0 )
122
123
124
struct
tpia_particle_s
{
125
tpia_particle
*
prior
;
126
tpia_particle
*
next
;
127
int
ordinal
;
128
int
Z
, A,
m
;
129
double
mass
;
130
double
fullMass_MeV
;
131
char
*
name
;
132
tpi_spectralID
*
spectralID
;
133
};
134
135
struct
tpia_samplingMethods_s
{
136
const
char
*
angular_equalProbableBinMethod
;
137
};
138
139
struct
tpia_data_frame_s
{
140
unsigned
int
frames
;
141
};
142
143
struct
tpia_1dData_s
{
144
xData_Int
start
, end, length;
145
double
*
data
;
146
};
147
148
struct
tpia_decaySamplingInfo_s
{
149
double
e_in
;
150
tpia_samplingMethods
*
samplingMethods
;
151
int
isVelocity
;
152
tpia_data_frame
frame
;
153
double (*rng)(
void
* );
154
void
*
rngState
;
155
tpia_particle
*
productID
;
156
char
const
*
genre
;
157
double
mu
;
158
double
Ep
;
159
};
160
161
struct
tpia_productOutgoingData_s
{
162
char
const
*
genre
;
163
int
isVelocity
;
164
tpia_data_frame
frame
;
165
tpia_particle
*
productID
;
166
double
kineticEnergy
;
167
double
px_vx
;
168
double
py_vy
;
169
double
pz_vz
;
170
tpia_decayChannel
*
decayChannel
;
171
};
172
173
struct
tpia_multiplicity_s
{
174
tpia_multiplicity
*
next
;
175
tpia_data_frame
frame
;
176
double
timeScale
;
/* Only for delay neutrons from fission, otherwise -1. */
177
xData_Int
numberOfPointwise
;
178
tpia_1dData
grouped
;
179
double
*
pointwise
;
180
};
181
/*
182
* This data is used for discrete 2-body data where mu is give in equal probable bins vs E and
183
* for isotropic scattering where the outgoing E' is give in equal probable bins vs E.
184
*/
185
struct
tpia_EqualProbableBinSpectrum_s
{
186
int
nBins
,
index
;
187
double
value
;
188
double
*
bins
;
189
};
190
191
struct
tpia_EqualProbableBinSpectra_s
{
192
int
iValue
;
193
int
nBins
;
194
int
numberOfEs
;
195
double
dValue
;
196
tpia_EqualProbableBinSpectrum
*
energies
;
197
};
198
199
struct
tpia_LegendreBin_s
{
200
int
numberOfLs
;
201
tpia_EqualProbableBinSpectra
*
ls
;
202
};
203
204
struct
tpia_angularEnergyBin_s
{
205
int
nBins,
numberOfEs
;
206
tpia_EqualProbableBinSpectra
*
energies
;
207
};
208
209
struct
tpia_decayChannel_s
{
210
int
numberOfProducts
;
211
tpia_product
*
products
;
212
double
m1_fullMass_MeV
;
/* Currently, only used for 2-body decay. Either the mass of the projectile and target, respectively; */
213
double
m2_fullMass_MeV
;
/* or, the mass of the decaying particle and 0., respectively. */
214
};
215
216
struct
tpia_angular_s
{
217
tpia_data_frame
frame
;
218
tpia_EqualProbableBinSpectra
binned
;
219
};
220
221
struct
tpia_Legendre_s
{
222
tpia_data_frame
frame
;
223
tpia_LegendreBin
binned
;
224
};
225
226
struct
tpia_angularEnergy_s
{
227
tpia_data_frame
frame
;
228
tpia_angularEnergyBin
binned
;
229
};
230
231
struct
tpia_product_s
{
232
tpia_product
*
next
;
233
tpia_channel
*
channel
;
234
tpia_product
*
parentProduct
;
/* If this product is the result of a particle decaying, then this the the parent particle. */
235
xData_attributionList
attributes
;
236
tpia_particle
*
productID
;
237
char
const
*
genre
;
238
long
b_dataPresent
;
239
long
b_dataRequired
;
240
tpia_1dData
depositionEnergyGrouped
;
241
int
multiplicity
;
/* If 0, the multiplicity is either 'energyDependent' or 'partialProduction'. */
242
tpia_multiplicity
*
multiplicityVsEnergy
;
243
tpia_multiplicity
*
delayedNeutronMultiplicityVsEnergy
;
/* Fission delayed neutron multiplicities. */
244
tpia_angular
angular
;
245
tpia_Legendre
Legendre
;
246
tpia_angularEnergy
angularEnergy
;
247
tpia_decayChannel
decayChannel
;
248
};
249
250
struct
tpia_channel_s
{
251
tpia_target_heated
*
target
;
252
char
*
outputChannel
;
253
char
*
genre
;
254
xData_attributionList
attributes
;
255
int
ENDL_C
, ENDF_MT;
256
char
*
QString
;
257
char
*
fission
;
258
int
QIsFloat
;
259
double
Q
;
260
tpia_data_frame
crossSectionFrame
;
261
tpia_1dData
crossSectionPointwise
;
262
tpia_1dData
crossSectionGrouped
;
263
tpia_1dData
availableEnergyGrouped
;
264
tpia_decayChannel
decayChannel
;
265
};
266
267
struct
tpia_target_heated_s
{
268
int
ordinal
;
269
char
*
path
;
/* Partial path of input file. */
270
char
*
absPath
;
/* Full absolute path of input file. */
271
tpia_particle
*
projectileID
;
272
tpia_particle
*
targetID
;
273
int
nGroups
;
274
xData_Int
energyGridLength
;
275
double
*
energyGrid
;
276
tpia_1dData
totalCrossSectionPointwise
;
277
tpia_1dData
totalCrossSectionGrouped
;
278
xData_attributionList
attributes
;
279
char
*
contents
;
280
int
nChannels,
nProductionChannels
;
281
tpia_channel
**
channels
;
282
tpia_channel
**
productionChannels
;
283
double
*
kerma
;
284
};
285
286
struct
tpia_target_heated_info_s
{
287
int
ordinal
;
288
double
temperature
;
289
char
*
path
;
/* Full path of input file. */
290
char
*
contents
;
291
tpia_target_heated
*
heatedTarget
;
292
};
293
294
struct
tpia_target_s
{
295
char
*
path
;
/* Full path of input file. */
296
char
*
absPath
;
/* Full absolute path of input file. */
297
tpia_particle
*
projectileID
;
298
tpia_particle
*
targetID
;
299
xData_attributionList
attributes
;
300
tpia_samplingMethods
samplingMethods
;
301
int
nHeatedTargets,
nReadHeatedTargets
;
302
tpia_target_heated
*
baseHeatedTarget
;
/* The lowest temperature whose contents is "all" data, (e.g, not just "crossSection"). */
303
tpia_target_heated_info
*
heatedTargets
;
/* List of heated targets in order by temperature. */
304
tpia_target_heated_info
**
readHeatedTargets
;
/* List of "read in" heated targets in order by temperature. */
305
};
306
307
/*
308
* Routines in tpia_target.c
309
*/
310
tpia_target
*
tpia_target_create
(
statusMessageReporting
*smr );
311
int
tpia_target_initialize
(
statusMessageReporting
*smr,
tpia_target
*
target
);
312
tpia_target
*
tpia_target_createRead
(
statusMessageReporting
*smr,
const
char
*fileName );
313
int
tpia_target_readFromMap
(
statusMessageReporting
*smr,
tpia_target
*
target
,
tpia_map
*map,
const
char
*evaluation,
const
char
*projectileName,
314
const
char
*targetName );
315
tpia_target
*
tpia_target_createReadFromMap
(
statusMessageReporting
*smr,
tpia_map
*map,
const
char
*evaluation,
const
char
*projectileName,
316
const
char
*targetName );
317
tpia_target
*
tpia_target_free
(
statusMessageReporting
*smr,
tpia_target
*
target
);
318
int
tpia_target_release
(
statusMessageReporting
*smr,
tpia_target
*
target
);
319
int
tpia_target_read
(
statusMessageReporting
*smr,
tpia_target
*
target
,
const
char
*fileName );
320
char
*
tpia_target_getAttributesValue
(
statusMessageReporting
*smr,
tpia_target
*
target
,
char
const
*
name
);
321
int
tpia_target_getTemperatures
(
statusMessageReporting
*smr,
tpia_target
*
target
,
double
*temperatures );
322
int
tpia_target_readHeatedTarget
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
,
int
checkElememtsForAccess );
323
tpia_target_heated
*
tpia_target_getHeatedTargetAtIndex_ReadIfNeeded
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
);
324
int
tpia_target_numberOfChannels
(
statusMessageReporting
*smr,
tpia_target
*
target
);
325
int
tpia_target_numberOfProductionChannels
(
statusMessageReporting
*smr,
tpia_target
*
target
);
326
xData_Int
tpia_target_getEnergyGridAtTIndex
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
,
double
**energyGrid );
327
tpia_1dData
*
tpia_target_getTotalCrossSectionAtTIndex
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
,
int
crossSectionType );
328
double
tpia_target_getTotalCrossSectionAtTAndE
(
statusMessageReporting
*smr,
tpia_target
*
target
,
double
T,
xData_Int
iEg,
double
e_in,
329
int
crossSectionType );
330
double
tpia_target_getIndexChannelCrossSectionAtE
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
,
double
T,
xData_Int
iEg,
double
e_in,
331
int
crossSectionType );
332
int
tpia_target_sampleIndexChannelProductsAtE
(
statusMessageReporting
*smr,
tpia_target
*
target
,
int
index
,
double
T,
333
tpia_decaySamplingInfo
*decaySamplingInfo,
int
nProductData,
tpia_productOutgoingData
*productData );
334
335
/*
336
* Routines in tpia_target_heated.c
337
*/
338
tpia_target_heated
*
tpia_target_heated_create
(
statusMessageReporting
*smr );
339
int
tpia_target_heated_initialize
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
);
340
tpia_target_heated
*
tpia_target_heated_createRead
(
statusMessageReporting
*smr,
const
char
*fileName,
int
checkElememtsForAccess );
341
tpia_target_heated
*
tpia_target_heated_free
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
);
342
int
tpia_target_heated_release
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
);
343
int
tpia_target_heated_read
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
const
char
*fileName,
int
checkElememtsForAccess );
344
int
tpia_target_heated_numberOfChannels
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
);
345
int
tpia_target_heated_numberOfProductionChannels
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
);
346
tpia_channel
*
tpia_target_heated_getChannelAtIndex
(
tpia_target_heated
*
target
,
int
index
);
347
tpia_channel
*
tpia_target_heated_getChannelAtIndex_smr
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
int
index
);
348
tpia_channel
*
tpia_target_heated_getProductionChannelAtIndex
(
tpia_target_heated
*
target
,
int
index
);
349
xData_Int
tpia_target_heated_getEnergyGrid
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
double
**energyGrid );
350
xData_Int
tpia_target_heated_getEIndex
(
tpia_target_heated
*
target
,
double
e_in );
351
double
tpia_target_heated_getTotalCrossSectionAtE
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
xData_Int
gE,
double
e_in,
352
int
crossSectionType );
353
double
tpia_target_heated_getIndexChannelCrossSectionAtE
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
int
index
,
xData_Int
iEg,
double
e_in,
354
int
crossSectionType );
355
int
tpia_target_heated_sampleIndexChannelProductsAtE
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
int
index
,
356
tpia_decaySamplingInfo
*decaySamplingInfo,
int
nProductData,
tpia_productOutgoingData
*productData );
357
358
/*
359
* Routines in tpia_channel.c
360
*/
361
tpia_channel
*
tpia_channel_create
(
statusMessageReporting
*smr );
362
int
tpia_channel_initialize
(
statusMessageReporting
*smr,
tpia_channel
*channel );
363
tpia_channel
*
tpia_channel_createGetFromElement
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
xData_element
*channelElement,
364
int
pointwiseRequired );
365
tpia_channel
*
tpia_channel_free
(
statusMessageReporting
*smr,
tpia_channel
*channel );
366
int
tpia_channel_release
(
statusMessageReporting
*smr,
tpia_channel
*channel );
367
int
tpia_channel_getFromElement
(
statusMessageReporting
*smr,
tpia_target_heated
*
target
,
xData_element
*channelElement,
tpia_channel
*channel,
368
int
pointwiseRequired );
369
tpia_product
*
tpia_channel_getFirstProduct
(
tpia_channel
*channel );
370
tpia_product
*
tpia_channel_getProductByIndex
(
statusMessageReporting
*smr,
tpia_channel
*channel,
int
index
);
371
int
tpia_channel_numberOfProducts
(
statusMessageReporting
*smr,
tpia_channel
*channel );
372
int
tpia_channel_isProduction
(
statusMessageReporting
*smr,
tpia_channel
*channel );
373
double
tpia_channel_getCrossSectionAtE
(
statusMessageReporting
*smr,
tpia_channel
*channel,
xData_Int
iEg,
double
e_in,
int
crossSectionType );
374
375
/*
376
* Routines in tpia_particle.c
377
*/
378
tpia_particle
*
tpia_particle_create
(
statusMessageReporting
*smr );
379
int
tpia_particle_initialize
(
statusMessageReporting
*smr,
tpia_particle
*particle );
380
tpia_particle
*
tpia_particle_free
(
statusMessageReporting
*smr,
tpia_particle
*particle );
381
int
tpia_particle_release
(
statusMessageReporting
*smr,
tpia_particle
*particle );
382
int
tpia_particle_freeInternalList
(
statusMessageReporting
*smr );
383
tpia_particle
*
tpia_particle_getInternalID
(
statusMessageReporting
*smr,
const
char
*
const
name
);
384
int
tpia_particle_printInternalSortedList
(
statusMessageReporting
*smr );
385
386
/*
387
* Routines in tpia_product.c
388
*/
389
tpia_product
*
tpia_product_create
(
statusMessageReporting
*smr );
390
int
tpia_product_initialize
(
statusMessageReporting
*smr,
tpia_product
*product );
391
tpia_product
*
tpia_product_createGetFromElement
(
statusMessageReporting
*smr,
tpia_channel
*channel,
tpia_product
*parentProduct,
392
xData_element
*productElement );
393
tpia_product
*
tpia_product_free
(
statusMessageReporting
*smr,
tpia_product
*product );
394
int
tpia_product_release
(
statusMessageReporting
*smr,
tpia_product
*product);
395
int
tpia_product_getFromElement
(
statusMessageReporting
*smr,
tpia_channel
*channel,
tpia_product
*parentProduct,
xData_element
*productElement,
396
tpia_product
*product );
397
int
tpia_product_getDecayChannelFromElement
(
statusMessageReporting
*smr,
xData_element
*parentElement,
tpia_channel
*channel,
tpia_product
*parentProduct,
398
tpia_product
**priorProductNext );
399
long
tpia_product_dataRequired
(
statusMessageReporting
*smr,
tpia_product
*product );
400
tpia_product
*
tpia_product_getFirstProduct
(
tpia_product
*product );
401
tpia_product
*
tpia_product_getProductByIndex
(
statusMessageReporting
*smr,
tpia_product
*product,
int
index
);
402
int
tpia_product_doesDecay
(
statusMessageReporting
*smr,
tpia_product
*product );
403
int
tpia_product_numberOfProducts
(
statusMessageReporting
*smr,
tpia_product
*product );
404
int
tpia_product_isDataPresent
(
statusMessageReporting
*smr,
tpia_product
*product,
int
b_data );
405
int
tpia_product_sampleMultiplicity
(
statusMessageReporting
*smr,
tpia_product
*product,
double
e_in,
double
r
);
406
407
/*
408
* Routines in tpia_decayChannel.c
409
*/
410
tpia_product
*
tpia_decayChannel_getFirstProduct
(
tpia_decayChannel
*decayChannel );
411
tpia_product
*
tpia_decayChannel_getNextProduct
(
tpia_product
*product );
412
int
tpia_decayChannel_sampleProductsAtE
(
statusMessageReporting
*smr,
tpia_decayChannel
*decayChannel,
tpia_decaySamplingInfo
*decaySamplingInfo,
413
int
nProductData,
tpia_productOutgoingData
*productData );
414
415
/*
416
* Routines in tpia_kinetics.c
417
*/
418
int
tpia_kinetics_2BodyReaction
(
statusMessageReporting
*smr,
tpia_decayChannel
*decayChannel,
double
K,
double
mu,
double
phi,
419
tpia_productOutgoingData
*outgoingData );
420
int
tpia_kinetics_COMKineticEnergy2LabEnergyAndMomentum
(
statusMessageReporting
*smr,
double
beta,
double
e_kinetic_com,
double
mu,
double
phi,
421
double
m3cc,
double
m4cc,
tpia_productOutgoingData
*outgoingData );
422
423
/*
424
* Routines in tpia_frame.c
425
*/
426
int
tpia_frame_clear
(
statusMessageReporting
*smr,
tpia_data_frame
*frame );
427
int
tpia_frame_setFromElement
(
statusMessageReporting
*smr,
xData_element
*element,
int
dimension,
tpia_data_frame
*frame );
428
int
tpia_frame_setFromString
(
statusMessageReporting
*smr,
const
char
*forItem,
const
char
*
value
,
int
dimension,
tpia_data_frame
*frame );
429
int
tpia_frame_getDimensions
(
statusMessageReporting
*smr,
tpia_data_frame
*frame );
430
char
*
tpia_frame_toString
(
statusMessageReporting
*smr,
const
char
*fromItem,
tpia_data_frame
*frame );
431
int
tpia_frame_setColumns
(
statusMessageReporting
*smr,
tpia_data_frame
*frame,
int
nColumns,
int
*values );
432
int
tpia_frame_setColumn
(
statusMessageReporting
*smr,
tpia_data_frame
*frame,
int
column,
int
value
);
433
int
tpia_frame_getColumn
(
statusMessageReporting
*smr,
tpia_data_frame
*frame,
int
column );
434
435
/*
436
* Routines in tpia_multiplicity.c
437
*/
438
tpia_multiplicity
*
tpia_multiplicity_create
(
statusMessageReporting
*smr );
439
int
tpia_multiplicity_initialize
(
statusMessageReporting
*smr,
tpia_multiplicity
*multiplicity );
440
tpia_multiplicity
*
tpia_multiplicity_free
(
statusMessageReporting
*smr,
tpia_multiplicity
*multiplicity );
441
int
tpia_multiplicity_release
(
statusMessageReporting
*smr,
tpia_multiplicity
*multiplicity );
442
tpia_multiplicity
*
tpia_multiplicity_createGetFromElement
(
statusMessageReporting
*smr,
xData_element
*multiplicityElement,
int
nGroups );
443
int
tpia_multiplicity_getFromElement
(
statusMessageReporting
*smr,
xData_element
*multiplicityElement,
tpia_multiplicity
*multiplicity,
int
nGroups );
444
int
tpia_multiplicity_getTimeScaleFromElement
(
statusMessageReporting
*smr,
xData_element
*element,
const
char
**timeScale,
int
*isDelayedNeutrons,
445
double
*dTimeScale );
446
447
/*
448
* Routines in tpia_angular.c
449
*/
450
int
tpia_angular_initialize
(
statusMessageReporting
*smr,
tpia_angular
*angular );
451
int
tpia_angular_release
(
statusMessageReporting
*smr,
tpia_angular
*angular );
452
int
tpia_angular_getFromElement
(
statusMessageReporting
*smr,
xData_element
*angularElement,
tpia_angular
*angular );
453
int
tpia_angular_SampleMu
(
statusMessageReporting
*smr,
tpia_angular
*angular,
tpia_decaySamplingInfo
*decaySamplingInfo );
454
455
/*
456
* Routines in tpia_Legendre.c
457
*/
458
int
tpia_Legendre_initialize
(
statusMessageReporting
*smr,
tpia_Legendre
*Legendre );
459
int
tpia_Legendre_release
(
statusMessageReporting
*smr,
tpia_Legendre
*Legendre );
460
int
tpia_Legendre_getFromElement
(
statusMessageReporting
*smr,
xData_element
*LegendreElement,
tpia_Legendre
*Legendre );
461
int
tpia_Legendre_SampleEp
(
statusMessageReporting
*smr,
tpia_Legendre
*Legendre,
int
sampleMu,
tpia_decaySamplingInfo
*decaySamplingInfo );
462
463
/*
464
* Routines in tpia_angularEnergy.c
465
*/
466
int
tpia_angularEnergy_initialize
(
statusMessageReporting
*smr,
tpia_angularEnergy
*angularEnergy );
467
int
tpia_angularEnergy_release
(
statusMessageReporting
*smr,
tpia_angularEnergy
*angularEnergy );
468
int
tpia_angularEnergy_getFromElement
(
statusMessageReporting
*smr,
xData_element
*angularEnergyElement,
tpia_angularEnergy
*angularEnergy );
469
int
tpia_angularEnergy_SampleEp
(
statusMessageReporting
*smr,
tpia_angularEnergy
*angularEnergy,
tpia_decaySamplingInfo
*decaySamplingInfo );
470
471
/*
472
* Routines in tpia_samplingMethods.c
473
*/
474
int
tpia_samplingMethods_initialize
(
statusMessageReporting
*smr,
tpia_samplingMethods
*samplingMethods );
475
476
/*
477
* Routines in tpia_misc.c
478
*/
479
int
tpia_misc_NumberOfZSymbols
(
void
);
480
const
char
*
tpia_misc_ZToSymbol
(
int
iZ );
481
int
tpia_misc_symbolToZ
(
const
char
*
Z
);
482
int
tpia_miscNameToZAm
(
statusMessageReporting
*smr,
const
char
*
name
,
int
*
Z
,
int
*A,
int
*
m
);
483
char
*
tpia_misc_pointerToAttributeIfAllOk
(
statusMessageReporting
*smr,
xData_element
*element,
const
char
*path,
int
required,
484
xData_attributionList
*attributes,
const
char
*
name
,
const
char
*
file
,
int
line );
485
double
*
tpia_misc_get2dx_y_data
(
statusMessageReporting
*smr,
xData_element
*element,
xData_Int
*length );
486
double
*
tpia_misc_get2dxindex_y_data
(
statusMessageReporting
*smr,
xData_element
*element,
xData_Int
*start,
xData_Int
*end,
double
*xValues );
487
double
*
tpia_misc_get2d_xShared_yHistogram_data
(
statusMessageReporting
*smr,
xData_element
*element,
xData_Int
*start,
xData_Int
*end,
xData_Int
*length );
488
int
tpia_misc_get2d_xShared_yHistogram_data_Grouped
(
statusMessageReporting
*smr,
xData_element
*element,
tpia_1dData
*group );
489
double
tpia_misc_getPointwiseCrossSectionAtE
(
statusMessageReporting
*smr,
tpia_1dData
*crossSection,
double
*energyGrid,
xData_Int
index
,
double
e_in );
490
double
tpia_misc_drng
(
double
(*rng)(
void
* ),
void
*rngState );
491
int
tpia_misc_sampleEqualProbableBin
(
statusMessageReporting
*smr,
tpia_decaySamplingInfo
*decaySamplingInfo,
double
e_in,
int
nBins,
492
tpia_EqualProbableBinSpectra
*binned,
double
*value_ );
493
494
#if defined __cplusplus
495
}
496
}
497
#endif
498
499
#endif
/* End of tpia_target_h_included. */
Generated on Sat May 25 2013 14:34:00 for Geant4 by
1.8.4