@@ -33,21 +33,20 @@ void Clusterer::process(gsl::span<const Digit> digits,
3333 gsl::span<const DigMC2ROFRecord> digMC2ROFs,
3434 std::vector<o2::itsmft::MC2ROFRecord>* clusterMC2ROFs)
3535{
36- LOG (info) << " Running clusterizer on " << digitROFs.size () << " ROFs, total digits : " << digits.size ();
36+ LOG (info) << " RUNNING CLUSTERIZER ON " << digitROFs.size () << " ROFs, TOTAL DIGITS : " << digits.size ();
3737
3838 if (!mThread ) {
3939 mThread = std::make_unique<ClustererThread>(this );
4040 }
4141
4242 for (size_t iROF = 0 ; iROF < digitROFs.size (); ++iROF) {
43- LOG (info ) << " [Clusterer] Processing digit ROF " << iROF << " /" << digitROFs.size ();
43+ LOG (debug ) << " Processing ROF " << iROF << " /" << digitROFs.size ();
4444 const auto & digitsThisROF = digitROFs[iROF];
4545 const auto nStoredCls = static_cast <int >(clusters.size ());
4646 const int first = digitsThisROF.getFirstEntry ();
4747 const int nDigits = digitsThisROF.getNEntries ();
4848
4949 if (nDigits == 0 ) {
50- LOG (info) << " [Clusterer] Digit ROF " << iROF << " has no entries, skipping" ;
5150 clusterROFs.emplace_back (digitsThisROF.getBCData (), digitsThisROF.getROFrame (), nStoredCls, 0 );
5251 continue ;
5352 }
@@ -93,15 +92,15 @@ void Clusterer::process(gsl::span<const Digit> digits,
9392 nStoredCls, static_cast <int >(clusters.size ()) - nStoredCls);
9493 }
9594
96- LOG (info) << " Finished processing all digit ROFs, total clusters produced : " << clusters.size ();
95+ LOG (info) << " FINISHED PROCESSING ALL DIGIT ROFS, TOTAL CLUSTERS PRODUCED : " << clusters.size ();
9796 if (clusterMC2ROFs && !digMC2ROFs.empty ()) {
9897 clusterMC2ROFs->reserve (clusterMC2ROFs->size () + digMC2ROFs.size ());
9998 for (const auto & in : digMC2ROFs) {
10099 clusterMC2ROFs->emplace_back (in.eventRecordID , in.rofRecordID , in.minROF , in.maxROF );
101100 }
102101 }
103102
104- LOG (info) << " Writing cluster topology map to file TF3ClusterTopologies.root" ;
103+ LOG (info) << " WRITING CLUSTER TOPOLOGY MAP TO FILE TF3ClusterTopologies.root" ;
105104 mThread ->writeTopologiesToFile (" TF3ClusterTopologies.root" );
106105}
107106
@@ -117,16 +116,8 @@ void Clusterer::ClustererThread::processChip(gsl::span<const Digit> digits,
117116 // are the global digit indices for this chip, already sorted by time, col then row).
118117 // We use parent->mSortIdx to resolve the global index of each pixel.
119118 const auto & sortIdx = mParent ->mSortIdx ;
120- // LOG(info) << "";
121- // LOG(info) << "----------------- NEW CHIP -----------------";
122- // for (int i = 0; i < nDigits; ++i) {
123- // const auto& digit = digits[sortIdx[firstDigitIdx + i]];
124- // LOG(info) << "[Clusterer] Digit " << i << "/" << nDigits << ": chipID=" << digit.getChipIndex()
125- // << ", row=" << digit.getRow() << ", col=" << digit.getColumn()
126- // << ", charge=" << digit.getCharge() << ", time=" << digit.getTime();
127- // }
119+
128120 if (nDigits == 1 ) {
129- LOG (info) << " [Clusterer] Processing single hit chip" ;
130121 findClustersSingleHit (digits, sortIdx[firstDigitIdx], labelsDigPtr, labelsClusPtr);
131122 } else {
132123 std::vector<uint32_t > digitIdxs (nDigits);
@@ -136,17 +127,11 @@ void Clusterer::ClustererThread::processChip(gsl::span<const Digit> digits,
136127 }
137128
138129 findClustersMultipleHits (
139- digits,
140- gsl::span<const uint32_t >(digitIdxs),
141- labelsDigPtr,
142- labelsClusPtr);
130+ digits,
131+ gsl::span<const uint32_t >(digitIdxs),
132+ labelsDigPtr,
133+ labelsClusPtr);
143134 }
144- // else {
145- // LOG(info) << "[Clusterer] Processing multi-hit chip with " << nDigits << " hits";
146- // std::vector<uint32_t> digitIdxs(nDigits);
147- // std::iota(digitIdxs.begin(), digitIdxs.end(), firstDigitIdx);
148- // findClustersMultipleHits(digits, gsl::span<const uint32_t>(digitIdxs), labelsDigPtr, labelsClusPtr);
149- // }
150135
151136 // Flush per-thread output into the caller's containers
152137 if (!mClusters .empty ()) {
@@ -176,11 +161,11 @@ void Clusterer::ClustererThread::findClustersSingleHit(gsl::span<const Digit> di
176161 const time_t time = digit.getTime ();
177162
178163 if (labelsClusPtr) {
179- int nlab = 0 ;
180- fetchMCLabels (digitIdx, labelsDigPtr, nlab );
181- const auto cnt = static_cast <uint32_t >(clusters .size ());
182- for (int i = 0 ; i < nlab ; i++) {
183- labels .addElement (cnt, labelsBuff [i]);
164+ int nStoredLabels = 0 ;
165+ fetchMCLabels (digitIdx, labelsDigPtr, nStoredLabels );
166+ const auto nCls = static_cast <uint32_t >(mClusters .size ());
167+ for (int i = 0 ; i < nStoredLabels ; i++) {
168+ mLabels .addElement (nCls, mLabelsBuff [i]);
184169 }
185170 }
186171
@@ -192,10 +177,10 @@ void Clusterer::ClustererThread::findClustersSingleHit(gsl::span<const Digit> di
192177 // Bit 0 corresponds to (rowOffset=0, colOffset=0) in row-major order
193178 Cluster cluster (row, col, rowSpan, colSpan, firedDigitsMask, clsTopology, chipID, time);
194179
195- LOG (info ) << " Pushing back cluster with row: " << row << " , col: " << col << " , rowSpan: " << rowSpan
196- << " , colSpan: " << colSpan << " , pattern: " << firedDigitsMask
197- << " , topology: " << clsTopology << " , chipID: " << chipID
198- << " , time: " << time;
180+ LOG (debug ) << " Pushing back cluster with row: " << row << " , col: " << col << " , rowSpan: " << rowSpan
181+ << " , colSpan: " << colSpan << " , pattern: " << firedDigitsMask
182+ << " , topology: " << clsTopology << " , chipID: " << chipID
183+ << " , time: " << time;
199184
200185 mClusters .emplace_back (cluster);
201186}
@@ -240,21 +225,12 @@ void Clusterer::ClustererThread::findClustersMultipleHits(gsl::span<const Digit>
240225 }
241226 }
242227
243- // Debug preclusters
244- LOG (info) << " [Clusterer] Found " << preclusters.size () << " preclusters in chip " << chipID;
245- for (size_t i = 0 ; i < preclusters.size (); ++i) {
246- LOG (info) << " Precluster " << i << " has " << preclusters[i].size () << " digits" ;
247- }
248- LOG (info) << " " ;
249-
250228 for (const auto & precluster : preclusters) {
251- LOG (info) << " [Clusterer] Processing precluster with " << precluster.size () << " digits" ;
252229
253230 const auto nStoredCls = static_cast <uint32_t >(mClusters .size ());
254231
255232 // Single-digit cluster in chip with multiple fired digits
256233 if (precluster.size () == 1 ) {
257- LOG (info) << " [Clusterer] Processing single-digit precluster in multi-hit chip" ;
258234 const auto & digit = digits[precluster[0 ]];
259235 const uint16_t chipID = digit.getChipIndex ();
260236 const uint16_t row = digit.getRow ();
@@ -278,14 +254,13 @@ void Clusterer::ClustererThread::findClustersMultipleHits(gsl::span<const Digit>
278254 // Bit 0 corresponds to (rowOffset=0, colOffset=0) in row-major order
279255 Cluster cluster (minRow, minCol, rowSpan, colSpan, firedDigitsMask, clsTopology, chipID, time);
280256
281- LOG (info ) << " Pushing back cluster with row: " << row << " , col: " << col << " , rowSpan: " << rowSpan
257+ LOG (debug ) << " Pushing back cluster with row: " << row << " , col: " << col << " , rowSpan: " << rowSpan
282258 << " , colSpan: " << colSpan << " , pattern: " << firedDigitsMask
283259 << " , topology: " << clsTopology << " , chipID: " << chipID
284260 << " , time: " << time;
285261
286262 mClusters .emplace_back (cluster);
287263 } else {
288- LOG (info) << " [Clusterer] Processing multi-digit precluster with " << precluster.size () << " digits" ;
289264 // Retrieve min row, min col of the precluster
290265 uint16_t minRow = std::numeric_limits<uint16_t >::max ();
291266 uint16_t maxRow = std::numeric_limits<uint16_t >::min ();
@@ -313,7 +288,6 @@ void Clusterer::ClustererThread::findClustersMultipleHits(gsl::span<const Digit>
313288 uint16_t firedDigitsMask = 0 ;
314289
315290 if (rowSpan * colSpan > maxFiredDigitsForCls) {
316- LOG (warn) << " Adding huge precluster with rowSpan=" << rowSpan << " , colSpan=" << colSpan;
317291 // Overflow precluster: pass InvalidPatternID (or 0) and kHuge topology flag
318292 Cluster cluster (minRow, minCol, rowSpan, colSpan, Cluster::InvalidPatternID, Topologies::kHuge , chipID, clsTime);
319293 mClusters .emplace_back (cluster);
@@ -325,7 +299,7 @@ void Clusterer::ClustererThread::findClustersMultipleHits(gsl::span<const Digit>
325299 const auto & digit = digits[idx];
326300 const uint16_t rowOffset = digit.getRow () - minRow;
327301 const uint16_t colOffset = digit.getColumn () - minCol;
328-
302+
329303 // Single bit position calculation
330304 const uint16_t bitIndex = rowOffset * colSpan + colOffset;
331305
@@ -339,45 +313,42 @@ void Clusterer::ClustererThread::findClustersMultipleHits(gsl::span<const Digit>
339313 mClsTopoClassifier .getTopology (firedDigitsMask, minRow, rowSpan, minCol, colSpan, clsTopology);
340314
341315 // Construct and add cluster using scalar pattern mask
342- // LOG(info) << "Number of MC labels for this cluster: " << nMcLabels;
343- for (int i = nMcLabels; i--;) {
344- // LOG(info) << "[Clusterer::findClustersMultipleHits] Adding MC label " << mLabelsBuff[i] << " to cluster at index " << nStoredCls;
316+ for (int i = 0 ; i < nMcLabels; i++) {
345317 mLabels .addElement (nStoredCls, mLabelsBuff [i]);
346318 }
347319 Cluster cluster (minRow, minCol, rowSpan, colSpan, firedDigitsMask, clsTopology, chipID, clsTime);
348- LOG (info ) << " Pushing back cluster with row: " << minRow << " , col: " << minCol << " , rowSpan: " << rowSpan
349- << " , colSpan: " << colSpan << " , pattern: " << firedDigitsMask
350- << " , topology: " << Topologies::kSingleDigit << " , chipID: " << chipID
351- << " , time: " << clsTime;
320+ LOG (debug ) << " Pushing back cluster with row: " << minRow << " , col: " << minCol << " , rowSpan: " << rowSpan
321+ << " , colSpan: " << colSpan << " , pattern: " << firedDigitsMask
322+ << " , topology: " << Topologies::kSingleDigit << " , chipID: " << chipID
323+ << " , time: " << clsTime;
352324 mClusters .emplace_back (cluster);
353325 }
354326 }
355327}
356328
357329// __________________________________________________
358- void Clusterer::ClustererThread::fetchMCLabels (uint32_t digID, const ConstDigitTruth* labelsDig, int & nfilled )
330+ void Clusterer::ClustererThread::fetchMCLabels (uint32_t digID, const ConstDigitTruth* labelsDig, int & nFilled )
359331{
360332 if (!labelsDig || digID >= labelsDig->getIndexedSize ()) {
361- // LOG(info) << "[Clusterer::ClustererThread::fetchMCLabels] No labels found for digit ID: " << digID;
362333 return ;
363334 }
364- auto sortBuffer = [this ]() { std::sort (this ->labelsBuff .begin (), this ->labelsBuff .end (), [](Label const & a, Label const & b) { return a.getTrackID () < b.getTrackID (); }); };
335+ auto sortBuffer = [this ]() { std::sort (this ->mLabelsBuff .begin (), this ->mLabelsBuff .end (), [](Label const & a, Label const & b) { return a.getTrackID () < b.getTrackID (); }); };
365336 for (const auto & label : labelsDig->getLabels (digID)) {
366337 bool skip = false ;
367- for (int ic = 0 ; ic < nfilled ; ic++) {
368- if (labelsBuff [ic] == label) {
338+ for (int ic = 0 ; ic < nFilled ; ic++) {
339+ if (mLabelsBuff [ic] == label) {
369340 skip = true ;
370341 break ;
371342 }
372343 }
373344 if (!skip) {
374- if (nfilled < MaxLabels) {
375- labelsBuff[nfilled ++] = label;
376- if (nfilled == MaxLabels) {
345+ if (nFilled < MaxLabels) {
346+ mLabelsBuff [nFilled ++] = label;
347+ if (nFilled == MaxLabels) {
377348 sortBuffer ();
378349 }
379- } else if (labelsBuff .back ().getTrackID () > label.getTrackID ()) {
380- labelsBuff .back () = label;
350+ } else if (mLabelsBuff .back ().getTrackID () > label.getTrackID ()) {
351+ mLabelsBuff .back () = label;
381352 sortBuffer ();
382353 }
383354 }
0 commit comments