#ifndef VITESS_LIB_H #define VITESS_LIB_H #include #include #include /* The Neutron structure, taken from VITESS source code "general.h" */ typedef double VectorType[3]; typedef struct { double Time; double Wavelength; double Probability; VectorType Position; VectorType Vector; } Neutron; extern char *vitess_infile; /* Neutron input file name, or NULL. */ extern char *vitess_outfile; /* Neutron output file name, or NULL. */ extern int vitess_tracepoints; /* If true, use dots as progress-indicator */ extern int vitess_repcnt; /* Number of times to repeat this neutron */ extern int vitess_bufsize; /* The buffer size for neutron read/write */ Neutron mcstas2vitess(double x, double y, double z, double vx, double vy, double vz, double t, double p); void vitess2mcstas(Neutron neu, double *x, double *y, double *z, double *vx, double *vy, double *vz, double *t, double *p); void vitess_option_error(char *opt); void vitess_parseopt(int argc, char *argv[], double *pptr[], char pchr[]); int vitess_main(int argc, char *argv[], int **check_finished, double *pptr[], char pchr[]); #endif