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) {
43 }
44 return 0;
45}
46
47void GPURecoWorkflowSpec::initFunctionITS(o2::framework::InitContext& ic)
48{
49 o2::its::VertexerTraits<7>* vtxTraits = nullptr;
50 o2::its::TrackerTraits<7>* trkTraits = nullptr;
51#ifdef ENABLE_UPGRADES
52 if (mSpecConfig.isITS3) {
53 mITSTrackingInterface = std::make_unique<o2::its3::ITS3TrackingInterface>(mSpecConfig.processMC,
54 mSpecConfig.itsStaggered,
55 mSpecConfig.itsTriggerType,
56 mSpecConfig.itsOverrBeamEst);
57 } else {
58 mITSTrackingInterface = std::make_unique<o2::its::ITSTrackingInterface>(mSpecConfig.processMC,
59 mSpecConfig.itsStaggered,
60 mSpecConfig.itsTriggerType,
61 mSpecConfig.itsOverrBeamEst);
62 }
63#else
64 mITSTrackingInterface = std::make_unique<o2::its::ITSTrackingInterface>(mSpecConfig.processMC,
65 mSpecConfig.itsStaggered,
66 mSpecConfig.itsTriggerType,
67 mSpecConfig.itsOverrBeamEst);
68#endif
69 mGPUReco->GetITSTraits(trkTraits, vtxTraits, mITSTimeFrame);
70 mITSTrackingInterface->setTraitsFromProvider(vtxTraits, trkTraits, mITSTimeFrame);
71}
72
73void GPURecoWorkflowSpec::finaliseCCDBITS(o2::framework::ConcreteDataMatcher& matcher, void* obj)
74{
75 mITSTrackingInterface->finaliseCCDB(matcher, obj);
76}
77
78bool GPURecoWorkflowSpec::fetchCalibsCCDBITS(o2::framework::ProcessingContext& pc)
79{
80 mITSTrackingInterface->updateTimeDependentParams(pc);
81 return false;
82}
83} // 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:252