Skip to content

Commit 64ef4b6

Browse files
committed
[PWGDQ] improved momentum rescaling for global forward tracks
The MCH tracks are extrapolated to the first measured MFT point using TrackExtrap::extrapToVertex() instead of TrackExtrap::extrapToVertexWithoutBranson(), which cures large inaccuracies in the MCH momentum estimation at the MFT front for some tracks. Those inaccuracies were contributing to high-mass tails in the di-muon invariant mass distribution reconstructed from global forward tracks with rescaled momentum.
1 parent a21bf5a commit 64ef4b6

2 files changed

Lines changed: 21 additions & 12 deletions

File tree

PWGDQ/Tasks/muonGlobalAlignment.cxx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,8 +1301,8 @@ struct muonGlobalAlignment { // o2-linter: disable=name/workflow-file,name/struc
13011301
collision.posX(),
13021302
collision.posY(),
13031303
collision.posZ(),
1304-
collision.covXX(),
1305-
collision.covYY());
1304+
std::sqrt(collision.covXX()),
1305+
std::sqrt(collision.covYY()));
13061306
}
13071307

13081308
template <class TMFT>
@@ -1449,7 +1449,12 @@ struct muonGlobalAlignment { // o2-linter: disable=name/workflow-file,name/struc
14491449
{
14501450
// extrapolation with MCH tools
14511451
auto mchTrackAtMFT = FwdtoMCH(mchTrackPar);
1452-
o2::mch::TrackExtrap::extrapToVertexWithoutBranson(mchTrackAtMFT, mftTrackPar.getZ());
1452+
o2::mch::TrackExtrap::extrapToVertex(mchTrackAtMFT,
1453+
mftTrackPar.getX(),
1454+
mftTrackPar.getY(),
1455+
mftTrackPar.getZ(),
1456+
std::sqrt(mftTrackPar.getSigma2X()),
1457+
std::sqrt(mftTrackPar.getSigma2Y()));
14531458

14541459
auto mftTrackProp = FwdtoMCH(mftTrackPar);
14551460

@@ -1463,8 +1468,8 @@ struct muonGlobalAlignment { // o2-linter: disable=name/workflow-file,name/struc
14631468
collision.posX(),
14641469
collision.posY(),
14651470
collision.posZ(),
1466-
collision.covXX(),
1467-
collision.covYY());
1471+
std::sqrt(collision.covXX()),
1472+
std::sqrt(collision.covYY()));
14681473

14691474
return MCHtoFwd(mftTrackProp);
14701475
}

PWGDQ/Tasks/qaMatching.cxx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1640,8 +1640,8 @@ struct QaMatching {
16401640
collision.posX(),
16411641
collision.posY(),
16421642
collision.posZ(),
1643-
collision.covXX(),
1644-
collision.covYY());
1643+
std::sqrt(collision.covXX()),
1644+
std::sqrt(collision.covYY()));
16451645
}
16461646

16471647
o2::dataformats::GlobalFwdTrack propagateToVertexMft(o2::dataformats::GlobalFwdTrack muon,
@@ -1667,8 +1667,8 @@ struct QaMatching {
16671667
collision.posX(),
16681668
collision.posY(),
16691669
collision.posZ(),
1670-
collision.covXX(),
1671-
collision.covYY());
1670+
std::sqrt(collision.covXX()),
1671+
std::sqrt(collision.covYY()));
16721672
}
16731673

16741674
template <typename TMCH, typename TMFT, class C>
@@ -1678,7 +1678,11 @@ struct QaMatching {
16781678
{
16791679
// extrapolation with MCH tools
16801680
auto mchTrackAtMFT = mExtrap.FwdtoMCH(fwdToTrackPar(mchTrack));
1681-
o2::mch::TrackExtrap::extrapToVertexWithoutBranson(mchTrackAtMFT, mftTrack.z());
1681+
o2::mch::TrackExtrap::extrapToVertex(mchTrackAtMFT,
1682+
mftTrack.x(),
1683+
mftTrack.y(),
1684+
mftTrack.z(),
1685+
0, 0);
16821686

16831687
auto mftTrackProp = mExtrap.FwdtoMCH(fwdToTrackPar(mftTrack));
16841688

@@ -1692,8 +1696,8 @@ struct QaMatching {
16921696
collision.posX(),
16931697
collision.posY(),
16941698
collision.posZ(),
1695-
collision.covXX(),
1696-
collision.covYY());
1699+
std::sqrt(collision.covXX()),
1700+
std::sqrt(collision.covYY()));
16971701

16981702
return mExtrap.MCHtoFwd(mftTrackProp);
16991703
}

0 commit comments

Comments
 (0)