48 std::vector<ClusterHardwareContainer8kb>* clusterOutputContainer,
57 std::vector<ClusterHardwareContainer8kb>* clusterOutput,
125 void hwClusterProcessor(Vc::uint_m peakMask,
unsigned qMaxIndex,
short centerPad,
int centerTime,
unsigned short row);
132 void hwPeakFinder(
unsigned qMaxIndex,
short centerPad,
int mappedCenterTime,
unsigned short row);
147 void updateCluster(
const Vc::uint_m selectionMask,
int row,
short centerPad,
int centerTime,
short dp,
short dt, Vc::uint_v& qTot, Vc::int_v& pad, Vc::int_v&
time, Vc::int_v& sigmaPad2, Vc::int_v& sigmaTime2, std::vector<std::unique_ptr<std::vector<std::pair<MCCompLabel, unsigned>>>>& mcLabels, Vc::uint_m splitMask = Vc::Mask<uint>(
false));
151 void writeOutputWithTimeOffset(
int timeOffset);
155 void computeClusterForTime(
int timebin);
159 void findPeaksForTime(
int timebin);
163 void finishFrame(
bool clear =
false);
167 void clearBuffer(
int timebin);
171 short getFirstSetBitOfField();
176 int mapTimeInRange(
int time);
180 Vc::uint_v getFpOfADC(
const Vc::uint_v
value);
185 static const int mTimebinsInBuffer = 6;
187 unsigned short mNumRows;
188 unsigned short mNumRowSets;
189 short mCurrentMcContainerInBuffer;
190 short mSplittingMode;
192 int mPreviousTimebin;
196 unsigned mPeakChargeThreshold;
197 unsigned mContributionChargeThreshold;
198 unsigned mClusterCounter;
199 bool mIsContinuousReadout;
200 bool mRejectSinglePadClusters;
201 bool mRejectSingleTimeClusters;
202 bool mRejectLaterTimebin;
204 std::vector<unsigned short> mPadsPerRow;
205 std::vector<unsigned short> mPadsPerRowSet;
206 std::vector<unsigned short> mGlobalRowToRegion;
207 std::vector<unsigned short> mGlobalRowToLocalRow;
208 std::vector<unsigned short> mGlobalRowToVcIndex;
209 std::vector<unsigned short> mGlobalRowToRowSet;
210 std::vector<std::vector<Vc::uint_v>> mDataBuffer;
211 std::vector<std::vector<Vc::int_v>> mIndexBuffer;
212 std::vector<std::shared_ptr<MCLabelContainer const>> mMCtruth;
214 std::vector<std::unique_ptr<std::vector<ClusterHardware>>> mTmpClusterArray;
215 std::vector<std::unique_ptr<std::vector<std::vector<std::pair<MCCompLabel, unsigned>>>>> mTmpLabelArray;
217 std::vector<ClusterHardwareContainer8kb>* mClusterArray;