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