/* Header file: abc.h This header file defines parameters and declares external variables common to the ABC routines. */ #include #include /* Array parameters and limits */ #define maxcol 100 /* maximum (+1) color number */ #define maxdim 10 /* maximum (+1) object dimension */ #define maxgen 11 /* maximum (+1) generator number */ #define maxhit 1000 /* maximum (+1) hit number */ #define maxinc 5 /* maximum (+1) increment number (for circles) */ #define maxinp 80 /* maximum (+0) character input */ #define maxmat 100 /* maximum (+1) material number */ #define maxmdn 20 /* maximum (+1) particle decay modes */ #define maxnam 20 /* maximum (+0) character name */ #define maxobj 100 /* maximum (+1) object number */ #define maxpar 20 /* maximum (+1) input parameters */ #define maxpnt 1000 /* maximum (+1) track points */ #define maxprt 100 /* maximum (+1) particle number */ #define maxtrk 100 /* maximum (+1) track number */ /* Process tags */ extern int abctag; extern int dattag; extern int dectag; extern int drwtag; extern int lostag; extern int magtag; extern int mlttag; extern int trctag; extern int vrbtag; /* Simulator constants */ extern double inclos; extern double incmag; extern double incrad; extern double maxstp; extern double minstp; extern double minmom; extern double mintol; /* Generator data */ extern int genprt[]; extern int genflg[]; extern double genxpo[]; extern double genypo[]; extern double genzpo[]; extern double genxmo[]; extern double genymo[]; extern double genzmo[]; extern double gendmo[]; /* Detector hit data */ extern int hitnum; extern int hitprt[]; extern double hitxpo[]; extern double hitypo[]; extern double hitzpo[]; /* Track data */ extern int trknum; extern int trkpnt[]; extern int trkprt[]; extern double trktpo[][maxpnt]; extern double trkxpo[][maxpnt]; extern double trkypo[][maxpnt]; extern double trkzpo[][maxpnt]; extern double trkemo[][maxpnt]; extern double trkxmo[][maxpnt]; extern double trkymo[][maxpnt]; extern double trkzmo[][maxpnt]; /* Particle data */ extern int prtnum[]; extern int prtcol[]; extern char prtnam[][maxnam]; extern double prtchr[]; extern double prtmas[]; extern double prtlif[]; extern int prtmdn[]; extern int prtmdp[][maxmdn]; extern double prtmdb[][maxmdn]; /* Material data */ extern int matnum[]; extern char matnam[][maxnam]; extern double matatm[]; extern double matatn[]; extern double matden[]; extern double matrad[]; /* Object data */ extern int objnum[]; extern int objcol[]; extern int objmat[]; extern int objdet[]; extern char objbty[]; extern double objbmg[]; extern char objnam[][maxnam]; extern char objshp[][maxnam]; extern double objdim[][maxdim]; /* Color data */ extern double drwcol[][4]; /* Physical constants */ extern double kb; extern double me; extern double pi; /* Subroutine declarations */ void abc_com(); int abc_dec(); void abc_drw(); void abc_gen(); void abc_los(); void abc_mag(); void abc_mlt(); void com_hlp(); void com_inp(); void drw_axe(); void drw_box(); void drw_cyl(); void drw_dis(); void drw_hit(); void drw_hlp(); void drw_idl(); void drw_key(); void drw_mou(); void drw_res(); void drw_rot(); void drw_spe(); void drw_trk(); double los_bbl(); double los_rk4(); void uti_bst(); int uti_int(); int uti_loc(); double uti_rnn(); double uti_rnu(); void uti_rot();