From 927596754d17d9f08b06f265ac50f69aa1ee7b7e Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Tue, 14 Jul 2026 11:59:23 -0400 Subject: [PATCH 1/2] CaloVtxAlgoCNN: define constructor out-of-line for the pImpl member The defaulted constructor was inline in the header, which instantiates ~unique_ptr where OnnxSession is only forward-declared. The library builds (OnnxSession is complete in the .cc), but an external consumer under cling (a macro doing `new CaloVtxAlgoCNN()`) fails with "invalid application of sizeof to an incomplete type". Move the ctor out-of-line next to the dtor, matching CaloVtxAlgoVit. Co-Authored-By: Claude Opus 4.8 --- offline/packages/calovtxreco/CaloVtxAlgoCNN.cc | 1 + offline/packages/calovtxreco/CaloVtxAlgoCNN.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc b/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc index df1a18f54d..1d68c839e4 100644 --- a/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc +++ b/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc @@ -44,6 +44,7 @@ struct CaloVtxAlgoCNN::OnnxSession } }; +CaloVtxAlgoCNN::CaloVtxAlgoCNN() = default; CaloVtxAlgoCNN::~CaloVtxAlgoCNN() = default; int CaloVtxAlgoCNN::Init(PHCompositeNode * /*topNode*/) diff --git a/offline/packages/calovtxreco/CaloVtxAlgoCNN.h b/offline/packages/calovtxreco/CaloVtxAlgoCNN.h index c1770de5b3..4f25f9ad10 100644 --- a/offline/packages/calovtxreco/CaloVtxAlgoCNN.h +++ b/offline/packages/calovtxreco/CaloVtxAlgoCNN.h @@ -25,8 +25,8 @@ class CaloVtxAlgoCNN : public CaloVtxAlgo kOHC = 2 }; - explicit CaloVtxAlgoCNN() = default; - ~CaloVtxAlgoCNN() override; + CaloVtxAlgoCNN(); // defined in the .cc, where OnnxSession is complete + ~CaloVtxAlgoCNN() override; // (required for the unique_ptr pImpl member, notably under cling) int Init(PHCompositeNode *topNode) override; int CalculateVertex(PHCompositeNode *topNode, float &zvtx) override; From be979fc3667e4c696181bda4350f7bbf8a912a8d Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Tue, 14 Jul 2026 12:01:28 -0400 Subject: [PATCH 2/2] shorten comments --- offline/packages/calovtxreco/CaloVtxAlgoCNN.cc | 2 +- offline/packages/calovtxreco/CaloVtxAlgoCNN.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc b/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc index 1d68c839e4..e95ab5314f 100644 --- a/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc +++ b/offline/packages/calovtxreco/CaloVtxAlgoCNN.cc @@ -27,7 +27,7 @@ namespace const std::string GeomNodeIhc = "TOWERGEOM_HCALIN"; } // namespace -// onnxruntime session (pImpl, keeps Ort types out of the header) +// onnxruntime session (pImpl) struct CaloVtxAlgoCNN::OnnxSession { Ort::Env env{ORT_LOGGING_LEVEL_WARNING, "CaloVtxAlgoCNN"}; diff --git a/offline/packages/calovtxreco/CaloVtxAlgoCNN.h b/offline/packages/calovtxreco/CaloVtxAlgoCNN.h index 4f25f9ad10..64b0dc2f8e 100644 --- a/offline/packages/calovtxreco/CaloVtxAlgoCNN.h +++ b/offline/packages/calovtxreco/CaloVtxAlgoCNN.h @@ -26,7 +26,7 @@ class CaloVtxAlgoCNN : public CaloVtxAlgo }; CaloVtxAlgoCNN(); // defined in the .cc, where OnnxSession is complete - ~CaloVtxAlgoCNN() override; // (required for the unique_ptr pImpl member, notably under cling) + ~CaloVtxAlgoCNN() override; // (required for the unique_ptr pImpl member) int Init(PHCompositeNode *topNode) override; int CalculateVertex(PHCompositeNode *topNode, float &zvtx) override;