Project
Loading...
Searching...
No Matches
GPUWorkflowITS.cxx
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
14
16#include "GPUO2Interface.h"
17#include "Framework/WorkflowSpec.h" // o2::framework::mergeInputs
26
27#ifdef ENABLE_UPGRADES
29#endif
30
31namespace o2::gpu
32{
33
34int32_t GPURecoWorkflowSpec::runITSTracking(o2::framework::ProcessingContext& pc)
35{
36 mITSTimeFrame->setDevicePropagator(mGPUReco->GetDeviceO2Propagator());
37 LOGP(debug, "GPUChainITS is giving me device propagator: {}", (void*)mGPUReco->GetDeviceO2Propagator());
38 mITSTrackingInterface->run(pc);
39 static bool first = true;
40 if (mNTFs == 1 && pc.services().get<const o2::framework::DeviceSpec>().inputTimesliceId == 0) {
44 }
45 return 0;
46}
47
48void GPURecoWorkflowSpec::initFunctionITS(o2::framework::InitContext& ic)
49{
50 o2::its::VertexerTraits<7>* vtxTraits = nullptr;
51 o2::its::TrackerTraits<7>* trkTraits = nullptr;
52#ifdef ENABLE_UPGRADES
53 if (mSpecConfig.isITS3) {
54 mITSTrackingInterface = std::make_unique<o2::its3::ITS3TrackingInterface>(mSpecConfig.processMC,
55 mSpecConfig.itsTriggerType,
56 mSpecConfig.itsOverrBeamEst);
57 } else
58#endif
59 {
60 mITSTrackingInterface = std::make_unique<o2::its::ITSTrackingInterface>(mSpecConfig.processMC,
61 mSpecConfig.itsTriggerType,
62 mSpecConfig.itsOverrBeamEst);
63 }
64 mITSTrackingInterface = std::make_unique<o2::its::ITSTrackingInterface>(mSpecConfig.processMC,
65 mSpecConfig.itsTriggerType,
66 mSpecConfig.itsOverrBeamEst);
67 mGPUReco->GetITSTraits(trkTraits, vtxTraits, mITSTimeFrame);
68 mITSTrackingInterface->setTraitsFromProvider(vtxTraits, trkTraits, mITSTimeFrame);
69}
70
71void GPURecoWorkflowSpec::finaliseCCDBITS(o2::framework::ConcreteDataMatcher& matcher, void* obj)
72{
73 mITSTrackingInterface->finaliseCCDB(matcher, obj);
74}
75
76bool GPURecoWorkflowSpec::fetchCalibsCCDBITS(o2::framework::ProcessingContext& pc)
77{
78 mITSTrackingInterface->updateTimeDependentParams(pc);
79 return false;
80}
81} // namespace o2::gpu
std::ostringstream debug
Definition of the Names Generator class.
static std::string getConfigOutputFileName(const std::string &procName, const std::string &confName="", bool json=true)
Definition NameConf.cxx:115
static void write(std::string const &filename, std::string const &keyOnly="")
ServiceRegistryRef services()
The services registry associated with this processing context.
std::string name
The name of the associated DataProcessorSpec.
Definition DeviceSpec.h:50
size_t inputTimesliceId
The time pipelining id of this particular device.
Definition DeviceSpec.h:68
virtual void setDevicePropagator(const o2::base::PropagatorImpl< float > *)
Definition TimeFrame.h:247