xboa
Macros | Functions | Variables
Hitcore.c File Reference
#include <Python.h>
#include <structmember.h>
#include <string.h>
#include <stdio.h>
#include "Hitcore.h"
Include dependency graph for Hitcore.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define Hitcore_c   1
 

Functions

static void hc_Hitcore_dealloc (Hitcore *self)
 
static void hc_Hitcore_free (Hitcore *self)
 
static PyObject * hc_Hitcore_alloc (PyTypeObject *type, Py_ssize_t nitems)
 
static PyObject * hc_Hitcore_new (PyTypeObject *type, Py_ssize_t nitems)
 
static int hc_Hitcore_init (PyObject *self, PyObject *args, PyObject *kwds)
 
double hc_get_x (Hitcore *self)
 
double hc_get_y (Hitcore *self)
 
double hc_get_z (Hitcore *self)
 
double hc_get_t (Hitcore *self)
 
double hc_get_px (Hitcore *self)
 
double hc_get_py (Hitcore *self)
 
double hc_get_pz (Hitcore *self)
 
double hc_get_energy (Hitcore *self)
 
double hc_get_total_weight (Hitcore *self)
 
double hc_get_local_weight (Hitcore *self)
 
double hc_get_mass (Hitcore *self)
 
double hc_get_bx (Hitcore *self)
 
double hc_get_by (Hitcore *self)
 
double hc_get_bz (Hitcore *self)
 
double hc_get_ex (Hitcore *self)
 
double hc_get_ey (Hitcore *self)
 
double hc_get_ez (Hitcore *self)
 
double hc_get_sx (Hitcore *self)
 
double hc_get_sy (Hitcore *self)
 
double hc_get_sz (Hitcore *self)
 
double hc_get_pl (Hitcore *self)
 
double hc_get_tau (Hitcore *self)
 
double hc_get_e_dep (Hitcore *self)
 
double hc_get_charge (Hitcore *self)
 
int hc_get_spill (Hitcore *self)
 
int hc_get_event_number (Hitcore *self)
 
int hc_get_station (Hitcore *self)
 
int hc_get_pid (Hitcore *self)
 
int hc_get_status (Hitcore *self)
 
int hc_get_particle_number (Hitcore *self)
 
PyObject * weight_dict_key (Hitcore *self)
 
double hc_get_global_weight (Hitcore *self)
 
PyObject * hc_get_global_weight_dict (PyObject *self, PyObject *args)
 
static PyObject * hc_clear_global_weights (PyObject *self, PyObject *args)
 
static hc_get_dbl_function hc_get_dbl_function_by_string (const char *variable)
 
static double hc_get_dbl_by_string (Hitcore *self, const char *variable, int *ierr)
 
static hc_get_int_function hc_get_int_function_by_string (const char *variable)
 
static int hc_get_int_by_string (Hitcore *self, const char *variable, int *ierr)
 
static PyObject * hc_get_variables_to_python (PyObject *self, PyObject *args)
 
static PyObject * hc_get_python (PyObject *self, PyObject *args)
 
void hc_set_x (Hitcore *self, double value)
 
void hc_set_y (Hitcore *self, double value)
 
void hc_set_z (Hitcore *self, double value)
 
void hc_set_t (Hitcore *self, double value)
 
void hc_set_px (Hitcore *self, double value)
 
void hc_set_py (Hitcore *self, double value)
 
void hc_set_pz (Hitcore *self, double value)
 
void hc_set_energy (Hitcore *self, double value)
 
void hc_set_mass (Hitcore *self, double value)
 
void hc_set_local_weight (Hitcore *self, double weight)
 
void hc_set_bx (Hitcore *self, double value)
 
void hc_set_by (Hitcore *self, double value)
 
void hc_set_bz (Hitcore *self, double value)
 
void hc_set_ex (Hitcore *self, double value)
 
void hc_set_ey (Hitcore *self, double value)
 
void hc_set_ez (Hitcore *self, double value)
 
void hc_set_sx (Hitcore *self, double value)
 
void hc_set_sy (Hitcore *self, double value)
 
void hc_set_sz (Hitcore *self, double value)
 
void hc_set_pl (Hitcore *self, double value)
 
void hc_set_tau (Hitcore *self, double value)
 
void hc_set_e_dep (Hitcore *self, double value)
 
void hc_set_charge (Hitcore *self, double value)
 
void hc_set_station (Hitcore *self, int value)
 
void hc_set_pid (Hitcore *self, int value)
 
void hc_set_status (Hitcore *self, int value)
 
void hc_set_particle_number (Hitcore *self, int value)
 
void hc_set_spill (Hitcore *self, int value)
 
void hc_set_event_number (Hitcore *self, int value)
 
void hc_set_global_weight (Hitcore *self, double global_weight)
 
static PyObject * hc_set_variables_to_python (PyObject *self, PyObject *args)
 
static hc_set_dbl_function hc_set_dbl_function_by_string (const char *variable)
 
static void hc_set_dbl_by_string (Hitcore *self, const char *variable, double value, int *ierr)
 
static hc_set_int_function hc_set_int_function_by_string (const char *variable)
 
static void hc_set_int_by_string (Hitcore *self, const char *variable, double value, int *ierr)
 
static PyObject * hc_set_python (PyObject *self, PyObject *args)
 
static PyObject * hc_integrity_test (PyObject *self, PyObject *args)
 
PyMODINIT_FUNC initHitcore (void)
 
static vectorvector_init (void *data, size_t data_length, size_t allocd_length, size_t object_size)
 
static vectorvector_alloc (size_t object_size, int n_elements)
 
static vectorvector_realloc (vector *vec, int n_elements)
 
static void vector_free (vector *vec)
 
static void vector_insert (vector *vec, void *start, void *end, size_t insert_point, int *ierr)
 
static void * vector_el (vector *vec, int element)
 
static void * vector_el_bc (vector *vec, int element)
 
void no_warn (void)
 

Variables

PyObject * global_weight_table = NULL
 
int n_get_dbl_variables = 0
 
static __hc_get_dbl_function hc_get_dbl_function_list []
 
int n_set_dbl_variables = 0
 
static __hc_set_dbl_function hc_set_dbl_function_list []
 
int n_get_int_variables = 0
 
static __hc_get_int_function hc_get_int_function_list []
 
int n_set_int_variables = 0
 
static __hc_set_int_function hc_set_int_function_list []
 
static PyMemberDef hc_Hitcore_members []
 
static PyMethodDef hc_Hitcore_methods []
 
static PyTypeObject HitcoreType
 

Macro Definition Documentation

#define Hitcore_c   1

Definition at line 24 of file Hitcore.c.

Function Documentation

static void hc_Hitcore_dealloc ( Hitcore self)
static

Definition at line 126 of file Hitcore.c.

References hc_Hitcore_free().

static void hc_Hitcore_free ( Hitcore self)
static

Definition at line 131 of file Hitcore.c.

Referenced by hc_Hitcore_dealloc().

static PyObject* hc_Hitcore_alloc ( PyTypeObject *  type,
Py_ssize_t  nitems 
)
static

Definition at line 137 of file Hitcore.c.

Referenced by hc_Hitcore_new().

static PyObject* hc_Hitcore_new ( PyTypeObject *  type,
Py_ssize_t  nitems 
)
static
static int hc_Hitcore_init ( PyObject *  self,
PyObject *  args,
PyObject *  kwds 
)
static
double hc_get_x ( Hitcore self)

Definition at line 221 of file Hitcore.c.

double hc_get_y ( Hitcore self)

Definition at line 222 of file Hitcore.c.

double hc_get_z ( Hitcore self)

Definition at line 223 of file Hitcore.c.

double hc_get_t ( Hitcore self)

Definition at line 224 of file Hitcore.c.

double hc_get_px ( Hitcore self)

Definition at line 225 of file Hitcore.c.

double hc_get_py ( Hitcore self)

Definition at line 226 of file Hitcore.c.

double hc_get_pz ( Hitcore self)

Definition at line 227 of file Hitcore.c.

double hc_get_energy ( Hitcore self)

Definition at line 228 of file Hitcore.c.

double hc_get_total_weight ( Hitcore self)

Definition at line 230 of file Hitcore.c.

References hc_get_global_weight(), and hc_get_local_weight().

Referenced by covariance_matrix_char(), and get_moment_char().

double hc_get_local_weight ( Hitcore self)

Definition at line 231 of file Hitcore.c.

Referenced by hc_get_total_weight().

double hc_get_mass ( Hitcore self)

Definition at line 232 of file Hitcore.c.

double hc_get_bx ( Hitcore self)

Definition at line 233 of file Hitcore.c.

double hc_get_by ( Hitcore self)

Definition at line 234 of file Hitcore.c.

double hc_get_bz ( Hitcore self)

Definition at line 235 of file Hitcore.c.

double hc_get_ex ( Hitcore self)

Definition at line 236 of file Hitcore.c.

double hc_get_ey ( Hitcore self)

Definition at line 237 of file Hitcore.c.

double hc_get_ez ( Hitcore self)

Definition at line 238 of file Hitcore.c.

double hc_get_sx ( Hitcore self)

Definition at line 239 of file Hitcore.c.

double hc_get_sy ( Hitcore self)

Definition at line 240 of file Hitcore.c.

double hc_get_sz ( Hitcore self)

Definition at line 241 of file Hitcore.c.

double hc_get_pl ( Hitcore self)

Definition at line 242 of file Hitcore.c.

double hc_get_tau ( Hitcore self)

Definition at line 243 of file Hitcore.c.

double hc_get_e_dep ( Hitcore self)

Definition at line 244 of file Hitcore.c.

double hc_get_charge ( Hitcore self)

Definition at line 245 of file Hitcore.c.

int hc_get_spill ( Hitcore self)

Definition at line 247 of file Hitcore.c.

Referenced by weight_dict_key().

int hc_get_event_number ( Hitcore self)

Definition at line 248 of file Hitcore.c.

Referenced by weight_dict_key().

int hc_get_station ( Hitcore self)

Definition at line 249 of file Hitcore.c.

int hc_get_pid ( Hitcore self)

Definition at line 250 of file Hitcore.c.

int hc_get_status ( Hitcore self)

Definition at line 251 of file Hitcore.c.

int hc_get_particle_number ( Hitcore self)

Definition at line 252 of file Hitcore.c.

Referenced by weight_dict_key().

PyObject* weight_dict_key ( Hitcore self)
double hc_get_global_weight ( Hitcore self)

Definition at line 272 of file Hitcore.c.

References global_weight_table, and weight_dict_key().

Referenced by hc_get_total_weight().

PyObject* hc_get_global_weight_dict ( PyObject *  self,
PyObject *  args 
)

Definition at line 292 of file Hitcore.c.

References global_weight_table.

static PyObject* hc_clear_global_weights ( PyObject *  self,
PyObject *  args 
)
static

Definition at line 297 of file Hitcore.c.

References global_weight_table.

static hc_get_dbl_function hc_get_dbl_function_by_string ( const char *  variable)
static

Definition at line 307 of file Hitcore.c.

References hc_get_dbl_function_list, and n_get_dbl_variables.

static double hc_get_dbl_by_string ( Hitcore self,
const char *  variable,
int *  ierr 
)
static

Definition at line 318 of file Hitcore.c.

References hc_get_dbl_function_by_string.

Referenced by hc_get_python().

static hc_get_int_function hc_get_int_function_by_string ( const char *  variable)
static

Definition at line 330 of file Hitcore.c.

References hc_get_int_function_list, and n_get_int_variables.

Referenced by hc_get_int_by_string().

static int hc_get_int_by_string ( Hitcore self,
const char *  variable,
int *  ierr 
)
static

Definition at line 342 of file Hitcore.c.

References hc_get_int_function_by_string().

Referenced by hc_get_python().

static PyObject* hc_get_variables_to_python ( PyObject *  self,
PyObject *  args 
)
static

Definition at line 354 of file Hitcore.c.

References hc_get_dbl_function_list, and hc_get_int_function_list.

static PyObject* hc_get_python ( PyObject *  self,
PyObject *  args 
)
static

Definition at line 366 of file Hitcore.c.

References hc_get_dbl_by_string(), and hc_get_int_by_string().

void hc_set_x ( Hitcore self,
double  value 
)

Definition at line 391 of file Hitcore.c.

void hc_set_y ( Hitcore self,
double  value 
)

Definition at line 392 of file Hitcore.c.

void hc_set_z ( Hitcore self,
double  value 
)

Definition at line 393 of file Hitcore.c.

void hc_set_t ( Hitcore self,
double  value 
)

Definition at line 394 of file Hitcore.c.

void hc_set_px ( Hitcore self,
double  value 
)

Definition at line 395 of file Hitcore.c.

void hc_set_py ( Hitcore self,
double  value 
)

Definition at line 396 of file Hitcore.c.

void hc_set_pz ( Hitcore self,
double  value 
)

Definition at line 397 of file Hitcore.c.

void hc_set_energy ( Hitcore self,
double  value 
)

Definition at line 398 of file Hitcore.c.

void hc_set_mass ( Hitcore self,
double  value 
)

Definition at line 399 of file Hitcore.c.

void hc_set_local_weight ( Hitcore self,
double  weight 
)

Definition at line 400 of file Hitcore.c.

Referenced by _cut_double(), import_hitcore(), and initHitcore().

void hc_set_bx ( Hitcore self,
double  value 
)

Definition at line 401 of file Hitcore.c.

void hc_set_by ( Hitcore self,
double  value 
)

Definition at line 402 of file Hitcore.c.

void hc_set_bz ( Hitcore self,
double  value 
)

Definition at line 403 of file Hitcore.c.

void hc_set_ex ( Hitcore self,
double  value 
)

Definition at line 404 of file Hitcore.c.

void hc_set_ey ( Hitcore self,
double  value 
)

Definition at line 405 of file Hitcore.c.

void hc_set_ez ( Hitcore self,
double  value 
)

Definition at line 406 of file Hitcore.c.

void hc_set_sx ( Hitcore self,
double  value 
)

Definition at line 407 of file Hitcore.c.

void hc_set_sy ( Hitcore self,
double  value 
)

Definition at line 408 of file Hitcore.c.

void hc_set_sz ( Hitcore self,
double  value 
)

Definition at line 409 of file Hitcore.c.

void hc_set_pl ( Hitcore self,
double  value 
)

Definition at line 410 of file Hitcore.c.

void hc_set_tau ( Hitcore self,
double  value 
)

Definition at line 411 of file Hitcore.c.

void hc_set_e_dep ( Hitcore self,
double  value 
)

Definition at line 412 of file Hitcore.c.

void hc_set_charge ( Hitcore self,
double  value 
)

Definition at line 413 of file Hitcore.c.

void hc_set_station ( Hitcore self,
int  value 
)

Definition at line 416 of file Hitcore.c.

void hc_set_pid ( Hitcore self,
int  value 
)

Definition at line 417 of file Hitcore.c.

void hc_set_status ( Hitcore self,
int  value 
)

Definition at line 418 of file Hitcore.c.

void hc_set_particle_number ( Hitcore self,
int  value 
)

Definition at line 419 of file Hitcore.c.

void hc_set_spill ( Hitcore self,
int  value 
)

Definition at line 420 of file Hitcore.c.

void hc_set_event_number ( Hitcore self,
int  value 
)

Definition at line 421 of file Hitcore.c.

void hc_set_global_weight ( Hitcore self,
double  global_weight 
)

Definition at line 423 of file Hitcore.c.

References global_weight_table, and weight_dict_key().

Referenced by _cut_double(), import_hitcore(), and initHitcore().

static PyObject* hc_set_variables_to_python ( PyObject *  self,
PyObject *  args 
)
static

Definition at line 433 of file Hitcore.c.

References hc_set_dbl_function_list, and hc_set_int_function_list.

static hc_set_dbl_function hc_set_dbl_function_by_string ( const char *  variable)
static

Definition at line 445 of file Hitcore.c.

References hc_set_dbl_function_list, and n_set_dbl_variables.

Referenced by hc_set_dbl_by_string().

static void hc_set_dbl_by_string ( Hitcore self,
const char *  variable,
double  value,
int *  ierr 
)
static

Definition at line 454 of file Hitcore.c.

References hc_set_dbl_function_by_string().

Referenced by hc_set_python().

static hc_set_int_function hc_set_int_function_by_string ( const char *  variable)
static

Definition at line 461 of file Hitcore.c.

References hc_set_int_function_list, and n_set_int_variables.

Referenced by hc_set_int_by_string().

static void hc_set_int_by_string ( Hitcore self,
const char *  variable,
double  value,
int *  ierr 
)
static

Definition at line 472 of file Hitcore.c.

References hc_set_int_function_by_string().

Referenced by hc_set_python().

static PyObject* hc_set_python ( PyObject *  self,
PyObject *  args 
)
static

Definition at line 480 of file Hitcore.c.

References hc_set_dbl_by_string(), and hc_set_int_by_string().

static PyObject* hc_integrity_test ( PyObject *  self,
PyObject *  args 
)
static
PyMODINIT_FUNC initHitcore ( void  )
static vector* vector_init ( void *  data,
size_t  data_length,
size_t  allocd_length,
size_t  object_size 
)
static

Definition at line 671 of file Hitcore.c.

References vector::allocd_length, vector::data, vector::data_length, and vector::object_size.

Referenced by initHitcore().

static vector* vector_alloc ( size_t  object_size,
int  n_elements 
)
static

Definition at line 683 of file Hitcore.c.

References vector::allocd_length, vector::data, vector::data_length, and vector::object_size.

Referenced by initHitcore().

static vector* vector_realloc ( vector vec,
int  n_elements 
)
static

Definition at line 696 of file Hitcore.c.

References vector::allocd_length, vector::data, vector::data_length, and vector::object_size.

Referenced by initHitcore().

static void vector_free ( vector vec)
static

Definition at line 706 of file Hitcore.c.

References vector::data.

Referenced by initHitcore(), and no_warn().

static void vector_insert ( vector vec,
void *  start,
void *  end,
size_t  insert_point,
int *  ierr 
)
static

Definition at line 716 of file Hitcore.c.

References vector::allocd_length, vector::data, and vector::data_length.

Referenced by initHitcore().

static void* vector_el ( vector vec,
int  element 
)
static

Definition at line 737 of file Hitcore.c.

References vector::data, and vector::object_size.

Referenced by initHitcore().

static void* vector_el_bc ( vector vec,
int  element 
)
static

Definition at line 742 of file Hitcore.c.

References vector::data, vector::data_length, and vector::object_size.

Referenced by initHitcore().

void no_warn ( void  )

Definition at line 751 of file Hitcore.c.

References Bunchcore_shallow_copy(), and vector_free().

Variable Documentation

PyObject* global_weight_table = NULL
int n_get_dbl_variables = 0

Definition at line 36 of file Hitcore.c.

Referenced by hc_get_dbl_function_by_string(), hc_integrity_test(), and initHitcore().

__hc_get_dbl_function hc_get_dbl_function_list[]
static
Initial value:
= {
{"x", hc_get_x},
{"y", hc_get_y},
{"z", hc_get_z},
{"t", hc_get_t},
{"px", hc_get_px},
{"py", hc_get_py},
{"pz", hc_get_pz},
{"energy", hc_get_energy},
{"mass", hc_get_mass},
{"local_weight", hc_get_local_weight},
{"global_weight", hc_get_global_weight},
{"weight", hc_get_total_weight},
{"bx", hc_get_bx},
{"by", hc_get_by},
{"bz", hc_get_bz},
{"ex", hc_get_ex},
{"ey", hc_get_ey},
{"ez", hc_get_ez},
{"sx", hc_get_sx},
{"sy", hc_get_sy},
{"sz", hc_get_sz},
{"path_length", hc_get_pl},
{"proper_time", hc_get_tau},
{"e_dep", hc_get_e_dep},
{"charge", hc_get_charge},
{NULL, NULL},
}

Definition at line 37 of file Hitcore.c.

Referenced by hc_get_dbl_function_by_string(), hc_get_variables_to_python(), hc_integrity_test(), and initHitcore().

int n_set_dbl_variables = 0

Definition at line 69 of file Hitcore.c.

Referenced by hc_integrity_test(), hc_set_dbl_function_by_string(), and initHitcore().

__hc_set_dbl_function hc_set_dbl_function_list[]
static
Initial value:
= {
{"x", hc_set_x},
{"y", hc_set_y},
{"z", hc_set_z},
{"t", hc_set_t},
{"px", hc_set_px},
{"py", hc_set_py},
{"pz", hc_set_pz},
{"energy", hc_set_energy},
{"mass", hc_set_mass},
{"local_weight", hc_set_local_weight},
{"global_weight", hc_set_global_weight},
{"bx", hc_set_bx},
{"by", hc_set_by},
{"bz", hc_set_bz},
{"ex", hc_set_ex},
{"ey", hc_set_ey},
{"ez", hc_set_ez},
{"sx", hc_set_sx},
{"sy", hc_set_sy},
{"sz", hc_set_sz},
{"path_length", hc_set_pl},
{"proper_time", hc_set_tau},
{"e_dep", hc_set_e_dep},
{"charge", hc_set_charge},
{NULL, NULL},
}

Definition at line 70 of file Hitcore.c.

Referenced by hc_integrity_test(), hc_set_dbl_function_by_string(), hc_set_variables_to_python(), and initHitcore().

int n_get_int_variables = 0

Definition at line 99 of file Hitcore.c.

Referenced by hc_get_int_function_by_string(), hc_integrity_test(), and initHitcore().

__hc_get_int_function hc_get_int_function_list[]
static
Initial value:
= {
{"event_number",hc_get_event_number},
{"station", hc_get_station},
{"pid", hc_get_pid},
{"status", hc_get_status},
{"spill", hc_get_spill},
{"particle_number", hc_get_particle_number},
{"eventNumber", hc_get_event_number},
{"particleNumber", hc_get_particle_number},
{NULL,NULL},
}

Definition at line 100 of file Hitcore.c.

Referenced by hc_get_int_function_by_string(), hc_get_variables_to_python(), hc_integrity_test(), and initHitcore().

int n_set_int_variables = 0

Definition at line 113 of file Hitcore.c.

Referenced by hc_integrity_test(), hc_set_int_function_by_string(), and initHitcore().

__hc_set_int_function hc_set_int_function_list[]
static
Initial value:
= {
{"event_number",hc_set_event_number},
{"station", hc_set_station},
{"pid", hc_set_pid},
{"status", hc_set_status},
{"spill", hc_set_spill},
{"particle_number", hc_set_particle_number},
{"eventNumber", hc_set_event_number},
{"particleNumber", hc_set_particle_number},
{NULL,NULL},
}

Definition at line 114 of file Hitcore.c.

Referenced by hc_integrity_test(), hc_set_int_function_by_string(), hc_set_variables_to_python(), and initHitcore().

PyMemberDef hc_Hitcore_members[]
static

Definition at line 504 of file Hitcore.c.

PyMethodDef hc_Hitcore_methods[]
static
Initial value:
= {
{"get", (PyCFunction)hc_get_python, METH_VARARGS, "Get variable data"},
{"get_variables", (PyCFunction)hc_get_variables_to_python, METH_STATIC, "List of <var> strings appropriate for calls to get(<var>)"},
{"set", (PyCFunction)hc_set_python, METH_VARARGS, "Set variable data"},
{"set_variables", (PyCFunction)hc_set_variables_to_python, METH_STATIC, "List of <var> strings appropriate for calls to get(<var>)"},
{"clear_global_weights",(PyCFunction)hc_clear_global_weights, METH_STATIC, "Set all global weights to 1"},
{"get_weight_dict", (PyCFunction)hc_get_global_weight_dict, METH_STATIC, "Get the dictionary containing global weights - please don't edit unless you know what you are doing"},
{"integrity_test", (PyCFunction)hc_integrity_test, METH_STATIC, "Internal integrity check for Hitcore"},
{NULL}
}

Definition at line 537 of file Hitcore.c.

PyTypeObject HitcoreType
static

Definition at line 576 of file Hitcore.c.