ZDABs alone are not very useful to look at, since one might as well use the standalone viewer. In order to pass this information on to XSnoed, XED uses a modified form of PmtEventRecord.
This form can be called the Extended Pmt Event Record. This looks exactly like the ZDAB, except that it allows any number of extra sub-fields to be tacked onto the end of the structure. Each subfield starts with a SubFieldHeader, which identifies the type of subfield to follow, and records how many words long the subfield is. Then follows any specific information to that subfield.
For instance, a block of calibrated PMT data starts with the standard SubFieldHeader, which identifies how large and how long it is. Then follows a series of CalibratedPMT structs, each of which holds four words of data. There is one CalibratedPMT for every 3-word PMT bundle in the ZDAB.
Nearly all the work that XED does is to pack parts of the SNOMAN datastructure into this extended PmtEventRecord, which is all done in the routine xsnomanCreatePmtEventRecord().
It starts by estimating the size of the block of memory that must be allocated to hold the ZDAB and all of the following sub-fields. Then it copies the ZDAB bank into this block.
This is followed by the addition of whatever subfields can be included. If first tries to include calibrated data, then includes a subfield with whatever Monte Carlo MCVX verticies are available. It looks for FTx banks that have FTxV fits. Last, it looks for any other PMT-by-PMT data available and packs it into ExtraHitData subfields. (This latter feature is still experimental at the time of this writing, but is expected to hold things like fit residuals.)
This PmtEventRecord is kept by XSnoed in the history buffer until flushed out, but is otherwise not recorded or used at all. This record exists only as a temporary re-translation of the SNOMAN data, and is not persistent in any way.