10#include <framework/core/Module.h>
12#include <framework/datastore/StoreArray.h>
13#include <mva/methods/ONNX.h>
14#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
15#include <tracking/trackingUtilities/rootification/StoreWrappedObjPtr.h>
31 *
@class CATFinderModule
32 * @brief Belle II module
for the
CDC AI
Track Finder (CATFinder)
using a Graph Neural Network (GNN) and condensation clustering.
34 * The CATFinderModule processes Central Drift Chamber (
CDC) wire hits and reconstructs charged particle tracks
35 * by applying a Graph Neural Network (GNN) followed by condensation-based clustering and spatial hit ordering.
37 * The module workflow consists of:
38 * - **Preprocessing** ``
CDCWireHit`` objects to construct the input feature tensor.
39 * - **GNN inference**
using a trained model loaded from a weight file.
40 * - **Postprocessing** GNN outputs to extract condensation points, assign hits, and build `
RecoTrack` objects.
42 * The GNN is run via the ONNX interface.
47 class CATFinderModule :
public Module {
58 void initialize()
override;
65 void beginRun()
override;
73 void event()
override;
78 std::string m_CDCRecoTracksName;
81 std::string m_catFinderWeightfileName =
"CATFinderWeightFile";
84 StoreArray<CDCHit> m_CDCHits;
87 TrackingUtilities::StoreWrappedObjPtr<std::vector<TrackingUtilities::CDCWireHit>> m_wireHitVector{
"CDCWireHitVector"};
90 StoreArray<RecoTrack> m_CDCRecoTracks;
93 StoreArray<RecoHitInformation> m_recoHitInformations;
96 float m_tdcOffset = 0.;
99 float m_tdcScale = 0.;
102 float m_adcClip = 0.;
105 float m_slayerScale = 0.;
108 float m_clayerScale = 0.;
111 float m_layerScale = 0.;
114 float m_spatialCoordinatesScale = 0.;
117 unsigned int m_nInputFeatures = 0;
120 unsigned int m_latentSpaceNDim = 0;
126 float m_tDistance = 0.;
129 float m_maxRadius = 0.;
132 unsigned int m_minNumberHits = 0.;
135 std::string m_inputTFeaturesName;
138 std::string m_outputTBetaName;
141 std::string m_outputTCoordinatesName;
144 std::string m_outputTMomentumName;
147 std::string m_outputTVertexName;
150 std::string m_outputTChargeName;
153 std::unique_ptr<MVA::ONNX::Session> m_session;
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
This is the Reconstruction Event-Data Model Track.
Class that bundles various TrackFitResults.
Class representing a hit wire in the central drift chamber.
Abstract base class for different kinds of events.