@@ -144,6 +144,7 @@ struct OnTheFlyTracker {
144144 Produces<aod::UpgradeCascades> tableUpgradeCascades;
145145 Produces<aod::OTFLUTConfigId> tableOTFLUTConfigId;
146146 Produces<aod::UpgradeV0s> tableUpgradeV0s;
147+ Produces<aod::UpgradeCascadeMcLabels> tableUpgradeCascadeMcLabels;
147148
148149 // optionally produced, empty (to be tuned later)
149150 Produces<aod::StoredTracksExtra_002> tableStoredTracksExtra; // base table, extend later
@@ -1315,8 +1316,9 @@ struct OnTheFlyTracker {
13151316 } // end cascade kink building
13161317
13171318 // +-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+
1319+ double dcaXY{999 .f }, dcaZ{999 .f };
1320+ o2::track::TrackParCov trackParametrization (xiTrackParCov);
13181321 if (cascadeDecaySettings.doXiQA ) {
1319- double dcaXY{-1 .}, dcaZ{-1 .};
13201322 if (reconstructedCascade) {
13211323 getHist (TH2 , histPath + " hRecoXi" )->Fill (xiDecayRadius2D, mcParticle.pt ());
13221324 getHist (TH1 , histPath + " hMassLambda" )->Fill (thisCascade.mLambda );
@@ -1325,40 +1327,37 @@ struct OnTheFlyTracker {
13251327 getHist (TH2 , histPath + " h2dDeltaPtVsPt" )->Fill (thisCascade.pt , (mcParticle.pt () - thisCascade.pt ) / thisCascade.pt );
13261328 getHist (TH2 , histPath + " h2dDeltaEtaVsPt" )->Fill (thisCascade.pt , mcParticle.eta () - thisCascade.eta );
13271329 getHist (TH2 , histPath + " hFoundVsFindable" )->Fill (thisCascade.findableClusters , thisCascade.foundClusters );
1328-
1329- o2::track::TrackParCov trackParametrization (xiTrackParCov);
1330- trackParametrization.propagateToDCA (primaryVertex, mMagneticField , &dcaInfo);
13311330 getHist (TH2 , histPath + " h2dDCAxyCascade" )->Fill (trackParametrization.getPt (), dcaXY * 1e+4 ); // in microns, please
13321331 getHist (TH2 , histPath + " h2dDCAzCascade" )->Fill (trackParametrization.getPt (), dcaZ * 1e+4 ); // in microns, please
13331332 }
13341333 if (isReco[0 ]) {
13351334 getHist (TH2 , histPath + " hRecoPiFromXi" )->Fill (xiDecayRadius2D, cascadeDecayProducts[0 ].Pt ());
1336- o2::track::TrackParCov trackParametrizationCascProng0 (xiTrackParCov);
1337- if (populateTracksDCA && xiTrackParCov .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) { // FIXME: this is not the right trackParametrization, need to propagate the bachelor track
1335+ o2::track::TrackParCov trackParametrizationBachelor (xiTrackParCov);
1336+ if (populateTracksDCA && trackParametrizationBachelor .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) {
13381337 dcaXY = dcaInfo.getY ();
13391338 dcaZ = dcaInfo.getZ ();
1340- getHist (TH2 , histPath + " h2dDCAxyCascadeBachelor" )->Fill (trackParametrizationCascProng0 .getPt (), dcaXY * 1e+4 ); // in microns, please
1341- getHist (TH2 , histPath + " h2dDCAzCascadeBachelor" )->Fill (trackParametrizationCascProng0 .getPt (), dcaZ * 1e+4 ); // in microns, please
1339+ getHist (TH2 , histPath + " h2dDCAxyCascadeBachelor" )->Fill (trackParametrizationBachelor .getPt (), dcaXY * 1e+4 ); // in microns, please
1340+ getHist (TH2 , histPath + " h2dDCAzCascadeBachelor" )->Fill (trackParametrizationBachelor .getPt (), dcaZ * 1e+4 ); // in microns, please
13421341 }
13431342 }
13441343 if (isReco[1 ]) {
13451344 getHist (TH2 , histPath + " hRecoPiFromLa" )->Fill (laDecayRadius2D, cascadeDecayProducts[1 ].Pt ());
1346- o2::track::TrackParCov trackParametrizationCascProng1 (xiTrackParCov);
1347- if (populateTracksDCA && xiTrackParCov .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) { // FIXME: this is not the right trackParametrization, need to propagate the negative pion track
1345+ o2::track::TrackParCov trackParametrizationNegative (xiTrackParCov);
1346+ if (populateTracksDCA && trackParametrizationNegative .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) {
13481347 dcaXY = dcaInfo.getY ();
13491348 dcaZ = dcaInfo.getZ ();
1350- getHist (TH2 , histPath + " h2dDCAxyCascadeNegative" )->Fill (trackParametrizationCascProng1 .getPt (), dcaXY * 1e+4 ); // in microns, please
1351- getHist (TH2 , histPath + " h2dDCAzCascadeNegative" )->Fill (trackParametrizationCascProng1 .getPt (), dcaZ * 1e+4 ); // in microns, please
1349+ getHist (TH2 , histPath + " h2dDCAxyCascadeNegative" )->Fill (trackParametrizationNegative .getPt (), dcaXY * 1e+4 ); // in microns, please
1350+ getHist (TH2 , histPath + " h2dDCAzCascadeNegative" )->Fill (trackParametrizationNegative .getPt (), dcaZ * 1e+4 ); // in microns, please
13521351 }
13531352 }
13541353 if (isReco[2 ]) {
13551354 getHist (TH2 , histPath + " hRecoPrFromLa" )->Fill (laDecayRadius2D, cascadeDecayProducts[2 ].Pt ());
1356- o2::track::TrackParCov trackParametrizationCascProng2 (xiTrackParCov);
1357- if (populateTracksDCA && xiTrackParCov .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) { // FIXME: this is not the right trackParametrization, need to propagate the positive proton track
1355+ o2::track::TrackParCov trackParametrizationPositive (xiTrackParCov);
1356+ if (populateTracksDCA && trackParametrizationPositive .propagateToDCA (primaryVertex, mMagneticField , &dcaInfo)) {
13581357 dcaXY = dcaInfo.getY ();
13591358 dcaZ = dcaInfo.getZ ();
1360- getHist (TH2 , histPath + " h2dDCAxyCascadePositive" )->Fill (trackParametrizationCascProng2 .getPt (), dcaXY * 1e+4 ); // in microns, please
1361- getHist (TH2 , histPath + " h2dDCAzCascadePositive" )->Fill (trackParametrizationCascProng2 .getPt (), dcaZ * 1e+4 ); // in microns, please
1359+ getHist (TH2 , histPath + " h2dDCAxyCascadePositive" )->Fill (trackParametrizationPositive .getPt (), dcaXY * 1e+4 ); // in microns, please
1360+ getHist (TH2 , histPath + " h2dDCAzCascadePositive" )->Fill (trackParametrizationPositive .getPt (), dcaZ * 1e+4 ); // in microns, please
13621361 }
13631362 }
13641363 }
@@ -1368,7 +1367,11 @@ struct OnTheFlyTracker {
13681367 return ;
13691368 }
13701369
1370+ // Make sure the xi variables are stored in dcaXY and dcaZ
1371+ trackParametrization.propagateToDCA (primaryVertex, mMagneticField , &dcaInfo);
1372+
13711373 // populate Cascades
1374+ tableUpgradeCascadeMcLabels (mcParticle.globalIndex ());
13721375 tableUpgradeCascades (tableCollisions.lastIndex (),
13731376 thisCascade.cascadeTrackId ,
13741377 thisCascade.positiveId ,
@@ -1382,7 +1385,8 @@ struct OnTheFlyTracker {
13821385 thisCascade.mLambda ,
13831386 thisCascade.mXi ,
13841387 thisCascade.findableClusters ,
1385- thisCascade.foundClusters );
1388+ thisCascade.foundClusters ,
1389+ dcaXY, dcaZ);
13861390 }
13871391
13881392 // / Function to study V0s and fill the relevant histograms
0 commit comments