Skip to content

Commit 1fdfb83

Browse files
committed
Update: Include also propagation with O2 propagator
1 parent b96f089 commit 1fdfb83

File tree

3 files changed

+76
-13
lines changed

3 files changed

+76
-13
lines changed

PWGLF/DataModel/Vtx3BodyTables.h

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,18 @@ DECLARE_SOA_COLUMN(PyTrackDe, pyTrackDe, float); //! track2 py at min
5959
DECLARE_SOA_COLUMN(PzTrackDe, pzTrackDe, float); //! track2 pz at min
6060

6161
// DCAs to PV
62-
DECLARE_SOA_COLUMN(DCAXYTrackPrToPV, dcaXYtrackPrToPv, float); //! DCAXY of proton to PV
63-
DECLARE_SOA_COLUMN(DCAXYTrackPiToPV, dcaXYtrackPiToPv, float); //! DCAXY of pion to PV
64-
DECLARE_SOA_COLUMN(DCAXYTrackDeToPV, dcaXYtrackDeToPv, float); //! DCAXY of deuteron to PV
65-
DECLARE_SOA_COLUMN(DCATrackPrToPV, dcaTrackPrToPv, float); //! DCA of proton to PV
66-
DECLARE_SOA_COLUMN(DCATrackPiToPV, dcaTrackPiToPv, float); //! DCA of pion to PV
67-
DECLARE_SOA_COLUMN(DCATrackDeToPV, dcaTrackDeToPv, float); //! DCA of deuteron to PV
62+
DECLARE_SOA_COLUMN(DCAXYTrackPrToPV, dcaXYtrackPrToPv, float); //! DCAXY of proton to PV (computed with KFParticle)
63+
DECLARE_SOA_COLUMN(DCAXYTrackPiToPV, dcaXYtrackPiToPv, float); //! DCAXY of pion to PV (computed with KFParticle)
64+
DECLARE_SOA_COLUMN(DCAXYTrackDeToPV, dcaXYtrackDeToPv, float); //! DCAXY of deuteron to PV (computed with KFParticle)
65+
DECLARE_SOA_COLUMN(DCATrackPrToPV, dcaTrackPrToPv, float); //! DCA of proton to PV (computed with KFParticle)
66+
DECLARE_SOA_COLUMN(DCATrackPiToPV, dcaTrackPiToPv, float); //! DCA of pion to PV (computed with KFParticle)
67+
DECLARE_SOA_COLUMN(DCATrackDeToPV, dcaTrackDeToPv, float); //! DCA of deuteron to PV (computed with KFParticle)
68+
DECLARE_SOA_COLUMN(DCAXYTrackPrToPVProp, dcaXYtrackPrToPvProp, float); //! DCAXY of proton to PV (propagated with O2 Propagator)
69+
DECLARE_SOA_COLUMN(DCAXYTrackPiToPVProp, dcaXYtrackPiToPvProp, float); //! DCAXY of pion to PV (propagated with O2 Propagator)
70+
DECLARE_SOA_COLUMN(DCAXYTrackDeToPVProp, dcaXYtrackDeToPvProp, float); //! DCAXY of deuteron to PV (propagated with O2 Propagator)
71+
DECLARE_SOA_COLUMN(DCATrackPrToPVProp, dcaTrackPrToPvProp, float); //! DCA of proton to PV (propagated with O2 Propagator)
72+
DECLARE_SOA_COLUMN(DCATrackPiToPVProp, dcaTrackPiToPvProp, float); //! DCA of pion to PV (propagated with O2 Propagator)
73+
DECLARE_SOA_COLUMN(DCATrackDeToPVProp, dcaTrackDeToPvProp, float); //! DCA of deuteron to PV (propagated with O2 Propagator)
6874

6975
// DCAs to SV
7076
DECLARE_SOA_COLUMN(DCATrackPrToSV, dcaTrackPrToSv, float); //! DCA of proton to SV
@@ -210,6 +216,8 @@ DECLARE_SOA_TABLE(Vtx3BodyDatas, "AOD", "VTX3BODYDATA", //!
210216
vtx3body::PxTrackDe, vtx3body::PyTrackDe, vtx3body::PzTrackDe,
211217
vtx3body::DCAXYTrackPrToPV, vtx3body::DCAXYTrackPiToPV, vtx3body::DCAXYTrackDeToPV,
212218
vtx3body::DCATrackPrToPV, vtx3body::DCATrackPiToPV, vtx3body::DCATrackDeToPV,
219+
vtx3body::DCAXYTrackPrToPVProp, vtx3body::DCAXYTrackPiToPVProp, vtx3body::DCAXYTrackDeToPVProp,
220+
vtx3body::DCATrackPrToPVProp, vtx3body::DCATrackPiToPVProp, vtx3body::DCATrackDeToPVProp,
213221
vtx3body::DCATrackPrToSV, vtx3body::DCATrackPiToSV, vtx3body::DCATrackDeToSV,
214222
vtx3body::DCAVtxToDaughtersAv,
215223
vtx3body::CosPA, vtx3body::Ct,
@@ -259,6 +267,8 @@ DECLARE_SOA_TABLE(McVtx3BodyDatas, "AOD", "MC3BODYDATA", //!
259267
vtx3body::PxTrackDe, vtx3body::PyTrackDe, vtx3body::PzTrackDe,
260268
vtx3body::DCAXYTrackPrToPV, vtx3body::DCAXYTrackPiToPV, vtx3body::DCAXYTrackDeToPV,
261269
vtx3body::DCATrackPrToPV, vtx3body::DCATrackPiToPV, vtx3body::DCATrackDeToPV,
270+
vtx3body::DCAXYTrackPrToPVProp, vtx3body::DCAXYTrackPiToPVProp, vtx3body::DCAXYTrackDeToPVProp,
271+
vtx3body::DCATrackPrToPVProp, vtx3body::DCATrackPiToPVProp, vtx3body::DCATrackDeToPVProp,
262272
vtx3body::DCATrackPrToSV, vtx3body::DCATrackPiToSV, vtx3body::DCATrackDeToSV,
263273
vtx3body::DCAVtxToDaughtersAv,
264274
vtx3body::CosPA, vtx3body::Ct,

PWGLF/TableProducer/Nuspex/decay3bodybuilder.cxx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,8 @@ struct decay3bodyBuilder {
908908
-1., -1., -1., // momDeuteron
909909
-1., -1., -1., // trackDCAxyToPV: 0 - proton, 1 - pion, 2 - deuteron
910910
-1., -1., -1., // trackDCAToPV: 0 - proton, 1 - pion, 2 - deuteron
911+
-1., -1., -1., // trackDCAxyToPVprop: 0 - proton, 1 - pion, 2 - deuteron
912+
-1., -1., -1., // trackDCAToPVprop: 0 - proton, 1 - pion, 2 - deuteron
911913
-1., -1., -1., // daughterDCAtoSV: 0 - proton, 1 - pion, 2 - deuteron
912914
-1., // daughterDCAtoSVaverage
913915
-1., -1., // cosPA, ctau
@@ -1065,9 +1067,11 @@ struct decay3bodyBuilder {
10651067
helper.decay3body.momProton[0], helper.decay3body.momProton[1], helper.decay3body.momProton[2],
10661068
helper.decay3body.momPion[0], helper.decay3body.momPion[1], helper.decay3body.momPion[2],
10671069
helper.decay3body.momDeuteron[0], helper.decay3body.momDeuteron[1], helper.decay3body.momDeuteron[2],
1068-
helper.decay3body.trackDCAxyToPV[0], helper.decay3body.trackDCAxyToPV[1], helper.decay3body.trackDCAxyToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1069-
helper.decay3body.trackDCAToPV[0], helper.decay3body.trackDCAToPV[1], helper.decay3body.trackDCAToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1070-
helper.decay3body.daughterDCAtoSV[0], helper.decay3body.daughterDCAtoSV[1], helper.decay3body.daughterDCAtoSV[2], // 0 - proton, 1 - pion, 2 - deuteron
1070+
helper.decay3body.trackDCAxyToPV[0], helper.decay3body.trackDCAxyToPV[1], helper.decay3body.trackDCAxyToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1071+
helper.decay3body.trackDCAToPV[0], helper.decay3body.trackDCAToPV[1], helper.decay3body.trackDCAToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1072+
helper.decay3body.trackDCAxyToPVprop[0], helper.decay3body.trackDCAxyToPVprop[1], helper.decay3body.trackDCAxyToPVprop[2], // 0 - proton, 1 - pion, 2 - deuteron
1073+
helper.decay3body.trackDCAToPVprop[0], helper.decay3body.trackDCAToPVprop[1], helper.decay3body.trackDCAToPVprop[2], // 0 - proton, 1 - pion, 2 - deuteron
1074+
helper.decay3body.daughterDCAtoSV[0], helper.decay3body.daughterDCAtoSV[1], helper.decay3body.daughterDCAtoSV[2], // 0 - proton, 1 - pion, 2 - deuteron
10711075
helper.decay3body.daughterDCAtoSVaverage,
10721076
helper.decay3body.cosPA, helper.decay3body.ctau,
10731077
helper.decay3body.tpcNsigma[0], helper.decay3body.tpcNsigma[1], helper.decay3body.tpcNsigma[2], helper.decay3body.tpcNsigma[2], // 0 - proton, 1 - pion, 2 - deuteron, 3 - bach with pion hyp
@@ -1094,9 +1098,11 @@ struct decay3bodyBuilder {
10941098
helper.decay3body.momProton[0], helper.decay3body.momProton[1], helper.decay3body.momProton[2],
10951099
helper.decay3body.momPion[0], helper.decay3body.momPion[1], helper.decay3body.momPion[2],
10961100
helper.decay3body.momDeuteron[0], helper.decay3body.momDeuteron[1], helper.decay3body.momDeuteron[2],
1097-
helper.decay3body.trackDCAxyToPV[0], helper.decay3body.trackDCAxyToPV[1], helper.decay3body.trackDCAxyToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1098-
helper.decay3body.trackDCAToPV[0], helper.decay3body.trackDCAToPV[1], helper.decay3body.trackDCAToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1099-
helper.decay3body.daughterDCAtoSV[0], helper.decay3body.daughterDCAtoSV[1], helper.decay3body.daughterDCAtoSV[2], // 0 - proton, 1 - pion, 2 - deuteron
1101+
helper.decay3body.trackDCAxyToPV[0], helper.decay3body.trackDCAxyToPV[1], helper.decay3body.trackDCAxyToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1102+
helper.decay3body.trackDCAToPV[0], helper.decay3body.trackDCAToPV[1], helper.decay3body.trackDCAToPV[2], // 0 - proton, 1 - pion, 2 - deuteron
1103+
helper.decay3body.trackDCAxyToPVprop[0], helper.decay3body.trackDCAxyToPVprop[1], helper.decay3body.trackDCAxyToPVprop[2], // 0 - proton, 1 - pion, 2 - deuteron
1104+
helper.decay3body.trackDCAToPVprop[0], helper.decay3body.trackDCAToPVprop[1], helper.decay3body.trackDCAToPVprop[2], // 0 - proton, 1 - pion, 2 - deuteron
1105+
helper.decay3body.daughterDCAtoSV[0], helper.decay3body.daughterDCAtoSV[1], helper.decay3body.daughterDCAtoSV[2], // 0 - proton, 1 - pion, 2 - deuteron
11001106
helper.decay3body.daughterDCAtoSVaverage,
11011107
helper.decay3body.cosPA, helper.decay3body.ctau,
11021108
helper.decay3body.tpcNsigma[0], helper.decay3body.tpcNsigma[1], helper.decay3body.tpcNsigma[2], helper.decay3body.tpcNsigma[2], // 0 - proton, 1 - pion, 2 - deuteron, 3 - bach with pion hyp

PWGLF/Utils/decay3bodyBuilderHelper.h

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@ class decay3bodyBuilderHelper
134134
float minDCAProtonToPV;
135135
float minDCAPionToPV;
136136
float minDCADeuteronToPV;
137+
float minDCAProtonToPVprop;
138+
float minDCAPionToPVprop;
139+
float minDCADeuteronToPVprop;
137140
float minPtProton;
138141
float minPtPion;
139142
float minPtDeuteron;
@@ -281,7 +284,7 @@ class decay3bodyBuilderHelper
281284
} // end of selections
282285

283286
//_______________________________________________________________________
284-
// daughter track DCA to PV associated with decay3body --> computed with KFParticle in all cases
287+
// daughter track DCA to PV associated with decay3body --> computed with KFParticle
285288
float pvXY[2] = {pvX, pvY};
286289
float pv[3] = {pvX, pvY, pvZ};
287290
auto trackParCovProtonCopy = trackParCovProton;
@@ -316,6 +319,50 @@ class decay3bodyBuilderHelper
316319
}
317320
}
318321

322+
//_______________________________________________________________________
323+
// daughter track DCA to PV associated with decay3body --> with O2 Propagator
324+
o2::dataformats::VertexBase mPV;
325+
o2::dataformats::DCA mDcaInfoCov;
326+
auto trackParCovProtonCopyProp = trackParCovProton;
327+
auto trackParCovPionCopyProp = trackParCovPion;
328+
auto trackParCovDeuteronCopyProp = trackParCovDeuteron;
329+
mPV.setPos({pvX, pvY, pvZ});
330+
mPV.setCov(collision.covXX(), collision.covXY(), collision.covYY(), collision.covXZ(), collision.covYZ(), collision.covZZ());
331+
332+
// proton track
333+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mPV, trackParCovProtonCopyProp, 2.f, fitter3body.getMatCorrType(), &mDcaInfoCov);
334+
decay3body.trackDCAxyToPVprop[0] = mDcaInfoCov.getY();
335+
auto trackProtonDCAzToPVprop = mDcaInfoCov.getZ();
336+
decay3body.trackDCAToPVprop[0] = std::sqrt(decay3body.trackDCAxyToPVprop[0] * decay3body.trackDCAxyToPVprop[0] + trackProtonDCAzToPVprop * trackProtonDCAzToPVprop);
337+
if (useSelections) {
338+
if (decay3body.trackDCAToPVprop[0] < decay3bodyselections.minDCAProtonToPVprop) {
339+
decay3body = {};
340+
return false;
341+
}
342+
}
343+
// pion track
344+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mPV, trackParCovPionCopyProp, 2.f, fitter3body.getMatCorrType(), &mDcaInfoCov);
345+
decay3body.trackDCAxyToPVprop[1] = mDcaInfoCov.getY();
346+
auto trackPionDCAzToPVprop = mDcaInfoCov.getZ();
347+
decay3body.trackDCAToPVprop[1] = std::sqrt(decay3body.trackDCAxyToPVprop[1] * decay3body.trackDCAxyToPVprop[1] + trackPionDCAzToPVprop * trackPionDCAzToPVprop);
348+
if (useSelections) {
349+
if (decay3body.trackDCAToPVprop[1] < decay3bodyselections.minDCAPionToPVprop) {
350+
decay3body = {};
351+
return false;
352+
}
353+
}
354+
// deuteron track
355+
o2::base::Propagator::Instance()->propagateToDCABxByBz(mPV, trackParCovDeuteronCopyProp, 2.f, fitter3body.getMatCorrType(), &mDcaInfoCov);
356+
decay3body.trackDCAxyToPVprop[2] = mDcaInfoCov.getY();
357+
auto trackDeuteronDCAzToPVprop = mDcaInfoCov.getZ();
358+
decay3body.trackDCAToPVprop[2] = std::sqrt(decay3body.trackDCAxyToPVprop[2] * decay3body.trackDCAxyToPVprop[2] + trackDeuteronDCAzToPVprop * trackDeuteronDCAzToPVprop);
359+
if (useSelections) {
360+
if (decay3body.trackDCAToPVprop[2] < decay3bodyselections.minDCADeuteronToPVprop) {
361+
decay3body = {};
362+
return false;
363+
}
364+
}
365+
319366
//_______________________________________________________________________
320367
// fit 3body vertex
321368
if (!useKFParticle) {

0 commit comments

Comments
 (0)