Skip to content

Commit a46afb7

Browse files
[PWGLF] gen. MC update in strangeness UPC analysis (#10243)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 26e930f commit a46afb7

File tree

1 file changed

+31
-17
lines changed

1 file changed

+31
-17
lines changed

PWGLF/Tasks/Strangeness/derivedupcanalysis.cxx

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,9 @@ struct Derivedupcanalysis {
198198
Configurable<float> minOccupancy{"minOccupancy", -1, "minimum occupancy from neighbouring collisions"};
199199
Configurable<float> maxOccupancy{"maxOccupancy", 1000, "maximum occupancy from neighbouring collisions"};
200200

201+
// z vertex cut
202+
Configurable<float> maxZVtxPosition{"maxZVtxPosition", 10.0f, "max Z vtx position"};
203+
201204
// Kinematic axes
202205
ConfigurableAxis axisPt{"axisPt", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "pt axis for v0 analysis"};
203206
ConfigurableAxis axisPtXi{"axisPtXi", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "pt axis for cascade analysis"};
@@ -1014,7 +1017,7 @@ struct Derivedupcanalysis {
10141017
const std::array<SelectionCheck, 15> checks = {{
10151018
{true, true, 0.0}, // All collisions
10161019
{requireIsTriggerTVX, collision.selection_bit(aod::evsel::kIsTriggerTVX), 1.0}, // Triggered by FT0M
1017-
{true, std::fabs(collision.posZ()) <= 10.f, 2.0}, // Vertex-Z selected
1020+
{true, std::fabs(collision.posZ()) < maxZVtxPosition, 2.0}, // Vertex-Z selected
10181021
{rejectITSROFBorder, collision.selection_bit(o2::aod::evsel::kNoITSROFrameBorder), 3.0}, // Not at ITS ROF border
10191022
{rejectTFBorder, collision.selection_bit(o2::aod::evsel::kNoTimeFrameBorder), 4.0}, // Not at TF border
10201023
{requireIsVertexITSTPC, collision.selection_bit(o2::aod::evsel::kIsVertexITSTPC), 5.0}, // At least one ITS-TPC track
@@ -1576,10 +1579,10 @@ struct Derivedupcanalysis {
15761579

15771580
PresliceUnsorted<StraCollisonsFullMC> perMcCollision = aod::v0data::straMCCollisionId;
15781581

1579-
std::vector<int> getListOfRecoCollIndices(StraMCCollisionsFull const& mcCollisions,
1580-
StraCollisonsFullMC const& collisions)
1582+
std::vector<int> getListOfRecoCollIds(StraMCCollisionsFull const& mcCollisions,
1583+
StraCollisonsFullMC const& collisions)
15811584
{
1582-
std::vector<int> listBestCollisionIdx(mcCollisions.size(), -1);
1585+
std::vector<int> listBestCollisionIds(mcCollisions.size(), -1);
15831586

15841587
for (auto const& mcCollision : mcCollisions) {
15851588
auto groupedCollisions = collisions.sliceBy(perMcCollision, mcCollision.globalIndex());
@@ -1588,15 +1591,23 @@ struct Derivedupcanalysis {
15881591
int biggestNContribs = -1;
15891592
int bestCollisionIndex = -1;
15901593
for (auto const& collision : groupedCollisions) {
1594+
if (!acceptEvent(collision, false)) {
1595+
continue;
1596+
}
1597+
1598+
int selGapSide = collision.isUPC() ? getGapSide(collision) : -1;
1599+
if (studyUPConly && (selGapSide < -0.5))
1600+
continue;
1601+
15911602
if (biggestNContribs < collision.multPVTotalContributors()) {
15921603
biggestNContribs = collision.multPVTotalContributors();
15931604
bestCollisionIndex = collision.globalIndex();
15941605
}
15951606
}
1596-
listBestCollisionIdx[mcCollision.globalIndex()] = bestCollisionIndex;
1607+
listBestCollisionIds[mcCollision.globalIndex()] = bestCollisionIndex;
15971608
}
15981609

1599-
return listBestCollisionIdx;
1610+
return listBestCollisionIds;
16001611
}
16011612

16021613
void fillGenMCHistogramsQA(StraMCCollisionsFull const& mcCollisions, StraCollisonsFullMC const& collisions)
@@ -1605,7 +1616,7 @@ struct Derivedupcanalysis {
16051616
histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 0.0);
16061617
histos.fill(HIST("eventQA/mc/hMCNParticlesEta10"), mcCollision.multMCNParticlesEta10(), 0 /* all gen. events*/);
16071618

1608-
if (std::abs(mcCollision.posZ()) > 10.f)
1619+
if (std::abs(mcCollision.posZ()) > maxZVtxPosition)
16091620
continue;
16101621

16111622
histos.fill(HIST("eventQA/mc/hEventSelectionMC"), 1.0);
@@ -1629,14 +1640,14 @@ struct Derivedupcanalysis {
16291640
if (studyUPConly && (selGapSide < -0.5))
16301641
continue;
16311642

1643+
++nCollisions;
1644+
atLeastOne = true;
1645+
16321646
if (biggestNContribs < collision.multPVTotalContributors()) {
16331647
biggestNContribs = collision.multPVTotalContributors();
16341648
centrality = collision.centFT0C();
16351649
nTracksGlobal = collision.multNTracksGlobal();
16361650
}
1637-
1638-
++nCollisions;
1639-
atLeastOne = true;
16401651
}
16411652

16421653
// Fill histograms
@@ -1759,7 +1770,7 @@ struct Derivedupcanalysis {
17591770
StraCollisonsFullMC const& collisions)
17601771
{
17611772
fillGenMCHistogramsQA(mcCollisions, collisions);
1762-
std::vector<int> listBestCollisionIdx = getListOfRecoCollIndices(mcCollisions, collisions);
1773+
std::vector<int> listBestCollisionIds = getListOfRecoCollIds(mcCollisions, collisions);
17631774
// V0 start
17641775
for (auto const& v0MC : V0MCCores) {
17651776
// Consider only primaries
@@ -1777,13 +1788,15 @@ struct Derivedupcanalysis {
17771788
continue;
17781789

17791790
auto mcCollision = v0MC.straMCCollision_as<StraMCCollisionsFull>(); // take gen. collision
1780-
if (std::abs(mcCollision.posZ()) > 10.f)
1791+
1792+
if (std::abs(mcCollision.posZ()) > maxZVtxPosition)
17811793
continue;
17821794

17831795
float centrality = -1.f;
17841796
int nTracksGlobal = -1;
1785-
if (listBestCollisionIdx[mcCollision.globalIndex()] > -1) {
1786-
auto collision = collisions.iteratorAt(listBestCollisionIdx[mcCollision.globalIndex()]);
1797+
1798+
if (listBestCollisionIds[mcCollision.globalIndex()] > -1) {
1799+
auto collision = collisions.iteratorAt(listBestCollisionIds[mcCollision.globalIndex()]);
17871800
centrality = collision.centFT0C();
17881801
nTracksGlobal = collision.multNTracksGlobal();
17891802
}
@@ -1816,13 +1829,14 @@ struct Derivedupcanalysis {
18161829
continue;
18171830

18181831
auto mcCollision = cascMC.straMCCollision_as<StraMCCollisionsFull>(); // take gen. collision
1819-
if (std::abs(mcCollision.posZ()) > 10.f)
1832+
if (std::abs(mcCollision.posZ()) > maxZVtxPosition)
18201833
continue;
18211834

18221835
float centrality = -1.f;
18231836
int nTracksGlobal = -1;
1824-
if (listBestCollisionIdx[mcCollision.globalIndex()] > -1) {
1825-
auto collision = collisions.iteratorAt(listBestCollisionIdx[mcCollision.globalIndex()]);
1837+
1838+
if (listBestCollisionIds[mcCollision.globalIndex()] > -1) {
1839+
auto collision = collisions.iteratorAt(listBestCollisionIds[mcCollision.globalIndex()]);
18261840
centrality = collision.centFT0C();
18271841
nTracksGlobal = collision.multNTracksGlobal();
18281842
}

0 commit comments

Comments
 (0)