diff --git a/ALICE3/TableProducer/alice3StrangenessTofPid.cxx b/ALICE3/TableProducer/alice3StrangenessTofPid.cxx index 3d48351bee5..3c9e5a5c76a 100644 --- a/ALICE3/TableProducer/alice3StrangenessTofPid.cxx +++ b/ALICE3/TableProducer/alice3StrangenessTofPid.cxx @@ -19,6 +19,7 @@ #include "ALICE3/DataModel/OTFStrangeness.h" #include "ALICE3/DataModel/tracksAlice3.h" #include "ALICE3/Utils/a3StrangenessTofPidHelper.h" +#include "Common/Core/TableHelper.h" #include "Common/Core/trackUtilities.h" #include @@ -94,7 +95,6 @@ struct Alice3StrangenessTofPid { Configurable histosAntiXi{"histosAntiXi", true, "Produce histograms for anti xi candidates"}; Configurable histosOmega{"histosOmega", true, "Produce histograms for omega candidates"}; Configurable histosAntiOmega{"histosAntiOmega", true, "Produce histograms for anti omega candidates"}; - } produce; Configurable magneticField{"magneticField", 20.0f, "Magnetic field (in kilogauss)"}; @@ -105,13 +105,33 @@ struct Alice3StrangenessTofPid { static constexpr float NanoToPico = 1e+3; static constexpr std::array ParentTrackCovMatrix{}; - void init(InitContext&) + struct TimeOfFlight { + float iTofResolution{}, iTofRadius{}; + float oTofResolution{}, oTofRadius{}; + } tof; + + void init(InitContext& initContext) { - // Todo: First try and get from tofpid task - tofPidCasc.setResolution(cfgTof.innerResolution, cfgTof.outerResolution); - tofPidCasc.setRadius(cfgTof.innerRadius, cfgTof.innerResolution); + auto tryGetCfgFromTask = [&](const char* targetCfg, float& localVariable, float localCfg) { + if (!common::core::getTaskOptionValue(initContext, "on-the-fly-tof-pid", targetCfg, localVariable, false)) { + LOG(info) << "Failed to get '" << targetCfg << "' from on-the-fly-tof-pid, using localCfg value " << localCfg; + localVariable = localCfg; + } else { + LOG(info) << "Got '" << targetCfg << "' = " << localVariable << " from on-the-fly-tof-pid"; + } + }; + + tryGetCfgFromTask("innerTOFTimeReso", tof.iTofResolution, cfgTof.innerResolution); + tryGetCfgFromTask("innerTOFRadius", tof.iTofRadius, cfgTof.innerRadius); + tryGetCfgFromTask("outerTOFTimeReso", tof.oTofResolution, cfgTof.outerResolution); + tryGetCfgFromTask("outerTOFRadius", tof.oTofRadius, cfgTof.outerRadius); + + tofPidCasc.setResolution(tof.iTofResolution, tof.oTofResolution); + tofPidCasc.setRadius(tof.iTofRadius, tof.oTofRadius); tofPidCasc.setMagneticField(magneticField); + // Todo: doProcessV0s + if (doprocessCascades) { if (produce.histosXi) { histos.add("Xi/hInnerArrivalTimeDeltaNeg", "hInnerArrivalTimeDeltaNeg", kTH1D, {{axes.axisTimeDelta}});