Project
Loading...
Searching...
No Matches
TrackingInterface.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
12#ifndef O2_ITS_TRACKINGINTERFACE
13#define O2_ITS_TRACKINGINTERFACE
14
16
18#include "ITStracking/Tracker.h"
25
26#include "GPUDataTypes.h"
27#include "GPUO2Interface.h"
28#include "GPUChainITS.h"
29
30namespace o2::its
31{
33{
34 public:
36 int trgType,
37 const bool overrBeamEst)
38 : mIsMC{isMC},
39 mUseTriggers{trgType},
40 mOverrideBeamEstimation{overrBeamEst}
41 {
42 }
43
46 {
47 if (v == nullptr) {
48 LOGP(error, "Mean Vertex Object is nullptr");
49 return;
50 } else {
51 LOGP(info, "Mean Vertex set with x: {} y: {}", v->getX(), v->getY());
52 }
53 mMeanVertex = v;
54 }
55 // Task callbacks
56 void initialise();
57 template <bool isGPU = false>
59
61 virtual void finaliseCCDB(framework::ConcreteDataMatcher& matcher, void* obj);
62
63 // Custom
66 {
68 LOGP(fatal, "ITS Tracking mode Unset is meant to be a default. Specify the mode");
69 }
70 mMode = mode;
71 }
72
73 auto getTracker() const { return mTracker.get(); }
74 auto getVertexer() const { return mVertexer.get(); }
75
77
78 protected:
79 virtual void loadROF(gsl::span<itsmft::ROFRecord>& trackROFspan,
80 gsl::span<const itsmft::CompClusterExt> clusters,
81 gsl::span<const unsigned char>::iterator& pattIt,
84
85 private:
86 bool mIsMC = false;
87 bool mRunVertexer = true;
88 bool mCosmicsProcessing = false;
89 int mUseTriggers = 0;
91 bool mOverrideBeamEstimation = false;
92 const o2::itsmft::TopologyDictionary* mDict = nullptr;
93 std::unique_ptr<Tracker> mTracker = nullptr;
94 std::unique_ptr<Vertexer> mVertexer = nullptr;
95 const o2::dataformats::MeanVertexObject* mMeanVertex;
96};
97
98} // namespace o2::its
99#endif // O2_ITS_TRACKINGINTERFACE
Definition of the ClusterTopology class.
Header of the General Run Parameters object.
Class to compute the primary vertex in ITS from tracklets.
A container to hold and manage MC truth information/labels.
virtual void loadROF(gsl::span< itsmft::ROFRecord > &trackROFspan, gsl::span< const itsmft::CompClusterExt > clusters, gsl::span< const unsigned char >::iterator &pattIt, const dataformats::MCTruthContainer< MCCompLabel > *mcLabels)
virtual void finaliseCCDB(framework::ConcreteDataMatcher &matcher, void *obj)
virtual void updateTimeDependentParams(framework::ProcessingContext &pc)
ITSTrackingInterface(bool isMC, int trgType, const bool overrBeamEst)
void setTraitsFromProvider(VertexerTraits *, TrackerTraits *, TimeFrame *)
void setMeanVertex(const o2::dataformats::MeanVertexObject *v)
void run(framework::ProcessingContext &pc)
void getConfiguration(framework::ProcessingContext &pc)
void setClusterDictionary(const o2::itsmft::TopologyDictionary *d)
void setTrackingMode(TrackingMode mode=TrackingMode::Unset)
GLenum mode
Definition glcorearb.h:266
const GLdouble * v
Definition glcorearb.h:832
std::vector< Cluster > clusters