66import pyV2DL3 .constant as constant
77
88
9- def fillEVENTS (datasource , save_multiplicity = False , instrument_epoch = None ):
9+ def add_existing_column (columns , evt_dict , name , format , unit = None ):
10+ """
11+ Test if key `name` exists in `evt_dict`. If `true` add a new column to columns inplace.
12+
13+ Parameters
14+ ----------
15+ columns: list
16+ evt_dict: dict
17+ name: str
18+ Used as name for the new column and key in evt_dict.
19+ format: str
20+ unit: str or None
21+
22+ Returns
23+ -------
24+ """
25+
26+ if name in evt_dict :
27+ columns .append (
28+ fits .Column (name = name , format = format , array = evt_dict [name ], unit = unit )
29+ )
30+
1031
32+ def fillEVENTS (datasource , save_multiplicity = False , instrument_epoch = None ):
1133 logging .debug ("Create EVENT HDU" )
1234 evt_dict = datasource .get_evt_data ()
1335
@@ -19,14 +41,15 @@ def fillEVENTS(datasource, save_multiplicity=False, instrument_epoch=None):
1941 fits .Column (name = "DEC" , format = "1E" , array = evt_dict ["DEC" ], unit = "deg" ),
2042 fits .Column (name = "ENERGY" , format = "1E" , array = evt_dict ["ENERGY" ], unit = "TeV" ),
2143 ]
22- try :
23- columns .append (fits .Column ("IS_GAMMA" , format = "1L" , array = evt_dict ["IS_GAMMA" ]))
24- columns .append (
25- fits .Column ("BDT_SCORE" , format = "1E" , array = evt_dict ["BDT_SCORE" ])
26- )
27- logging .debug ("Found BDT variables in event list" )
28- except KeyError :
29- logging .debug ("No BDT variables in event list" )
44+
45+ # Test if key exists in evt_dict. If yes, add these columns.
46+ add_existing_column (columns , evt_dict , name = "ALT" , format = "1E" , unit = "deg" )
47+ add_existing_column (columns , evt_dict , name = "AZ" , format = "1E" , unit = "deg" )
48+ add_existing_column (columns , evt_dict , name = "Xoff" , format = "1E" )
49+ add_existing_column (columns , evt_dict , name = "Yoff" , format = "1E" )
50+ add_existing_column (columns , evt_dict , name = "IS_GAMMA" , format = "1L" )
51+ add_existing_column (columns , evt_dict , name = "BDT_SCORE" , format = "1E" )
52+
3053 # Number of triggered telescope if necessary
3154 if save_multiplicity :
3255 columns .append (
@@ -45,9 +68,7 @@ def fillEVENTS(datasource, save_multiplicity=False, instrument_epoch=None):
4568 hdu1 .header .set ("EQUINOX" , constant .EQUINOX , "base equinox" )
4669 hdu1 .header .set (
4770 "CREATOR" ,
48- "pyV2DL3 v{}::{}" .format (
49- constant .VERSION , datasource .get_source_name ()
50- ),
71+ "pyV2DL3 v{}::{}" .format (constant .VERSION , datasource .get_source_name ()),
5172 )
5273 hdu1 .header .set ("ORIGIN" , "VERITAS Collaboration" , "Data from VERITAS" )
5374 hdu1 .header .set ("TELESCOP" , "VERITAS" )
@@ -119,6 +140,13 @@ def fillEVENTS(datasource, save_multiplicity=False, instrument_epoch=None):
119140 "altitude of array center [m]" ,
120141 )
121142
143+ if hasattr (datasource , "__pedvar__" ):
144+ hdu1 .header .set (
145+ "PED_VAR" ,
146+ datasource .__pedvar__ ,
147+ "average pedestal variance" ,
148+ )
149+
122150 try :
123151 hdu1 .header .set (
124152 "QUALITY" ,
0 commit comments