Skip to content

Another try.#4287

Closed
Ishangoel11 wants to merge 11 commits into
sPHENIX-Collaboration:masterfrom
Ishangoel11:branch
Closed

Another try.#4287
Ishangoel11 wants to merge 11 commits into
sPHENIX-Collaboration:masterfrom
Ishangoel11:branch

Conversation

@Ishangoel11

@Ishangoel11 Ishangoel11 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work for users)
  • Requiring change in macros repository (Please provide links to the macros pull request in the last section)
  • I am a member of GitHub organization of sPHENIX Collaboration, EIC, or ECCE (contact Chris Pinkenburg to join)

What kind of change does this PR introduce? (Bug fix, feature, ...)

TODOs (if applicable)

Links to other PRs in macros and calibration repositories (if applicable)

TrkrClusterv6 and TPC cluster debugging additions

Motivation / context

Add a richer cluster representation (v6) to support TPC debugging and detailed offline diagnostics, and standardize cluster field types across existing versions (v1–v5) for tighter, explicit widths and consistent sentinel handling.

Key changes

  • New TrkrClusterv6 class (header, implementation, LinkDef, Makefile entries)
    • ~30+ new stored fields for debugging: centroid ADC, pad/TBin centers & maxima, directional edge flags (8 directions), mixing metrics, phi/tbin bin bounds, pad/tbin phase, RPhi/Z errors, subsurface key, local (rphi,z) position storage and bounds-checked accessors
    • PHObject/TrkrCluster overrides: identify, Reset, isValid, CloneMe, CopyFrom, get/set for all new fields
    • identify() prints a summary; isValid() checks positions and ADC sentinel (UINT16_MAX)
    • ROOT dictionary and install/listing updated (Makefile.am, TrkrClusterv6_Dict.cc entry)
  • Base interface extended (TrkrCluster.h)
    • 20–30+ new virtual accessors/stubs added (getCenAdc, getPadCen/Max, getTBinCen/Max, SLEdge/SREdge/TLEdge/TREdge/DLEdge/DREdge/HLEdge/HREdge, mixing values, phi/tbin bin lo/hi, pad/tbin phase, getRSize, etc.)
    • Return types and sentinel defaults standardized (uint16_t/uint8_t/float; quiet_NaN for floats)
  • Type narrowing and standardization across v1–v5 cluster classes and implementations
    • ADC fields: unsigned int → uint16_t; sentinel values updated to std::numeric_limits<uint16_t>::max()
    • Size/edge/overlap fields: char → uint8_t
    • Float NaN sentinel handling: use std::numeric_limits::quiet_NaN()
    • ClassDefOverride version bumps where appropriate (v1–v5)
  • New TrkrClusterv6 implementation includes CopyFrom to populate new fields from TrkrCluster interface

Potential risk areas

  • IO / on-disk / ROOT compatibility
    • Narrowing ADC from 32→16 bits and changing types for multiple fields can break ROOT serialization/reading of older files or change binary layouts; validate backward/forward compatibility and ROOT dictionary versions before wide deployment.
  • Reconstruction / algorithm behavior
    • Downcasting to uint16_t may truncate values if any code assumed 32-bit ADCs; algorithms that read/write cluster fields or compute aggregates may behave differently.
  • API / compilation breakage
    • Method signature changes in v1–v5 are public API changes and will require rebuilding dependent code; external code relying on previous signatures must be updated.
  • Missing container/version support
    • No TrkrClusterContainerv6 was added — persistence/containers for v6 clusters are not provided here; this limits how v6 clusters are stored or transported unless intended to use existing containers.
  • Logging / runtime noise
    • Deprecated global getters print to stdout directly (not using logging), which can pollute logs in large-scale reconstruction or batch jobs.
  • Thread-safety & performance
    • Added fields and deeper CopyFrom may increase memory footprint and copy cost; inspect hot paths for performance regressions. No explicit thread-safety changes, but added mutable state increases the surface area; ensure usages are thread-safe where needed.

Possible future improvements

  • Add TrkrClusterContainerv6 (and LinkDef) if persistent storage of v6 clusters is desired.
  • Replace stdout deprecation messages with the project logging framework and/or a compile-time deprecation mechanism.
  • Provide migration/readback tests: validate reading older files, and a compatibility shim or upgrade path if needed.
  • Consider making many new TrkrCluster virtual setters optional or removing obsolete setters from the virtual base class (per reviewer suggestion) to avoid propagating no-op/obsolete API.
  • Add unit/integration tests for serialization, CopyFrom correctness, and reconstruction end-to-end validation; measure memory and CPU impact.

⚠️ This summary was generated with AI assistance—verify type-change impacts, ROOT dictionary/versioning, and storage/compatibility implications with actual code reviewers before merge.

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 184995b0-1c09-496a-8a08-43b2caa9c63b

📥 Commits

Reviewing files that changed from the base of the PR and between 91199aa and 5f6ac3b.

📒 Files selected for processing (9)
  • offline/packages/trackbase/.TrkrClusterv6.h.swm
  • offline/packages/trackbase/TrkrClusterv1.cc
  • offline/packages/trackbase/TrkrClusterv1.h
  • offline/packages/trackbase/TrkrClusterv2.cc
  • offline/packages/trackbase/TrkrClusterv2.h
  • offline/packages/trackbase/TrkrClusterv3.cc
  • offline/packages/trackbase/TrkrClusterv3.h
  • offline/packages/trackbase/TrkrClusterv4.h
  • offline/packages/trackbase/TrkrClusterv5.h
🚧 Files skipped from review as they are similar to previous changes (4)
  • offline/packages/trackbase/TrkrClusterv3.h
  • offline/packages/trackbase/TrkrClusterv2.h
  • offline/packages/trackbase/TrkrClusterv1.h
  • offline/packages/trackbase/TrkrClusterv4.h

📝 Walkthrough

Walkthrough

This PR standardizes tracker cluster fields to fixed-width integer types and introduces TrkrClusterv6. The base TrkrCluster class gains updated sentinel constants and many convenience accessor stubs. Existing versions v1–v5 narrow ADC from unsigned int to uint16_t and size fields from char to uint8_t. The new v6 subclass stores 2D local position and provides lifecycle, deep-copy, and validity semantics, with deprecated global-style accessors.

Changes

Tracker cluster type modernization and TrkrClusterv6 introduction

Layer / File(s) Summary
TrkrCluster base class: fixed-width types and convenience stubs
offline/packages/trackbase/TrkrCluster.h
Adds <cstdint>, updates sentinel constants to std::numeric_limits<float>::quiet_NaN() and fixed-width limits, changes ADC accessors to uint16_t, narrows shape accessors to uint8_t, and introduces multiple virtual convenience getter stubs for centroid/max ADC, pad/tbin centers and maxima, edge identifiers, mixing values, bin ranges, phases, and RSize.
TrkrClusterv1–v5: adopt fixed-width ADC and size types
offline/packages/trackbase/TrkrClusterv1.h, TrkrClusterv1.cc, TrkrClusterv2.h, TrkrClusterv2.cc, TrkrClusterv3.h, TrkrClusterv3.cc, TrkrClusterv4.h, TrkrClusterv5.h
All five versions narrow ADC field and accessors from unsigned int to uint16_t; v4–v5 also update size/overlap/edge fields from char to uint8_t. Constructors and isValid checks use std::numeric_limits<uint16_t>::max() sentinel; ROOT ClassDefOverride versions are bumped where shown.
TrkrClusterv6 class definition
offline/packages/trackbase/TrkrClusterv6.h
New subclass adds PHObject lifecycle overrides (identify, Reset, isValid, CloneMe, CopyFrom), 2D local position storage with bounds checking, accessors for subsurf key, ADC/centroid/pad/tbin metrics, RPhi/Z error accessors, deprecated global-style accessors (with deprecation messages), and comprehensive size/edge/mixing/bin/phase getter-setters backed by private fixed-width-typed members.
TrkrClusterv6 implementation
offline/packages/trackbase/TrkrClusterv6.cc
Implements identify() for debug output, isValid() validation (NaN check on first two coordinates, ADC ≠ std::numeric_limits<uint16_t>::max()), and CopyFrom() deep-copy that copies all stored metrics via setters with a self-copy guard.
Build integration
offline/packages/trackbase/Makefile.am, offline/packages/trackbase/TrkrClusterv6LinkDef.h
Adds TrkrClusterv6.h to installed headers, TrkrClusterv6_Dict.cc to ROOTDICTS, TrkrClusterv6.cc to libtrack_io sources (non-USE_ONLINE); LinkDef registers the class for ROOT dictionary generation.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Infer (1.2.0)
offline/packages/trackbase/TrkrClusterv1.cc

In file included from offline/packages/trackbase/TrkrClusterv1.cc:7:
In file included from offline/packages/trackbase/TrkrClusterv1.h:10:
offline/packages/trackbase/TrkrCluster.h:12:10: fatal error: 'phool/PHObject.h' file not found
12 | #include <phool/PHObject.h>
| ^~~~~~~~~~~~~~~~~~
1 error generated.
Error: the following clang command did not run successfully:
/opt/infer-linux-x86_64-v1.2.0/lib/infer/facebook-clang-plugins/clang/install/bin/clang-18
@/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-c5292a39fab62891/tmp/clang_command_.tmp.c42c5a.txt
++Contents of '/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-c5292a39fab62891/tmp/clang_command_.tmp.c42c5a.txt':
"-cc1" "-load"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../../facebook-clang-plugins/libtooling/build/FacebookClangPlugin.dylib"
"-add-plugin" "BiniouASTExporter" "-plugin-arg-BiniouASTExporter" "-"
"-plugin-arg-BiniouASTExporter" "PREPEND_C

... [truncated 1252 characters] ...

/include"
"-internal-isystem" "/usr/local/include" "-internal-isystem"
"/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu"
"-internal-externc-isystem" "/include" "-internal-externc-isystem"
"/usr/include" "-Wno-ignored-optimization-argument" "-Wno-everything"
"-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1"
"-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions"
"-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o"
"/tmp/coderabbit-infer/c5292a39fab62891/file.o" "-x" "c++"
"offline/packages/trackbase/TrkrClusterv1.cc" "-O0" "-fno-builtin"
"-include"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../lib/clang_wrappers/global_defines.h"
"-Wno-everything"

offline/packages/trackbase/TrkrClusterv2.cc

In file included from offline/packages/trackbase/TrkrClusterv2.cc:7:
In file included from offline/packages/trackbase/TrkrClusterv2.h:11:
offline/packages/trackbase/TrkrCluster.h:12:10: fatal error: 'phool/PHObject.h' file not found
12 | #include <phool/PHObject.h>
| ^~~~~~~~~~~~~~~~~~
1 error generated.
Error: the following clang command did not run successfully:
/opt/infer-linux-x86_64-v1.2.0/lib/infer/facebook-clang-plugins/clang/install/bin/clang-18
@/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-c6fdd3997dec7649/tmp/clang_command_.tmp.7b9d52.txt
++Contents of '/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-c6fdd3997dec7649/tmp/clang_command_.tmp.7b9d52.txt':
"-cc1" "-load"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../../facebook-clang-plugins/libtooling/build/FacebookClangPlugin.dylib"
"-add-plugin" "BiniouASTExporter" "-plugin-arg-BiniouASTExporter" "-"
"-plugin-arg-BiniouASTExporter" "PREPEND_C

... [truncated 1252 characters] ...

/include"
"-internal-isystem" "/usr/local/include" "-internal-isystem"
"/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu"
"-internal-externc-isystem" "/include" "-internal-externc-isystem"
"/usr/include" "-Wno-ignored-optimization-argument" "-Wno-everything"
"-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1"
"-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions"
"-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o"
"/tmp/coderabbit-infer/c6fdd3997dec7649/file.o" "-x" "c++"
"offline/packages/trackbase/TrkrClusterv2.cc" "-O0" "-fno-builtin"
"-include"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../lib/clang_wrappers/global_defines.h"
"-Wno-everything"

offline/packages/trackbase/TrkrClusterv3.cc

In file included from offline/packages/trackbase/TrkrClusterv3.cc:7:
In file included from offline/packages/trackbase/TrkrClusterv3.h:11:
offline/packages/trackbase/TrkrCluster.h:12:10: fatal error: 'phool/PHObject.h' file not found
12 | #include <phool/PHObject.h>
| ^~~~~~~~~~~~~~~~~~
1 error generated.
Error: the following clang command did not run successfully:
/opt/infer-linux-x86_64-v1.2.0/lib/infer/facebook-clang-plugins/clang/install/bin/clang-18
@/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-bd72ae0385e3d100/tmp/clang_command_.tmp.7f8985.txt
++Contents of '/tmp/coderabbit-infer/5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa-bd72ae0385e3d100/tmp/clang_command_.tmp.7f8985.txt':
"-cc1" "-load"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../../facebook-clang-plugins/libtooling/build/FacebookClangPlugin.dylib"
"-add-plugin" "BiniouASTExporter" "-plugin-arg-BiniouASTExporter" "-"
"-plugin-arg-BiniouASTExporter" "PREPEND_C

... [truncated 1252 characters] ...

/include"
"-internal-isystem" "/usr/local/include" "-internal-isystem"
"/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
"-internal-externc-isystem" "/usr/include/x86_64-linux-gnu"
"-internal-externc-isystem" "/include" "-internal-externc-isystem"
"/usr/include" "-Wno-ignored-optimization-argument" "-Wno-everything"
"-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1"
"-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions"
"-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o"
"/tmp/coderabbit-infer/bd72ae0385e3d100/file.o" "-x" "c++"
"offline/packages/trackbase/TrkrClusterv3.cc" "-O0" "-fno-builtin"
"-include"
"/opt/infer-linux-x86_64-v1.2.0/lib/infer/infer/bin/../lib/clang_wrappers/global_defines.h"
"-Wno-everything"


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f033c91c-adfb-4e8d-aa42-00e6dd7b3d04

📥 Commits

Reviewing files that changed from the base of the PR and between 9128ec0 and d3cc64e.

📒 Files selected for processing (5)
  • offline/packages/trackbase/Makefile.am
  • offline/packages/trackbase/TrkrCluster.h
  • offline/packages/trackbase/TrkrClusterv6.cc
  • offline/packages/trackbase/TrkrClusterv6.h
  • offline/packages/trackbase/TrkrClusterv6LinkDef.h

Comment thread offline/packages/trackbase/TrkrClusterv6.h Outdated
Comment thread offline/packages/trackbase/TrkrClusterv6.h
Ishan Goel added 2 commits June 5, 2026 14:18
@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit d3cc64e4a62a22c75030327679d55c6237c7cefb:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 50caed7b44fe0936ab8c7fa38a10107e542c5d27:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 771f1964b313956f323e3de2671edaf8a94569f6:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@Ishangoel11

Copy link
Copy Markdown
Contributor Author

So when will be added?

@pinkenburg pinkenburg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's try this again - I cannot see a trace of these comments which I made before in the history

#ifndef TRACKBASE_TRKRCLUSTERV6_H
#define TRACKBASE_TRKRCLUSTERV6_H

#include <iostream>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The include file ordering is really important:
https://wiki.sphenix.bnl.gov/index.php?title=Codingconventions#Include_Files
I see other sources here having the same problem - don't worry about that - we'll deal with those later.

unsigned int getAdc() const override { return m_adc; }
void setAdc(unsigned int adc) override { m_adc = adc; }

unsigned int getMaxAdc() const override { return m_maxadc; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it unsigned int or uint16_t? Please make this consistent. Likely m_adc should be the same data type

float getX() const override
{
std::cout << "Deprecated getx trkrcluster function!" << std::endl;
return NAN;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use td::numeric_limits::quiet_NaN() instead of NAN

float m_padmax;
float m_tbinmax;
unsigned char m_rsize; // 8bit
char m_phisize; // 8bit

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of the char's look like unsigned int's and all are initialized to 0, not to some invalid negative value. , So they might better be unsigned chars

char m_srmix; // 8bit
char m_tlmix; // 8bit
char m_trmix; // 8bit
float m_phibinlo;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bin sounds like it should be an integer data type

float m_local[2]{std::numeric_limits<float>::quiet_NaN(), std::numeric_limits<float>::quiet_NaN()};
//< 2D local position [cm] 2 * 32 64bit - cumul 1*64
TrkrDefs::subsurfkey m_subsurfkey; //< unique identifier for hitsetkey-surface maps 16 bit
float m_phierr;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move the long list of initializers from the .cc to here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the binary, it must not go into our repo

return 0;
}
}
if (m_adc == 0xFFFF)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use std::numeric_limits::max() instead of 0xFFFF

}
} // namespace

TrkrClusterv6::TrkrClusterv6()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

once you move the initializers to the .h file, the ctor is empty and can be declared default in the .h file

@pinkenburg

Copy link
Copy Markdown
Contributor

This is more of a general comment for this package - the v6 contains a lot of implementations of seemingly obsolete methods. If they are are really obsolete the setters should be removed from the virtual base class. this will leave any readback of old versions functional but it will stop the propagation of the use of obsolete set methods which do not have any effect

@Ishangoel11 Ishangoel11 requested a review from pinkenburg June 6, 2026 21:04

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 42f2d772-1f05-45af-b5f0-5df62cd980f6

📥 Commits

Reviewing files that changed from the base of the PR and between d3cc64e and 6772d6f.

📒 Files selected for processing (12)
  • offline/packages/TrackingDiagnostics/.TrackResiduals.cc.swo
  • offline/packages/TrackingDiagnostics/.TrackResiduals.h.swo
  • offline/packages/TrackingDiagnostics/.TrkrNtuplizer.h.swo
  • offline/packages/TrackingDiagnostics/TrackResiduals.cc
  • offline/packages/TrackingDiagnostics/TrackResiduals.h
  • offline/packages/TrackingDiagnostics/TrkrNtuplizer.cc
  • offline/packages/tpc/.TpcClusterizer.cc.swo
  • offline/packages/tpc/TpcClusterizer.cc
  • offline/packages/trackbase/.TrkrClusterv6.h.swo
  • offline/packages/trackbase/TrkrCluster.h
  • offline/packages/trackbase/TrkrClusterv6.cc
  • offline/packages/trackbase/TrkrClusterv6.h
🚧 Files skipped from review as they are similar to previous changes (1)
  • offline/packages/trackbase/TrkrClusterv6.h

Comment on lines +63 to +66
virtual void setAdc(uint16_t) {}
virtual uint16_t getAdc() const { return UINT16_MAX; }
virtual void setMaxAdc(uint16_t) {}
virtual unsigned int getMaxAdc() const { return UINT_MAX; }
virtual char getOverlap() const { return std::numeric_limits<char>::max(); }
virtual uint16_t getMaxAdc() const { return UINT16_MAX; }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Narrowing total cluster ADC to 16 bits will truncate valid TPC charge.

TpcClusterizer::calc_cluster_parameter accumulates adc_sum across the full cluster and passes it into setAdc(...). That total can exceed 65535 even when each individual sample fits in 16 bits, so this API change silently wraps real charge and can even collide with the UINT16_MAX invalid sentinel used by TrkrClusterv6::isValid(). The total cluster ADC needs to stay wider than the per-bin ADC fields.

Comment thread offline/packages/trackbase/TrkrCluster.h
Comment thread offline/packages/trackbase/TrkrCluster.h Outdated
Comment thread offline/packages/TrackingDiagnostics/TrackResiduals.cc Outdated
@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 6772d6f441f707b3ddcbd305892d7d17cb11ec09:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 5332e22b56a4d70295b1b9f7ca7117582283b27b:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ab9494a8-fc6c-41f1-988c-17c64c364433

📥 Commits

Reviewing files that changed from the base of the PR and between 6772d6f and 91199aa.

📒 Files selected for processing (9)
  • offline/packages/trackbase/.TrkrClusterv6.h.swn
  • offline/packages/trackbase/TrkrCluster.h
  • offline/packages/trackbase/TrkrClusterv1.h
  • offline/packages/trackbase/TrkrClusterv2.h
  • offline/packages/trackbase/TrkrClusterv3.h
  • offline/packages/trackbase/TrkrClusterv4.h
  • offline/packages/trackbase/TrkrClusterv5.h
  • offline/packages/trackbase/TrkrClusterv6.cc
  • offline/packages/trackbase/TrkrClusterv6.h
💤 Files with no reviewable changes (1)
  • offline/packages/trackbase/TrkrClusterv6.cc
🚧 Files skipped from review as they are similar to previous changes (2)
  • offline/packages/trackbase/TrkrCluster.h
  • offline/packages/trackbase/TrkrClusterv6.h

Comment thread offline/packages/trackbase/TrkrClusterv3.h
@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 91199aa25e65f59aa194b73ce37115815b1d91f1:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 7fd08733ce3f160238b505a793f174b8118ff695:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci

Copy link
Copy Markdown

Build & test report

Report for commit 5f6ac3ba02dbfec1107750fb59ec8b9e19fb66fa:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@Ishangoel11

Copy link
Copy Markdown
Contributor Author

I hope this is good!

@pinkenburg

Copy link
Copy Markdown
Contributor

I fear this is completely broken now. We cannot change any data members of existing classes, these changes will render existing DSTs unreadable. I would suggest to preserver the v6 and start a fresh PR with those. We probably should discuss this in person first - I see a few ways to do this but it depends on what you actually need. Also your environment for some reason adds hidden files like .TpcClusterizer.cc.swo to the PR - you really need to change that.

@osbornjd osbornjd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree with Chris, this will break all of our DST readback. Perhaps we should chat about what you are trying to do - at the very least we should just start with only the v6 version and getting that in

@Ishangoel11 Ishangoel11 closed this Jun 8, 2026
@Ishangoel11 Ishangoel11 deleted the branch branch June 8, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants