Skip to content

Commit 04d3771

Browse files
gbencedialibuild
andauthored
[PWGLF] PWGMM: Updated efficiency calculations (#10566)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 8dbe752 commit 04d3771

File tree

1 file changed

+61
-71
lines changed

1 file changed

+61
-71
lines changed

PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx

Lines changed: 61 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -522,15 +522,19 @@ struct DndetaMFTPbPb {
522522
"; p_{T} (GeV/c); #eta; occupancy",
523523
{HistType::kTHnSparseF,
524524
{ptAxis, etaAxis, occupancyAxis}}});
525-
qaregistry.add({"Tracks/hPtEtaEffRec",
525+
qaregistry.add({"Tracks/hPtEtaEffPrim",
526526
"; p_{T} (GeV/c); #eta; occupancy",
527527
{HistType::kTHnSparseF,
528528
{ptAxis, etaAxis, occupancyAxis}}});
529-
qaregistry.add({"Tracks/hPtEtaEffDuplicates",
529+
qaregistry.add({"Tracks/hPtEtaEffSec",
530530
"; p_{T} (GeV/c); #eta; occupancy",
531531
{HistType::kTHnSparseF,
532532
{ptAxis, etaAxis, occupancyAxis}}});
533-
qaregistry.add({"Tracks/hPtEtaEffGenDuplicates",
533+
qaregistry.add({"Tracks/hPtEtaEffGenDupl",
534+
"; p_{T} (GeV/c); #eta; occupancy",
535+
{HistType::kTHnSparseF,
536+
{ptAxis, etaAxis, occupancyAxis}}});
537+
qaregistry.add({"Tracks/hPtEtaEffDupl",
534538
"; p_{T} (GeV/c); #eta; occupancy",
535539
{HistType::kTHnSparseF,
536540
{ptAxis, etaAxis, occupancyAxis}}});
@@ -547,19 +551,25 @@ struct DndetaMFTPbPb {
547551
{HistType::kTHnSparseF,
548552
{ptAxis, etaAxis, centralityAxis, occupancyAxis}}});
549553
qaregistry.add(
550-
{"Tracks/Centrality/hPtEtaEffRec",
554+
{"Tracks/Centrality/hPtEtaEffPrim",
551555
"; p_{T} (GeV/c); #eta; centrality; "
552556
"occupancy",
553557
{HistType::kTHnSparseF,
554558
{ptAxis, etaAxis, centralityAxis, occupancyAxis}}});
555559
qaregistry.add(
556-
{"Tracks/Centrality/hPtEtaEffDuplicates",
560+
{"Tracks/Centrality/hPtEtaEffSec",
557561
"; p_{T} (GeV/c); #eta; Z_{vtx} (cm); centrality; "
558562
"occupancy",
559563
{HistType::kTHnSparseF,
560564
{ptAxis, etaAxis, centralityAxis, occupancyAxis}}});
561565
qaregistry.add(
562-
{"Tracks/Centrality/hPtEtaEffGenDuplicates",
566+
{"Tracks/Centrality/hPtEtaEffGenDupl",
567+
"; p_{T} (GeV/c); #eta; centrality; "
568+
"occupancy",
569+
{HistType::kTHnSparseF,
570+
{ptAxis, etaAxis, centralityAxis, occupancyAxis}}});
571+
qaregistry.add(
572+
{"Tracks/Centrality/hPtEtaEffDupl",
563573
"; p_{T} (GeV/c); #eta; centrality; "
564574
"occupancy",
565575
{HistType::kTHnSparseF,
@@ -1702,31 +1712,6 @@ struct DndetaMFTPbPb {
17021712
auto occrec = getOccupancy(collision, eventCuts.occupancyEstimator);
17031713
auto mcCollision = collision.mcCollision();
17041714

1705-
float cgen = -1;
1706-
if constexpr (has_reco_cent<C>) {
1707-
float crec_min = 105.f;
1708-
for (const auto& collision : collisions) {
1709-
if (isGoodEvent<false>(collision)) {
1710-
float c = getRecoCent(collision);
1711-
if (c < crec_min) {
1712-
crec_min = c;
1713-
}
1714-
}
1715-
}
1716-
if (cgen < 0)
1717-
cgen = crec_min;
1718-
}
1719-
1720-
float occgen = -1.;
1721-
for (const auto& collision : collisions) {
1722-
if (isGoodEvent<false>(collision)) {
1723-
float o = getOccupancy(collision, eventCuts.occupancyEstimator);
1724-
if (o > occgen) {
1725-
occgen = o;
1726-
}
1727-
}
1728-
}
1729-
17301715
auto partsPerCol = primariesI->sliceByCached(
17311716
aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache);
17321717
partsPerCol.bindExternalIndices(&tracks);
@@ -1738,68 +1723,73 @@ struct DndetaMFTPbPb {
17381723

17391724
// MC gen
17401725
if constexpr (has_reco_cent<C>) {
1741-
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffGen"),
1742-
particle.pt(), particle.eta(),
1743-
cgen, occgen);
1726+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
1727+
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
1728+
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffGen"), particle.pt(), particle.eta(), crec, occrec);
1729+
}
1730+
}
17441731
} else {
1745-
qaregistry.fill(HIST("Tracks/hPtEtaEffGen"), particle.pt(),
1746-
particle.eta(),
1747-
occgen);
1732+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
1733+
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
1734+
qaregistry.fill(HIST("Tracks/hPtEtaEffGen"), particle.pt(), particle.eta(), occrec);
1735+
}
1736+
}
17481737
}
17491738
// MC rec
17501739
if (particle.has_mfttracks()) {
17511740
auto iscounted = false;
17521741
auto ncnt = 0;
1753-
auto relatedTracks =
1754-
particle.template mfttracks_as<MFTTracksLabeled>();
1742+
auto relatedTracks = particle.template mfttracks_as<MFTTracksLabeled>();
17551743
for (auto const& track : relatedTracks) {
1756-
if (!isTrackSelected(track)) {
1757-
continue;
1758-
}
17591744
++ncnt;
17601745
if constexpr (has_reco_cent<C>) {
1761-
if (!iscounted) { // primaries
1762-
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffRec"),
1763-
particle.pt(), particle.eta(),
1764-
crec, occrec);
1765-
iscounted = true;
1746+
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
1747+
if (!iscounted) { // primaries
1748+
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
1749+
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffPrim"), particle.pt(), particle.eta(), crec, occrec);
1750+
}
1751+
iscounted = true;
1752+
}
17661753
}
1767-
if (ncnt > 1) { // duplicates
1768-
qaregistry.fill(
1769-
HIST("Tracks/Centrality/hPtEtaEffDuplicates"),
1770-
particle.pt(), particle.eta(),
1771-
crec, occrec);
1754+
if (ncnt > 1) { // secondaries
1755+
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
1756+
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffSec"), particle.pt(), particle.eta(), crec, occrec);
1757+
}
17721758
}
17731759
} else {
1774-
if (!iscounted) { // primaries
1775-
qaregistry.fill(HIST("Tracks/hPtEtaEffRec"),
1776-
particle.pt(), particle.eta(),
1777-
occrec);
1778-
iscounted = true;
1760+
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
1761+
if (!iscounted) { // primaries
1762+
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
1763+
qaregistry.fill(HIST("Tracks/hPtEtaEffPrim"), particle.pt(), particle.eta(), occrec);
1764+
}
1765+
iscounted = true;
1766+
}
17791767
}
1780-
if (ncnt > 1) { // duplicates
1781-
qaregistry.fill(HIST("Tracks/hPtEtaEffDuplicates"),
1782-
particle.pt(), particle.eta(),
1783-
occrec);
1768+
if (ncnt > 1) { // secondaries
1769+
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
1770+
qaregistry.fill(HIST("Tracks/hPtEtaEffSec"), particle.pt(), particle.eta(), occrec);
1771+
}
17841772
}
17851773
}
17861774
}
1775+
17871776
if constexpr (has_reco_cent<C>) {
1788-
qaregistry.fill(HIST("Tracks/Centrality/NmftTrkPerPart"), ncnt,
1789-
crec, occrec);
1777+
qaregistry.fill(HIST("Tracks/Centrality/NmftTrkPerPart"), ncnt, crec, occrec);
17901778
} else {
17911779
qaregistry.fill(HIST("Tracks/NmftTrkPerPart"), ncnt, occrec);
17921780
}
1793-
if (relatedTracks.size() > 1) {
1781+
1782+
if (relatedTracks.size() > 1) { // duplicates
17941783
if constexpr (has_reco_cent<C>) {
1795-
qaregistry.fill(
1796-
HIST("Tracks/Centrality/hPtEtaEffGenDuplicates"),
1797-
particle.pt(), particle.eta(),
1798-
crec, occrec);
1784+
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffGenDupl"), particle.pt(), particle.eta(), crec, occrec);
1785+
for (auto const& track : relatedTracks) {
1786+
qaregistry.fill(HIST("Tracks/Centrality/hPtEtaEffDupl"), track.pt(), track.eta(), crec, occrec);
1787+
}
17991788
} else {
1800-
qaregistry.fill(HIST("Tracks/hPtEtaEffGenDuplicates"),
1801-
particle.pt(), particle.eta(),
1802-
occrec);
1789+
qaregistry.fill(HIST("Tracks/hPtEtaEffGenDupl"), particle.pt(), particle.eta(), occrec);
1790+
for (auto const& track : relatedTracks) {
1791+
qaregistry.fill(HIST("Tracks/hPtEtaEffDupl"), track.pt(), track.eta(), occrec);
1792+
}
18031793
}
18041794
}
18051795
}

0 commit comments

Comments
 (0)