Skip to content

Commit fb7d24c

Browse files
authored
[Trigger] Fix covariance matrix filling for 128bits words (#10562)
1 parent 3c3e9e9 commit fb7d24c

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

EventFiltering/cefpTask.cxx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -359,21 +359,24 @@ struct centralEventFilterTask {
359359
mFiltered->SetBinContent(1, mFiltered->GetBinContent(1) + nEvents - startCollision);
360360

361361
for (uint64_t iE{0}; iE < outTrigger.size(); ++iE) {
362+
const auto& triggerWord{outTrigger[iE]};
362363
bool triggered{false}, selected{false};
363-
for (uint64_t iD{0}; iD < outTrigger[0].size(); ++iD) {
364+
for (uint64_t iD{0}; iD < triggerWord.size(); ++iD) {
364365
for (int iB{0}; iB < 64; ++iB) {
365-
if (!(outTrigger[iE][iD] & BIT(iB))) {
366+
if (!(triggerWord[iD] & BIT(iB))) {
366367
continue;
367368
}
368-
for (uint64_t jD{0}; jD < outTrigger[0].size(); ++jD) {
369-
for (int iC{iB}; iC < 64; ++iC) {
370-
if (outTrigger[iE][iD] & BIT(iC)) {
371-
mCovariance->Fill(iD * 64 + iB, jD * 64 + iC);
369+
uint64_t xIndex{iD * 64 + iB};
370+
for (uint64_t jD{0}; jD < triggerWord.size(); ++jD) {
371+
for (int jB{0}; jB < 64; ++jB) {
372+
uint64_t yIndex{jD * 64 + jB};
373+
if (xIndex <= yIndex && triggerWord[jD] & BIT(jB)) {
374+
mCovariance->Fill(iD * 64 + iB, jD * 64 + jB);
372375
}
373376
}
374377
}
375378
}
376-
triggered = triggered || outTrigger[iE][iD];
379+
triggered = triggered || triggerWord[iD];
377380
selected = selected || outDecision[iE][iD];
378381
}
379382
if (triggered) {

0 commit comments

Comments
 (0)