JeffersonLab / hcana

Hall C++ Analyzer
7 stars 118 forks source link

Update TIBlobModule event decoding to support "word5" (trigger bits) #490

Closed hansenjo closed 1 year ago

hansenjo commented 1 year ago

Update TI decoding to support the "trigger bits" word ("word5").

This also changes TIBlobModule to use a fixed number of channels again (5) instead of the variable number of channels that the previous version offered. To retrieve data, one should now do, for example,

if (module->HasTimestamp() ) {
   UInt_t timestamp = module->GetData(Decoder::TIBlobModule::kTimestamp);
   // do things with timestamp
}

The trigger type (GetData(0)) and trigger number (GetData(1)) should always be present, but timestamp, counter bits, and trigger bits are optional and depend on the DAQ configuration. module->GetNumChan() now always reports 5. Channels whose info is not present in the event are assigned a value of zero and should be tested with the Has...() functions.

If the counter bits are present, one should explicitly tell the module so through a configuration parameter in the crate map:

// Set parameters of this module via optional configuration string in
// db_cratemap.dat. Supported parameters:
//   debug:   debug level
//   word4:   type of word4 (0 = auto, 3 = counter bits, 4 = trigger bits)

==== Crate 30 type vme
# slot   model   bank   configuration string
   21       4       4    cfg: word4=3

(This is not necessary with the current Hall C DAQ.)