source: trunk/MagicSoft/Simulation/Detector/Camera/creadparam.h@ 885

Last change on this file since 885 was 885, checked in by blanch, 23 years ago
Header file for creadparam.cxx vrsion 1.10
File size: 9.2 KB
Line 
1//=//////////////////////////////////////////////////////////////////////
2//=
3//= creadparam
4//=
5//= @file creadparam.h
6//= @desc Header file
7//= @author J C Gonzalez
8//= @email gonzalez@mppmu.mpg.de
9//= @date Thu May 7 16:24:22 1998
10//=
11//=----------------------------------------------------------------------
12//=
13//= Created: Thu May 7 16:24:22 1998
14//= Author: Jose Carlos Gonzalez
15//= Purpose: Program for reflector simulation
16//= Notes: See files README for details
17//=
18//=----------------------------------------------------------------------
19//=
20//= $RCSfile: creadparam.h,v $
21//= $Revision: 1.9 $
22//= $Author: blanch $
23//= $Date: 2001-07-19 09:29:02 $
24//=
25//=//////////////////////////////////////////////////////////////////////
26
27// @T \newpage
28
29//!@section Source code of |creadparam.h|.
30
31/*!@"
32
33 In this section you can find the source code for the file
34 |creadparam.h|. This file is mainly needed by
35 |creadparam.cxx|. Here is located the definition of the commands you
36 can use in the parameters file. In this file, the first line must be
37 |camera 'version'|, where |'version'| is the appropiate version of
38 the output format (NOT the version of the camera program) which can
39 read the commands written in that parameters file. You cannot mix
40 parameters files and executables with different versions. The
41 current version is |camera 0.2|.
42
43 The commands now available for the parameters file are:
44
45 @itemize
46
47 @- |input_file| filename :
48 Sets the name of the input file (|.rfl|).
49 @- |starfield_file| filename :
50 Sets the name of the starfield input file (|.rfl|).
51 @- |ct_file| filename :
52 Sets the name of the CT definition file (|.def|).
53 @- |data_file| filename :
54 Sets the name of the output data file (|.dat|).
55 @- |nsb_on| :
56 Activates the NSB simulation. This is the default.
57 @- |nsb_off| :
58 De-activates the NSB simulation.
59 @- |nsb_mean| number :
60 Sets the mean value for the NSB.
61 Default value: 6 for CT1, 6 for MAGIC.
62 This implies always |nsb_on|.
63 @- |threshold| number :
64 Sets the Threshold value q0. Default value: 10.
65 @- |tail_cut| number :
66 Sets the Tail-Cut value.
67 Default value: 7.
68 @- |islands_cut| number :
69 Sets the Islands-Cut value i0.
70 Default value: 10.
71 @- |end_file|
72 Last command in the parameters file.
73
74 @enditemize
75
76 @ignoreHTML
77 A parameters file (a small one) looks like this:
78
79 |camera 0.2|
80
81 |input_file gm100-500.rfl|
82
83 |output_file gm100-500.phe|
84
85 |output_file gm100-500.dat|
86
87 |ct_file magic.def|
88
89 |threshold 10.0|
90
91 |tail_cut 7.0|
92
93 |nsb_mean 5.0|
94
95 |end_file|
96 @endignoreHTML
97
98@"*/
99
100//!@{
101
102#ifndef _creadparam_
103#define _creadparam_
104
105#ifndef _this_
106#define _this_ creadparam
107#endif
108
109//!@}
110
111//!@subsection Include files.
112
113//!@{
114
115#include <iostream.h>
116#include <fstream.h>
117#include <stdlib.h>
118#include <stdio.h>
119#include <string.h>
120#include <math.h>
121#include <float.h>
122
123#include "jcmacros.h"
124#include "jcdebug.h"
125
126#include "camera-v.h"
127
128#include "MTriggerDefine.h"
129#include "MFadcDefine.h"
130
131//!@}
132
133//!@subsection Macro-definitions, and constants.
134
135//!@{
136
137// now we define the list ITEM_LIST of possible items in
138// the parameters file. note that they are functions of
139// T(x). we will change T(x) to be the real item or the
140// string of this item when needed
141
142#define ITEM_LIST /* LIST OF ITEMS IN THE PARAMETERS FILE */ \
143T(input_file), /* input file */ \
144T(starfield_file), /* starfield file */ \
145T(data_file), /* data file */ \
146T(root_file), /* ROOT file */ \
147T(ct_file), /* file with the characteristics of the CT */ \
148T(ana_pixels), /* size of the camera for parameters calculation */ \
149T(nsb_on), /* activates NSB simulation */ \
150T(nsb_off), /* de-activates NSB simulation */ \
151T(nsb_mean), /* mean value of NSB contribution per pixel */ \
152T(nsb_directory), /* database for the NSB */ \
153T(pixel_thres), /* value of q0 for trigger for a given pixel */ \
154T(tail_cut), /* value of tail cut (t0) */ \
155T(islands_on), /* DO count islands */ \
156T(islands_off), /* do NOT count islands */ \
157T(islands_cut), /* value of islands cut (i0) */ \
158T(seeds), /* seeds for random number generation */ \
159T(data_from_stdin), /* to read data from STDIN */ \
160T(skip), /* skip pathological showers */ \
161T(read_phe_all), /* id., but was processed with write_all_images */ \
162T(read_phe), /* read an already camera processed file */ \
163T(write_all_images),/* write to file .phe ALL images (even w.o. trigger)*/ \
164T(nowrite_McEvt), /* nowrite to file .root McEvt infos */ \
165T(write_McTrig), /* write to file .root McTrig infos */ \
166T(write_McFadc), /* write to file .root McFadc infos */ \
167T(write_all_data), /* write to file .dat ALL image data */ \
168T(select_energy), /* energy range to read: only for .phe files */ \
169T(trigger_radius), /* trigger radius for the camera */ \
170T(correction), /* factor for correction in the pixel values */ \
171T(trigger_scan), /* show signal in the diskriminator */ \
172T(fadc_scan), /* show fadc signal */ \
173T(trigger_loop), /* make loop over trigger conditions */ \
174T(trigger_prop), /* values of trigger properties */ \
175T(fadc_prop), /* values of fadc properties */ \
176T(trigger_single), /* trigger conditions */ \
177T(Trigger_Loop_Output_Only_Specialists), /* special steercard */ \
178T(end_file) /* end of the parameters file */
179
180#define T(x) x // define T() as the name as it is
181
182enum ITEM_TYPE {
183 ITEM_LIST
184};
185
186#undef T
187
188#define T(x) #x // define T() as the string of x
189
190const char *const ITEM_NAMES[] = {
191 ITEM_LIST
192};
193
194#undef T
195
196#define LINE_MAX_LENGTH 400
197#define ITEM_MAX_LENGTH 40
198#define PATH_MAX_LENGTH 120
199
200// mean values of NSB contribution per pixel
201
202static const float Mean_NSB_MAGIC = 5.0; //@< for MAGIC
203static const float Mean_NSB_CT1 = 5.0; //@< for CT1
204
205//!@}
206
207//!@subsection Prototypes of functions.
208
209//!@{
210
211//++
212// prototypes
213//--
214
215void readparam(char * filename);
216char *get_input_filename(void);
217char *get_starfield_filename(void);
218char *get_data_filename(void);
219char *get_root_filename(void);
220char *get_loop_filename(void);
221char *get_ct_filename(void);
222char *get_nsb_directory(void);
223int get_nsb(float *n, int *m);
224float get_tail_cut(void);
225int get_islands_cut(int *n);
226long int get_seeds(int n);
227int get_ana_pixels(void);
228void get_skip_showers( int *s );
229int get_nskip_showers( void );
230int get_data_from_stdin(void);
231int get_read_phe(void);
232int get_read_phe_all(void);
233int get_write_all_images(void);
234//
235int get_write_McEvt(void);
236int get_write_McTrig(void);
237int get_write_McFadc(void);
238int get_write_RawEvt(void);
239//
240int get_write_all_data(void);
241int get_select_energy(float *le, float *ue);
242int get_trigger_radius(float *radius);
243int get_correction(float *corr);
244int get_FADC_Scan(void);
245int get_Trigger_Scan(void);
246void get_Trigger_properties(float *gl, float *ot, float *ra, float *rf);
247void get_FADC_properties(float *ra, float *rf);
248int get_Trigger_Loop(int *lt, int *ut, int *lm, int *um, int *lg, int *ug);
249void get_Trigger_Single(float *t, int *m, int *g);
250void get_threshold(float *t);
251int get_indi_thres_pixel(void);
252//!@}
253
254//!@{
255
256#endif // ! _creadparam_
257
258//!@}
259
260//=------------------------------------------------------------
261//!@subsection Log of this file.
262
263//!@{
264
265/*
266 * $Log: not supported by cvs2svn $
267 * Revision 1.8 2001/03/05 10:44:44 blanch
268 * Header file of creadparam.cxx version 1.9
269 *
270 * Revision 1.7 2001/02/23 10:56:10 magicsol
271 * Header file for creadparam.cxx version 1.8
272 *
273 * Revision 1.6 2001/01/15 12:38:00 magicsol
274 * *** empty log message ***
275 *
276 * Revision 1.5 2000/07/04 14:13:34 MagicSol
277 * *** empty log message ***
278 *
279 * Revision 1.4 2000/05/11 14:23:28 blanch
280 * Thi version owns to the version 1.4 of creadparam.cxx.
281 *
282 * Revision 1.3 2000/03/24 18:15:46 blanch
283 * *** empty log message ***
284 *
285 * Revision 1.2 2000/02/18 17:50:07 petry
286 * This version belongs to camera.cxx 1.5.
287 * It version has been put in the repository in order to be
288 * able to share the further development with others.
289 *
290 * If you need something working, wait or take an earlier one.
291 * See file README
292 *
293 * Revision 1.1.1.1 1999/11/05 11:59:34 harald
294 * This the starting point for CVS controlled further developments of the
295 * camera program. The program was originally written by Jose Carlos.
296 * But here you can find a "rootified" version to the program. This means
297 * that there is no hbook stuff in it now. Also the output of the
298 * program changed to the MagicRawDataFormat.
299 *
300 * The "rootification" was done by Dirk Petry and Harald Kornmayer.
301 *
302 * Revision 1.2 1999/10/22 15:01:29 petry
303 * version sent to H.K. and N.M. on Fri Oct 22 1999
304 *
305 * Revision 1.1.1.1 1999/10/21 16:35:11 petry
306 * first synthesised version
307 *
308 * Revision 1.7 1999/03/15 14:59:09 gonzalez
309 * camera-1_1
310 *
311 * Revision 1.6 1999/03/02 09:56:13 gonzalez
312 * *** empty log message ***
313 *
314 * Revision 1.5 1999/01/14 17:32:43 gonzalez
315 * Added to camera the STDIN input option (data_from_input)
316 *
317 */
318
319//!@}
320//=EOF
Note: See TracBrowser for help on using the repository browser.