Skip to content

Commit 0cb6393

Browse files
committed
GPU/TPC: Some fixes for number of time bins not determined correctly for triggered data
1 parent 6ff2d76 commit 0cb6393

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

Detectors/TPC/qc/src/Tracking.cxx

+4-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ void Tracking::initialize(outputModes outputMode, bool postprocessOnly)
5555
} else {
5656
throw std::runtime_error("Failed to initialize run parameters from GRP");
5757
}
58-
mQAConfig->ReadConfigurableParam();
58+
auto global = mQAConfig->ReadConfigurableParam();
59+
if (grp->isDetReadOut(o2::detectors::DetID::TPC) && global.tpcTriggeredMode ^ !grp->isDetContinuousReadOut(o2::detectors::DetID::TPC)) {
60+
throw std::runtime_error("TPC triggered mode (GPU_global.tpcTriggeredMode) not set correctly");
61+
}
5962
mQAConfig->configQA.shipToQCAsCanvas = mOutputMode == outputLayout;
6063
mQA = std::make_unique<GPUO2InterfaceQA>(mQAConfig.get());
6164
if (!postprocessOnly) {

GPU/GPUTracking/DataTypes/GPUSettings.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ class GPUSettings
5353
#ifdef GPUCA_NOCOMPAT
5454
// Settings describing the global run parameters
5555
struct GPUSettingsGRP {
56-
// All new members must be sizeof(int) resp. sizeof(float) for alignment reasons!
56+
// All new members must be sizeof(int) resp. sizeof(float) for alignment reasons!, default value for newly added members for old data will be 0.
5757
float solenoidBzNominalGPU = -5.00668f; // solenoid field strength
5858
int constBz = 0; // for test-MC events with constant Bz
5959
int homemadeEvents = 0; // Toy-MC events
60-
int continuousMaxTimeBin = 0; // 0 for triggered events, -1 for default of 23ms
60+
int continuousMaxTimeBin = 0; // 0 for triggered events, -1 for default TF length
6161
int needsClusterer = 0; // Set to true if the data requires the clusterizer
6262
int doCompClusterDecode = 0; // Set to true if the data contains compressed TPC clusters
6363
};

GPU/GPUTracking/Interface/GPUO2InterfaceConfigurableParam.cxx

+6-4
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,12 @@ GPUSettingsO2 GPUO2InterfaceConfiguration::ReadConfigurableParam(GPUO2InterfaceC
103103
obj.configReconstruction = rec;
104104
obj.configDisplay = display;
105105
obj.configQA = QA;
106-
if (global.continuousMaxTimeBin) {
107-
obj.configGRP.continuousMaxTimeBin = global.continuousMaxTimeBin;
108-
} else {
109-
obj.configGRP.continuousMaxTimeBin = global.tpcTriggeredMode ? 0 : -1;
106+
if (obj.configGRP.continuousMaxTimeBin == 0 || obj.configGRP.continuousMaxTimeBin == -1) {
107+
if (global.continuousMaxTimeBin) {
108+
obj.configGRP.continuousMaxTimeBin = global.continuousMaxTimeBin;
109+
} else {
110+
obj.configGRP.continuousMaxTimeBin = global.tpcTriggeredMode ? 0 : -1;
111+
}
110112
}
111113
if (global.solenoidBzNominalGPU > -1e6f) {
112114
obj.configGRP.solenoidBzNominalGPU = global.solenoidBzNominalGPU;

GPU/GPUTracking/Interface/GPUO2InterfaceUtils.cxx

+2
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,10 @@ std::unique_ptr<GPUParam> GPUO2InterfaceUtils::getFullParam(float solenoidBz, un
8585
if (!pConfiguration) {
8686
tmpConfig = std::make_unique<GPUO2InterfaceConfiguration>();
8787
pConfiguration = &tmpConfig;
88+
(*pConfiguration)->configGRP.continuousMaxTimeBin = -1;
8889
} else if (!*pConfiguration) {
8990
*pConfiguration = std::make_unique<GPUO2InterfaceConfiguration>();
91+
(*pConfiguration)->configGRP.continuousMaxTimeBin = -1;
9092
}
9193
(*pConfiguration)->configGRP.solenoidBzNominalGPU = solenoidBz;
9294
if (pO2Settings && *pO2Settings) {

0 commit comments

Comments
 (0)