Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MCGIDI_outputChannel.cc File Reference
#include <string.h>
#include <cmath>
#include "MCGIDI.h"
#include "MCGIDI_misc.h"
Include dependency graph for MCGIDI_outputChannel.cc:

Go to the source code of this file.

Functions

MCGIDI_outputChannelMCGIDI_outputChannel_new (statusMessageReporting *smr)
 
int MCGIDI_outputChannel_initialize (statusMessageReporting *, MCGIDI_outputChannel *outputChannel)
 
MCGIDI_outputChannelMCGIDI_outputChannel_free (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
 
int MCGIDI_outputChannel_release (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
 
int MCGIDI_outputChannel_parseFromTOM (statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_POPs *pops, MCGIDI_outputChannel *outputChannel, MCGIDI_reaction *reaction, MCGIDI_product *parent)
 
int MCGIDI_outputChannel_numberOfProducts (MCGIDI_outputChannel *outputChannel)
 
MCGIDI_productMCGIDI_outputChannel_getProductAtIndex (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, int i)
 
int MCGIDI_outputChannel_getDomain (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, double *EMin, double *EMax)
 
MCGIDI_target_heatedMCGIDI_outputChannel_getTargetHeated (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
 
double MCGIDI_outputChannel_getProjectileMass_MeV (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
 
double MCGIDI_outputChannel_getTargetMass_MeV (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
 
double MCGIDI_outputChannel_getQ_MeV (statusMessageReporting *, MCGIDI_outputChannel *outputChannel, double)
 
double MCGIDI_outputChannel_getFinalQ (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, double e_in)
 
int MCGIDI_outputChannel_sampleProductsAtE (statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo, MCGIDI_sampledProductsDatas *productDatas, double *masses_)
 

Function Documentation

MCGIDI_outputChannel* MCGIDI_outputChannel_free ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel 
)

Definition at line 39 of file MCGIDI_outputChannel.cc.

39  {
40 
41  MCGIDI_outputChannel_release( smr, outputChannel );
42  smr_freeMemory( (void **) &outputChannel );
43  return( NULL );
44 }
int MCGIDI_outputChannel_release(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
void * smr_freeMemory(void **p)

Here is the call graph for this function:

Here is the caller graph for this function:

int MCGIDI_outputChannel_getDomain ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel,
double *  EMin,
double *  EMax 
)

Definition at line 144 of file MCGIDI_outputChannel.cc.

144  {
145 
146  if( outputChannel->reaction != NULL ) return( MCGIDI_reaction_getDomain( smr, outputChannel->reaction, EMin, EMax ) );
147  return( MCGIDI_product_getDomain( smr, outputChannel->parent, EMin, EMax ) );
148 }
int MCGIDI_product_getDomain(statusMessageReporting *smr, MCGIDI_product *product, double *EMin, double *EMax)
MCGIDI_product * parent
Definition: MCGIDI.h:393
int MCGIDI_reaction_getDomain(statusMessageReporting *smr, MCGIDI_reaction *reaction, double *EMin, double *EMax)
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392

Here is the call graph for this function:

Here is the caller graph for this function:

double MCGIDI_outputChannel_getFinalQ ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel,
double  e_in 
)

Definition at line 183 of file MCGIDI_outputChannel.cc.

183  {
184 
185  int iProduct;
186  double Q = outputChannel->Q;
187  MCGIDI_product *product;
188 
189  for( iProduct = 0; iProduct < outputChannel->numberOfProducts; iProduct++ ) {
190  product = &(outputChannel->products[iProduct]);
191  if( product->decayChannel.genre != MCGIDI_channelGenre_undefined_e ) Q += MCGIDI_outputChannel_getFinalQ( smr, &(product->decayChannel), e_in );
192  if( !smr_isOk( smr ) ) break;
193  }
194  return( Q );
195 }
static double Q[]
double MCGIDI_outputChannel_getFinalQ(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, double e_in)
int smr_isOk(statusMessageReporting *smr)
enum MCGIDI_channelGenre genre
Definition: MCGIDI.h:391
MCGIDI_outputChannel decayChannel
Definition: MCGIDI.h:412
MCGIDI_product * products
Definition: MCGIDI.h:397

Here is the call graph for this function:

Here is the caller graph for this function:

MCGIDI_product* MCGIDI_outputChannel_getProductAtIndex ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel,
int  i 
)

Definition at line 133 of file MCGIDI_outputChannel.cc.

133  {
134 
135  if( ( i < 0 ) || ( i >= outputChannel->numberOfProducts ) ) {
136  smr_setReportError2( smr, smr_unknownID, 1, "bad product index = %d: outputChannel as only %d products", i, outputChannel->numberOfProducts );
137  return( NULL );
138  }
139  return( &(outputChannel->products[i]) );
140 }
#define smr_setReportError2(smr, libraryID, code, fmt,...)
#define smr_unknownID
MCGIDI_product * products
Definition: MCGIDI.h:397

Here is the caller graph for this function:

double MCGIDI_outputChannel_getProjectileMass_MeV ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel 
)

Definition at line 160 of file MCGIDI_outputChannel.cc.

160  {
161 
162  if( outputChannel->reaction != NULL ) return( MCGIDI_reaction_getProjectileMass_MeV( smr, outputChannel->reaction ) );
163  return( MCGIDI_product_getProjectileMass_MeV( smr, outputChannel->parent ) );
164 }
MCGIDI_product * parent
Definition: MCGIDI.h:393
double MCGIDI_reaction_getProjectileMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392
double MCGIDI_product_getProjectileMass_MeV(statusMessageReporting *smr, MCGIDI_product *product)

Here is the call graph for this function:

Here is the caller graph for this function:

double MCGIDI_outputChannel_getQ_MeV ( statusMessageReporting ,
MCGIDI_outputChannel outputChannel,
double   
)

Definition at line 176 of file MCGIDI_outputChannel.cc.

176  {
177 
178  return( outputChannel->Q );
179 }

Here is the caller graph for this function:

MCGIDI_target_heated* MCGIDI_outputChannel_getTargetHeated ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel 
)

Definition at line 152 of file MCGIDI_outputChannel.cc.

152  {
153 
154  if( outputChannel->reaction != NULL ) return( MCGIDI_reaction_getTargetHeated( smr, outputChannel->reaction ) );
155  return( MCGIDI_product_getTargetHeated( smr, outputChannel->parent ) );
156 }
MCGIDI_target_heated * MCGIDI_product_getTargetHeated(statusMessageReporting *smr, MCGIDI_product *product)
MCGIDI_product * parent
Definition: MCGIDI.h:393
MCGIDI_target_heated * MCGIDI_reaction_getTargetHeated(statusMessageReporting *smr, MCGIDI_reaction *reaction)
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392

Here is the call graph for this function:

Here is the caller graph for this function:

double MCGIDI_outputChannel_getTargetMass_MeV ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel 
)

Definition at line 168 of file MCGIDI_outputChannel.cc.

168  {
169 
170  if( outputChannel->reaction != NULL ) return( MCGIDI_reaction_getTargetMass_MeV( smr, outputChannel->reaction ) );
171  return( MCGIDI_product_getTargetMass_MeV( smr, outputChannel->parent ) );
172 }
double MCGIDI_product_getTargetMass_MeV(statusMessageReporting *smr, MCGIDI_product *product)
MCGIDI_product * parent
Definition: MCGIDI.h:393
double MCGIDI_reaction_getTargetMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392

Here is the call graph for this function:

Here is the caller graph for this function:

int MCGIDI_outputChannel_initialize ( statusMessageReporting ,
MCGIDI_outputChannel outputChannel 
)

Definition at line 31 of file MCGIDI_outputChannel.cc.

31  {
32 
33  memset( outputChannel, 0, sizeof( MCGIDI_outputChannel ) );
34  return( 0 );
35 }

Here is the caller graph for this function:

MCGIDI_outputChannel* MCGIDI_outputChannel_new ( statusMessageReporting smr)

Definition at line 20 of file MCGIDI_outputChannel.cc.

20  {
21 
22  MCGIDI_outputChannel *outputChannel;
23 
24  if( ( outputChannel = (MCGIDI_outputChannel *) smr_malloc2( smr, sizeof( MCGIDI_outputChannel ), 0, "outputChannel" ) ) == NULL ) return( NULL );
25  if( MCGIDI_outputChannel_initialize( smr, outputChannel ) ) outputChannel = MCGIDI_outputChannel_free( smr, outputChannel );
26  return( outputChannel );
27 }
int MCGIDI_outputChannel_initialize(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
MCGIDI_outputChannel * MCGIDI_outputChannel_free(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
#define smr_malloc2(smr, size, zero, forItem)

Here is the call graph for this function:

int MCGIDI_outputChannel_numberOfProducts ( MCGIDI_outputChannel outputChannel)

Definition at line 126 of file MCGIDI_outputChannel.cc.

126  {
127 
128  return( outputChannel->numberOfProducts );
129 }

Here is the caller graph for this function:

int MCGIDI_outputChannel_parseFromTOM ( statusMessageReporting smr,
xDataTOM_element element,
MCGIDI_POPs pops,
MCGIDI_outputChannel outputChannel,
MCGIDI_reaction reaction,
MCGIDI_product parent 
)

Definition at line 61 of file MCGIDI_outputChannel.cc.

62  {
63 
64  int n, delayedNeutronIndex = 0;
65  char const *genre, *Q;
66  xDataTOM_element *child;
67 
68  MCGIDI_outputChannel_initialize( smr, outputChannel );
69 
70  outputChannel->reaction = reaction;
71  outputChannel->parent = parent;
72  if( ( genre = xDataTOM_getAttributesValueInElement( element, "genre" ) ) == NULL ) goto err;
73  if( ( parent != NULL ) && ( strcmp( genre, "NBody" ) ) ) {
74  smr_setReportError2( smr, smr_unknownID, 1, "decay channel's genre can only be 'uncorreclated' (a.k.a. 'NBody') and not '%s'", genre );
75  goto err;
76  }
77  if( strcmp( genre, "twoBody" ) == 0 ) {
78  outputChannel->genre = MCGIDI_channelGenre_twoBody_e; }
79  else if( strcmp( genre, "NBody" ) == 0 ) {
80  outputChannel->genre = MCGIDI_channelGenre_uncorrelated_e; }
81  else if( strcmp( genre, "sumOfRemainingOutputChannels" ) == 0 ) {
83  else {
84  smr_setReportError2( smr, smr_unknownID, 1, "unsupported genre = '%s'", genre );
85  goto err;
86  }
87  if( ( Q = xDataTOM_getAttributesValueInElement( element, "Q" ) ) == NULL ) goto err;
88  outputChannel->QIsFloat = !MCGIDI_misc_PQUStringToDoubleInUnitOf( smr, Q, "MeV", &(outputChannel->Q) );
89 
90  if( ( n = xDataTOM_numberOfElementsByName( smr, element, "product" ) ) == 0 ) {
91  smr_setReportError2p( smr, smr_unknownID, 1, "outputChannel does not have any products" );
92  goto err;
93  }
94  if( ( outputChannel->products = (MCGIDI_product *) smr_malloc2( smr, n * sizeof( MCGIDI_product ), 0, "outputChannel->products" ) ) == NULL ) goto err;
95 
96  for( child = xDataTOME_getFirstElement( element ); child != NULL; child = xDataTOME_getNextElement( child ) ) {
97  if( strcmp( child->name, "product" ) == 0 ) {
98  if( MCGIDI_product_parseFromTOM( smr, child, outputChannel, pops, &(outputChannel->products[outputChannel->numberOfProducts]),
99  &delayedNeutronIndex ) ) goto err;
100  outputChannel->numberOfProducts++; }
101  else if( strcmp( child->name, "fissionEnergyReleased" ) == 0 ) { /* ????????? Need to support. */
102  continue; }
103  else {
104  printf( "outputChannel child not currently supported = %s\n", child->name );
105  }
106  }
107  if( outputChannel->genre == MCGIDI_channelGenre_twoBody_e ) {
108  double projectileMass_MeV, targetMass_MeV, productMass_MeV, residualMass_MeV;
109 
110  projectileMass_MeV = MCGIDI_reaction_getProjectileMass_MeV( smr, reaction );
111  targetMass_MeV = MCGIDI_reaction_getTargetMass_MeV( smr, reaction );
112  productMass_MeV = MCGIDI_product_getMass_MeV( smr, &(outputChannel->products[0]) );
113  residualMass_MeV = MCGIDI_product_getMass_MeV( smr, &(outputChannel->products[1]) );
114  MCGIDI_product_setTwoBodyMasses( smr, &(outputChannel->products[0]), projectileMass_MeV, targetMass_MeV, productMass_MeV, residualMass_MeV );
115  }
116 
117  return( 0 );
118 
119 err:
120  MCGIDI_outputChannel_release( smr, outputChannel );
121  return( 1 );
122 }
int MCGIDI_outputChannel_release(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
xDataTOM_element * xDataTOME_getFirstElement(xDataTOM_element *element)
Definition: xDataTOM.cc:230
int MCGIDI_outputChannel_initialize(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
double MCGIDI_product_getMass_MeV(statusMessageReporting *smr, MCGIDI_product *product)
static double Q[]
int MCGIDI_product_setTwoBodyMasses(statusMessageReporting *smr, MCGIDI_product *product, double projectileMass_MeV, double targetMass_MeV, double productMass_MeV, double residualMass_MeV)
#define smr_setReportError2p(smr, libraryID, code, fmt)
#define smr_setReportError2(smr, libraryID, code, fmt,...)
MCGIDI_product * parent
Definition: MCGIDI.h:393
int MCGIDI_product_parseFromTOM(statusMessageReporting *smr, xDataTOM_element *element, MCGIDI_outputChannel *outputChannel, MCGIDI_POPs *pops, MCGIDI_product *product, int *delayedNeutronIndex)
#define smr_malloc2(smr, size, zero, forItem)
const G4int n
#define smr_unknownID
double MCGIDI_reaction_getProjectileMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
enum MCGIDI_channelGenre genre
Definition: MCGIDI.h:391
int xDataTOM_numberOfElementsByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name)
Definition: xDataTOM.cc:268
int MCGIDI_misc_PQUStringToDoubleInUnitOf(statusMessageReporting *smr, char const *str, char const *toUnit, double *value)
Definition: MCGIDI_misc.cc:356
xDataTOM_element * xDataTOME_getNextElement(xDataTOM_element *element)
Definition: xDataTOM.cc:238
double MCGIDI_reaction_getTargetMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
MCGIDI_product * products
Definition: MCGIDI.h:397
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392
char const * xDataTOM_getAttributesValueInElement(xDataTOM_element *element, char const *name)
Definition: xDataTOM.cc:286

Here is the call graph for this function:

Here is the caller graph for this function:

int MCGIDI_outputChannel_release ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel 
)

Definition at line 48 of file MCGIDI_outputChannel.cc.

48  {
49 
50  int i;
51 
52  for( i = 0; i < outputChannel->numberOfProducts; i++ ) MCGIDI_product_release( smr, &(outputChannel->products[i]) );
53  smr_freeMemory( (void **) &(outputChannel->products) );
54  MCGIDI_outputChannel_initialize( smr, outputChannel );
55 
56  return( 0 );
57 }
int MCGIDI_outputChannel_initialize(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel)
int MCGIDI_product_release(statusMessageReporting *smr, MCGIDI_product *product)
void * smr_freeMemory(void **p)
MCGIDI_product * products
Definition: MCGIDI.h:397

Here is the call graph for this function:

Here is the caller graph for this function:

int MCGIDI_outputChannel_sampleProductsAtE ( statusMessageReporting smr,
MCGIDI_outputChannel outputChannel,
MCGIDI_quantitiesLookupModes modes,
MCGIDI_decaySamplingInfo decaySamplingInfo,
MCGIDI_sampledProductsDatas productDatas,
double *  masses_ 
)

Definition at line 199 of file MCGIDI_outputChannel.cc.

200  {
201 
202  int i1, multiplicity, secondTwoBody = 0, isDecayChannel = ( outputChannel->reaction == NULL );
203  double e_in = modes.getProjectileEnergy( );
204  MCGIDI_product *product;
205  double phi, p, masses[3];
206  MCGIDI_distribution *distribution;
207  MCGIDI_sampledProductsData productData[2];
208 
209  if( isDecayChannel ) {
210  masses[0] = masses_[0]; /* More work may be needed here. */
211  masses[1] = masses_[1]; }
212  else {
213  masses[0] = MCGIDI_reaction_getProjectileMass_MeV( smr, outputChannel->reaction );
214  masses[1] = MCGIDI_reaction_getTargetMass_MeV( smr, outputChannel->reaction );
215  }
216 
217  for( i1 = 0; i1 < outputChannel->numberOfProducts; i1++ ) {
218  product = &(outputChannel->products[i1]);
220  if( MCGIDI_outputChannel_sampleProductsAtE( smr, &(product->decayChannel), modes, decaySamplingInfo, productDatas, masses ) < 0 ) return( -1 ); }
221  else {
222  distribution = &(product->distribution);
223  if( distribution->type == MCGIDI_distributionType_none_e ) continue;
224  if( !secondTwoBody ) {
225  if( ( multiplicity = product->multiplicity ) == 0 ) multiplicity = MCGIDI_product_sampleMultiplicity( smr, product, e_in,
226  decaySamplingInfo->rng( decaySamplingInfo->rngState ) );
227  while( multiplicity > 0 ) {
228 
229  multiplicity--;
230  decaySamplingInfo->pop = product->pop;
231  decaySamplingInfo->mu = 0;
232  decaySamplingInfo->Ep = 0;
233  productData[0].isVelocity = decaySamplingInfo->isVelocity;
234  productData[0].pop = product->pop;
235  productData[0].delayedNeutronIndex = product->delayedNeutronIndex;
236  productData[0].delayedNeutronRate = product->delayedNeutronRate;
237  productData[0].birthTimeSec = 0;
238  if( product->delayedNeutronRate > 0 ) {
239  productData[0].birthTimeSec = -G4Log( decaySamplingInfo->rng( decaySamplingInfo->rngState ) ) / product->delayedNeutronRate;
240  }
241 
242  switch( outputChannel->genre ) {
244  secondTwoBody = 1;
245  MCGIDI_angular_sampleMu( smr, distribution->angular, modes, decaySamplingInfo );
246  if( smr_isOk( smr ) ) {
247  phi = 2. * M_PI * decaySamplingInfo->rng( decaySamplingInfo->rngState );
248  MCGIDI_kinetics_2BodyReaction( smr, distribution->angular, e_in, decaySamplingInfo->mu, phi, productData );
249  if( !smr_isOk( smr ) ) return( -1 );
250  productData[1].pop = product[1].pop;
251  productData[1].delayedNeutronIndex = product[1].delayedNeutronIndex;
252  productData[1].delayedNeutronRate = product->delayedNeutronRate;
253  productData[1].birthTimeSec = 0;
254  MCGIDI_sampledProducts_addProduct( smr, productDatas, productData );
255  if( !smr_isOk( smr ) ) return( -1 );
256  MCGIDI_sampledProducts_addProduct( smr, productDatas, &(productData[1]) );
257  if( !smr_isOk( smr ) ) return( -1 );
258  }
259  break;
262  masses[2] = MCGIDI_product_getMass_MeV( smr, product );
263  switch( distribution->type ) {
265  MCGIDI_uncorrelated_sampleDistribution( smr, distribution, modes, decaySamplingInfo );
266  break;
268  MCGIDI_energyAngular_sampleDistribution( smr, distribution, modes, decaySamplingInfo );
269  break;
271  MCGIDI_KalbachMann_sampleEp( smr, distribution->KalbachMann, modes, decaySamplingInfo );
272  break;
274  MCGIDI_angularEnergy_sampleDistribution( smr, distribution->angularEnergy, modes, decaySamplingInfo );
275  break;
276  default :
277  printf( "Unknown spectral data form product name = %s, channel genre = %d\n", product->pop->name, outputChannel->genre );
278  break;
279  }
280  break;
282  printf( "Channel is undefined\n" );
283  break;
285  printf( "Channel is twoBodyDecay\n" );
286  break;
288  printf( "Channel is uncorrelatedDecay\n" );
289  break;
290  default :
291  printf( "Unsupported channel genre = %d\n", outputChannel->genre );
292  break;
293  }
294  if( !smr_isOk( smr ) ) return( -1 );
295  if( !secondTwoBody ) {
296  if( decaySamplingInfo->frame == xDataTOM_frame_centerOfMass ) {
297  if( MCGIDI_kinetics_COM2Lab( smr, modes, decaySamplingInfo, masses ) != 0 ) return( -1 );
298  }
299  productData[0].kineticEnergy = decaySamplingInfo->Ep;
300  p = std::sqrt( decaySamplingInfo->Ep * ( decaySamplingInfo->Ep + 2. * product->pop->mass_MeV ) );
301  if( productData[0].isVelocity ) p *= MCGIDI_speedOfLight_cm_sec / std::sqrt( p * p + product->pop->mass_MeV * product->pop->mass_MeV );
302  productData[0].pz_vz = p * decaySamplingInfo->mu;
303  p = std::sqrt( 1. - decaySamplingInfo->mu * decaySamplingInfo->mu ) * p;
304  phi = 2. * M_PI * decaySamplingInfo->rng( decaySamplingInfo->rngState );
305  productData[0].px_vx = p * std::sin( phi );
306  productData[0].py_vy = p * std::cos( phi );
307  MCGIDI_sampledProducts_addProduct( smr, productDatas, productData );
308  if( !smr_isOk( smr ) ) return( -1 );
309  }
310  } // Loop checking, 11.06.2015, T. Koi
311  }
312  }
313  }
314  return( productDatas->numberOfProducts );
315 }
#define MCGIDI_speedOfLight_cm_sec
Definition: MCGIDI.h:183
int MCGIDI_product_sampleMultiplicity(statusMessageReporting *smr, MCGIDI_product *product, double e_in, double r)
#define M_PI
Definition: SbMath.h:34
int MCGIDI_angularEnergy_sampleDistribution(statusMessageReporting *smr, MCGIDI_angularEnergy *angularEnergy, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
int MCGIDI_sampledProducts_addProduct(statusMessageReporting *smr, MCGIDI_sampledProductsDatas *sampledProductsDatas, MCGIDI_sampledProductsData *sampledProductsData)
double MCGIDI_product_getMass_MeV(statusMessageReporting *smr, MCGIDI_product *product)
double delayedNeutronRate
Definition: MCGIDI.h:406
const char * p
Definition: xmltok.h:285
char * name
Definition: MCGIDI.h:232
MCGIDI_angular * angular
Definition: MCGIDI.h:383
int MCGIDI_energyAngular_sampleDistribution(statusMessageReporting *smr, MCGIDI_distribution *distribution, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
int MCGIDI_uncorrelated_sampleDistribution(statusMessageReporting *smr, MCGIDI_distribution *distribution, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
int MCGIDI_angular_sampleMu(statusMessageReporting *smr, MCGIDI_angular *angular, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)
int multiplicity
Definition: MCGIDI.h:404
double MCGIDI_reaction_getProjectileMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
int smr_isOk(statusMessageReporting *smr)
G4double G4Log(G4double x)
Definition: G4Log.hh:230
double mass_MeV
Definition: MCGIDI.h:235
enum MCGIDI_distributionType type
Definition: MCGIDI.h:382
enum MCGIDI_channelGenre genre
Definition: MCGIDI.h:391
MCGIDI_KalbachMann * KalbachMann
Definition: MCGIDI.h:387
int delayedNeutronIndex
Definition: MCGIDI.h:405
int MCGIDI_kinetics_COM2Lab(statusMessageReporting *smr, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo, double masses[3])
double(* rng)(void *)
Definition: MCGIDI.h:258
enum xDataTOM_frame frame
Definition: MCGIDI.h:256
int MCGIDI_kinetics_2BodyReaction(statusMessageReporting *smr, MCGIDI_angular *angular, double K, double mu, double phi, MCGIDI_sampledProductsData *outgoingData)
MCGIDI_outputChannel decayChannel
Definition: MCGIDI.h:412
MCGIDI_POP * pop
Definition: MCGIDI.h:401
MCGIDI_distribution distribution
Definition: MCGIDI.h:411
double MCGIDI_reaction_getTargetMass_MeV(statusMessageReporting *smr, MCGIDI_reaction *reaction)
int MCGIDI_outputChannel_sampleProductsAtE(statusMessageReporting *smr, MCGIDI_outputChannel *outputChannel, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo, MCGIDI_sampledProductsDatas *productDatas, double *masses)
MCGIDI_product * products
Definition: MCGIDI.h:397
double getProjectileEnergy(void) const
Definition: MCGIDI.h:97
MCGIDI_angularEnergy * angularEnergy
Definition: MCGIDI.h:386
MCGIDI_reaction * reaction
Definition: MCGIDI.h:392
int MCGIDI_KalbachMann_sampleEp(statusMessageReporting *smr, MCGIDI_KalbachMann *KalbachMann, MCGIDI_quantitiesLookupModes &modes, MCGIDI_decaySamplingInfo *decaySamplingInfo)

Here is the call graph for this function:

Here is the caller graph for this function: