Skip to content

Commit d47eb3e

Browse files
author
Maurice Coquet
committed
[PWGDQ] Using fwdUtilities tools for muon propagation
1 parent 1c6d714 commit d47eb3e

4 files changed

Lines changed: 32 additions & 16 deletions

File tree

PWGDQ/Core/VarManager.h

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,11 @@ class VarManager : public TObject
11781178
fgMagField = magField;
11791179
}
11801180

1181+
static float GetMagneticField()
1182+
{
1183+
return fgMagField;
1184+
}
1185+
11811186
// Setup plane position for MFT-MCH matching
11821187
static void SetMatchingPlane(float z)
11831188
{
@@ -1195,6 +1200,11 @@ class VarManager : public TObject
11951200
fgzShiftFwd = z;
11961201
}
11971202

1203+
static float GetZShift()
1204+
{
1205+
return fgzShiftFwd;
1206+
}
1207+
11981208
// Setup the 2 prong KFParticle
11991209
static void SetupTwoProngKFParticle(float magField)
12001210
{
@@ -1734,8 +1744,7 @@ void VarManager::FillMuonPDca(const T& muon, const C& collision, float* values)
17341744

17351745
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & ReducedMuonCov) > 0) {
17361746

1737-
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(muon, collision);
1738-
o2::dataformats::GlobalFwdTrack propmuonAtDCA = PropagateMuon(muon, collision, kToDCA);
1747+
o2::dataformats::GlobalFwdTrack propmuonAtDCA = o2::aod::fwdtrackutils::propagateMuon(muon, muon, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, fgzShiftFwd, fgMagField);
17391748

17401749
float dcaX = (propmuonAtDCA.getX() - collision.posX());
17411750
float dcaY = (propmuonAtDCA.getY() - collision.posY());
@@ -1758,7 +1767,7 @@ void VarManager::FillPropagateMuon(const T& muon, const C& collision, float* val
17581767
}
17591768

17601769
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & ReducedMuonCov) > 0 || (fillMap & MuonCovRealign) > 0) {
1761-
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(muon, collision);
1770+
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muon, muon, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, fgzShiftFwd, fgMagField);
17621771
values[kPt] = propmuon.getPt();
17631772
values[kX] = propmuon.getX();
17641773
values[kY] = propmuon.getY();
@@ -1770,8 +1779,8 @@ void VarManager::FillPropagateMuon(const T& muon, const C& collision, float* val
17701779
// Redo propagation only for muon tracks
17711780
// propagation of MFT tracks alredy done in fwdtrack-extention task
17721781
if (static_cast<int>(muon.trackType()) > 2) {
1773-
o2::dataformats::GlobalFwdTrack propmuonAtDCA = PropagateMuon(muon, collision, kToDCA);
1774-
o2::dataformats::GlobalFwdTrack propmuonAtRabs = PropagateMuon(muon, collision, kToRabs);
1782+
o2::dataformats::GlobalFwdTrack propmuonAtDCA = o2::aod::fwdtrackutils::propagateMuon(muon, muon, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, fgzShiftFwd, fgMagField);
1783+
o2::dataformats::GlobalFwdTrack propmuonAtRabs = o2::aod::fwdtrackutils::propagateMuon(muon, muon, collision, o2::aod::fwdtrackutils::propagationPoint::kToRabs, 0, fgMagField);
17751784
float dcaX = (propmuonAtDCA.getX() - collision.posX());
17761785
float dcaY = (propmuonAtDCA.getY() - collision.posY());
17771786
values[kMuonDCAx] = dcaX;
@@ -1807,7 +1816,7 @@ void VarManager::FillGlobalMuonRefit(T1 const& muontrack, T2 const& mfttrack, co
18071816
values = fgValues;
18081817
}
18091818
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & ReducedMuonCov) > 0) {
1810-
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(muontrack, collision);
1819+
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, fgzShiftFwd, fgMagField);
18111820
double px = propmuon.getP() * sin(M_PI / 2 - atan(mfttrack.tgl())) * cos(mfttrack.phi());
18121821
double py = propmuon.getP() * sin(M_PI / 2 - atan(mfttrack.tgl())) * sin(mfttrack.phi());
18131822
double pz = propmuon.getP() * cos(M_PI / 2 - atan(mfttrack.tgl()));
@@ -1832,7 +1841,7 @@ void VarManager::FillGlobalMuonRefitCov(T1 const& muontrack, T2 const& mfttrack,
18321841
}
18331842
if constexpr ((MuonfillMap & MuonCov) > 0) {
18341843
if constexpr ((MFTfillMap & MFTCov) > 0) {
1835-
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(muontrack, collision);
1844+
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, fgzShiftFwd, fgMagField);
18361845
auto mft = o2::aod::fwdtrackutils::getTrackParCovFwdShift(mfttrack, fgzShiftFwd, mftcov);
18371846

18381847
o2::dataformats::GlobalFwdTrack globalRefit = o2::aod::fwdtrackutils::refitGlobalMuonCov(propmuon, mft);
@@ -3166,7 +3175,7 @@ void VarManager::FillTrackCollision(T const& track, C const& collision, float* v
31663175
}
31673176
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & MuonCovRealign) > 0 || (fillMap & ReducedMuonCov) > 0) {
31683177

3169-
o2::dataformats::GlobalFwdTrack propmuonAtDCA = PropagateMuon(track, collision, kToDCA);
3178+
o2::dataformats::GlobalFwdTrack propmuonAtDCA = o2::aod::fwdtrackutils::propagateMuon(track, track, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, fgzShiftFwd, fgMagField);
31703179

31713180
float dcaX = (propmuonAtDCA.getX() - collision.posX());
31723181
float dcaY = (propmuonAtDCA.getY() - collision.posY());
@@ -3427,8 +3436,8 @@ void VarManager::FillPairPropagateMuon(T1 const& muon1, T2 const& muon2, const C
34273436
if (!values) {
34283437
values = fgValues;
34293438
}
3430-
o2::dataformats::GlobalFwdTrack propmuon1 = PropagateMuon(muon1, collision);
3431-
o2::dataformats::GlobalFwdTrack propmuon2 = PropagateMuon(muon2, collision);
3439+
o2::dataformats::GlobalFwdTrack propmuon1 = o2::aod::fwdtrackutils::propagateMuon(muon1, muon1, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, fgzShiftFwd, fgMagField);
3440+
o2::dataformats::GlobalFwdTrack propmuon2 = o2::aod::fwdtrackutils::propagateMuon(muon2, muon2, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, fgzShiftFwd, fgMagField);
34323441

34333442
float m = o2::constants::physics::MassMuon;
34343443

PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
#include "Common/CCDB/EventSelectionParams.h"
3131
#include "Common/CCDB/RCTSelectionFlags.h"
32+
#include "Common/Core/fwdtrackUtilities.h"
3233
#include "Common/DataModel/Centrality.h"
3334
#include "Common/DataModel/CollisionAssociationTables.h"
3435
#include "Common/DataModel/EventSelection.h"
@@ -1074,8 +1075,9 @@ struct TableMakerMC {
10741075
o2::track::TrackParCovFwd mftprop = VarManager::FwdToTrackPar(mfttrack, mfttrackcov);
10751076
o2::dataformats::GlobalFwdTrack muonprop = VarManager::FwdToTrackPar(muontrack, muontrack);
10761077
if (fConfigVariousOptions.fzMatching.value < 0.) {
1078+
float bz = VarManager::GetMagneticField();
10771079
mftprop = VarManager::PropagateFwd(mfttrack, mfttrackcov, fConfigVariousOptions.fzMatching.value);
1078-
muonprop = VarManager::PropagateMuon(muontrack, collision, VarManager::kToMatching);
1080+
muonprop = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToMatchingPlane, fConfigVariousOptions.fzMatching.value, bz);
10791081
}
10801082
std::vector<float> output;
10811083
std::vector<float> inputML = matchingMlResponse.getInputFeaturesGlob(muon, muonprop, mftprop, collision);

PWGDQ/TableProducer/tableMaker_withAssoc.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "Common/CCDB/RCTSelectionFlags.h"
3232
#include "Common/CCDB/ctpRateFetcher.h"
3333
#include "Common/Core/Zorro.h"
34+
#include "Common/Core/fwdtrackUtilities.h"
3435
#include "Common/DataModel/Centrality.h"
3536
#include "Common/DataModel/CollisionAssociationTables.h"
3637
#include "Common/DataModel/EventSelection.h"
@@ -1479,8 +1480,9 @@ struct TableMaker {
14791480
o2::track::TrackParCovFwd mftprop = VarManager::FwdToTrackPar(mfttrack, mfttrackcov);
14801481
o2::dataformats::GlobalFwdTrack muonprop = VarManager::FwdToTrackPar(muontrack, muontrack);
14811482
if (fConfigVariousOptions.fzMatching.value < 0.) {
1483+
float bz = VarManager::GetMagneticField();
14821484
mftprop = VarManager::PropagateFwd(mfttrack, mfttrackcov, fConfigVariousOptions.fzMatching.value);
1483-
muonprop = VarManager::PropagateMuon(muontrack, collision, VarManager::kToMatching);
1485+
muonprop = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToMatchingPlane, fConfigVariousOptions.fzMatching.value, bz);
14841486
}
14851487
std::vector<float> output;
14861488
std::vector<float> inputML = matchingMlResponse.getInputFeaturesGlob(muon, muonprop, mftprop, collision);

PWGDQ/Tasks/mftMchMatcher.cxx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "Common/DataModel/EventSelection.h"
1919
#include "Common/DataModel/Multiplicity.h"
2020
#include "Common/DataModel/TrackSelectionTables.h"
21+
#include "Common/Core/fwdtrackUtilities.h"
2122

2223
#include <CCDB/BasicCCDBManager.h>
2324
#include <CCDB/CcdbApi.h>
@@ -650,10 +651,12 @@ struct mftMchMatcher {
650651

651652
o2::track::TrackParCovFwd mftprop = VarManager::FwdToTrackPar(mfttrack, mfttrackcov);
652653
o2::track::TrackParCovFwd muonprop = VarManager::FwdToTrackPar(muontrack, muontrack);
653-
if (fzMatching.value < 0.) {
654-
mftprop = VarManager::PropagateFwd(mfttrack, mfttrackcov, fzMatching.value);
655-
muonprop = VarManager::PropagateMuon(muontrack, collision, VarManager::kToMatching);
656-
}
654+
if (fzMatching.value < 0.) {
655+
float bz = VarManager::GetMagneticField();
656+
mftprop = VarManager::PropagateFwd(mfttrack, mfttrackcov, fzMatching.value);
657+
muonprop = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToMatchingPlane, fzMatching.value, bz);
658+
}
659+
657660
auto muonpropCov = muonprop.getCovariances();
658661
auto mftpropCov = mftprop.getCovariances();
659662

0 commit comments

Comments
 (0)