Skip to content

Commit be1f9ed

Browse files
committed
SPecs
1 parent 38840ad commit be1f9ed

3 files changed

Lines changed: 24 additions & 9 deletions

File tree

‎Detectors/Upgrades/ALICE3/GlobalReconstruction/reconstruction/CMakeLists.txt‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ o2_add_library(ALICE3GlobalReconstruction
4141
TBB::tbb)
4242

4343
if(Acts_FOUND)
44+
target_sources(${targetName} PRIVATE src/TrackerACTS.cxx)
4445
target_compile_definitions(${targetName} PUBLIC O2_WITH_ACTS)
4546
endif()

‎Detectors/Upgrades/ALICE3/GlobalReconstruction/reconstruction/include/ALICE3GlobalReconstruction/TrackerACTS.h‎

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121

2222
#include <Acts/Definitions/Units.hpp>
2323
#include <Framework/Logger.h>
24-
#include <DataFormatsITSMFT/CompCluster.h>
24+
#include <array>
25+
#include <vector>
2526
#include <ITStracking/TimeFrame.h>
2627
#include <TH2F.h>
2728

@@ -104,10 +105,9 @@ class TrackerACTS
104105

105106
/// Adopt a TimeFrame for processing
106107
void adoptTimeFrame(o2::its::TimeFrame<nLayers>& tf);
107-
108-
void adoptClusters(gsl::span<const o2::itsmft::CompClusterExt> clusters)
108+
void adoptSensorIDs(const std::array<std::vector<int>, nLayers>& sensorIDs)
109109
{
110-
mInputClusters = clusters;
110+
mSensorIDs = &sensorIDs;
111111
}
112112

113113
/// Main tracking entry point: convert clusters to tracks
@@ -136,9 +136,6 @@ class TrackerACTS
136136
/// Create seeds (triplets) from space points using ACTS SeedFinder
137137
void createSeeds();
138138

139-
/// Estimate track parameters from a seed using ACTS
140-
bool estimateTrackParams(const SeedACTS& seed, o2::its::TrackITSExt& track) const;
141-
142139
/// Run track finding from seeds
143140
void findTracks();
144141

@@ -166,7 +163,7 @@ class TrackerACTS
166163
float mBz{0.5f}; ///< Magnetic field in Tesla
167164
unsigned int mTimeFrameCounter{0};
168165
double mTotalTime{0.};
169-
gsl::span<const o2::itsmft::CompClusterExt> mInputClusters;
166+
const std::array<std::vector<int>, nLayers>* mSensorIDs = nullptr;
170167

171168
// Tracking states for logging
172169
enum State {

‎Detectors/Upgrades/ALICE3/GlobalReconstruction/workflow/include/ALICE3GlobalReconstructionWorkflow/TrackerSpecImpl.h‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
#include "Field/MagneticField.h"
2323
#include "Framework/ControlService.h"
2424
#include "ITStracking/Tracker.h"
25+
#ifdef O2_WITH_ACTS
26+
#include "ALICE3GlobalReconstruction/TrackerACTS.h"
27+
#endif
2528
#include "SimulationDataFormat/MCCompLabel.h"
2629
#include "SimulationDataFormat/MCEventHeader.h"
2730
#include "SimulationDataFormat/MCTruthContainer.h"
@@ -114,8 +117,22 @@ void TrackerDPL::runTracking(framework::ProcessingContext& pc, TimeFrameT& timeF
114117
nRofs = timeFrame.loadROFrameData(layerROFs, layerClusters, layerPatterns, mIsMC ? &layerLabels : nullptr, yPlaneMLOT);
115118
timeFrame.addTruthSeedingVertices();
116119
}
117-
118120
const auto trackingLoopStart = std::chrono::steady_clock::now();
121+
#ifdef O2_WITH_ACTS
122+
if (mUseACTS) {
123+
LOG(info) << "Running ACTS tracking";
124+
o2::trk::TrackerACTS<11> actsTracker;
125+
actsTracker.adoptTimeFrame(timeFrame);
126+
actsTracker.adoptSensorIDs(timeFrame.getClusterSensorIDs());
127+
128+
const auto& config = mHitRecoConfig.empty() ? mClusterRecoConfig : mHitRecoConfig;
129+
// The input magnetic field is in kG; ACTS TrackerACTS expects Tesla.
130+
actsTracker.setBz(config["geometry"]["bz"].get<float>() * 0.1f);
131+
actsTracker.clustersToTracks();
132+
actsTracker.printSummary();
133+
} else
134+
#endif
135+
{
119136
for (size_t iter{0}; iter < mTrackingParams.size(); ++iter) {
120137
LOGP(info, "{}", mTrackingParams[iter].asString());
121138
trackerTraits.initialiseTimeFrame(iter);

0 commit comments

Comments
 (0)