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

Last change on this file since 1431 was 1431, checked in by bigongia, 22 years ago
*** empty log message ***
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 float Telescope_x, Telescope_y; /* Telescope coordinates (cm) */
44
45extern int is_Random_Pointing; /* random pointing? */
46extern float Random_Pointing_MaxDist; /* in metres */
47extern int nRepeat_Random; /* nr of times a sh. is reused */
48extern long Seeds[2]; /* random seeds */
49
50extern FILE *ct_BinaryData; /* binary data for mirrors */
51extern char ct_BinaryName[]; /* binary data filename */
52extern float ct_Focal_mean; /* focal dist. (mean) (cm) */
53extern float ct_PSpread_mean; /* pt. spread fn. (mean) (cm) */
54extern float ct_PSpread_std; /* pt. spread fn. (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
62
63typedef struct
64{ int i; /* mirror id */
65 float f, /* focal length (cm) */
66 sx, sy, /* curvilinear coords. (cm) */
67 x, y, z, /* rectangular coords. (cm) */
68 theta, phi, /* angles of mirror axis */
69 xn, yn, zn; /* versor of mirror axis */
70} mirror;
71
72extern mirror *ct_data; /* ptr to mirror data */
73extern int nReflectivity; /* nr of refl. table elements */
74extern float *Reflectivity[]; /* ptr to refl. table */
75extern float *AxisDeviation[]; /* ptr to axisdev. table */
76extern float *ct_Focal; /* ptr to focal data */
77
78/* Photon structures */
79typedef struct
80{ float w, /* photon wavelength (nm) */
81 x, y, /* (ground) impact point (cm) */
82 u, v, /* direction cosines */
83 t, /* arrival time (ns) */
84 h; /* production height (cm) */
85} photon;
86
87typedef struct
88{ float w, /* cphoton wavelength (nm) */
89 x, y, /* (chamber) imp. point (cm) */
90 u, v, /* direction cosines */
91 t, /* arrival time (ns) */
92 h, /* production height (cm) */
93 phi; /* (chamber) inc. angle (rad) */
94} cphoton;
95extern cphoton *CPhotons;
96
97/* Strings */
98#define RFL__START_MSG /* program, version */ \
99 "\n ################################################\n" \
100 " %s %s\n\n Simulation of the reflector\n" \
101 " - J.C. Gonzalez - May 1998\n" \
102 " Single file version\n" \
103 " - D. Bastieri & C. Bigongiari - Jan 2000\n" \
104 " ################################################\n\n"
105#define SIGN_ERROR_FTL /* program, version */ \
106 "Signature of parameters file is not correct.\n" \
107 " *** Should be: **%s %s**.\n"
108#define SKIP_TOKEN_MSG /* skipped token */ \
109 " *** Skipping unknown token [%s].\n"
110#define GEOM_NSPEC_FTL /* no parms */ \
111 "No geometry file given.\n" \
112 " *** Please specify its name after the \"ct_file\" directive.\n"
113#define CPHS_ALLOC_FTL /* cphotons */ \
114 "Cannot allocate enough memory space for %d cphotons.\n"
115#define CPHS_ALLOC_LOG /* cphotons */ \
116 "Allocated memory for %d cphotons.\n"
117#define CERF_NFND__MSG /* cername */ \
118 " *** Cerfile \"%s\" not found.\n"
119#define CERF_OPEN__LOG /* cername */ \
120 "Opened cerfile \"%s\".\n"
121#define CERF_ERROR_LOG /* cername */ \
122 "Error while reading cerfile \"%s\": skipping it.\n"
123#define EVTN_WRONG_ERR /* first, last, cername */ \
124 " *** Event boundaries [%ld, %ld] wrong for \"%s\".\n" \
125 " *** Reading all events.\n"
126#define TEMP_ERROR_FTL /* no parms */ \
127 "Cannot open a temporary file: unable to handle overflow."
128#define INFO_EVENT_LOG /* run, evt, energy */ \
129 "Run %.0f, event %.0f: energy = %f.\n"
130#define MEM__FREE__MSG /* no parms */ \
131 "Freeing up allocated memory.\n"
132#define VECT_FREE__LOG /* vector name */ \
133 " ... freeing up [%s]\n"
134#define RFLF_CLOSE_LOG /* no parms */ \
135 "Closing reflector file.\n"
136#define RFL__EXIT__MSG /* program, version */ \
137 "%s %s: done.\n\n"
138
139#endif
Note: See TracBrowser for help on using the repository browser.