Skip to content

Commit feaa680

Browse files
authored
Add ACTS support for tracking in TrackerSpec
1 parent 6145432 commit feaa680

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

Detectors/Upgrades/ALICE3/TRK/workflow/src/TrackerSpec.cxx

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
#include "TRKWorkflow/TrackerSpec.h"
3030
#include <TGeoGlobalMagField.h>
3131

32+
#ifdef O2_WITH_ACTS
33+
#include "TRKReconstruction/TrackerACTS.h"
34+
#endif
35+
3236
#include <TFile.h>
3337
#include <TTree.h>
3438

@@ -61,6 +65,10 @@ void TrackerDPL::init(InitContext& ic)
6165
// mITSTrackingInterface.setTraitsFromProvider(mChainITS->GetITSVertexerTraits(),
6266
// mChainITS->GetITSTrackerTraits(),
6367
// mChainITS->GetITSTimeframe());
68+
69+
#ifdef O2_WITH_ACTS
70+
mUseACTS = ic.options().get<bool>("useACTS");
71+
#endif
6472
}
6573

6674
void TrackerDPL::stop()
@@ -276,14 +284,13 @@ void TrackerDPL::run(ProcessingContext& pc)
276284
itsTrackerTraits.setMemoryPool(mMemoryPool);
277285
itsTrackerTraits.setNThreads(mTaskArena->max_concurrency(), mTaskArena);
278286
itsTrackerTraits.adoptTimeFrame(static_cast<o2::its::TimeFrame<11>*>(&timeFrame));
279-
itsTracker.adoptTimeFrame(timeFrame);
280287
itsTrackerTraits.setBz(mHitRecoConfig["geometry"]["bz"].get<float>());
281288
auto field = new field::MagneticField("ALICE3Mag", "ALICE 3 Magnetic Field", mHitRecoConfig["geometry"]["bz"].get<float>() / 5.f, 0.0, o2::field::MagFieldParam::k5kGUniform);
282289
TGeoGlobalMagField::Instance()->SetField(field);
283290
TGeoGlobalMagField::Instance()->Lock();
291+
itsTracker.adoptTimeFrame(timeFrame);
284292

285-
int nRofs = timeFrame.loadROFsFromHitTree(hitsTree, gman, mHitRecoConfig);
286-
293+
const int nRofs = timeFrame.loadROFsFromHitTree(hitsTree, gman, mHitRecoConfig);
287294
const int inROFpileup{mHitRecoConfig.contains("inROFpileup") ? mHitRecoConfig["inROFpileup"].get<int>() : 1};
288295

289296
// Add primary vertices from MC headers for each ROF
@@ -293,6 +300,16 @@ void TrackerDPL::run(ProcessingContext& pc)
293300

294301
itsTrackerTraits.updateTrackingParameters(trackingParams);
295302

303+
#ifdef O2_WITH_ACTS
304+
if (mUseACTS) {
305+
LOG(info) << "Running the tracking with ACTS";
306+
o2::trk::TrackerACTS<11> actsTracker;
307+
actsTracker.setBz(mHitRecoConfig["geometry"]["bz"].get<float>());
308+
actsTracker.adoptTimeFrame(timeFrame);
309+
actsTracker.clustersToTracks();
310+
}
311+
#endif
312+
296313
const auto trackingLoopStart = std::chrono::steady_clock::now();
297314
for (size_t iter{0}; iter < trackingParams.size(); ++iter) {
298315
LOGP(info, "{}", trackingParams[iter].asString());
@@ -391,7 +408,12 @@ DataProcessorSpec getTrackerSpec(bool useMC, const std::string& hitRecoConfig, o
391408
useMC,
392409
hitRecoConfig,
393410
dType)},
394-
Options{ConfigParamSpec{"max-loops", VariantType::Int, 1, {"max number of loops"}}}};
411+
Options{ConfigParamSpec{"max-loops", VariantType::Int, 1, {"max number of loops"}}
412+
#ifdef O2_WITH_ACTS
413+
,
414+
{"useACTS", o2::framework::VariantType::Bool, false, {"Use ACTS for tracking"}}
415+
#endif
416+
}};
395417
}
396418

397419
inputs.emplace_back("dummy", "TRK", "DUMMY", 0, Lifetime::Timeframe);

0 commit comments

Comments
 (0)