Project
Loading...
Searching...
No Matches
CATrackerSpec.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_MFT_CATRACKERSPEC_H_
15#define O2_MFT_CATRACKERSPEC_H_
16
17#include <cstdint>
18#include <memory>
19#include <optional>
20#include <vector>
21
25#include "Framework/Task.h"
37
38namespace o2::mft
39{
40
43
47{
48 public:
49 CATrackerDPL(std::shared_ptr<o2::base::GRPGeomRequest> gr,
50 ca::TrackerOptions options);
51 ~CATrackerDPL() override = default;
52
53 void init(framework::InitContext& ic) final;
54 void run(framework::ProcessingContext& pc) final;
55 void finaliseCCDB(framework::ConcreteDataMatcher& matcher, void* obj) final;
56
57 private:
58 void updateTimeDependentParams(framework::ProcessingContext& pc);
59 void configureROFViews(gsl::span<const o2::itsmft::ROFRecord> rofs,
60 gsl::span<const o2::dataformats::IRFrame> irFrames);
61 void initialiseTracking();
62 bool processTimeFrame(
63 gsl::span<const o2::itsmft::ROFRecord> rofs,
64 gsl::span<const o2::itsmft::CompClusterExt> clusters,
65 gsl::span<const unsigned char> patterns,
67 bool isActive() const noexcept { return mTracker != nullptr && mTracker->isConfiguredFor(mSession.frame); }
68
69 std::shared_ptr<o2::base::GRPGeomRequest> mGGCCDBRequest;
70 bool mUseMC = false;
71 bool mTrackingInitialised = false;
72 ca::TrackerOptions mOptions;
74 std::unique_ptr<o2::itsmft::tracking::TrackerTraits> mTrackerTraits;
75 std::unique_ptr<o2::itsmft::tracking::Tracker> mTracker;
76 const o2::itsmft::TopologyDictionary* mDictionary = nullptr;
77 int mMFTROFrameLengthInBC = 0;
78};
79
80o2::framework::DataProcessorSpec getCATrackerSpec(const ca::TrackerOptions& options);
81
82} // namespace o2::mft
83
84#endif // O2_MFT_CATRACKERSPEC_H_
Definition of the ClusterTopology class.
Shared CA tracking configuration for ITS and MFT.
Helper for geometry and GRP related CCDB requests.
Class to delimit start and end IR of certain time period.
Shared cluster I/O utilities for ITS and MFT (based on ITStracking/IOUtils.h)
Tracker orchestrator.
std::vector< o2::MCCompLabel > labels
A container to hold and manage MC truth information/labels.
void run(framework::ProcessingContext &pc) final
void init(framework::InitContext &ic) final
void finaliseCCDB(framework::ConcreteDataMatcher &matcher, void *obj) final
~CATrackerDPL() override=default
Shared CA tracker traits: same ITS-style tracklet/cell/road logic; MFT uses x-y LUT and forward refit...
uint32_t trackClusterIndicesSize noexcept
constexpr int MFTNLayers
MFT CA half-disk layer count.
CATrackerPublicationAction decideCATrackerPublicationAction(bool active, bool success) noexcept
o2::framework::DataProcessorSpec getCATrackerSpec(const ca::TrackerOptions &options)
std::vector< Cluster > clusters