Skip to content

Commit 5a5bbed

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents 2a43db0 + 34e3636 commit 5a5bbed

File tree

85 files changed

+7060
-3360
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+7060
-3360
lines changed

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ struct OnTheFlyTracker {
323323
histos.add("h2dVerticesVsContributors", "h2dVerticesVsContributors", kTH2F, {axes.axisMultiplicity, axes.axisNVertices});
324324
histos.add("hRecoVsSimMultiplicity", "hRecoVsSimMultiplicity", kTH2F, {axes.axisMultiplicity, axes.axisMultiplicity});
325325
histos.add("h2dDCAxy", "h2dDCAxy", kTH2F, {axes.axisMomentum, axes.axisDCA});
326+
histos.add("h2dDCAz", "h2dDCAz", kTH2F, {axes.axisMomentum, axes.axisDCA});
326327

327328
histos.add("hSimTrackX", "hSimTrackX", kTH1F, {axes.axisX});
328329
histos.add("hRecoTrackX", "hRecoTrackX", kTH1F, {axes.axisX});
@@ -1042,6 +1043,7 @@ struct OnTheFlyTracker {
10421043
}
10431044
if (doExtraQA && (!extraQAwithoutDecayDaughters || (extraQAwithoutDecayDaughters && !trackParCov.isDecayDau))) {
10441045
histos.fill(HIST("h2dDCAxy"), trackParametrization.getPt(), dcaXY * 1e+4); // in microns, please
1046+
histos.fill(HIST("h2dDCAz"), trackParametrization.getPt(), dcaZ * 1e+4); // in microns, please
10451047
histos.fill(HIST("hTrackXatDCA"), trackParametrization.getX());
10461048
}
10471049
if (cascadeDecaySettings.doXiQA) {
@@ -1107,6 +1109,7 @@ struct OnTheFlyTracker {
11071109
}
11081110
if (doExtraQA && (!extraQAwithoutDecayDaughters || (extraQAwithoutDecayDaughters && !trackParCov.isDecayDau))) {
11091111
histos.fill(HIST("h2dDCAxy"), trackParametrization.getPt(), dcaXY * 1e+4); // in microns, please
1112+
histos.fill(HIST("h2dDCAz"), trackParametrization.getPt(), dcaZ * 1e+4); // in microns, please
11101113
histos.fill(HIST("hTrackXatDCA"), trackParametrization.getX());
11111114
}
11121115
tracksDCA(dcaXY, dcaZ);

ALICE3/TableProducer/alice3-multicharm.cxx

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct alice3multicharm {
9494

9595
Configurable<float> minPiCPt{"minPiCPt", 0.15, "Minimum pT for XiC pions"};
9696
Configurable<float> minPiCCPt{"minPiCCPt", 0.3, "Minimum pT for XiCC pions"};
97-
Configurable<float> minMultiplicity{"minMultiplicity", 0, "Minimum multiplicity"};
97+
Configurable<float> minNTracks{"minNTracks", -1, "Minimum number of tracks"};
9898

9999
Configurable<float> minXiCRadius{"minXiCRadius", 0.001, "Minimum R2D for XiC decay (cm)"};
100100
Configurable<float> massWindowXi{"massWindowXi", 0.015, "Mass window around Xi peak"};
@@ -108,6 +108,7 @@ struct alice3multicharm {
108108
ConfigurableAxis axisXiCMass{"axisXiCMass", {200, 2.368f, 2.568f}, "XiC Inv Mass (GeV/c^{2})"};
109109
ConfigurableAxis axisXiCCMass{"axisXiCCMass", {200, 3.521f, 3.721f}, "XiCC Inv Mass (GeV/c^{2})"};
110110

111+
ConfigurableAxis axisDCAXi{"axisDCAXi", {200, 0, 200}, "DCA (mum)"};
111112
ConfigurableAxis axisDCAXiCDaughters{"axisDCAXiCDaughters", {200, 0, 100}, "DCA (mum)"};
112113
ConfigurableAxis axisDCAXiCCDaughters{"axisDCAXiCCDaughters", {200, 0, 100}, "DCA (mum)"};
113114

@@ -390,13 +391,19 @@ struct alice3multicharm {
390391

391392
histos.add("hDCAXiCDaughters", "hDCAXiCDaughters", kTH1D, {axisDCAXiCDaughters});
392393
histos.add("hDCAXiCCDaughters", "hDCAXiCCDaughters", kTH1D, {axisDCAXiCCDaughters});
394+
histos.add("hDCAXi", "hDCAXi", kTH1D, {axisDCAXi});
395+
histos.add("hPi1cPt", "hPi1cPt", kTH1D, {axisPt});
396+
histos.add("hPi2cPt", "hPi2cPt", kTH1D, {axisPt});
397+
histos.add("hPiccPt", "hPiccPt", kTH1D, {axisPt});
393398

394399
// These histograms bookkeep the exact number of combinations attempted
395400
// CombinationsXiC: triplets Xi-pi-pi considered per Xi
396401
// CombinationsXiCC: doublets XiC-pi considered per XiC
397402
histos.add("hCombinationsXiC", "hCombinationsXiC", kTH1D, {axisNConsidered});
398403
histos.add("hCombinationsXiCC", "hCombinationsXiCC", kTH1D, {axisNConsidered});
399404
histos.add("hNCollisions", "hNCollisions", kTH1D, {{2, 0.5, 2.5}});
405+
histos.add("hNTracks", "hNTracks", kTH1D, {{500, 0, 5000}});
406+
400407
if (doDCAplots) {
401408
histos.add("h2dDCAxyVsPtXiFromXiC", "h2dDCAxyVsPtXiFromXiC", kTH2D, {axisPt, axisDCA});
402409
histos.add("h2dDCAxyVsPtPiFromXiC", "h2dDCAxyVsPtPiFromXiC", kTH2D, {axisPt, axisDCA});
@@ -421,7 +428,9 @@ struct alice3multicharm {
421428
void processFindXiCC(aod::Collision const& collision, alice3tracks const& tracks, aod::McParticles const&, aod::UpgradeCascades const& cascades)
422429
{
423430
histos.fill(HIST("hNCollisions"), 1);
424-
if (tracks.size() < minMultiplicity)
431+
histos.fill(HIST("hNTracks"), tracks.size());
432+
433+
if (tracks.size() < minNTracks)
425434
return;
426435

427436
histos.fill(HIST("hNCollisions"), 2);
@@ -463,6 +472,11 @@ struct alice3multicharm {
463472
if (!bitcheck(xi.decayMap(), kTrueXiFromXiC))
464473
continue;
465474

475+
if (xi.dcaXY() < xiFromXiC_dcaXYconstant)
476+
continue;
477+
478+
histos.fill(HIST("hDCAXi"), xi.dcaXY() * 1e+4);
479+
466480
for (auto const& pi1c : tracksPiFromXiCgrouped) {
467481
if (mcSameMotherCheck && !checkSameMother(xi, pi1c))
468482
continue;
@@ -471,6 +485,8 @@ struct alice3multicharm {
471485
if (pi1c.pt() < minPiCPt)
472486
continue;
473487

488+
histos.fill(HIST("hPi1cPt"), pi1c.pt());
489+
474490
// second pion from XiC decay for starts here
475491
for (auto const& pi2c : tracksPiFromXiCgrouped) {
476492

@@ -483,6 +499,8 @@ struct alice3multicharm {
483499
if (pi2c.pt() < minPiCPt)
484500
continue;
485501

502+
histos.fill(HIST("hPi2cPt"), pi2c.pt());
503+
486504
// if I am here, it means this is a triplet to be considered for XiC vertexing.
487505
// will now attempt to build a three-body decay candidate with these three track rows.
488506

@@ -523,12 +541,15 @@ struct alice3multicharm {
523541
uint32_t nCombinationsCC = 0;
524542
for (auto const& picc : tracksPiFromXiCCgrouped) {
525543

544+
if (mcSameMotherCheck && !checkSameMotherExtra(xi, picc))
545+
continue;
526546
if (xiCand.posTrackId() == picc.globalIndex() || xiCand.negTrackId() == picc.globalIndex() || xiCand.bachTrackId() == picc.globalIndex())
527547
continue; // avoid using any track that was already used
528548
if (picc.pt() < minPiCCPt)
529549
continue;
530-
if (mcSameMotherCheck && !checkSameMotherExtra(xi, picc))
531-
continue;
550+
551+
histos.fill(HIST("hPiccPt"), picc.pt());
552+
532553
o2::track::TrackParCov piccTrack = getTrackParCov(picc);
533554
nCombinationsCC++;
534555
histos.fill(HIST("hCharmBuilding"), 2.0f);

Common/TableProducer/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ add_subdirectory(PID)
1414

1515
o2physics_add_dpl_workflow(trackextension
1616
SOURCES trackextension.cxx
17-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DetectorsBase
17+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
1818
COMPONENT_NAME Analysis)
1919

2020
o2physics_add_dpl_workflow(trackselection
@@ -59,12 +59,12 @@ o2physics_add_dpl_workflow(ft0-corrected-table
5959

6060
o2physics_add_dpl_workflow(track-propagation
6161
SOURCES trackPropagation.cxx
62-
PUBLIC_LINK_LIBRARIES O2::DetectorsBase O2Physics::AnalysisCore
62+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
6363
COMPONENT_NAME Analysis)
6464

6565
o2physics_add_dpl_workflow(track-propagation-tester
6666
SOURCES trackPropagationTester.cxx
67-
PUBLIC_LINK_LIBRARIES O2::DetectorsBase O2Physics::AnalysisCore O2Physics::trackSelectionRequest
67+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::trackSelectionRequest
6868
COMPONENT_NAME Analysis)
6969

7070
o2physics_add_dpl_workflow(calo-clusters
@@ -92,7 +92,7 @@ o2physics_add_dpl_workflow(fwdtrack-to-collision-associator
9292

9393
o2physics_add_dpl_workflow(mccollisionextra
9494
SOURCES mcCollsExtra.cxx
95-
PUBLIC_LINK_LIBRARIES O2::DetectorsBase O2Physics::AnalysisCore
95+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
9696
COMPONENT_NAME Analysis)
9797

9898
o2physics_add_dpl_workflow(qvector-table

DPG/Tasks/AOTEvent/eventSelectionQa.cxx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ struct EventSelectionQaTask {
356356
histos.add("occupancyQA/hITSTracks_ev1_vs_ev2_2coll_in_ROF", ";nITStracks event #1;nITStracks event #2", kTH2D, {{200, 0., 6000}, {200, 0., 6000}});
357357
histos.add("occupancyQA/hITSTracks_ev1_vs_ev2_2coll_in_ROF_UPC", ";nITStracks event #1;nITStracks event #2", kTH2D, {{41, -0.5, 40.5}, {41, -0.5, 40.5}});
358358
histos.add("occupancyQA/hITSTracks_ev1_vs_ev2_2coll_in_ROF_nonUPC", ";nITStracks event #1;nITStracks event #2", kTH2D, {{200, 0., 6000}, {200, 0., 6000}});
359+
360+
histos.add("occupancyQA/dEdx_vs_centr_vs_occup_narrow_p_win", "dE/dx", kTH3F, {{20, 0, 4000, "n PV tracks"}, {60, 0, 15000, "occupancy"}, {800, 0.0, 800.0, "dE/dx (a. u.)"}});
359361
}
360362
}
361363

@@ -1152,6 +1154,19 @@ struct EventSelectionQaTask {
11521154
histos.fill(HIST("occupancyQA/hOccupancyByFT0CvsByTracks"), occupancyByTracks, occupancyByFT0C);
11531155
histos.fill(HIST("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy"), multV0A, nPV, occupancyByTracks);
11541156
histos.fill(HIST("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy"), multV0A, nContributorsAfterEtaTPCCuts, occupancyByTracks);
1157+
1158+
// dE/dx QA for a narrow pT bin
1159+
for (const auto& track : tracksGrouped) {
1160+
if (!track.isPVContributor())
1161+
continue;
1162+
if (std::fabs(track.eta()) < 0.8 && track.pt() > 0.2 && track.itsNCls() >= 5) {
1163+
float signedP = track.sign() * track.tpcInnerParam();
1164+
if (std::fabs(signedP) > 0.38 && std::fabs(signedP) < 0.4 && track.tpcNClsFound() > 70 && track.tpcNClsCrossedRows() > 80 && track.itsChi2NCl() < 36 && track.tpcChi2NCl() < 4) {
1165+
float dEdx = track.tpcSignal();
1166+
histos.fill(HIST("occupancyQA/dEdx_vs_centr_vs_occup_narrow_p_win"), nPV, occupancyByTracks, dEdx);
1167+
}
1168+
}
1169+
}
11551170
}
11561171
}
11571172

EventFiltering/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ o2physics_add_dpl_workflow(fje-filter
8484

8585
o2physics_add_dpl_workflow(lf-strangeness-filter
8686
SOURCES PWGLF/strangenessFilter.cxx
87-
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::ReconstructionDataFormats O2::DetectorsBase
87+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore KFParticle::KFParticle O2::ReconstructionDataFormats O2::DetectorsBase
8888
COMPONENT_NAME Analysis)
8989

9090
o2physics_add_dpl_workflow(mult-filter

EventFiltering/PWGEM/HeavyNeutralMesonFilter.cxx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -432,9 +432,13 @@ struct HeavyNeutralMesonFilter {
432432
mHistManager.add("GG/invMassVsPt_PCMEMC", "Invariant mass and pT of gg candidates;#bf{#it{M}_{#gamma#gamma}};#bf{#it{pT}_{#gamma#gamma}}", HistType::kTH2F, {{400, 0., 0.8}, {250, 0., 25.}});
433433
mHistManager.add("GG/invMassVsPt_EMC", "Invariant mass and pT of gg candidates;#bf{#it{M}_{#gamma#gamma}};#bf{#it{pT}_{#gamma#gamma}}", HistType::kTH2F, {{400, 0., 0.8}, {250, 0., 25.}});
434434

435-
mHistManager.add("HeavyNeutralMeson/invMassVsPt_PCM", "Invariant mass and pT of HNM candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{600, 0.6, 1.2}, {250, 0., 25.}});
436-
mHistManager.add("HeavyNeutralMeson/invMassVsPt_PCMEMC", "Invariant mass and pT of HNM candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{600, 0.6, 1.2}, {250, 0., 25.}});
437-
mHistManager.add("HeavyNeutralMeson/invMassVsPt_EMC", "Invariant mass and pT of HNM candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{600, 0.6, 1.2}, {250, 0., 25.}});
435+
mHistManager.add("Omega/invMassVsPt_PCM", "Invariant mass and pT of omega meson candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.6, 1.}, {250, 0., 25.}});
436+
mHistManager.add("Omega/invMassVsPt_PCMEMC", "Invariant mass and pT of omega meson candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.6, 1.}, {250, 0., 25.}});
437+
mHistManager.add("Omega/invMassVsPt_EMC", "Invariant mass and pT of omega meson candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.6, 1.}, {250, 0., 25.}});
438+
439+
mHistManager.add("EtaPrime/invMassVsPt_PCM", "Invariant mass and pT of eta' candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.8, 1.2}, {250, 0., 25.}});
440+
mHistManager.add("EtaPrime/invMassVsPt_PCMEMC", "Invariant mass and pT of eta' candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.8, 1.2}, {250, 0., 25.}});
441+
mHistManager.add("EtaPrime/invMassVsPt_EMC", "Invariant mass and pT of eta' candidates;#bf{#it{M}_{#pi^{+}#pi^{-}#gamma#gamma}};#bf{#it{pT}_{#pi^{+}#pi^{-}#gamma#gamma}}", HistType::kTH2F, {{400, 0.8, 1.2}, {250, 0., 25.}});
438442

439443
// include all femto histograms
440444
mHistManager.add("fProcessedEvents", "CF - event filtered;;Events", HistType::kTH1F, {{15, -0.5, 14.5}});
@@ -768,7 +772,7 @@ struct HeavyNeutralMesonFilter {
768772
mHistManager.add("etaprimep/fAntiProtonPtVskstar_EMC", "Same Event distribution", HistType::kTH1F, {{8000, 0, 8}});
769773

770774
if (ConfDoEMCShift.value) {
771-
for (unsigned short iSM = 0; iSM < 20; iSM++) {
775+
for (int iSM = 0; iSM < 20; iSM++) {
772776
EMCEtaShift[iSM] = ConfEMCEtaShift.value[iSM];
773777
EMCPhiShift[iSM] = ConfEMCPhiShift.value[iSM];
774778
LOG(info) << "SM-wise shift in eta/phi for SM " << iSM << ": " << EMCEtaShift[iSM] << " / " << EMCPhiShift[iSM];
@@ -1498,21 +1502,30 @@ struct HeavyNeutralMesonFilter {
14981502

14991503
float massHNM = heavyNeutralMeson.m(cfgHNMMassCorrection);
15001504
if (heavyNeutralMeson.gg->reconstructionType == photonpair::kPCMPCM) {
1501-
mHistManager.fill(HIST("HeavyNeutralMeson/invMassVsPt_PCM"), massHNM, heavyNeutralMeson.pT());
1505+
if (heavyNeutralMeson.gg->isPi0)
1506+
mHistManager.fill(HIST("Omega/invMassVsPt_PCM"), massHNM, heavyNeutralMeson.pT());
1507+
else if (heavyNeutralMeson.gg->isEta)
1508+
mHistManager.fill(HIST("EtaPrime/invMassVsPt_PCM"), massHNM, heavyNeutralMeson.pT());
15021509
// QA
15031510
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCM/fInvMass"), massHNM);
15041511
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCM/fPt"), heavyNeutralMeson.pT());
15051512
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCM/fEta"), heavyNeutralMeson.eta());
15061513
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCM/fPhi"), translatePhi(heavyNeutralMeson.phi()));
15071514
} else if (heavyNeutralMeson.gg->reconstructionType == photonpair::kEMCEMC) {
1508-
mHistManager.fill(HIST("HeavyNeutralMeson/invMassVsPt_EMC"), massHNM, heavyNeutralMeson.pT());
1515+
if (heavyNeutralMeson.gg->isPi0)
1516+
mHistManager.fill(HIST("Omega/invMassVsPt_EMC"), massHNM, heavyNeutralMeson.pT());
1517+
else if (heavyNeutralMeson.gg->isEta)
1518+
mHistManager.fill(HIST("EtaPrime/invMassVsPt_EMC"), massHNM, heavyNeutralMeson.pT());
15091519
// QA
15101520
mHistManager.fill(HIST("TrackCuts/HMN/Before/EMC/fInvMass"), massHNM);
15111521
mHistManager.fill(HIST("TrackCuts/HMN/Before/EMC/fPt"), heavyNeutralMeson.pT());
15121522
mHistManager.fill(HIST("TrackCuts/HMN/Before/EMC/fEta"), heavyNeutralMeson.eta());
15131523
mHistManager.fill(HIST("TrackCuts/HMN/Before/EMC/fPhi"), translatePhi(heavyNeutralMeson.phi()));
15141524
} else {
1515-
mHistManager.fill(HIST("HeavyNeutralMeson/invMassVsPt_PCMEMC"), massHNM, heavyNeutralMeson.pT());
1525+
if (heavyNeutralMeson.gg->isPi0)
1526+
mHistManager.fill(HIST("Omega/invMassVsPt_PCMEMC"), massHNM, heavyNeutralMeson.pT());
1527+
else if (heavyNeutralMeson.gg->isEta)
1528+
mHistManager.fill(HIST("EtaPrime/invMassVsPt_PCMEMC"), massHNM, heavyNeutralMeson.pT());
15161529
// QA
15171530
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCMEMC/fInvMass"), massHNM);
15181531
mHistManager.fill(HIST("TrackCuts/HMN/Before/PCMEMC/fPt"), heavyNeutralMeson.pT());

0 commit comments

Comments
 (0)