Skip to content

Commit cd5ca55

Browse files
dstoccoshahor02
authored andcommitted
Fix bug in the ROF records of MID dead channels
1 parent 4f958e2 commit cd5ca55

1 file changed

Lines changed: 7 additions & 8 deletions

File tree

Detectors/MUON/MID/Workflow/src/FetToDeadSpec.cxx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,27 +80,25 @@ class FetToDeadDeviceDPL
8080
std::vector<ROFRecord> noisyChannelsRof;
8181
noisyChannelsRof.insert(noisyChannelsRof.end(), dataRof[1].begin(), dataRof[1].end());
8282

83-
auto deadChannels = getDeadChannels(data[2], dataRof[2], data[0], dataRof[0]);
84-
85-
std::vector<ROFRecord> deadChannelsRof;
86-
deadChannelsRof.insert(deadChannelsRof.end(), dataRof[2].begin(), dataRof[2].end());
83+
auto deadChannelsPair = getDeadChannels(data[2], dataRof[2], data[0], dataRof[0]);
8784

8885
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "NOISE", 0}, noisyChannels);
8986
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "NOISEROF", 0}, noisyChannelsRof);
90-
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "DEAD", 0}, deadChannels);
91-
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "DEADROF", 0}, deadChannelsRof);
87+
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "DEAD", 0}, deadChannelsPair.first);
88+
pc.outputs().snapshot(of::Output{header::gDataOriginMID, "DEADROF", 0}, deadChannelsPair.second);
9289
}
9390

9491
private:
9592
FetToDead mFetToDead{}; ///< FET to dead channels converter
9693

97-
std::vector<ColumnData> getDeadChannels(gsl::span<const ColumnData> fetData, gsl::span<const ROFRecord> fetDataRof, gsl::span<const ColumnData> selfTrigData, gsl::span<const ROFRecord> selfTrigDataRof)
94+
std::pair<std::vector<ColumnData>, std::vector<ROFRecord>> getDeadChannels(gsl::span<const ColumnData> fetData, gsl::span<const ROFRecord> fetDataRof, gsl::span<const ColumnData> selfTrigData, gsl::span<const ROFRecord> selfTrigDataRof)
9895
{
9996
int64_t maxDiff = 1;
10097
int64_t minDiff = -maxDiff;
10198

10299
ColumnDataHandler handler;
103100
std::vector<ColumnData> deadChannels;
101+
std::vector<ROFRecord> deadChannelROFs;
104102
// The FET data can be split into different BCs.
105103
// Try to merge the expected FET data with the data in the close BCs
106104
// which are probably badly tagged FET data
@@ -126,9 +124,10 @@ class FetToDeadDeviceDPL
126124
// So we do nothing, i.e. we move to the next auxRofIt in the for loop
127125
}
128126
auto eventDeadChannels = mFetToDead.process(handler.getMerged());
127+
deadChannelROFs.emplace_back(rof.interactionRecord, rof.eventType, deadChannels.size(), eventDeadChannels.size());
129128
deadChannels.insert(deadChannels.end(), eventDeadChannels.begin(), eventDeadChannels.end());
130129
}
131-
return deadChannels;
130+
return {deadChannels, deadChannelROFs};
132131
}
133132
};
134133

0 commit comments

Comments
 (0)