Skip to content

Commit aeea604

Browse files
mcoquet642Maurice CoquetalibuildMaurice CoquetMaurice Coquet
authored
[PWGDQ] Implementing usage of mft covariance matrices (#12769)
Co-authored-by: Maurice Coquet <mcoquet@lxplus994.cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch> Co-authored-by: Maurice Coquet <mcoquet@lxplus912.cern.ch> Co-authored-by: Maurice Coquet <mcoquet@lxplus933.cern.ch> Co-authored-by: Maurice Coquet <mcoquet@lxplus975.cern.ch>
1 parent 5ddd747 commit aeea604

File tree

3 files changed

+181
-49
lines changed

3 files changed

+181
-49
lines changed

PWGDQ/Core/VarManager.h

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "Common/CCDB/TriggerAliases.h"
2929
#include "Common/Core/CollisionTypeHelper.h"
3030
#include "Common/Core/EventPlaneHelper.h"
31+
#include "Common/Core/fwdtrackUtilities.h"
3132
#include "Common/Core/trackUtilities.h"
3233

3334
#include "CommonConstants/LHCConstants.h"
@@ -134,7 +135,8 @@ class VarManager : public TObject
134135
ReducedTrackCollInfo = BIT(24), // TODO: remove it once new reduced data tables are produced for dielectron with ReducedTracksBarrelInfo
135136
ReducedMuonCollInfo = BIT(25), // TODO: remove it once new reduced data tables are produced for dielectron with ReducedTracksBarrelInfo
136137
MuonRealign = BIT(26),
137-
MuonCovRealign = BIT(27)
138+
MuonCovRealign = BIT(27),
139+
MFTCov = BIT(28)
138140
};
139141

140142
enum PairCandidateType {
@@ -1081,6 +1083,8 @@ class VarManager : public TObject
10811083
static void FillPairPropagateMuon(T1 const& muon1, T2 const& muon2, const C& collision, float* values = nullptr);
10821084
template <uint32_t fillMap, typename T1, typename T2, typename C>
10831085
static void FillGlobalMuonRefit(T1 const& muontrack, T2 const& mfttrack, const C& collision, float* values = nullptr);
1086+
template <uint32_t MuonfillMap, uint32_t MFTfillMap, typename T1, typename T2, typename C, typename C2>
1087+
static void FillGlobalMuonRefitCov(T1 const& muontrack, T2 const& mfttrack, const C& collision, C2 const& mftcov, float* values = nullptr);
10841088
template <int pairType, uint32_t fillMap, typename T1, typename T2>
10851089
static void FillPair(T1 const& t1, T2 const& t2, float* values = nullptr);
10861090
template <int pairType, uint32_t fillMap, typename C, typename T1, typename T2>
@@ -1478,6 +1482,35 @@ void VarManager::FillGlobalMuonRefit(T1 const& muontrack, T2 const& mfttrack, co
14781482
}
14791483
}
14801484

1485+
template <uint32_t MuonfillMap, uint32_t MFTfillMap, typename T1, typename T2, typename C, typename C2>
1486+
void VarManager::FillGlobalMuonRefitCov(T1 const& muontrack, T2 const& mfttrack, const C& collision, C2 const& mftcov, float* values)
1487+
{
1488+
if (!values) {
1489+
values = fgValues;
1490+
}
1491+
if constexpr ((MuonfillMap & MuonCov) > 0) {
1492+
if constexpr ((MFTfillMap & MFTCov) > 0) {
1493+
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(muontrack, collision);
1494+
SMatrix5 tpars(mfttrack.x(), mfttrack.y(), mfttrack.phi(), mfttrack.tgl(), mfttrack.signed1Pt());
1495+
std::vector<double> v1{mftcov.cXX(), mftcov.cXY(), mftcov.cYY(), mftcov.cPhiX(), mftcov.cPhiY(),
1496+
mftcov.cPhiPhi(), mftcov.cTglX(), mftcov.cTglY(), mftcov.cTglPhi(), mftcov.cTglTgl(),
1497+
mftcov.c1PtX(), mftcov.c1PtY(), mftcov.c1PtPhi(), mftcov.c1PtTgl(), mftcov.c1Pt21Pt2()};
1498+
SMatrix55 tcovs(v1.begin(), v1.end());
1499+
o2::track::TrackParCovFwd mft{mfttrack.z(), tpars, tcovs, mfttrack.chi2()};
1500+
1501+
o2::dataformats::GlobalFwdTrack globalRefit = o2::aod::fwdtrackutils::refitGlobalMuonCov(propmuon, mft);
1502+
values[kX] = globalRefit.getX();
1503+
values[kY] = globalRefit.getY();
1504+
values[kZ] = globalRefit.getZ();
1505+
values[kTgl] = globalRefit.getTgl();
1506+
values[kPt] = globalRefit.getPt();
1507+
values[kPz] = globalRefit.getPz();
1508+
values[kEta] = globalRefit.getEta();
1509+
values[kPhi] = globalRefit.getPhi();
1510+
}
1511+
}
1512+
}
1513+
14811514
template <typename T>
14821515
void VarManager::FillBC(T const& bc, float* values)
14831516
{

0 commit comments

Comments
 (0)