Project
Loading...
Searching...
No Matches
TrackerSpec.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
13
14#ifndef O2_TRK_TRACKERDPL
15#define O2_TRK_TRACKERDPL
16
18
20#include "Framework/Task.h"
21
22#include <oneapi/tbb/task_arena.h>
23
27#include "GPUDataTypesConfig.h"
28
30
31#include "TStopwatch.h"
32
33#include <nlohmann/json.hpp>
34
35namespace o2::trk
36{
38{
39 public:
40 TrackerDPL(std::shared_ptr<o2::base::GRPGeomRequest> gr,
41 bool isMC,
42 const std::string& hitRecoConfig,
43 const std::string& clusterRecoConfig,
45 ~TrackerDPL() override = default;
46 void init(framework::InitContext& ic) final;
47 void run(framework::ProcessingContext& pc) final;
49 // void finaliseCCDB(framework::ConcreteDataMatcher& matcher, void* obj) final;
50 void stop() final;
51
52 private:
53 void updateTimeDependentParams(framework::ProcessingContext& pc);
54 std::vector<o2::its::TrackingParameters> createTrackingParamsFromConfig();
55 // std::unique_ptr<o2::gpu::GPUReconstruction> mRecChain = nullptr;
56 // std::unique_ptr<o2::gpu::GPUChainITS> mChainITS = nullptr;
57 // std::shared_ptr<o2::base::GRPGeomRequest> mGGCCDBRequest;
58 // ITSTrackingInterface mITSTrackingInterface;
59 bool mIsMC{true};
61 std::shared_ptr<its::BoundedMemoryResource> mMemoryPool;
62 std::shared_ptr<its::ExternalAllocator> mGPUAllocator;
63 std::shared_ptr<tbb::task_arena> mTaskArena;
64 nlohmann::json mHitRecoConfig;
65 nlohmann::json mClusterRecoConfig;
66 TStopwatch mTimer;
67#ifdef O2_WITH_ACTS
68 bool mUseACTS = false;
69#endif
70};
71
72framework::DataProcessorSpec getTrackerSpec(bool useMC, const std::string& hitRecoConfig, const std::string& clusterRecoConfig, gpu::gpudatatypes::DeviceType dType = gpu::gpudatatypes::DeviceType::CPU);
73
74} // namespace o2::trk
75#endif /* O2_TRK_TRACKERDPL */
Definition of the ClusterTopology class.
Helper for geometry and GRP related CCDB requests.
void endOfStream(framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void run(framework::ProcessingContext &pc) final
void stop() final
This is invoked on stop.
~TrackerDPL() override=default
void init(framework::InitContext &ic) final
framework::DataProcessorSpec getTrackerSpec(bool useMC, const std::string &hitRecoConfig, const std::string &clusterRecoConfig, gpu::gpudatatypes::DeviceType dType=gpu::gpudatatypes::DeviceType::CPU)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...