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

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