source: trunk/MagicSoft/Simulation/Detector/ReflectorII/init.h@ 801

Last change on this file since 801 was 774, checked in by blanch, 24 years ago
Small modifications to be able to compile under Linux.
File size: 5.3 KB
Line 
1#ifndef __RFL_INIT__
2#define __RFL_INIT__
3
4/* Constant definitions */
5#define LINE_MAX_LENGTH 128 /* parsing buffer sz. */
6#define NR_OF_CPHOTONS 65535 /* CPhotons sz. */
7#define PH_IN_DATABLOCK 39 /* Photons in datablk */
8#define SHOW_ME 500 /* How many evts among two logs */
9#define FALSE 0
10#define TRUE 1
11
12/* Macros */
13#define ARRAY_SZ(A) (sizeof(A)/sizeof(A[0]))
14
15/* Tags inside reflector file */
16#define SIZE_OF_FLAGS 13
17
18#define FLAG_START_OF_RUN "\nSTART---RUN\n"
19#define FLAG_START_OF_EVENT "\nSTART-EVENT\n"
20#define FLAG_END_OF_EVENT "\nEND---EVENT\n"
21#define FLAG_END_OF_RUN "\nEND-----RUN\n"
22#define FLAG_END_OF_FILE "\nEND----FILE\n"
23#define FLAG_END_OF_STDIN "\nEND---STDIN\n"
24
25/* Prototypes */
26void init(char *filename);
27
28/* External declarations */
29extern FILE *filelist; /* filelist ptr */
30extern FILE *rflfile; /* reflector (out)file */
31extern FILE *cerfile; /* current cerfile */
32extern char cername[]; /* current cername */
33extern long first_Event; /* first proc. event */
34extern long last_Event; /* last proc. event */
35extern long max_Events; /* max proc. events */
36extern float low_Ecut; /* lower Ecut (GeV) */
37extern float high_Ecut; /* upper Ecut (GeV) */
38
39extern int is_Fixed_Target; /* fixed target? */
40extern float fixed_Theta; /* zenith angle (rad) */
41extern float fixed_Phi; /* azi (0N->90E) (rad) */
42
43extern int is_Random_Pointing; /* random pointing? */
44extern float Random_Pointing_MaxDist; /* in metres */
45extern int nRepeat_Random; /* nr of times a sh. is reused */
46extern long Seeds[2]; /* random seeds */
47
48extern FILE *ct_BinaryData; /* binary data for mirrors */
49extern char ct_BinaryName[]; /* binary data filename */
50extern float ct_Focal_mean; /* focal dist. (mean) (cm) */
51extern float ct_Focal_std; /* focal dist. (std) (cm) */
52extern float ct_PSpread_mean; /* pt. spread fn. (mean) (cm) */
53extern float ct_PSpread_std; /* pt. spread fn. (std) (cm) */
54extern float ct_Adjustment_std; /* adjustment dev. (std) (cm) */
55extern float ct_BlackSpot_rad; /* black spot radius (cm) */
56extern float ct_RMirror; /* rad. of single mirror (cm) */
57extern int ct_NMirrors; /* number of mirrors */
58extern float ct_CameraWidth; /* camera width (cm) */
59extern int ct_NPixels; /* number of pixels */
60extern float ct_PixelWidth; /* pixel width (cm) */
61
62typedef struct
63{ int i; /* mirror id */
64 float f, /* focal length (cm) */
65 sx, sy, /* curvilinear coords. (cm) */
66 x, y, z, /* rectangular coords. (cm) */
67 theta, phi, /* angles of mirror axis */
68 xn, yn, zn; /* versor of mirror axis */
69} mirror;
70
71extern mirror *ct_data; /* ptr to mirror data */
72extern int nReflectivity; /* nr of refl. table elements */
73extern float *Reflectivity[]; /* ptr to refl. table */
74extern float *AxisDeviation[]; /* ptr to axisdev. table */
75extern float *ct_Focal; /* ptr to focal data */
76
77/* Photon structures */
78typedef struct
79{ float w, /* photon wavelength (nm) */
80 x, y, /* (ground) impact point (cm) */
81 u, v, /* direction cosines */
82 t, /* arrival time (ns) */
83 h; /* production height (cm) */
84} photon;
85
86typedef struct
87{ float w, /* cphoton wavelength (nm) */
88 x, y, /* (chamber) imp. point (cm) */
89 u, v, /* direction cosines */
90 t, /* arrival time (ns) */
91 h, /* production height (cm) */
92 phi; /* (chamber) inc. angle (rad) */
93} cphoton;
94extern cphoton *CPhotons;
95
96/* Strings */
97#define RFL__START_MSG /* program, version */ \
98 "\n ################################################\n" \
99 " %s %s\n\n Simulation of the reflector\n" \
100 " - J.C. Gonzalez - May 1998\n" \
101 " Single file version\n" \
102 " - D. Bastieri & C. Bigongiari - Jan 2000\n" \
103 " ################################################\n\n"
104#define SIGN_ERROR_FTL /* program, version */ \
105 "Signature of parameters file is not correct.\n" \
106 " *** Should be: **%s %s**.\n"
107#define SKIP_TOKEN_MSG /* skipped token */ \
108 " *** Skipping unknown token [%s].\n"
109#define GEOM_NSPEC_FTL /* no parms */ \
110 "No geometry file given.\n" \
111 " *** Please specify its name after the \"ct_file\" directive.\n"
112#define CPHS_ALLOC_FTL /* cphotons */ \
113 "Cannot allocate enough memory space for %d cphotons.\n"
114#define CPHS_ALLOC_LOG /* cphotons */ \
115 "Allocated memory for %d cphotons.\n"
116#define CERF_NFND__MSG /* cername */ \
117 " *** Cerfile \"%s\" not found.\n"
118#define CERF_OPEN__LOG /* cername */ \
119 "Opened cerfile \"%s\".\n"
120#define CERF_ERROR_LOG /* cername */ \
121 "Error while reading cerfile \"%s\": skipping it.\n"
122#define EVTN_WRONG_ERR /* first, last, cername */ \
123 " *** Event boundaries [%ld, %ld] wrong for \"%s\".\n" \
124 " *** Reading all events.\n"
125#define TEMP_ERROR_FTL /* no parms */ \
126 "Cannot open a temporary file: unable to handle overflow."
127#define INFO_EVENT_LOG /* run, evt, energy */ \
128 "Run %.0f, event %.0f: energy = %f.\n"
129#define MEM__FREE__MSG /* no parms */ \
130 "Freeing up allocated memory.\n"
131#define VECT_FREE__LOG /* vector name */ \
132 " ... freeing up [%s]\n"
133#define RFLF_CLOSE_LOG /* no parms */ \
134 "Closing reflector file.\n"
135#define RFL__EXIT__MSG /* program, version */ \
136 "%s %s: done.\n\n"
137
138#endif
Note: See TracBrowser for help on using the repository browser.