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

Last change on this file since 5094 was 5077, checked in by moralejo, 20 years ago
Updated in CVS after some time (see changes below)
File size: 11.9 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.25 $
22//= $Author: moralejo $
23//= $Date: 2004-09-16 15:27:08 $
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#include "Mdefine.h"
137
138//!@}
139
140//!@subsection Macro-definitions, and constants.
141
142//!@{
143
144// now we define the list PM_ITEM_LIST of possible items in
145// the parameters file. note that they are functions of
146// T(x). we will change T(x) to be the real item or the
147// string of this item when needed
148
149#define PM_ITEM_LIST /* LIST OF ITEMS IN THE PARAMETERS FILE */ \
150T(input_file), /* input file */ \
151T(starfield_file), /* starfield file */ \
152T(starfield_center),/* center of thestarfield FOV */ \
153T(data_file), /* data file */ \
154T(root_file), /* ROOT file */ \
155T(ct_num), /* number of CT, which is number of reflector files */ \
156T(ct_geom), /* class with the geometry of the CT camera */ \
157T(qe_file), /* file with the characteristics of the CT */ \
158T(elec_noise_off), /* de-activates ElecNoise for FADC and Trigger channels */\
159T(fadc_pedestal), /* Pedestal value for FADC */\
160T(fadc_noise), /* ElecNoise for FADC */\
161T(trig_noise), /* ElecNoise for trigger */\
162T(sfr_on), /* starfield rotation */ \
163T(nsb_on), /* activates NSB simulation */ \
164T(nsb_off), /* de-activates NSB simulation */ \
165T(nsb_mean), /* mean value of NSB contribution per pixel */ \
166T(nsb_directory), /* database for the NSB */ \
167T(nsb_dir_outer), /* database for the NSB */ \
168T(pixel_thres), /* value of q0 for trigger for a given pixel */ \
169T(secure_disc), /* Ac value to rise discrimnator threshold */ \
170T(seeds), /* seeds for random number generation */ \
171T(data_from_stdin), /* to read data from STDIN */ \
172T(skip), /* skip pathological showers */ \
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(select_energy), /* energy range to read: only for .phe files */ \
179T(trigger_scan), /* show signal in the diskriminator */ \
180T(fadc_scan), /* show fadc signal */ \
181T(trigger_loop), /* make loop over trigger conditions */ \
182T(trigger_prop), /* values of trigger properties */ \
183T(fadc_prop), /* values of fadc properties */ \
184T(fadc_outer), /* values of fadc properties for outer pixels */ \
185T(trigger_single), /* trigger conditions */ \
186T(Trigger_Loop_Output_Only_Specialists), /* special steercard */ \
187T(high_to_low), /* High to Low gain ratio */ \
188T(sigma_xy_cm_spot), /* Additional gaussian spread of mirror spot on camera */ \
189T(sigma_x_cm_spot), /* Additional gaussian spread of mirror in x axis spot on camera */ \
190T(sigma_y_cm_spot), /* Additional gaussian spread of mirror in y axis spot on camera */ \
191T(misspoint_deg), /* Additional misspointing of Telescope direction*/ \
192T(trigger_delay), /* Delay in ns between beginning of FADC
193 time window and the trigger instant.*/ \
194T(telescope_location_cm), /* Telescope coordinates in Corsika system */ \
195T(mirror_fraction), /* Fraction of dish mirror really operative */ \
196T(end_file) /* end of the parameters file */
197
198#define T(x) x // define T() as the name as it is
199
200enum ITEM_TYPE {
201 PM_ITEM_LIST
202};
203
204#undef T
205
206#define T(x) #x // define T() as the string of x
207
208const char *const ITEM_NAMES[] = {
209 PM_ITEM_LIST
210};
211
212#undef T
213
214#define LINE_MAX_LENGTH 400
215#define ITEM_MAX_LENGTH 40
216#define PATH_MAX_LENGTH 256
217
218//!@}
219
220//!@subsection Prototypes of functions.
221
222//!@{
223
224//++
225// prototypes
226//--
227
228void readparam(char * filename);
229char *get_input_filename(int i);
230char *get_starfield_filename(void);
231void get_starfield_center(int *rh,int *rm,int *rs,int *dd,int *dm,int *ds);
232int get_starfield_rotate(void);
233char *get_data_filename(void);
234char *get_root_filename(void);
235char *get_loop_filename(void);
236int get_ct_number(void);
237int get_ct_geometry(int ict);
238char *get_qe_filename(int ict=0);
239char *get_nsb_directory(void);
240char *get_nsb_directory_outer(void);
241int add_elec_noise(float *fadcinner, float* fadcouter,
242 float *digi, float *trig);
243int get_nsb(float *n, int *m);
244long int get_seeds(int n);
245void get_skip_showers( int *s );
246int get_nskip_showers( void );
247int get_data_from_stdin(void);
248int get_write_all_events(void);
249int get_write_McEvt(void);
250int get_write_McTrig(void);
251int get_write_McFadc(void);
252int get_write_RawEvt(void);
253int get_select_energy(float *le, float *ue);
254int get_FADC_Scan(void);
255int get_Trigger_Scan(void);
256void get_Trigger_properties(float *gl, float *ot, float *ra, float *rf);
257void get_FADC_properties(int *shape, float *ra, float *rf,int *shapeo, float *rao, float *rfo);
258float get_FADC_pedestal(void);
259int get_Trigger_Loop(float *lt, float *ut, float *st, int *lm, int *um, int *lg, int *ug);
260void get_Trigger_Single(float **t, int *m, int *g);
261void get_threshold(float *t);
262void get_secure_threhold(float *ac, float *disc);
263int get_indi_thres_pixel(void);
264float get_High_to_Low(void);
265float get_sigma_xy_cm_spot(float *x, float *y);
266int get_misspointing(float *x, float *y);
267float get_trig_delay(void);
268float get_telescope_location_cm(int j, int icoor);
269float get_mirror_fraction(int j);
270//!@}
271
272//!@{
273
274#endif // ! _creadparam_
275
276//!@}
277
278//=------------------------------------------------------------
279//!@subsection Log of this file.
280
281//!@{
282
283/*
284 * $Log: not supported by cvs2svn $
285 *
286 * Revision 1.23 2004/01/30 09:55:33 blanch
287 * New "trigger_delay" and "sigma_xy_cm_spot" commands.
288 *
289 * Revision 1.22 2003/10/26 19:51:30 blanch
290 * Header file for creadparam.cxx version 1.25
291 *
292 * Revision 1.21 2003/10/17 19:40:47 blanch
293 * *** empty log message ***
294 *
295 * Revision 1.20 2003/09/23 17:38:59 blanch
296 * *** empty log message ***
297 *
298 * Revision 1.19 2003/09/23 16:52:43 blanch
299 * Header file for creadparam.cxx 1.22
300 *
301 * Revision 1.18 2003/09/15 10:23:31 blanch
302 * Hedaer file for creadparam.cxx 1.21
303 *
304 * Revision 1.17 2003/07/17 18:05:13 blanch
305 * Header file for creadparam.cxx 1.20
306 *
307 * Revision 1.16 2003/01/14 13:37:32 blanch
308 * Option to set a dc value to rise the discriminator threshold has been added.
309 *
310 * Revision 1.15 2002/07/16 16:20:59 blanch
311 * Modifications done for the camera.cxx version, where a first implementation
312 * of the Star Field Rotation has been introduced.
313 *
314 * Revision 1.14 2002/03/15 15:17:57 blanch
315 * Header file for creadparam.cxx v 1.16
316 *
317 * Revision 1.13 2002/03/04 17:20:50 blanch
318 * Header file for creadparam.cxx 1.15
319 *
320 * Revision 1.12 2002/02/28 15:08:01 blanch
321 * Header file for creadparam.cxx 1.14.
322 *
323 * Revision 1.11 2002/01/18 17:45:37 blanch
324 * Header file for creadparam.cxx 1.13.
325 *
326 * Revision 1.10 2001/11/13 17:06:01 blanch
327 * Header file for creadparam.cxx version 1.12
328 *
329 * Revision 1.9 2001/07/19 09:29:02 blanch
330 * Header file for creadparam.cxx vrsion 1.10
331 *
332 * Revision 1.8 2001/03/05 10:44:44 blanch
333 * Header file of creadparam.cxx version 1.9
334 *
335 * Revision 1.7 2001/02/23 10:56:10 magicsol
336 * Header file for creadparam.cxx version 1.8
337 *
338 * Revision 1.6 2001/01/15 12:38:00 magicsol
339 * *** empty log message ***
340 *
341 * Revision 1.5 2000/07/04 14:13:34 MagicSol
342 * *** empty log message ***
343 *
344 * Revision 1.4 2000/05/11 14:23:28 blanch
345 * Thi version owns to the version 1.4 of creadparam.cxx.
346 *
347 * Revision 1.3 2000/03/24 18:15:46 blanch
348 * *** empty log message ***
349 *
350 * Revision 1.2 2000/02/18 17:50:07 petry
351 * This version belongs to camera.cxx 1.5.
352 * It version has been put in the repository in order to be
353 * able to share the further development with others.
354 *
355 * If you need something working, wait or take an earlier one.
356 * See file README
357 *
358 * Revision 1.1.1.1 1999/11/05 11:59:34 harald
359 * This the starting point for CVS controlled further developments of the
360 * camera program. The program was originally written by Jose Carlos.
361 * But here you can find a "rootified" version to the program. This means
362 * that there is no hbook stuff in it now. Also the output of the
363 * program changed to the MagicRawDataFormat.
364 *
365 * The "rootification" was done by Dirk Petry and Harald Kornmayer.
366 *
367 * Revision 1.2 1999/10/22 15:01:29 petry
368 * version sent to H.K. and N.M. on Fri Oct 22 1999
369 *
370 * Revision 1.1.1.1 1999/10/21 16:35:11 petry
371 * first synthesised version
372 *
373 * Revision 1.7 1999/03/15 14:59:09 gonzalez
374 * camera-1_1
375 *
376 * Revision 1.6 1999/03/02 09:56:13 gonzalez
377 * *** empty log message ***
378 *
379 * Revision 1.5 1999/01/14 17:32:43 gonzalez
380 * Added to camera the STDIN input option (data_from_input)
381 *
382 */
383
384//!@}
385//=EOF
Note: See TracBrowser for help on using the repository browser.