@@ -276,7 +276,7 @@ void Clusterer::ClustererThread::finishChip(ChipPixelData* curChipData, CompClus
276276 // Stream a piece of cluster only if the reduced bounding box is not empty
277277 if (!pixbuf.empty ()) {
278278 streamCluster (pixbuf, r, rsp, colMin, colSpan, chipID,
279- compClusPtr, patternsPtr, labelsClusPtr, nlab);
279+ compClusPtr, patternsPtr, labelsClusPtr, nlab, true );
280280 }
281281 r += rsp;
282282 rsp = o2::itsmft::ClusterPattern::MaxRowSpan;
@@ -289,7 +289,7 @@ void Clusterer::ClustererThread::finishChip(ChipPixelData* curChipData, CompClus
289289 }
290290}
291291
292- void Clusterer::ClustererThread::streamCluster (const std::vector<PixelData>& pixbuf, uint16_t rowMin, uint16_t rowSpanW, uint16_t colMin, uint16_t colSpanW, uint16_t chipID, CompClusCont* compClusPtr, PatternCont* patternsPtr, MCTruth* labelsClusPtr, int nlab)
292+ void Clusterer::ClustererThread::streamCluster (const std::vector<PixelData>& pixbuf, uint16_t rowMin, uint16_t rowSpanW, uint16_t colMin, uint16_t colSpanW, uint16_t chipID, CompClusCont* compClusPtr, PatternCont* patternsPtr, MCTruth* labelsClusPtr, int nlab, bool isHuge )
293293{
294294 if (labelsClusPtr) { // MC labels were requested
295295 auto cnt = compClusPtr->size ();
@@ -305,7 +305,7 @@ void Clusterer::ClustererThread::streamCluster(const std::vector<PixelData>& pix
305305 int nbits = ir * colSpanW + ic;
306306 patt[nbits >> 3 ] |= (0x1 << (7 - (nbits % 8 )));
307307 }
308- uint16_t pattID = (parent->mPattIdConverter .size () == 0 ) ? CompCluster::InvalidPatternID : parent->mPattIdConverter .findGroupID (rowSpanW, colSpanW, patt);
308+ uint16_t pattID = (isHuge || parent->mPattIdConverter .size () == 0 ) ? CompCluster::InvalidPatternID : parent->mPattIdConverter .findGroupID (rowSpanW, colSpanW, patt);
309309 if (pattID == CompCluster::InvalidPatternID || parent->mPattIdConverter .isGroup (pattID)) {
310310 float xCOG = 0 ., zCOG = 0 .;
311311 ClusterPattern::getCOG (rowSpanW, colSpanW, patt, xCOG, zCOG);
0 commit comments