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