@@ -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