IACT event lists¶
This document describes IACT DL3 event lists.
Event lists are stored in FITS files with two required and one optional extensions (HDUs).
- Suggested filename:
events_OBS_ID.fits.gz - Suggested HDU name events:
EVENTS - Suggested HDU name good time intervals:
GTI - Suggested HDU name telescope array:
TELARRAY
EVENTS extension¶
The first extension contains characteristic information about each event.
Suggested extension name EVENTS. These information are stored in a FITS
binary table. The columns are listed below. In addition, a list of header
keywords to be contained in each FITS event list is also documented. Many of the
keywords are not necessarily required for an analysis. The information is,
however, included as meta data in the event lists to enable instrument-dependent
studies and selections of particular observations.
Required columns¶
EVENT_IDtype: int- Event identification number at the DL3 level (lower data levels could be different, see note below).
- Required: The pair (
OBS_ID,`EVENT_ID) must be globally unique for all events from a given instrument. (to be discussed … it’s not clear if CTA will have “runs”OBS_ID) - Required:
EVENT_IDshould increase monotonically withTIME. (to be discussed if this should be changed to a recommendation only) - Required: event lists should be sorted by
EVENT_IDandTIME. (to be discussed if this should be changed to a recommendation only)
TIMEtype: double, unit: s- Time stamp of event in MET
RAtype: float, unit: deg- Event right ascension (see RA / DEC)
DECtype: float, unit: deg- Event declination (see RA / DEC)
ENERGYtype: float, unit: TeV- Reconstructed event energy
Notes on EVENT_ID¶
This paragraph contains some explanatory notes concerning the requirements
and recommendations on EVENT_ID.
Most analyses with high-level science tools don’t need EVENT_ID information.
But being able to uniquely identify every event is important, e.g. when
comparing the high-level reconstructed event parameters (RA, DEC,
ENERGY) for different calibrations, reconstructions or gamma-hadron
separations.
Assigning a unique EVENT_ID during data taking can be difficult or
impossible. E.g. in H.E.S.S. we have two numbers BUNCH_ID_HESS and
EVENT_ID_HESS that only together uniquely identify an event within a given
run (i.e. OBS_ID). Probably the scheme to uniquely identify events at the
DL0 level for CTA will be even more complicated, because of the much larger
number of telescopes and events.
So given that data taking and event identification is different for every IACT
at low data levels and is already fixed for existing IACTs, we propose here
to have an EVENT_ID that is simpler and works the same for all IACTs at
the DL3 level.
As an example: for H.E.S.S. we achive this by using an INT64 for EVENT_ID
and to store EVENT_ID = (BUNCH_ID_HESS << 32) || (EVENT_ID_HESS), i.e.
use the upper bits to contain the low-level bunch ID and the lower bits
to contains the low-level event ID.
This encoding is unique and reversible, i.e. it’s easy to go back to
BUNCH_ID_HESS and EVENT_ID_HESS for a given EVENT_ID,
and to low-level checks (e.g. look at the shower images for a given event
that behaves strangely in reconstructed high-level parameters).
Optional Column Names¶
MULTIPtype: int- Telescope multiplicity. Number of telescopes that have seen the event
OBS_IDtype: int- Unique observation identifier (Run number)
DIR_ERRtype: float, unit: deg- Direction error of reconstruction
ENERGY_ERRtype: float, unit: TeV- Error on reconstructed event energy
ALTtype: float, unit: deg- Altitude coordinate of event (horizon system, see Alt / Az)
AZtype: float, unit: deg- Azmuth coordinate of event (horizon system, see Alt / Az)
DETXtype: float, unit: deg- X-coordinate in detector system (nominal system, see Field of view)
DETYtype: float, unit: deg- Y-coordinate in detector system (nominal system, see Field of view)
THETAtype: float, unit: deg- Offset from the observation pointing position
COREXtype: float, unit: m- Core position X of shower
COREYtype: float, unit: m- Core position Y of shower
CORE_ERRtype: float, unit: m- Error on core position of shower
XMAXtype: float, unit: radiation lengths- First interaction depth
XMAX_ERRtype: float, unit: radiation lengths- Error on first interaction depth
HIL_MSWtype: float- Hillas mean scaled width
HIL_MSW_ERRtype: float- Hillas mean scaled width error
HIL_MSLtype: float- Hillas mean scaled length
HIL_MSL_ERRtype: float- Hillas mean scaled length error
Required Header keywords:¶
OBS_IDtype: int- Unique observation identifier (Run number)
TELESCOPtype: int- Telescope (e.g. ‘HESS’)
TSTARTtype: float, unit: s- Start time of observation [MET]
TSTOPtype: float, unit: s- End time of observation [MET]
TSTART_STRtype: string- Start of observation in UTC string format: “YYYY-MM-DD HH:MM:SS”
TSTOP_STRtype: string- End of observation in UTC string format: “YYYY-MM-DD HH:MM:SS”
MJDREFItype: int, unit: days- Integer part of MJD time reference
MJDREFFtype: float, unit: days- Float part of MJD time reference
ONTIMEtype: float, unit: s- Total observation time (including dead time).
- Equals
TSTOP-TSTART
LIVETIMEtype: float, unit: s- Total livetime (observation minus dead time)
DEADCtype: float- Dead time correction.
- It is defined such that
LIVETIME=DEADC*ONTIMEi.e. the fraction of time the telescope was actually able to take data.
OBJECTtype: string- Observed object
RA_PNTtype: float, unit: deg- Obsevation pointing right ascension (see RA / DEC)
DEC_PNTtype: float, unit: deg- Observation pointing declination (see RA / DEC)
ALT_PNTfloat, deg- Observation pointing altitude at observation mid-time
TMID(see Alt / Az)
- Observation pointing altitude at observation mid-time
AZ_PNTtype: float, unit: deg- Observation pointing azimuth at observation mid-time
TMID(see Alt / Az)
- Observation pointing azimuth at observation mid-time
RA_OBJtype: float, unit: deg- Right ascension of
OBJECT
- Right ascension of
DEC_OBJtype: float, unit: deg- Declination of
OBJECT
- Declination of
TELLISTtype: string- Telescope IDs in observation (e.g. ‘1,2,3,4’)
N_TELStype: int- Number of observing telescopes
EUNITtype: string- Unit of energies in event list (e.g. ‘TeV’)
GEOLONtype: float, unit: deg- Geographic longitude of array centre (e.g. -23.27 for HESS)
GEOLATtype: float, unit: deg- Geographic latitude of array centre (e.g. -16.5 for HESS)
ALTITUDEtype: float, unit: km- Altitude of array center above sea level (1.835 for HESS)
Optional header keywords¶
OBSERVERtype: string- Name of observer (e.g. ‘HESS’). This could be the PI of a proposal later on.
CREATORtype: string- Software that created the file
CREATEDtype: string- Time when file was created (UTC): “YYYY-MM-DD HH:MM:SS”
RADECSYStype: string- Equatorial system type (e.g. ‘FK5’)
EQUINOXtype: float- Base equinox (e.g. 2000.)
TIMESYStype: string- Time system (currently ‘TT’)
TIMEREFtype: string- Time reference (‘LOCAL’)
TASSIGNtype: string- Place of time reference (‘Namibia’)
OBS_MODEtype: string- Observation mode (e.g. wobble, survey, or any mode that is supported by
TELESCOP)
- Observation mode (e.g. wobble, survey, or any mode that is supported by
DST_VERtype: string- Version of DST/Data production
ANA_VERtype: string- Reconstruction software version
CAL_VERtype: string- Calibration software version
CONV_DEPtype: float- convergence depth (0 for parallel pointing)
CONV_RAtype: float, unit: deg- Convergence Right Ascension
CONV_DECtype: float, unit: deg- Convergence Declination
TRGRATEtype: float, unit: Hz- Mean system trigger rate
ZTRGRATEtype: float, unit: Hz- Zenith equivalent mean system trigger rate
MUONEFFtype: float- Mean muon efficiency
- TODO: define how muon efficiency is defined (it’s very tricky to get a comparable number in HESS from HD and PA calibration)
BROKPIXtype: float- Fraction of broken pixels (0.15 means 15% broken pixels)
AIRTEMPtype: float, unit: deg C- Mean air temperature at ground during the observation.
PRESSUREtype: float, unit: hPa- Mean air pressure at ground during the observation.
NSBLEVELtype: float, unit: a.u.- Measure for NSB level
- TODO: how is this defined? at least leave a comment if it doesn’t have a clear definition and can only be used in one chain.
RELHUMtype: float- Relative humidity
- TODO: link to definition … wikipedia?
GTI extension¶
Each event list file contains an extension to specify the good time intervals (‘GTIs’). A general description of GTIs can be found in the OGIP GTI standard. This HDU contains two columns named START and STOP. At least one row is containing the start and end time of the observation must be present. The values are in units of seconds with respect to the reference time defined in the associated header (keywords MJDREFI and MJDREFF). This extension allows for a detailed handling of good time intervals (i.e. excluding periods with cloud cover or lightning during one observation). Eventually, this extension could disappear from the required extensions. High-level Science tools could add the GTIs to the files according to user parameter. See e.g. gtmktime for an application example from the Fermi Science Tools. The column names and FITS header keywords are documented in the following, respectively.
GTI Column Names¶
STARTtype: double, unit: s- Start time of good time interval (observation) [MET]
STOPtype: double, unit: s- End time of good time interval (observation) [MET]
GTI Header Keywords¶
MJDREFItype: int, unit: days- Integer part of MJD time reference
MJDREFFtype: float, unit: days- Float part of MJD time reference
TELARRAY extension¶
To be defined