ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MCGIDI_uncorrelated.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MCGIDI_uncorrelated.cc
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
11 namespace GIDI {
12 using 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 
37 err:
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