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.
14
15#ifndef O2_ITS_CA_WORKFLOW_CATRACKERSPEC_H_
16#define O2_ITS_CA_WORKFLOW_CATRACKERSPEC_H_
17
18#include <cstdint>
19#include <memory>
20#include <optional>
21#include <vector>
22
23#include <gsl/span>
24
28#include "Framework/Task.h"
41
42namespace o2::its::ca
43{
44
47
51{
52 public:
53 CATrackerDPL(std::shared_ptr<o2::base::GRPGeomRequest> gr, WorkflowOptions options);
54 ~CATrackerDPL() override = default;
55
56 void init(framework::InitContext& ic) final;
57 void run(framework::ProcessingContext& pc) final;
58 void finaliseCCDB(framework::ConcreteDataMatcher& matcher, void* obj) final;
59
60 private:
61 void updateTimeDependentParams(framework::ProcessingContext& pc);
62 void addTruthSeedingVertices(const o2::InteractionRecord& origin, gsl::span<const o2::itsmft::ROFRecord> rofs);
63 void configureROFViews(gsl::span<const o2::itsmft::ROFRecord> rofs);
64 void initialiseTracking();
65 bool processTimeFrame(
66 gsl::span<const o2::itsmft::ROFRecord> rofs,
67 gsl::span<const o2::itsmft::CompClusterExt> clusters,
68 gsl::span<const unsigned char> patterns,
70 bool isActive() const noexcept { return mTracker != nullptr && mTracker->isConfiguredFor(mSession.frame); }
71
72 std::shared_ptr<o2::base::GRPGeomRequest> mGGCCDBRequest;
73 bool mUseMC = false;
74 bool mTrackingInitialised = false;
75 WorkflowOptions mOptions;
77 std::unique_ptr<o2::itsmft::tracking::TrackerTraits> mTrackerTraits;
78 std::unique_ptr<o2::itsmft::tracking::Tracker> mTracker;
79 const o2::itsmft::TopologyDictionary* mDictionary = nullptr;
80 PublicationAdapter mPublication;
81};
82
84
85} // namespace o2::its::ca
86
87#endif // O2_ITS_CA_WORKFLOW_CATRACKERSPEC_H_
header::DataOrigin origin
Driver-level configuration and vertex-constraint preflight for the ITS common-CA tracker workflow.
Definition of the ClusterTopology class.
Shared CA tracking configuration for ITS and MFT.
Helper for geometry and GRP related CCDB requests.
Definition of the ITSMFT ROFrame (trigger) record.
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
~CATrackerDPL() override=default
void finaliseCCDB(framework::ConcreteDataMatcher &matcher, void *obj) final
Shared CA tracker traits: same ITS-style tracklet/cell/road logic; MFT uses x-y LUT and forward refit...
o2::framework::DataProcessorSpec getCATrackerSpec(const WorkflowOptions &options)
uint32_t trackClusterIndicesSize noexcept
constexpr int ITSNLayers
ITS CA layer count.
CATrackerPublicationAction decideCATrackerPublicationAction(bool active, bool success) noexcept
std::vector< Cluster > clusters