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

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