Skip to content

Commit 32f1fcb

Browse files
committed
Get tof config from tof pid task if available
1 parent 8afef12 commit 32f1fcb

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

ALICE3/TableProducer/alice3StrangenessTofPid.cxx

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "ALICE3/DataModel/OTFStrangeness.h"
2020
#include "ALICE3/DataModel/tracksAlice3.h"
2121
#include "ALICE3/Utils/a3StrangenessTofPidHelper.h"
22+
#include "Common/Core/TableHelper.h"
2223
#include "Common/Core/trackUtilities.h"
2324

2425
#include <Framework/AnalysisDataModel.h>
@@ -94,7 +95,6 @@ struct Alice3StrangenessTofPid {
9495
Configurable<bool> histosAntiXi{"histosAntiXi", true, "Produce histograms for anti xi candidates"};
9596
Configurable<bool> histosOmega{"histosOmega", true, "Produce histograms for omega candidates"};
9697
Configurable<bool> histosAntiOmega{"histosAntiOmega", true, "Produce histograms for anti omega candidates"};
97-
9898
} produce;
9999

100100
Configurable<float> magneticField{"magneticField", 20.0f, "Magnetic field (in kilogauss)"};
@@ -105,13 +105,33 @@ struct Alice3StrangenessTofPid {
105105
static constexpr float NanoToPico = 1e+3;
106106
static constexpr std::array<float, o2::track::kLabCovMatSize> ParentTrackCovMatrix{};
107107

108-
void init(InitContext&)
108+
struct TimeOfFlight {
109+
float iTofResolution{}, iTofRadius{};
110+
float oTofResolution{}, oTofRadius{};
111+
} tof;
112+
113+
void init(InitContext& initContext)
109114
{
110-
// Todo: First try and get from tofpid task
111-
tofPidCasc.setResolution(cfgTof.innerResolution, cfgTof.outerResolution);
112-
tofPidCasc.setRadius(cfgTof.innerRadius, cfgTof.innerResolution);
115+
auto tryGetCfgFromTask = [&](const char* targetCfg, float& localVariable, float localCfg) {
116+
if (!common::core::getTaskOptionValue(initContext, "on-the-fly-tof-pid", targetCfg, localVariable, false)) {
117+
LOG(info) << "Failed to get '" << targetCfg << "' from on-the-fly-tof-pid, using localCfg value " << localCfg;
118+
localVariable = localCfg;
119+
} else {
120+
LOG(info) << "Got '" << targetCfg << "' = " << localVariable << " from on-the-fly-tof-pid";
121+
}
122+
};
123+
124+
tryGetCfgFromTask("innerTOFTimeReso", tof.iTofResolution, cfgTof.innerResolution);
125+
tryGetCfgFromTask("innerTOFRadius", tof.iTofRadius, cfgTof.innerRadius);
126+
tryGetCfgFromTask("outerTOFTimeReso", tof.oTofResolution, cfgTof.outerResolution);
127+
tryGetCfgFromTask("outerTOFRadius", tof.oTofRadius, cfgTof.outerRadius);
128+
129+
tofPidCasc.setResolution(tof.iTofResolution, tof.oTofResolution);
130+
tofPidCasc.setRadius(tof.iTofRadius, tof.oTofRadius);
113131
tofPidCasc.setMagneticField(magneticField);
114132

133+
// Todo: doProcessV0s
134+
115135
if (doprocessCascades) {
116136
if (produce.histosXi) {
117137
histos.add("Xi/hInnerArrivalTimeDeltaNeg", "hInnerArrivalTimeDeltaNeg", kTH1D, {{axes.axisTimeDelta}});

0 commit comments

Comments
 (0)