Introduction
With Pass 8, event_types are introduced. Even though these are essentially a generalization of conversion_type (i.e., front vs back converting events) in that the the event types partition the data into distinct subclasses which have their own effective area, point spread, and energy dispersion functions, in Pass 8, there are alternative partitions for a given class. For example, the Pass 8 SOURCE class selection can be partitioned in one of three ways: into front vs back converting events, into events belonging to one of 4 "PSF" subclasses, or into events belonging to one of 4 "EDISP" classes. The Pass 8 event_class and event_type descriptions and usage are described in the following links.
Pass 8 Descriptions
Changes to gt-tools
- gtobssim:
The event type partition has been added as an option for gtobssim. Examples for P8_SOURCE_V5:
gtobssim irfs=P8_SOURCE_V5 evtype=none gtobssim irfs=P8_SOURCE_V5 evtype=PSF gtobssim irfs=P8_SOURCE_V5 evtype=EDISP
evtype=none is the default, in which case the application will use the front/back partition, consistent with pre-Pass 8 behavior.
DSS keywords specifying the event_type partition that was used will be written to the FT1 files that are produced. These keywords will show the bit pattern that would be used to mask to obtain the corresponding partition, e.g., for evtype=PSF:
DSTYP2: BIT_MASK(EVENT_CLASS,128,P8) DSUNI2: DIMENSIONLESS DSVAL2: 1:1 DSTYP2: BIT_MASK(EVENT_TYPE,60,P8) DSUNI2: DIMENSIONLESS DSVAL2: 1:1
Here 60 = 0b111100, the binary representation of the mask with bits 2-5 set.
- Since there is no information in the IRFs on cross-membership between event_type partitions, only bits for the selected partition will be set in the FT1 file. This means that choosing event_types in gtselect for a different partition will result in no events passing the cut.
- gtselect
- The evtype option has been added, and DSS keywords indicating this selection will be written.
For both evclass and evtype, the user must specify the integer corresponding to bit-mask that selects the desired events within a single partition:
gtselect evclass=128 evtype=3 # P8_SOURCE_V5, front and back (i.e., all) events gtselect evclass=128 evtype=1 # P8_SOURCE_V5, front-only events gtselect evclass=128 evtype=60 # P8_SOURCE_V5, PSF[0-3] (all) events gtselect evclass=256 evtype=960 # P8_CLEAN_V5, EDISP[0-3] (all) events
The evtype=[3,60,960] selections all return all of the events, but they also specify the irfs corresponding to the event_type partition selected. This information is written to the DSS keywords and read by downstream tools.
- evtype selections that cross partitions can be specified, but the behavior of the downstream tools (i.e., which irfs are used) is undefined. At some point, we will add code to guard against invalid selections.
- gtdiffrsp
- evtype has been added as a hidden parameter.
- If DSS keywords are in the input FT1 file (e.g., from gtselect or gtobssim), then gtdiffrsp will read those keywords to determine which event_type partition to use for computing the diffuse responses. If no DSS keywords are present, then the evtype option will used to determine the partition. If it is omitted, then front/back will be used.
- The value of evtype must be the integer representation of the bit-mask corresponding to the desired partition.
- The DSS keywords will be updated with the evtype selection and this will indicate the event_type partition used in computing the diffuse response columns.
- gtexpcube2
- The user will now be required to provide a cmap argument. The DSS keywords from that input file will provide the information to determine the event_class and event_type selections.
- The user can override the geometry of the cmap file. This will allow exposure maps larger than the cmap to be specified. The energy planes will be read from the cmap file, so these would no longer need to be specified by hand, but they could still be over-ridden.
- gtirfs
The output will be expanded to indicate event_type partitions:
$ gtirfs P8_CLEAN_V5 ( = P8_CLEAN_V5::BACK + P8_CLEAN_V5::FRONT ) P8_CLEAN_V5 (EDISP) ( = P8_CLEAN_V5::EDISP0 + P8_CLEAN_V5::EDISP1 + P8_CLEAN_V5::EDISP2 + P8_CLEAN_V5::EDISP3 ) P8_CLEAN_V5 (PSF) ( = P8_CLEAN_V5::PSF0 + P8_CLEAN_V5::PSF1 + P8_CLEAN_V5::PSF2 + P8_CLEAN_V5::PSF3 ) P8_CLEAN_V5::BACK P8_CLEAN_V5::EDISP0 P8_CLEAN_V5::EDISP1 P8_CLEAN_V5::EDISP2 P8_CLEAN_V5::EDISP3 P8_CLEAN_V5::FRONT P8_CLEAN_V5::PSF0 P8_CLEAN_V5::PSF1 P8_CLEAN_V5::PSF2 P8_CLEAN_V5::PSF3 P8_SOURCE_V5 ( = P8_SOURCE_V5::BACK + P8_SOURCE_V5::FRONT ) P8_SOURCE_V5 (EDISP) ( = P8_SOURCE_V5::EDISP0 + P8_SOURCE_V5::EDISP1 + P8_SOURCE_V5::EDISP2 + P8_SOURCE_V5::EDISP3 ) P8_SOURCE_V5 (PSF) ( = P8_SOURCE_V5::PSF0 + P8_SOURCE_V5::PSF1 + P8_SOURCE_V5::PSF2 + P8_SOURCE_V5::PSF3 ) P8_SOURCE_V5::BACK P8_SOURCE_V5::EDISP0 P8_SOURCE_V5::EDISP1 P8_SOURCE_V5::EDISP2 P8_SOURCE_V5::EDISP3 P8_SOURCE_V5::FRONT P8_SOURCE_V5::PSF0 P8_SOURCE_V5::PSF1 P8_SOURCE_V5::PSF2 P8_SOURCE_V5::PSF3 P8_ULTRACLEAN_V5 ( = P8_ULTRACLEAN_V5::BACK + P8_ULTRACLEAN_V5::FRONT ) P8_ULTRACLEAN_V5 (EDISP) ( = P8_ULTRACLEAN_V5::EDISP0 + P8_ULTRACLEAN_V5::EDISP1 + P8_ULTRACLEAN_V5::EDISP2 + P8_ULTRACLEAN_V5::EDISP3 ) P8_ULTRACLEAN_V5 (PSF) ( = P8_ULTRACLEAN_V5::PSF0 + P8_ULTRACLEAN_V5::PSF1 + P8_ULTRACLEAN_V5::PSF2 + P8_ULTRACLEAN_V5::PSF3 ) P8_ULTRACLEAN_V5::BACK P8_ULTRACLEAN_V5::EDISP0 P8_ULTRACLEAN_V5::EDISP1 P8_ULTRACLEAN_V5::EDISP2 P8_ULTRACLEAN_V5::EDISP3 P8_ULTRACLEAN_V5::FRONT P8_ULTRACLEAN_V5::PSF0 P8_ULTRACLEAN_V5::PSF1 P8_ULTRACLEAN_V5::PSF2 P8_ULTRACLEAN_V5::PSF3 $
CALDB changes
- CALDB/data/glast/lat/bcf/irf_index.fits
- CALDB/data/glast/lat/caldb.indx
- The files in the bcf/[ea,edisp,psf] subdirectories will be aggregated by event type. A script to do this for the P8_*_V5 irf files is here. irfs/handoff_response will need to be updated either by adding a generalized version of that script or by modifying makefits directly.
Tracking Development
- There is a trello board for coordinating this work. Send your trello userid to jchiang@slac.stanford.edu for access.
- JIRAs will also be created for the relevant items.