@@ -56,12 +56,14 @@ DECLARE_SOA_COLUMN(NSigmaTpcKa, nSigmaTpcKa, float);
5656DECLARE_SOA_COLUMN (NSigmaTofKa, nSigmaTofKa, float );
5757DECLARE_SOA_COLUMN (NSigmaTpcPi, nSigmaTpcPi, float );
5858DECLARE_SOA_COLUMN (NSigmaTofPi, nSigmaTofPi, float );
59- DECLARE_SOA_COLUMN (PxOmega, pxOmega, float ); // TODO: what about sign?
59+ DECLARE_SOA_COLUMN (PxOmega, pxOmega, float );
6060DECLARE_SOA_COLUMN (PyOmega, pyOmega, float );
6161DECLARE_SOA_COLUMN (PzOmega, pzOmega, float );
62- DECLARE_SOA_COLUMN (PxPion, pxPion, float ); // TODO: what about sign?
62+ DECLARE_SOA_COLUMN (ChargeOmega, chargeOmega, bool );
63+ DECLARE_SOA_COLUMN (PxPion, pxPion, float );
6364DECLARE_SOA_COLUMN (PyPion, pyPion, float );
6465DECLARE_SOA_COLUMN (PzPion, pzPion, float );
66+ DECLARE_SOA_COLUMN (ChargePion, chargePion, bool );
6567DECLARE_SOA_COLUMN (CpaOmegac, cpaOmegac, float );
6668DECLARE_SOA_COLUMN (CpaOmega, cpaOmega, float );
6769DECLARE_SOA_COLUMN (DcaXYOmega, dcaXYOmega, float );
@@ -84,12 +86,14 @@ DECLARE_SOA_COLUMN(DecayLengthXYOmega, decayLengthXYOmega, float);
8486
8587namespace st_omegac_gen
8688{
87- DECLARE_SOA_COLUMN (PxOmegac, pxOmegac, float ); // TODO: what about sign?
89+ DECLARE_SOA_COLUMN (PxOmegac, pxOmegac, float );
8890DECLARE_SOA_COLUMN (PyOmegac, pyOmegac, float );
8991DECLARE_SOA_COLUMN (PzOmegac, pzOmegac, float );
90- DECLARE_SOA_COLUMN (PxOmega, pxOmega, float ); // TODO: what about sign?
92+ DECLARE_SOA_COLUMN (ChargeOmegac, chargeOmegac, bool );
93+ DECLARE_SOA_COLUMN (PxOmega, pxOmega, float );
9194DECLARE_SOA_COLUMN (PyOmega, pyOmega, float );
9295DECLARE_SOA_COLUMN (PzOmega, pzOmega, float );
96+ DECLARE_SOA_COLUMN (ChargeOmega, chargeOmega, bool );
9397DECLARE_SOA_COLUMN (DecayLengthOmegac, decayLengthOmegac, float );
9498DECLARE_SOA_COLUMN (DecayLengthXYOmegac, decayLengthXYOmegac, float );
9599DECLARE_SOA_COLUMN (DecayLengthOmega, decayLengthOmega, float );
@@ -110,9 +114,11 @@ DECLARE_SOA_TABLE(HfOmegacSt, "AOD", "HFOMEGACST",
110114 st_omegac::PxOmega,
111115 st_omegac::PyOmega,
112116 st_omegac::PzOmega,
117+ st_omegac::ChargeOmega,
113118 st_omegac::PxPion,
114119 st_omegac::PyPion,
115120 st_omegac::PzPion,
121+ st_omegac::ChargePion,
116122 st_omegac::CpaOmegac,
117123 st_omegac::CpaOmega,
118124 st_omegac::DcaXYOmega,
@@ -136,9 +142,11 @@ DECLARE_SOA_TABLE(HfOmegaStGen, "AOD", "HFOMEGACSTGEN",
136142 st_omegac_gen::PxOmegac,
137143 st_omegac_gen::PyOmegac,
138144 st_omegac_gen::PzOmegac,
145+ st_omegac_gen::ChargeOmegac,
139146 st_omegac_gen::PxOmega,
140147 st_omegac_gen::PyOmega,
141148 st_omegac_gen::PzOmega,
149+ st_omegac_gen::ChargeOmega,
142150 st_omegac_gen::DecayLengthOmegac,
143151 st_omegac_gen::DecayLengthXYOmegac,
144152 st_omegac_gen::DecayLengthOmega,
@@ -202,7 +210,7 @@ struct HfTreeCreatorOmegacSt {
202210 {" hMassOmegacVsPt" , " inv. mass #Omega + #pi;inv. mass (GeV/#it{c}^{2});p_{T} (GeV/#it{c})" , {HistType::kTH2D , {{400 , 1.5 , 3 .}, {10 , 0 ., 10 .}}}},
203211 {" hMassOmegacId" , " inv. mass #Omega + #pi (MC ID);inv. mass (GeV/#it{c}^{2})" , {HistType::kTH1D , {{400 , 1.5 , 3 .}}}},
204212 {" hMassOmegacGen" , " inv. mass #Omega + #pi (from MC);inv. mass (GeV/#it{c}^{2})" , {HistType::kTH1D , {{400 , 1.5 , 3 .}}}},
205- {" hMassVsPt " , " DCA;Mass (GeV/#it{c}^2);p_{T} (GeV/#it{c})" , {HistType::kTH2D , {{200 , 0 ., 10 .}, {200 , 0 ., 10 .}}}},
213+ {" hPtVsMassOmega " , " #Omega mass;p_{T} (GeV/#it{c});m (GeV/#it{c}^3 )" , {HistType::kTH2D , {{200 , 0 ., 10 .}, {1000 , 1 ., 3 .}}}},
206214 {" hDeltaPtVsPt" , " Delta pt;p_{T} (GeV/#it{c});#Delta p_{T} / p_{T}" , {HistType::kTH2D , {{200 , 0 ., 10 .}, {200 , -1 ., 1 .}}}},
207215 }};
208216
@@ -297,31 +305,28 @@ struct HfTreeCreatorOmegacSt {
297305 continue ;
298306 }
299307
300- const auto & v0TrackPr = trackCasc.sign () > 0 ? v0TrackPos : v0TrackNeg;
301- const auto & v0TrackPi = trackCasc.sign () > 0 ? v0TrackNeg : v0TrackPos;
308+ const auto & v0TrackPr = trackCasc.sign () < 0 ? v0TrackPos : v0TrackNeg;
309+ const auto & v0TrackPi = trackCasc.sign () < 0 ? v0TrackNeg : v0TrackPos;
302310
303311 // track propagation
304- o2::track::TrackParCov trackParCovV0;
305- o2::track::TrackPar trackParV0;
306- o2::track::TrackPar trackParBachelor;
307- std::array<std::array<float , 3 >, 2 > momentaOmegaDaughters;
308312 if (!df2.process (getTrackParCov (v0TrackNeg), getTrackParCov (v0TrackPos))) {
309313 continue ;
310314 }
311- trackParCovV0 = df2.createParentTrackParCov (0 );
315+ o2::track::TrackParCov trackParCovV0 = df2.createParentTrackParCov (0 );
312316 if (!df2.process (trackParCovV0, getTrackParCov (bachelor))) {
313317 continue ;
314318 }
315319 const auto & secondaryVertex = df2.getPCACandidate ();
316320 const auto decayLengthOmega = RecoDecay::distance (secondaryVertex, primaryVertexPos);
317321 const auto decayLengthOmegaXY = RecoDecay::distanceXY (secondaryVertex, primaryVertexPos);
318- trackParV0 = df2.getTrackParamAtPCA (0 );
319- trackParBachelor = df2.getTrackParamAtPCA (1 );
322+ o2::track::TrackPar trackParV0 = df2.getTrackParamAtPCA (0 );
323+ o2::track::TrackPar trackParBachelor = df2.getTrackParamAtPCA (1 );
324+ std::array<std::array<float , 3 >, 2 > momentaOmegaDaughters;
320325 trackParV0.getPxPyPzGlo (momentaOmegaDaughters[0 ]);
321326 trackParBachelor.getPxPyPzGlo (momentaOmegaDaughters[1 ]);
322- std::array<float , 3 > pVec ;
323- df2.createParentTrackParCov ().getPxPyPzGlo (pVec );
324- const auto cpaOmega = RecoDecay::cpa (primaryVertexPos, df2.getPCACandidate (), pVec );
327+ std::array<float , 3 > pOmega ;
328+ df2.createParentTrackParCov ().getPxPyPzGlo (pOmega );
329+ const auto cpaOmega = RecoDecay::cpa (primaryVertexPos, df2.getPCACandidate (), pOmega );
325330
326331 std::array<double , 2 > masses = {o2::analysis::pdg::MassLambda0, o2::analysis::pdg::MassKPlus};
327332 const auto massOmega = RecoDecay::m (momentaOmegaDaughters, masses);
@@ -333,7 +338,7 @@ struct HfTreeCreatorOmegacSt {
333338 registry.fill (HIST (" hDcaZVsPt" ), trackParCovTrk.getPt (), impactParameterTrk.getZ ());
334339 registry.fill (HIST (" hDcaVsPt" ), impactParameterTrk.getY (), trackCasc.pt ());
335340 registry.fill (HIST (" hDcaVsR" ), impactParameterTrk.getY (), RecoDecay::sqrtSumOfSquares (trackCasc.x (), trackCasc.y ()));
336- registry.fill (HIST (" hMassVsPt " ), massOmega, trackCasc.pt ());
341+ registry.fill (HIST (" hPtVsMassOmega " ), trackCasc.pt (), massOmega );
337342
338343 if ((std::abs (massOmega - o2::analysis::pdg::MassOmegaMinus) < massWindowTrackedOmega)) {
339344 LOGF (debug, " found candidate in mass range" );
@@ -363,9 +368,6 @@ struct HfTreeCreatorOmegacSt {
363368 for (const auto & track : tracks) {
364369 if (std::abs (track.tpcNSigmaPi ()) < maxNSigmaPion) {
365370 LOGF (debug, " .. combining with pion candidate %d" , track.globalIndex ());
366- if (trackCasc.sign () == track.sign ()) {
367- continue ;
368- }
369371 auto trackParCovPion = getTrackParCov (track);
370372 o2::dataformats::DCA impactParameterPion;
371373 if (bzOnly) {
@@ -385,9 +387,9 @@ struct HfTreeCreatorOmegacSt {
385387 const auto decayLength = RecoDecay::distance (secondaryVertex, primaryVertexPos);
386388 const auto decayLengthXY = RecoDecay::distanceXY (secondaryVertex, primaryVertexPos);
387389 const auto chi2TopOmegac = df2.getChi2AtPCACandidate ();
388- std::array<float , 3 > pVec ;
389- df2.createParentTrackParCov ().getPxPyPzGlo (pVec );
390- const auto cpaOmegaC = RecoDecay::cpa (primaryVertexPos, df2.getPCACandidate (), pVec );
390+ std::array<float , 3 > pOmegac ;
391+ df2.createParentTrackParCov ().getPxPyPzGlo (pOmegac );
392+ const auto cpaOmegaC = RecoDecay::cpa (primaryVertexPos, df2.getPCACandidate (), pOmegac );
391393
392394 if (std::abs (massOmegaC - o2::analysis::pdg::MassOmegaC0) < massWindowOmegaC) {
393395 registry.fill (HIST (" hDecayLength" ), decayLength * 1e4 );
@@ -405,9 +407,11 @@ struct HfTreeCreatorOmegacSt {
405407 momenta[0 ][0 ], // omega momentum
406408 momenta[0 ][1 ],
407409 momenta[0 ][2 ],
410+ trackCasc.sign (),
408411 momenta[1 ][0 ], // pion momentum
409412 momenta[1 ][1 ],
410413 momenta[1 ][2 ],
414+ track.sign (),
411415 cpaOmegaC,
412416 cpaOmega,
413417 impactParameterTrk.getY (),
0 commit comments