Skip to content

FATIMA VME multi hit vetoing

The multi hit veto in the TDC isn't functioning correctly.

See raw data from tree:

root [17] evt->Show(108)
======> EVENT:108
 EventHeader.    = (EventHeader*)0x55f6ca869440
 EventHeader     = printing kBase case (0)
 EventHeader.fEventno = 137
 EventHeader.fTrigger = 1
 EventHeader.fTimeStamp = 0
 EventHeader.fSpillFlag = 1
 FatimaVmeData   = 1
 FatimaVmeData.fUniqueID = 0
 FatimaVmeData.fBits = 33554432
 FatimaVmeData.fwr_t = 1713396363629506424
 FatimaVmeData.fwr_subsystem_id = 39321
 FatimaVmeData.fqdc_coarse_times = (vector<unsigned int>*)0x55f6cae48640
 FatimaVmeData.fqdc_fine_times = (vector<unsigned long>*)0x55f6cae48658
 FatimaVmeData.fqdc_qlong_raw = (vector<unsigned int>*)0x55f6cae48670
 FatimaVmeData.fqdc_qshort_raw = (vector<unsigned int>*)0x55f6cae48688
 FatimaVmeData.fv1290_channels = (vector<unsigned int>*)0x55f6cae486a0
 FatimaVmeData.fv1290_data = (vector<unsigned int>*)0x55f6cae486b8
 FatimaVmeData.fv1290_lot = (vector<unsigned int>*)0x55f6cae486d0
 FatimaVmeData.ftdcs_fired = 6
 FatimaVmeData.fqdcs_fired = 3
 FatimaVmeData.ftdc_detectors = (vector<unsigned int>*)0x55f6cae486f0
 FatimaVmeData.fqdc_detectors = (vector<unsigned int>*)0x55f6cae48708
 FatimaVmeTimeMachineData = 4
 FatimaVmeTimeMachineData.fUniqueID = 0, 0, 0, 0
 FatimaVmeTimeMachineData.fBits = 33554432, 33554432, 33554432, 33554432
 FatimaVmeTimeMachineData.fundelayed_time = 4027.83, 9280.58, 0, 0
 FatimaVmeTimeMachineData.fdelayed_time = 0, 0, 4081.68, 9385.83
 FatimaVmeTimeMachineData.fwr_subsystem_id = 5376, 5376, 5376, 5376
 FatimaVmeTimeMachineData.fwr_t = 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424
 FatimaVmeQDCCalData = (vector<FatimaVmeQDCCalItem>*)0x55f6cae4a670
 FatimaVmeQDCCalData.fUniqueID = 0, 0, 0
 FatimaVmeQDCCalData.fBits = 33554432, 33554432, 33554432
 FatimaVmeQDCCalData.wr_t = 1713396363629506424, 1713396363629506424, 1713396363629506424
 FatimaVmeQDCCalData.coarse_time = 47131, 21434, 49442
 FatimaVmeQDCCalData.fine_time = 47131, 21434, 49442
 FatimaVmeQDCCalData.qlong = 123.57, 226.648, 570.671
 FatimaVmeQDCCalData.qlong_raw = 521, 1345, 3301
 FatimaVmeQDCCalData.qshort_raw = 521, 1345, 3301
 FatimaVmeQDCCalData.detector = 2, 22, 25
 FatimaVmeQDCData = (vector<FatimaVmeQDCItem>*)0x55f6ca2fb2e0
 FatimaVmeQDCData.fUniqueID = 0, 0, 0
 FatimaVmeQDCData.fBits = 33554432, 33554432, 33554432
 FatimaVmeQDCData.wr_t = 1713396363629506424, 1713396363629506424, 1713396363629506424
 FatimaVmeQDCData.coarse_time = 47131, 21434, 49442
 FatimaVmeQDCData.fine_time = 47131, 21434, 49442
 FatimaVmeQDCData.qlong_raw = 521, 1345, 3301
 FatimaVmeQDCData.qshort_raw = 521, 1345, 3301
 FatimaVmeQDCData.detector = 2, 22, 25
 FatimaVmeResiduals = (vector<FatimaVmeResiduals>*)0x55f6ca29daa0
 FatimaVmeResiduals.fUniqueID = 0, 0, 0, 0, 0, 0
 FatimaVmeResiduals.fBits = 33554432, 33554432, 33554432, 33554432, 33554432, 33554432
 FatimaVmeResiduals.sc41l = 0, 0, 0, 0, 0, 0
 FatimaVmeResiduals.sc41r = 0, 0, 0, 0, 0, 0
 FatimaVmeResiduals.tm_delayed = 0, 0, 0, 0, 4081.68, 9385.83
 FatimaVmeResiduals.tm_undelayed = 0, 0, 4027.83, 9280.58, 0, 0
 FatimaVmeTDCCalData = (vector<FatimaVmeTDCCalItem>*)0x55f6cadf0520
 FatimaVmeTDCCalData.fUniqueID = 0, 0, 0, 0, 0, 0
 FatimaVmeTDCCalData.fBits = 33554432, 33554432, 33554432, 33554432, 33554432, 33554432
 FatimaVmeTDCCalData.wr_t = 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424
 FatimaVmeTDCCalData.timestamp = 156416, 366374, 161113, 371223, 163267, 375433
 FatimaVmeTDCCalData.timestamp_raw = 156416, 366374, 161113, 371223, 163267, 375433
 FatimaVmeTDCCalData.detector = 22, 22, 50, 50, 51, 51
 FatimaVmeTDCData = (vector<FatimaVmeTDCItem>*)0x55f6cadeb980
 FatimaVmeTDCData.fUniqueID = 0, 0, 0, 0, 0, 0
 FatimaVmeTDCData.fBits = 33554432, 33554432, 33554432, 33554432, 33554432, 33554432
 FatimaVmeTDCData.wr_t = 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424, 1713396363629506424
 FatimaVmeTDCData.wr_subsystem_id = 5376, 5376, 5376, 5376, 5376, 5376
 FatimaVmeTDCData.v1290_tdc_data = 156416, 366374, 161113, 371223, 163267, 375433
 FatimaVmeTDCData.leadOrTrail = 0, 0, 0, 0, 0, 0
 FatimaVmeTDCData.detector = 22, 22, 50, 50, 51, 51

Suggested change:

std::unordered_map<int, int> detector_count;
for (const auto& tdcItem : *tdcArray) {
    detector_count[tdcItem.Get_detector()]++;
}

for (const auto& [detector, count] : detector_count) {
    if (count > 1) {
        tdc_multi_hit_exclude[detector] = true;
    }
}
Edited by j.bormans