Skip to content

Commit 881fb6d

Browse files
lhusovaLucia Anna Tarasovicovaalibuild
authored
[PWGLF] adding the new centrality estimators (#9605)
Co-authored-by: Lucia Anna Tarasovicova <lucia.anna.husova@cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent d7f04f5 commit 881fb6d

File tree

5 files changed

+99
-15
lines changed

5 files changed

+99
-15
lines changed

PWGLF/DataModel/LFStrangenessTables.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,14 @@ DECLARE_SOA_DYNAMIC_COLUMN(EnergyCommonZNC, energyCommonZNC, //! get the total s
6363
// if required (for 2pc, etc)
6464
DECLARE_SOA_TABLE(StraCollisions, "AOD", "STRACOLLISION", //! basic collision properties: position
6565
o2::soa::Index<>, collision::PosX, collision::PosY, collision::PosZ);
66-
DECLARE_SOA_TABLE(StraCents, "AOD", "STRACENTS", //! centrality percentiles
66+
DECLARE_SOA_TABLE(StraCents_000, "AOD", "STRACENTS", //! centrality percentiles
6767
cent::CentFT0M, cent::CentFT0A,
6868
cent::CentFT0C, cent::CentFV0A);
69+
DECLARE_SOA_TABLE_VERSIONED(StraCents_001, "AOD", "STRACENTS", 1, //! centrality percentiles
70+
cent::CentFT0M, cent::CentFT0A,
71+
cent::CentFT0C, cent::CentFV0A,
72+
cent::CentFT0CVariant1, cent::CentMFT,
73+
cent::CentNGlobal);
6974
// !!! DEPRECATED TABLE: StraRawCents_000 !!! All info in StraEvSels_001, in order to group all event characteristics in a unique table. Please use StraEvSels_001
7075
DECLARE_SOA_TABLE(StraRawCents_000, "AOD", "STRARAWCENTS", //! debug information
7176
mult::MultFT0A, mult::MultFT0C, mult::MultFV0A, mult::MultNTracksPVeta1);
@@ -238,10 +243,11 @@ DECLARE_SOA_TABLE_VERSIONED(StraStamps_001, "AOD", "STRASTAMPS", 1, //! informat
238243
bc::RunNumber, timestamp::Timestamp, bc::GlobalBC);
239244

240245
using StraRawCents = StraRawCents_004;
246+
using StraCents = StraCents_001;
241247
using StraEvSels = StraEvSels_004;
242248
using StraStamps = StraStamps_001;
243249
using StraCollision = StraCollisions::iterator;
244-
using StraCent = StraCents::iterator;
250+
using StraCent = StraCents_001::iterator;
245251

246252
namespace stramccollision
247253
{

PWGLF/TableProducer/Strangeness/Converters/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ o2physics_add_dpl_workflow(strastampsconverter
8989
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
9090
COMPONENT_NAME Analysis)
9191

92+
o2physics_add_dpl_workflow(stracentconverter
93+
SOURCES stracentconverter.cxx
94+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
95+
COMPONENT_NAME Analysis)
96+
9297
o2physics_add_dpl_workflow(stramccollmultconverter
9398
SOURCES stramccollmultconverter.cxx
9499
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
95-
COMPONENT_NAME Analysis)
100+
COMPONENT_NAME Analysis)
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
#include "Framework/runDataProcessing.h"
12+
#include "Framework/AnalysisTask.h"
13+
#include "Framework/AnalysisDataModel.h"
14+
#include "PWGLF/DataModel/LFStrangenessTables.h"
15+
16+
using namespace o2;
17+
using namespace o2::framework;
18+
19+
// Converts Stra Cents from 000 to 001
20+
struct stracentconverter {
21+
Produces<aod::StraCents_001> straCents_001;
22+
23+
void process(aod::StraCents_000 const& straCents_000)
24+
{
25+
for (auto& values : straCents_000) {
26+
straCents_001(values.centFT0M(),
27+
values.centFT0A(),
28+
values.centFT0C(),
29+
values.centFV0A(),
30+
-999., /*dummy FT0Cvariant1 value*/
31+
-999., /*dummy MFT value*/
32+
-999. /*dummy NGlobal value*/);
33+
}
34+
}
35+
};
36+
37+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
38+
{
39+
return WorkflowSpec{
40+
adaptAnalysisTask<stracentconverter>(cfgc)};
41+
}

PWGLF/TableProducer/Strangeness/strangederivedbuilder.cxx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,8 @@ struct strangederivedbuilder {
494494
strangeCollLabels(collision.mcCollisionId());
495495
}
496496
strangeCents(collision.centFT0M(), collision.centFT0A(),
497-
centrality, collision.centFV0A());
497+
centrality, collision.centFV0A(), collision.centFT0CVariant1(),
498+
collision.centMFT(), collision.centNGlobal());
498499
strangeEvSels(collision.sel8(), collision.selection_raw(),
499500
collision.multFT0A() * static_cast<float>(fillTruncationOptions.fillRawFT0A),
500501
collision.multFT0C() * static_cast<float>(fillTruncationOptions.fillRawFT0C),
@@ -591,23 +592,23 @@ struct strangederivedbuilder {
591592
}
592593
}
593594

594-
void processCollisions(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::EvSels, aod::MultsExtra, aod::MultsGlobal> const& collisions, aod::V0Datas const& V0s, aod::CascDatas const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/)
595+
void processCollisions(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentNGlobals, aod::CentMFTs, aod::EvSels, aod::MultsExtra, aod::MultsGlobal> const& collisions, aod::V0Datas const& V0s, aod::CascDatas const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/)
595596
{
596597
populateCollisionTables(collisions, collisions, V0s, Cascades, KFCascades, TraCascades);
597598
}
598599

599-
void processCollisionsWithUD(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::EvSels, aod::MultsExtra, aod::MultsGlobal> const& collisions, aod::V0Datas const& V0s, aod::CascDatas const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, UDCollisionsFull const& udCollisions)
600+
void processCollisionsWithUD(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentNGlobals, aod::CentMFTs, aod::EvSels, aod::MultsExtra, aod::MultsGlobal> const& collisions, aod::V0Datas const& V0s, aod::CascDatas const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, UDCollisionsFull const& udCollisions)
600601
{
601602
populateCollisionTables(collisions, udCollisions, V0s, Cascades, KFCascades, TraCascades);
602603
}
603604

604-
void processCollisionsWithMC(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::EvSels, aod::McCollisionLabels, aod::MultsExtra, aod::MultsGlobal> const& collisions, soa::Join<aod::V0Datas, aod::McV0Labels> const& V0s, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const& /*V0MCCores*/, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultsExtraMC> const& mcCollisions, aod::McParticles const& mcParticles)
605+
void processCollisionsWithMC(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentNGlobals, aod::CentMFTs, aod::EvSels, aod::McCollisionLabels, aod::MultsExtra, aod::MultsGlobal> const& collisions, soa::Join<aod::V0Datas, aod::McV0Labels> const& V0s, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const& /*V0MCCores*/, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultsExtraMC> const& mcCollisions, aod::McParticles const& mcParticles)
605606
{
606607
populateMCCollisionTable(mcCollisions, mcParticles);
607608
populateCollisionTables(collisions, collisions, V0s, Cascades, KFCascades, TraCascades);
608609
}
609610

610-
void processCollisionsWithUDWithMC(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::EvSels, aod::McCollisionLabels, aod::MultsExtra, aod::MultsGlobal> const& collisions, soa::Join<aod::V0Datas, aod::McV0Labels> const& V0s, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const& /*V0MCCores*/, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, UDCollisionsFull const& udCollisions, soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultsExtraMC> const& mcCollisions, aod::McParticles const& mcParticles)
611+
void processCollisionsWithUDWithMC(soa::Join<aod::Collisions, aod::FT0Mults, aod::FV0Mults, aod::FDDMults, aod::PVMults, aod::ZDCMults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentNGlobals, aod::CentMFTs, aod::EvSels, aod::McCollisionLabels, aod::MultsExtra, aod::MultsGlobal> const& collisions, soa::Join<aod::V0Datas, aod::McV0Labels> const& V0s, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const& /*V0MCCores*/, soa::Join<aod::CascDatas, aod::McCascLabels> const& Cascades, aod::KFCascDatas const& KFCascades, aod::TraCascDatas const& TraCascades, aod::BCsWithTimestamps const& /*bcs*/, UDCollisionsFull const& udCollisions, soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultsExtraMC> const& mcCollisions, aod::McParticles const& mcParticles)
611612
{
612613
populateMCCollisionTable(mcCollisions, mcParticles);
613614
populateCollisionTables(collisions, udCollisions, V0s, Cascades, KFCascades, TraCascades);

PWGLF/Tasks/Strangeness/derivedcascadeanalysis.cxx

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ struct Derivedcascadeanalysis {
7474
ConfigurableAxis axisMass{"axisMass", {200, 1.222f, 1.422f}, "range of invariant mass, in case of omega take 1.572f, 1.772f"};
7575

7676
Configurable<bool> isXi{"isXi", 1, "Apply cuts for Xi identification"};
77-
Configurable<bool> usePbPbCentrality{"usePbPbCentrality", 0, "If true, use centFt0C, else use centFT0M"};
77+
Configurable<bool> useCentralityFT0M{"useCentralityFT0M", 0, "If true, use centFT0M"};
78+
Configurable<bool> useCentralityFT0A{"useCentralityFT0A", 0, "If true, use centFT0A"};
79+
Configurable<bool> useCentralityFT0Cvar1{"useCentralityFT0Cvar1", 0, "If true, use centFT0FT0Cvar1"};
7880
Configurable<int> minOccupancy{"minOccupancy", -1, "Minimal occupancy"};
7981
Configurable<int> maxOccupancy{"maxOccupancy", -1, "Maximal occupancy"};
8082
Configurable<float> minOccupancyFT0{"minOccupancyFT0", -1, "Minimal occupancy"};
@@ -375,6 +377,11 @@ struct Derivedcascadeanalysis {
375377
histos.add("h2dGenOmegaMinusVsCentOccupancy", "h2dGenOmegaMinusVsCentOccupancy", kTH3D, {axisPt, {101, 0.0f, 101.0f}, axisOccupancy});
376378
histos.add("h2dGenOmegaPlusVsCentOccupancy", "h2dGenOmegaPlusVsCentOccupancy", kTH3D, {axisPt, {101, 0.0f, 101.0f}, axisOccupancy});
377379

380+
histos.add("h2dGenXiMinusVsNchVsOccupancy", "h2dGenXiMinusVsNchVsOccupancy", kTH3D, {axisPt, axisNch, axisOccupancy});
381+
histos.add("h2dGenXiPlusVsNchVsOccupancy", "h2dGenXiPlusVsNchVsOccupancy", kTH3D, {axisPt, axisNch, axisOccupancy});
382+
histos.add("h2dGenOmegaMinusVsNchVsOccupancy", "h2dGenOmegaMinusVsNchVsOccupancy", kTH3D, {axisPt, axisNch, axisOccupancy});
383+
histos.add("h2dGenOmegaPlusVsNchVsOccupancy", "h2dGenOmegaPlusVsNchVsOccupancy", kTH3D, {axisPt, axisNch, axisOccupancy});
384+
378385
histos.add("h2dGenXiMinusVsMultMC", "h2dGenXiMinusVsMultMC", kTH2D, {axisNch, axisPt});
379386
histos.add("h2dGenXiPlusVsMultMC", "h2dGenXiPlusVsMultMC", kTH2D, {axisNch, axisPt});
380387
histos.add("h2dGenOmegaMinusVsMultMC", "h2dGenOmegaMinusVsMultMC", kTH2D, {axisNch, axisPt});
@@ -426,8 +433,12 @@ struct Derivedcascadeanalysis {
426433
if (fillHists)
427434
histos.fill(HIST("hEventSelection"), 0.5 /* all collisions */);
428435
float centrality = coll.centFT0C();
429-
if (!usePbPbCentrality)
436+
if (useCentralityFT0M)
430437
centrality = coll.centFT0M();
438+
if (useCentralityFT0A)
439+
centrality = coll.centFV0A();
440+
if (useCentralityFT0Cvar1)
441+
centrality = coll.centFT0CVariant1();
431442

432443
if (qaFlags.doBefSelEventMultCorr) {
433444
histos.fill(HIST("hEventNchCorrelationBefCuts"), coll.multNTracksPVeta1(), coll.multNTracksGlobal());
@@ -743,8 +754,12 @@ struct Derivedcascadeanalysis {
743754
return;
744755

745756
float centrality = coll.centFT0C();
746-
if (!usePbPbCentrality)
757+
if (useCentralityFT0M)
747758
centrality = coll.centFT0M();
759+
if (useCentralityFT0A)
760+
centrality = coll.centFV0A();
761+
if (useCentralityFT0Cvar1)
762+
centrality = coll.centFT0CVariant1();
748763

749764
for (const auto& casc : Cascades) {
750765

@@ -1033,8 +1048,13 @@ struct Derivedcascadeanalysis {
10331048
if (!isEventAccepted(coll, true))
10341049
return;
10351050
float centrality = coll.centFT0C();
1036-
if (!usePbPbCentrality)
1051+
if (useCentralityFT0M)
10371052
centrality = coll.centFT0M();
1053+
if (useCentralityFT0A)
1054+
centrality = coll.centFV0A();
1055+
if (useCentralityFT0Cvar1)
1056+
centrality = coll.centFT0CVariant1();
1057+
10381058
float nChEta05 = coll.multNTracksPVeta1();
10391059
for (const auto& casc : Cascades) {
10401060
float mass = -1;
@@ -1375,8 +1395,12 @@ struct Derivedcascadeanalysis {
13751395
if (listBestCollisionIdx[mcCollision.globalIndex()] > -1) {
13761396
auto collision = collisions.iteratorAt(listBestCollisionIdx[mcCollision.globalIndex()]);
13771397
centrality = collision.centFT0C();
1378-
if (!usePbPbCentrality)
1398+
if (useCentralityFT0M)
13791399
centrality = collision.centFT0M();
1400+
if (useCentralityFT0A)
1401+
centrality = collision.centFV0A();
1402+
if (useCentralityFT0Cvar1)
1403+
centrality = collision.centFT0CVariant1();
13801404
if (useTrackOccupancyDef)
13811405
occupancy = collision.trackOccupancyInTimeRange();
13821406
if (useFT0OccupancyDef)
@@ -1393,12 +1417,14 @@ struct Derivedcascadeanalysis {
13931417
histos.fill(HIST("h2dGenXiMinusEtaBach"), RecoDecay::eta(std::array{cascMC.pxBachMC(), cascMC.pyBachMC(), cascMC.pzBachMC()}));
13941418
histos.fill(HIST("h2dGenXiMinusVsMultMC"), mcCollision.multMCNParticlesEta05(), ptmc);
13951419
histos.fill(HIST("h2dGenXiMinusVsCentOccupancy"), ptmc, centrality, occupancy);
1420+
histos.fill(HIST("h2dGenXiMinusVsNchVsOccupancy"), ptmc, nChEta05, occupancy);
13961421
}
13971422
if (cascMC.pdgCode() == -3312) {
13981423
histos.fill(HIST("h2dGenXiPlus"), centrality, ptmc);
13991424
histos.fill(HIST("h2dGenXiPlusVsNch"), nChEta05, ptmc);
14001425
histos.fill(HIST("h2dGenXiPlusVsMultMC"), mcCollision.multMCNParticlesEta05(), ptmc);
14011426
histos.fill(HIST("h2dGenXiPlusVsCentOccupancy"), ptmc, centrality, occupancy);
1427+
histos.fill(HIST("h2dGenXiPlusVsNchVsOccupancy"), ptmc, nChEta05, occupancy);
14021428
}
14031429
if (cascMC.pdgCode() == 3334) {
14041430
histos.fill(HIST("h2dGenOmegaMinus"), centrality, ptmc);
@@ -1409,12 +1435,14 @@ struct Derivedcascadeanalysis {
14091435
histos.fill(HIST("h2dGenOmegaMinusEtaBach"), RecoDecay::eta(std::array{cascMC.pxBachMC(), cascMC.pyBachMC(), cascMC.pzBachMC()}));
14101436
histos.fill(HIST("h2dGenOmegaMinusVsMultMC"), mcCollision.multMCNParticlesEta05(), ptmc);
14111437
histos.fill(HIST("h2dGenOmegaMinusVsCentOccupancy"), ptmc, centrality, occupancy);
1438+
histos.fill(HIST("h2dGenOmegaMinusVsNchVsOccupancy"), ptmc, nChEta05, occupancy);
14121439
}
14131440
if (cascMC.pdgCode() == -3334) {
14141441
histos.fill(HIST("h2dGenOmegaPlus"), centrality, ptmc);
14151442
histos.fill(HIST("h2dGenOmegaPlusVsNch"), nChEta05, ptmc);
14161443
histos.fill(HIST("h2dGenOmegaPlusVsMultMC"), mcCollision.multMCNParticlesEta05(), ptmc);
14171444
histos.fill(HIST("h2dGenOmegaPlusVsCentOccupancy"), ptmc, centrality, occupancy);
1445+
histos.fill(HIST("h2dGenOmegaPlusVsNchVsOccupancy"), ptmc, nChEta05, occupancy);
14181446
}
14191447
}
14201448
}
@@ -1445,9 +1473,12 @@ struct Derivedcascadeanalysis {
14451473
biggestNContribs = collision.multPVTotalContributors();
14461474
bestCollisionIndex = collision.globalIndex();
14471475
centrality = collision.centFT0C();
1448-
nChEta05 = collision.multNTracksPVeta1();
1449-
if (!usePbPbCentrality)
1476+
if (useCentralityFT0M)
14501477
centrality = collision.centFT0M();
1478+
if (useCentralityFT0A)
1479+
centrality = collision.centFV0A();
1480+
if (useCentralityFT0Cvar1)
1481+
centrality = collision.centFT0CVariant1();
14511482
}
14521483
nCollisions++;
14531484

0 commit comments

Comments
 (0)