Skip to content

Commit c5f712d

Browse files
authored
Add DCAxy recalculation for muons (#6233)
* Add search window for matching * Fixed bugs in filter * Modify for formatting * Fixed to select one mfttrack per fwdtrack * Fixed MCH track to match single MFT track * Modified white space * Add process to associated muons * Modified to follow conventions * Add DCA recalculation for muons
1 parent a80cb64 commit c5f712d

3 files changed

Lines changed: 30 additions & 18 deletions

File tree

PWGDQ/Core/VarManager.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2049,6 +2049,18 @@ void VarManager::FillTrackCollision(T const& track, C const& collision, float* v
20492049
}
20502050
}
20512051
}
2052+
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & ReducedMuonCov) > 0) {
2053+
2054+
o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(track, collision);
2055+
o2::dataformats::GlobalFwdTrack propmuonAtDCA = PropagateMuon(track, collision, kToDCA);
2056+
2057+
float dcaX = (propmuonAtDCA.getX() - collision.posX());
2058+
float dcaY = (propmuonAtDCA.getY() - collision.posY());
2059+
float dcaXY = std::sqrt(dcaX * dcaX + dcaY * dcaY);
2060+
values[kMuonPDca] = track.p() * dcaXY;
2061+
values[kMuonDCAx] = dcaX;
2062+
values[kMuonDCAy] = dcaY;
2063+
}
20522064
}
20532065

20542066
template <uint32_t fillMap, typename T, typename C, typename M, typename P>

PWGDQ/TableProducer/tableMaker.cxx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -668,9 +668,9 @@ struct TableMaker {
668668
// recalculte pDca for global muon tracks
669669
if (static_cast<int>(muon.trackType()) < 2) {
670670
auto const& matchMCH = muon.template matchMCHTrack_as<TMuons>();
671-
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
671+
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
672672
} else if (static_cast<int>(muon.trackType()) > 2) {
673-
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
673+
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
674674
}
675675

676676
if (fPropMuon) {
@@ -1039,9 +1039,9 @@ struct TableMaker {
10391039
// recalculte pDca for global muon tracks
10401040
if (static_cast<int>(muon.trackType()) < 2) {
10411041
auto const& matchMCH = tracksMuon.rawIteratorAt(static_cast<int>(muon.matchMCHTrackId()));
1042-
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
1042+
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
10431043
} else if (static_cast<int>(muon.trackType()) > 2) {
1044-
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
1044+
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
10451045
}
10461046

10471047
if (fPropMuon) {
@@ -1545,7 +1545,7 @@ struct TableMaker {
15451545
{
15461546
for (auto& collision : collisions) {
15471547
auto muonIdsThisCollision = fwdtrackIndices.sliceBy(fwdtrackIndicesPerCollision, collision.globalIndex());
1548-
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCovAmbi>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
1548+
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCov>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
15491549
}
15501550
}
15511551

@@ -1554,7 +1554,7 @@ struct TableMaker {
15541554
{
15551555
for (auto& collision : collisions) {
15561556
auto muonIdsThisCollision = fwdtrackIndices.sliceBy(fwdtrackIndicesPerCollision, collision.globalIndex());
1557-
fullSkimmingIndices<gkEventFillMapWithCent, 0u, gkMuonFillMapWithCovAmbi>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
1557+
fullSkimmingIndices<gkEventFillMapWithCent, 0u, gkMuonFillMapWithCov>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
15581558
}
15591559
}
15601560

@@ -1563,7 +1563,7 @@ struct TableMaker {
15631563
{
15641564
for (auto& collision : collisions) {
15651565
auto muonIdsThisCollision = fwdtrackIndices.sliceBy(fwdtrackIndicesPerCollision, collision.globalIndex());
1566-
fullSkimmingIndices<gkEventFillMapWithMult, 0u, gkMuonFillMapWithCovAmbi>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
1566+
fullSkimmingIndices<gkEventFillMapWithMult, 0u, gkMuonFillMapWithCov>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
15671567
}
15681568
}
15691569

PWGDQ/TableProducer/tableMakerMC.cxx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,9 +1254,9 @@ struct TableMakerMC {
12541254
// recalculte pDca for global muon tracks
12551255
if (static_cast<int>(muon.trackType()) < 2) {
12561256
auto const& matchMCH = tracksMuon.rawIteratorAt(static_cast<int>(muon.matchMCHTrackId()));
1257-
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
1257+
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
12581258
} else if (static_cast<int>(muon.trackType()) > 2) {
1259-
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
1259+
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
12601260
}
12611261
if (fPropMuon) {
12621262
VarManager::FillPropagateMuon<TMuonFillMap>(muon, collision);
@@ -1595,28 +1595,28 @@ struct TableMakerMC {
15951595
soa::Filtered<MyMuonsColl> const& tracksMuon,
15961596
aod::McCollisions const& mcEvents, aod::McParticles_001 const& mcTracks, aod::FwdTrackAssoc const& fwdtrackIndices)
15971597
{
1598-
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithAmbi>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
1598+
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMap>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
15991599
}
16001600

16011601
void processAssociatedMuonOnlyWithCov(MyEvents const& collisions, aod::BCsWithTimestamps const& bcs,
1602-
soa::Filtered<MyMuonsColl> const& tracksMuon,
1602+
soa::Filtered<MyMuonsCollWithCov> const& tracksMuon,
16031603
aod::McCollisions const& mcEvents, aod::McParticles_001 const& mcTracks, aod::FwdTrackAssoc const& fwdtrackIndices)
16041604
{
1605-
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithAmbi>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
1605+
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCov>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
16061606
}
16071607

1608-
void processAssociatedMuonOnlyWithCovAndCent(MyEvents const& collisions, aod::BCsWithTimestamps const& bcs,
1609-
soa::Filtered<MyMuonsColl> const& tracksMuon,
1608+
void processAssociatedMuonOnlyWithCovAndCent(MyEventsWithCent const& collisions, aod::BCsWithTimestamps const& bcs,
1609+
soa::Filtered<MyMuonsCollWithCov> const& tracksMuon,
16101610
aod::McCollisions const& mcEvents, aod::McParticles_001 const& mcTracks, aod::FwdTrackAssoc const& fwdtrackIndices)
16111611
{
1612-
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithAmbi>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
1612+
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCov>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
16131613
}
16141614

1615-
void processAssociatedMuonOnlyWithCovAndMults(MyEvents const& collisions, aod::BCsWithTimestamps const& bcs,
1616-
soa::Filtered<MyMuonsColl> const& tracksMuon,
1615+
void processAssociatedMuonOnlyWithCovAndMults(MyEventsWithCentAndMults const& collisions, aod::BCsWithTimestamps const& bcs,
1616+
soa::Filtered<MyMuonsCollWithCov> const& tracksMuon,
16171617
aod::McCollisions const& mcEvents, aod::McParticles_001 const& mcTracks, aod::FwdTrackAssoc const& fwdtrackIndices)
16181618
{
1619-
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithAmbi>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
1619+
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCov>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
16201620
}
16211621
// Produce muon tables only for ambiguous tracks studies --------------------------------------------------------------------------------------
16221622
void processAmbiguousMuonOnly(MyEvents const& collisions, aod::BCsWithTimestamps const& bcs,

0 commit comments

Comments
 (0)