Skip to content

Commit ee7c5dc

Browse files
committed
GPU Display: fetch ITS topology dictionary from CCDB
1 parent 9d4798f commit ee7c5dc

6 files changed

Lines changed: 23 additions & 0 deletions

File tree

GPU/GPUTracking/Interface/GPUO2InterfaceDisplay.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,8 @@ int GPUO2InterfaceDisplay::endDisplay()
7171
mFrontend->DisplayExit();
7272
return 0;
7373
}
74+
75+
void GPUO2InterfaceDisplay::UpdateCalib(const GPUCalibObjectsConst* calib)
76+
{
77+
mDisplay->UpdateCalib(calib);
78+
}

GPU/GPUTracking/Interface/GPUO2InterfaceDisplay.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
#include <memory>
3030
#include <vector>
31+
#include "GPUDataTypes.h"
3132

3233
namespace o2::gpu
3334
{
@@ -43,6 +44,7 @@ class GPUO2InterfaceDisplay
4344
GPUO2InterfaceDisplay(const GPUO2InterfaceConfiguration* config = nullptr);
4445
~GPUO2InterfaceDisplay();
4546

47+
void UpdateCalib(const GPUCalibObjectsConst* calib);
4648
int startDisplay();
4749
int show(const GPUTrackingInOutPointers* ptrs);
4850
int endDisplay();

GPU/GPUTracking/display/GPUDisplay.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class GPUDisplay : public GPUDisplayInterface
4848
void ShowNextEvent(const GPUTrackingInOutPointers* ptrs = nullptr) override;
4949
void WaitForNextEvent() override;
5050
void SetCollisionFirstCluster(unsigned int collision, int slice, int cluster) override;
51+
void UpdateCalib(const GPUCalibObjectsConst* calib) override { mCalib = calib; }
5152

5253
void HandleKey(unsigned char key);
5354
int DrawGLScene();

GPU/GPUTracking/display/GPUDisplayInterface.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class GPUDisplayInterface
3434
virtual void ShowNextEvent(const GPUTrackingInOutPointers* ptrs = nullptr) = 0;
3535
virtual void WaitForNextEvent() = 0;
3636
virtual void SetCollisionFirstCluster(unsigned int collision, int slice, int cluster) = 0;
37+
virtual void UpdateCalib(const GPUCalibObjectsConst* calib) = 0;
3738
static GPUDisplayInterface* getDisplay(GPUDisplayFrontendInterface* frontend, GPUChainTracking* chain, GPUQA* qa, const GPUParam* param = nullptr, const GPUCalibObjectsConst* calib = nullptr, const GPUSettingsDisplay* config = nullptr);
3839

3940
protected:

GPU/Workflow/include/GPUWorkflow/O2GPUDPLDisplay.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ class O2GPUDPLDisplaySpec : public o2::framework::Task
4343
void init(o2::framework::InitContext& ic) final;
4444
void run(o2::framework::ProcessingContext& pc) final;
4545
void endOfStream(o2::framework::EndOfStreamContext& ec) final;
46+
void finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) final;
4647

4748
private:
4849
bool mUseMC = false;
50+
bool mUpdateCalib = false;
4951
o2::dataformats::GlobalTrackID::mask_t mTrkMask;
5052
o2::dataformats::GlobalTrackID::mask_t mClMask;
5153
std::unique_ptr<GPUO2InterfaceDisplay> mDisplay;

GPU/Workflow/src/O2GPUDPLDisplay.cxx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ void O2GPUDPLDisplaySpec::init(InitContext& ic)
8787
void O2GPUDPLDisplaySpec::run(ProcessingContext& pc)
8888
{
8989
static bool first = false;
90+
if (mUpdateCalib) {
91+
mDisplay->UpdateCalib(&mConfig->configCalib);
92+
}
9093
if (first == false) {
9194
if (mDisplay->startDisplay()) {
9295
throw std::runtime_error("Error starting event display");
@@ -106,6 +109,15 @@ void O2GPUDPLDisplaySpec::endOfStream(EndOfStreamContext& ec)
106109
mDisplay->endDisplay();
107110
}
108111

112+
void O2GPUDPLDisplaySpec::finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj)
113+
{
114+
if (matcher == o2::framework::ConcreteDataMatcher("ITS", "CLUSDICT", 0)) {
115+
mConfig->configCalib.itsPatternDict = (const o2::itsmft::TopologyDictionary*)obj;
116+
mUpdateCalib = true;
117+
return;
118+
}
119+
}
120+
109121
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
110122
{
111123
WorkflowSpec specs;

0 commit comments

Comments
 (0)