Geant4-11
MCGIDI_uncorrelated.cc
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# <<END-copyright>>
4*/
5#include <string.h>
6#include <cmath>
7
8#include "MCGIDI_fromTOM.h"
9
10#if defined __cplusplus
11namespace GIDI {
12using namespace GIDI;
13#endif
14
15/*
16************************************************************
17*/
19 enum MCGIDI_energyType energyType, double gammaEnergy_MeV ) {
20
21 xDataTOM_element *uncorrelatedElement;
22 ptwXYPoints *angularNorms = NULL;
23
24 if( ( energyType == MCGIDI_energyType_primaryGamma ) || ( energyType == MCGIDI_energyType_discreteGamma ) ) {
25 angularNorms = norms;
26 uncorrelatedElement = element; }
27 else {
28 if( ( uncorrelatedElement = xDataTOME_getOneElementByName( smr, element, "uncorrelated", 1 ) ) == NULL ) goto err;
29 }
30
31 if( MCGIDI_angular_parseFromTOM( smr, uncorrelatedElement, distribution, angularNorms ) ) goto err;
32 if( MCGIDI_energy_parseFromTOM( smr, uncorrelatedElement, distribution, norms, energyType, gammaEnergy_MeV ) ) goto err;
34
35 return( 0 );
36
37err:
38 return( 1 );
39}
40/*
41************************************************************
42*/
44 MCGIDI_decaySamplingInfo *decaySamplingInfo ) {
45
46 enum xDataTOM_frame frame;
47
48 if( MCGIDI_energy_sampleEnergy( smr, distribution->energy, modes, decaySamplingInfo ) ) return( 1 );
49 frame = decaySamplingInfo->frame;
50 if( MCGIDI_angular_sampleMu( smr, distribution->angular, modes, decaySamplingInfo ) ) return( 1 );
51 decaySamplingInfo->frame = frame; /* Discrete and primary gammas in COM are treated as lab for now and energy sets it correctly. */
52 return( 0 );
53}
54
55#if defined __cplusplus
56}
57#endif
int MCGIDI_energy_sampleEnergy(statusMessageReporting *smr, MCGIDI_energy *energy, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
@ MCGIDI_distributionType_uncorrelated_e
Definition: MCGIDI.h:209
int MCGIDI_energy_parseFromTOM(statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_distribution *distribution, ptwXYPoints *norms, enum MCGIDI_energyType energyType, double gammaEnergy_MeV)
int MCGIDI_angular_parseFromTOM(statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_distribution *distribution, ptwXYPoints *norms)
int MCGIDI_angular_sampleMu(statusMessageReporting *smr, MCGIDI_angular *angular, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
MCGIDI_energyType
Definition: MCGIDI.h:214
@ MCGIDI_energyType_primaryGamma
Definition: MCGIDI.h:214
@ MCGIDI_energyType_discreteGamma
Definition: MCGIDI.h:214
int MCGIDI_uncorrelated_parseFromTOM(statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_distribution *distribution, ptwXYPoints *norms, enum MCGIDI_energyType energyType, double gammaEnergy_MeV)
int MCGIDI_uncorrelated_sampleDistribution(statusMessageReporting *smr, MCGIDI_distribution *distribution, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
enum xDataTOM_frame frame
Definition: MCGIDI.h:256
MCGIDI_energy * energy
Definition: MCGIDI.h:384
MCGIDI_angular * angular
Definition: MCGIDI.h:383
enum MCGIDI_distributionType type
Definition: MCGIDI.h:382
xDataTOM_element * xDataTOME_getOneElementByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name, int required)
Definition: xDataTOM.cc:246
xDataTOM_frame
Definition: xDataTOM.h:23