#ifndef __RFL_INIT__ #define __RFL_INIT__ /* Constant definitions */ #define LINE_MAX_LENGTH 128 /* parsing buffer sz. */ #define NR_OF_CPHOTONS 65535 /* CPhotons sz. */ #define PH_IN_DATABLOCK 39 /* Photons in datablk */ #define SHOW_ME 500 /* How many evts among two logs */ #define FALSE 0 #define TRUE 1 /* Macros */ #define ARRAY_SZ(A) (sizeof(A)/sizeof(A[0])) /* Tags inside reflector file */ #define SIZE_OF_FLAGS 13 #define FLAG_START_OF_RUN "\nSTART---RUN\n" #define FLAG_START_OF_EVENT "\nSTART-EVENT\n" #define FLAG_END_OF_EVENT "\nEND---EVENT\n" #define FLAG_END_OF_RUN "\nEND-----RUN\n" #define FLAG_END_OF_FILE "\nEND----FILE\n" #define FLAG_END_OF_STDIN "\nEND---STDIN\n" /* Prototypes */ void init(char *filename); /* External declarations */ extern FILE *filelist; /* filelist ptr */ extern FILE *rflfile; /* reflector (out)file */ extern FILE *cerfile; /* current cerfile */ extern char cername[]; /* current cername */ extern long first_Event; /* first proc. event */ extern long last_Event; /* last proc. event */ extern long max_Events; /* max proc. events */ extern float low_Ecut; /* lower Ecut (GeV) */ extern float high_Ecut; /* upper Ecut (GeV) */ extern int is_Fixed_Target; /* fixed target? */ extern float fixed_Theta; /* zenith angle (rad) */ extern float fixed_Phi; /* azi (0N->90E) (rad) */ extern int is_Random_Pointing; /* random pointing? */ extern float Random_Pointing_MaxDist; /* in metres */ extern int nRepeat_Random; /* nr of times a sh. is reused */ extern long Seeds[2]; /* random seeds */ extern FILE *ct_BinaryData; /* binary data for mirrors */ extern char ct_BinaryName[]; /* binary data filename */ extern float ct_Focal_mean; /* focal dist. (mean) (cm) */ extern float ct_Focal_std; /* focal dist. (std) (cm) */ extern float ct_PSpread_mean; /* pt. spread fn. (mean) (cm) */ extern float ct_PSpread_std; /* pt. spread fn. (std) (cm) */ extern float ct_Adjustment_std; /* adjustment dev. (std) (cm) */ extern float ct_BlackSpot_rad; /* black spot radius (cm) */ extern float ct_RMirror; /* rad. of single mirror (cm) */ extern int ct_NMirrors; /* number of mirrors */ extern float ct_CameraWidth; /* camera width (cm) */ extern int ct_NPixels; /* number of pixels */ extern float ct_PixelWidth; /* pixel width (cm) */ typedef struct { int i; /* mirror id */ float f, /* focal length (cm) */ sx, sy, /* curvilinear coords. (cm) */ x, y, z, /* rectangular coords. (cm) */ theta, phi, /* angles of mirror axis */ xn, yn, zn; /* versor of mirror axis */ } mirror; extern mirror *ct_data; /* ptr to mirror data */ extern int nReflectivity; /* nr of refl. table elements */ extern float *Reflectivity[]; /* ptr to refl. table */ extern float *AxisDeviation[]; /* ptr to axisdev. table */ extern float *ct_Focal; /* ptr to focal data */ /* Photon structures */ typedef struct { float w, /* photon wavelength (nm) */ x, y, /* (ground) impact point (cm) */ u, v, /* direction cosines */ t, /* arrival time (ns) */ h; /* production height (cm) */ } photon; typedef struct { float w, /* cphoton wavelength (nm) */ x, y, /* (chamber) imp. point (cm) */ u, v, /* direction cosines */ t, /* arrival time (ns) */ h, /* production height (cm) */ phi; /* (chamber) inc. angle (rad) */ } cphoton; extern cphoton *CPhotons; /* Strings */ #define RFL__START_MSG /* program, version */ \ "\n ################################################\n" \ " %s %s\n\n Simulation of the reflector\n" \ " - J.C. Gonzalez - May 1998\n" \ " Single file version\n" \ " - D. Bastieri & C. Bigongiari - Jan 2000\n" \ " ################################################\n\n" #define SIGN_ERROR_FTL /* program, version */ \ "Signature of parameters file is not correct.\n" \ " *** Should be: **%s %s**.\n" #define SKIP_TOKEN_MSG /* skipped token */ \ " *** Skipping unknown token [%s].\n" #define GEOM_NSPEC_FTL /* no parms */ \ "No geometry file given.\n" \ " *** Please specify its name after the \"ct_file\" directive.\n" #define CPHS_ALLOC_FTL /* cphotons */ \ "Cannot allocate enough memory space for %d cphotons.\n" #define CPHS_ALLOC_LOG /* cphotons */ \ "Allocated memory for %d cphotons.\n" #define CERF_NFND__MSG /* cername */ \ " *** Cerfile \"%s\" not found.\n" #define CERF_OPEN__LOG /* cername */ \ "Opened cerfile \"%s\".\n" #define CERF_ERROR_LOG /* cername */ \ "Error while reading cerfile \"%s\": skipping it.\n" #define EVTN_WRONG_ERR /* first, last, cername */ \ " *** Event boundaries [%ld, %ld] wrong for \"%s\".\n" \ " *** Reading all events.\n" #define TEMP_ERROR_FTL /* no parms */ \ "Cannot open a temporary file: unable to handle overflow." #define INFO_EVENT_LOG /* run, evt, energy */ \ "Run %.0f, event %.0f: energy = %f.\n" #define MEM__FREE__MSG /* no parms */ \ "Freeing up allocated memory.\n" #define VECT_FREE__LOG /* vector name */ \ " ... freeing up [%s]\n" #define RFLF_CLOSE_LOG /* no parms */ \ "Closing reflector file.\n" #define RFL__EXIT__MSG /* program, version */ \ "%s %s: done.\n\n" #endif