Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
xDataTOM_axes.cc File Reference
#include <string.h>
#include "xDataTOM_private.h"

Go to the source code of this file.

Functions

int xDataTOM_axes_initialize (statusMessageReporting *smr, xDataTOM_axes *axes, int numberOfAxes)
 
int xDataTOM_axes_release (xDataTOM_axes *axes)
 
char const * xDataTOM_axes_getLabel (statusMessageReporting *smr, xDataTOM_axes *axes, int index)
 
char const * xDataTOM_axes_getUnit (statusMessageReporting *smr, xDataTOM_axes *axes, int index)
 
int xDataTOM_axes_getInterpolation (statusMessageReporting *smr, xDataTOM_axes *axes, int index, enum xDataTOM_interpolationFlag *independent, enum xDataTOM_interpolationFlag *dependent, enum xDataTOM_interpolationQualifier *qualifier)
 
int xDataTOM_subAxes_initialize (statusMessageReporting *smr, xDataTOM_subAxes *subAxes, enum xDataTOM_subAxesType type, int offset, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
 
int xDataTOM_subAxes_release (xDataTOM_subAxes *subAxes)
 
char const * xDataTOM_subAxes_getLabel (statusMessageReporting *smr, xDataTOM_subAxes *subAxes, int index)
 
char const * xDataTOM_subAxes_getUnit (statusMessageReporting *smr, xDataTOM_subAxes *subAxes, int index)
 
xDataTOM_axisxDataTOM_axis_new (statusMessageReporting *smr, int index, char const *label, char const *unit, xDataTOM_interpolation *interpolation)
 
int xDataTOM_axis_initialize (statusMessageReporting *smr, xDataTOM_axis *axis, int index, char const *label, char const *unit, xDataTOM_interpolation *interpolation)
 
xDataTOM_axisxDataTOM_axis_release (statusMessageReporting *, xDataTOM_axis *axis)
 
enum xDataTOM_frame xDataTOM_axis_stringToFrame (statusMessageReporting *, char const *frame)
 
char const * xDataTOM_axis_frameToString (statusMessageReporting *, enum xDataTOM_frame frame)
 

Function Documentation

◆ xDataTOM_axes_getInterpolation()

int xDataTOM_axes_getInterpolation ( statusMessageReporting smr,
xDataTOM_axes axes,
int  index,
enum xDataTOM_interpolationFlag independent,
enum xDataTOM_interpolationFlag dependent,
enum xDataTOM_interpolationQualifier qualifier 
)

Definition at line 66 of file xDataTOM_axes.cc.

67 {
68
69 xDataTOM_interpolation *interpolation;
70
71 if( ( index < 0 ) || ( index >= axes->numberOfAxes ) ) {
72 smr_setReportError2( smr, xDataTOM_smrLibraryID, -1, "invalid axes index = %d", index );
73 return( 1 );
74 }
75 interpolation = &(axes->axis[index].interpolation);
76 *independent = interpolation->independent;
77 *dependent = interpolation->dependent;
78 *qualifier = interpolation->qualifier;
79
80 return( 0 );
81}
#define smr_setReportError2(smr, libraryID, code, fmt,...)
int numberOfAxes
Definition: xDataTOM.h:69
xDataTOM_axis * axis
Definition: xDataTOM.h:70
xDataTOM_interpolation interpolation
Definition: xDataTOM.h:65
enum xDataTOM_interpolationFlag independent dependent
Definition: xDataTOM.h:57
enum xDataTOM_interpolationQualifier qualifier
Definition: xDataTOM.h:58
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34

Referenced by xDataTOME_getInterpolation().

◆ xDataTOM_axes_getLabel()

char const * xDataTOM_axes_getLabel ( statusMessageReporting smr,
xDataTOM_axes axes,
int  index 
)

Definition at line 44 of file xDataTOM_axes.cc.

44 {
45
46 if( ( index < 0 ) || ( index >= axes->numberOfAxes ) ) {
47 smr_setReportError2( smr, xDataTOM_smrLibraryID, -1, "invalid axes index = %d", index );
48 return( NULL );
49 }
50 return( axes->axis[index].label );
51}
char * label
Definition: xDataTOM.h:63

Referenced by xDataTOM_subAxes_getLabel(), xDataXML_KalbachMannToTOM(), xDataXML_regionsW_XYs_LegendreSeriesToTOM(), xDataXML_V_W_XYs_LegendreSeriesToTOM(), xDataXML_V_W_XYsToTOM(), xDataXML_W_XYs_LegendreSeriesToTOM(), and xDataXML_W_XYsDataToTOM().

◆ xDataTOM_axes_getUnit()

char const * xDataTOM_axes_getUnit ( statusMessageReporting smr,
xDataTOM_axes axes,
int  index 
)

Definition at line 55 of file xDataTOM_axes.cc.

55 {
56
57 if( ( index < 0 ) || ( index >= axes->numberOfAxes ) ) {
58 smr_setReportError2( smr, xDataTOM_smrLibraryID, -1, "invalid axes index = %d", index );
59 return( NULL );
60 }
61 return( axes->axis[index].unit );
62}
char * unit
Definition: xDataTOM.h:64

Referenced by MCGIDI_fromTOM_pdfsOfXGivenW(), MCGIDI_KalbachMann_parseFromTOM(), and xDataTOM_subAxes_getUnit().

◆ xDataTOM_axes_initialize()

int xDataTOM_axes_initialize ( statusMessageReporting smr,
xDataTOM_axes axes,
int  numberOfAxes 
)

Definition at line 21 of file xDataTOM_axes.cc.

21 {
22
23 axes->numberOfAxes = 0;
24 if( ( axes->axis = (xDataTOM_axis *) smr_malloc2( smr, numberOfAxes * sizeof( xDataTOM_axis ), 1, "axes->axis" ) ) == NULL ) return( 1 );
25 axes->numberOfAxes = numberOfAxes;
26 return( 0 );
27}
#define smr_malloc2(smr, size, zero, forItem)

Referenced by xDataXML_axesToTOM().

◆ xDataTOM_axes_release()

int xDataTOM_axes_release ( xDataTOM_axes axes)

Definition at line 31 of file xDataTOM_axes.cc.

31 {
32
33 int i;
34
35 for( i = 0; i < axes->numberOfAxes; i++ ) {
36 xDataTOM_axis_release( NULL, &(axes->axis[i]) );
37 }
38 smr_freeMemory( (void **) &(axes->axis) );
39 return( 0 );
40}
void * smr_freeMemory(void **p)
xDataTOM_axis * xDataTOM_axis_release(statusMessageReporting *, xDataTOM_axis *axis)

Referenced by xDataTOM_releaseElement().

◆ xDataTOM_axis_frameToString()

char const * xDataTOM_axis_frameToString ( statusMessageReporting smr,
enum xDataTOM_frame  frame 
)

Definition at line 191 of file xDataTOM_axes.cc.

191 {
192
193 switch( frame ) {
194 case xDataTOM_frame_lab : return( xDataTOM_frame_labString );
195 case xDataTOM_frame_centerOfMass : return( xDataTOM_frame_centerOfMassString );
196 default :
197 break;
198 }
199 return( xDataTOM_frame_invalidString );
200}
@ xDataTOM_frame_centerOfMass
Definition: xDataTOM.h:23
@ xDataTOM_frame_lab
Definition: xDataTOM.h:23

◆ xDataTOM_axis_initialize()

int xDataTOM_axis_initialize ( statusMessageReporting smr,
xDataTOM_axis axis,
int  index,
char const *  label,
char const *  unit,
xDataTOM_interpolation interpolation 
)

Definition at line 155 of file xDataTOM_axes.cc.

155 {
156
157 axis->index = index;
158 if( ( axis->label = smr_allocateCopyString2( smr, label, "label" ) ) == NULL ) goto err;
159 if( ( axis->unit = smr_allocateCopyString2( smr, unit, "unit" ) ) == NULL ) goto err;
160 if( xDataTOM_interpolation_copy( smr, &(axis->interpolation), interpolation ) != 0 ) goto err;
161
162 return( 0 );
163
164err:
165 smr_freeMemory( (void **) &(axis->label) );
166 smr_freeMemory( (void **) &(axis->unit) );
167 return( 1 );
168}
#define smr_allocateCopyString2(smr, s, forItem)
int xDataTOM_interpolation_copy(statusMessageReporting *smr, xDataTOM_interpolation *desc, xDataTOM_interpolation *src)

Referenced by xDataTOM_axis_new(), and xDataXML_axesToTOM().

◆ xDataTOM_axis_new()

xDataTOM_axis * xDataTOM_axis_new ( statusMessageReporting smr,
int  index,
char const *  label,
char const *  unit,
xDataTOM_interpolation interpolation 
)

Definition at line 144 of file xDataTOM_axes.cc.

144 {
145
146 xDataTOM_axis *axis = NULL;
147
148 if( ( axis = (xDataTOM_axis *) smr_malloc2( smr, sizeof( xDataTOM_axis ), 0, "axis" ) ) == NULL ) return( NULL );
149 if( xDataTOM_axis_initialize( smr, axis, index, label, unit, interpolation ) != 0 ) smr_freeMemory( (void **) &axis );
150 return( axis );
151}
int xDataTOM_axis_initialize(statusMessageReporting *smr, xDataTOM_axis *axis, int index, char const *label, char const *unit, xDataTOM_interpolation *interpolation)

◆ xDataTOM_axis_release()

xDataTOM_axis * xDataTOM_axis_release ( statusMessageReporting smr,
xDataTOM_axis axis 
)

Definition at line 172 of file xDataTOM_axes.cc.

172 {
173
174 axis->index = -1;
175 smr_freeMemory( (void **) &(axis->label) );
176 smr_freeMemory( (void **) &(axis->unit) );
177 return( NULL );
178}

Referenced by xDataTOM_axes_release(), and xDataXML_axesToTOM().

◆ xDataTOM_axis_stringToFrame()

enum xDataTOM_frame xDataTOM_axis_stringToFrame ( statusMessageReporting smr,
char const *  frame 
)

Definition at line 182 of file xDataTOM_axes.cc.

182 {
183
184 if( strcmp( "lab", frame ) == 0 ) return( xDataTOM_frame_lab );
185 if( strcmp( "centerOfMass", frame ) == 0 ) return( xDataTOM_frame_centerOfMass );
186 return( xDataTOM_frame_invalid );
187}
@ xDataTOM_frame_invalid
Definition: xDataTOM.h:23

Referenced by MCGIDI_misc_getProductFrame().

◆ xDataTOM_subAxes_getLabel()

char const * xDataTOM_subAxes_getLabel ( statusMessageReporting smr,
xDataTOM_subAxes subAxes,
int  index 
)

Definition at line 126 of file xDataTOM_axes.cc.

126 {
127
128 return( xDataTOM_axes_getLabel( smr, subAxes->axes, index + subAxes->offset ) );
129}
xDataTOM_axes * axes
Definition: xDataTOM.h:76
char const * xDataTOM_axes_getLabel(statusMessageReporting *smr, xDataTOM_axes *axes, int index)

◆ xDataTOM_subAxes_getUnit()

char const * xDataTOM_subAxes_getUnit ( statusMessageReporting smr,
xDataTOM_subAxes subAxes,
int  index 
)

Definition at line 133 of file xDataTOM_axes.cc.

133 {
134
135 return( xDataTOM_axes_getUnit( smr, subAxes->axes, index + subAxes->offset ) );
136}
char const * xDataTOM_axes_getUnit(statusMessageReporting *smr, xDataTOM_axes *axes, int index)

Referenced by MCGIDI_angular_parseFromTOM(), and MCGIDI_misc_dataFromXYs2ptwXYPointsInUnitsOf().

◆ xDataTOM_subAxes_initialize()

int xDataTOM_subAxes_initialize ( statusMessageReporting smr,
xDataTOM_subAxes subAxes,
enum xDataTOM_subAxesType  type,
int  offset,
xDataTOM_axes axes,
xDataTOM_interpolation interpolation 
)

Definition at line 89 of file xDataTOM_axes.cc.

90 {
91
92 subAxes->type = type;
93 if( axes == NULL ) {
94 smr_setReportError2p( smr, xDataTOM_smrLibraryID, -1, "Axes must not be NULL" );
95 return( 1 );
96 }
97 subAxes->offset = offset;
98 if( ( offset < 0 ) || ( offset >= axes->numberOfAxes ) ) {
99 smr_setReportError2( smr, xDataTOM_smrLibraryID, -1, "offset = %d < 0 or >= axes->numberOfAxes = %d", offset, axes->numberOfAxes );
100 return( 1 );
101 }
103 if( interpolation == NULL ) {
104 smr_setReportError2p( smr, xDataTOM_smrLibraryID, -1, "Interpolation must not be NULL for intepolationAxes" );
105 return( 1 );
106 }
107 if( xDataTOM_interpolation_copy( smr, &(subAxes->interpolation), interpolation ) ) return( 1 ); }
108 else { /* Not used but fill in anyway. */
111 }
112 subAxes->axes = axes;
113 return( 0 );
114}
#define smr_setReportError2p(smr, libraryID, code, fmt)
enum xDataTOM_subAxesType type
Definition: xDataTOM.h:74
xDataTOM_interpolation interpolation
Definition: xDataTOM.h:77
@ xDataTOM_subAxesType_intepolationAxes
Definition: xDataTOM.h:24
@ xDataTOM_interpolationFlag_linear
Definition: xDataTOM.h:19
int xDataTOM_interpolation_set(statusMessageReporting *smr, xDataTOM_interpolation *interpolation, enum xDataTOM_interpolationFlag independent, enum xDataTOM_interpolationFlag dependent, enum xDataTOM_interpolationQualifier qualifier)
@ xDataTOM_interpolationQualifier_none
Definition: xDataTOM.h:22

Referenced by xDataTOM_KalbachMann_initialize(), xDataTOM_polynomial_initialize(), xDataTOM_V_W_XYs_initialize(), xDataTOM_V_W_XYs_LegendreSeries_initialize(), xDataTOM_W_XYs_initialize(), xDataTOM_W_XYs_LegendreSeries_initialize(), and xDataXML_XYsDataToTOM().

◆ xDataTOM_subAxes_release()

int xDataTOM_subAxes_release ( xDataTOM_subAxes subAxes)

Definition at line 118 of file xDataTOM_axes.cc.

118 {
119
120 subAxes->axes = NULL;
121 return( 0 );
122}

Referenced by xDataTOM_KalbachMann_release(), xDataTOM_polynomial_release(), xDataTOM_W_XYs_release(), and xDataTOM_XYs_release().