Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -2049,6 +2049,18 @@ void VarManager::FillTrackCollision(T const& track, C const& collision, float* v
}
}
}
if constexpr ((fillMap & MuonCov) > 0 || (fillMap & ReducedMuonCov) > 0) {

o2::dataformats::GlobalFwdTrack propmuon = PropagateMuon(track, collision);
o2::dataformats::GlobalFwdTrack propmuonAtDCA = PropagateMuon(track, collision, kToDCA);

float dcaX = (propmuonAtDCA.getX() - collision.posX());
float dcaY = (propmuonAtDCA.getY() - collision.posY());
float dcaXY = std::sqrt(dcaX * dcaX + dcaY * dcaY);
values[kMuonPDca] = track.p() * dcaXY;
values[kMuonDCAx] = dcaX;
values[kMuonDCAy] = dcaY;
}
}

template <uint32_t fillMap, typename T, typename C, typename M, typename P>
Expand Down
14 changes: 7 additions & 7 deletions PWGDQ/TableProducer/tableMaker.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -668,9 +668,9 @@ struct TableMaker {
// recalculte pDca for global muon tracks
if (static_cast<int>(muon.trackType()) < 2) {
auto const& matchMCH = muon.template matchMCHTrack_as<TMuons>();
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
} else if (static_cast<int>(muon.trackType()) > 2) {
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
}

if (fPropMuon) {
Expand Down Expand Up @@ -1039,9 +1039,9 @@ struct TableMaker {
// recalculte pDca for global muon tracks
if (static_cast<int>(muon.trackType()) < 2) {
auto const& matchMCH = tracksMuon.rawIteratorAt(static_cast<int>(muon.matchMCHTrackId()));
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
} else if (static_cast<int>(muon.trackType()) > 2) {
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
}

if (fPropMuon) {
Expand Down Expand Up @@ -1545,7 +1545,7 @@ struct TableMaker {
{
for (auto& collision : collisions) {
auto muonIdsThisCollision = fwdtrackIndices.sliceBy(fwdtrackIndicesPerCollision, collision.globalIndex());
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCovAmbi>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithCov>(collision, bcs, nullptr, tracksMuon, nullptr, muonIdsThisCollision);
}
}

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

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

Expand Down
22 changes: 11 additions & 11 deletions PWGDQ/TableProducer/tableMakerMC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1254,9 +1254,9 @@ struct TableMakerMC {
// recalculte pDca for global muon tracks
if (static_cast<int>(muon.trackType()) < 2) {
auto const& matchMCH = tracksMuon.rawIteratorAt(static_cast<int>(muon.matchMCHTrackId()));
VarManager::FillMuonPDca<TMuonFillMap>(matchMCH, collision);
VarManager::FillTrackCollision<TMuonFillMap>(matchMCH, collision);
} else if (static_cast<int>(muon.trackType()) > 2) {
VarManager::FillMuonPDca<TMuonFillMap>(muon, collision);
VarManager::FillTrackCollision<TMuonFillMap>(muon, collision);
}
if (fPropMuon) {
VarManager::FillPropagateMuon<TMuonFillMap>(muon, collision);
Expand Down Expand Up @@ -1595,28 +1595,28 @@ struct TableMakerMC {
soa::Filtered<MyMuonsColl> const& tracksMuon,
aod::McCollisions const& mcEvents, aod::McParticles_001 const& mcTracks, aod::FwdTrackAssoc const& fwdtrackIndices)
{
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMapWithAmbi>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
fullSkimmingIndices<gkEventFillMap, 0u, gkMuonFillMap>(collisions, bcs, nullptr, tracksMuon, mcEvents, mcTracks, nullptr, fwdtrackIndices);
}

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

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

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