Skip to content

Commit 8e0d484

Browse files
committed
Add occupancy to tables
1 parent 68a54cc commit 8e0d484

2 files changed

Lines changed: 30 additions & 20 deletions

File tree

PWGLF/DataModel/LFLambda1405Table.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,12 @@ DECLARE_SOA_COLUMN(DCAKinkDauToPV, dcaKinkDauToPV, float); //! DCA of the kink
4848
DECLARE_SOA_COLUMN(NSigmaTPCPiDau, nSigmaTPCPiDau, float); //! Number of sigmas for the lambda1405 pion daughter in TPC
4949
DECLARE_SOA_COLUMN(NSigmaTOFPiDau, nSigmaTOFPiDau, float); //! Number of sigmas for the lambda1405 pion daughter in TOF
5050

51+
// Event properties
52+
DECLARE_SOA_COLUMN(Centrality, centrality, float); //! Centrality of the candidate
53+
DECLARE_SOA_COLUMN(Occupancy, occupancy, float); //! Occupancy of the candidate
54+
5155
// Flow columns
5256
DECLARE_SOA_COLUMN(ScalarProd, scalarProd, float); //! Scalar product of the candidate
53-
DECLARE_SOA_COLUMN(Centrality, centrality, float); //! Centrality of the candidate
5457

5558
// MC Columns
5659
DECLARE_SOA_COLUMN(PtMC, ptMC, float); //! pT of the candidate in MC
@@ -70,7 +73,8 @@ DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405",
7073
lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink,
7174
lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink,
7275
lambda1405::DCAKinkDauToPV,
73-
lambda1405::NSigmaTPCPiDau, lambda1405::NSigmaTOFPiDau);
76+
lambda1405::NSigmaTPCPiDau, lambda1405::NSigmaTOFPiDau,
77+
lambda1405::Centrality, lambda1405::Occupancy);
7478

7579
DECLARE_SOA_TABLE(Lambda1405Flow, "AOD", "LAMBDA1405FLOW",
7680
o2::soa::Index<>,
@@ -95,7 +99,8 @@ DECLARE_SOA_TABLE(Lambda1405CandsMC, "AOD", "MCLAMBDA1405",
9599
lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink,
96100
lambda1405::DCAKinkDauToPV,
97101
lambda1405::NSigmaTPCPiDau, lambda1405::NSigmaTOFPiDau,
98-
lambda1405::PtMC, lambda1405::MassMC, lambda1405::SigmaPdgCode, lambda1405::KinkDauPdgCode);
102+
lambda1405::PtMC, lambda1405::MassMC, lambda1405::SigmaPdgCode, lambda1405::KinkDauPdgCode,
103+
lambda1405::Centrality, lambda1405::Occupancy);
99104

100105
} // namespace o2::aod
101106

PWGLF/Tasks/Resonances/lambda1405analysis.cxx

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
#include <ReconstructionDataFormats/Vertex.h>
4646

4747
#include <TF1.h>
48+
#include <THnSparse.h>
49+
#include <TH2.h>
50+
#include <TH3.h>
4851

4952
#include <array>
5053
#include <cmath>
@@ -103,9 +106,9 @@ struct lambda1405candidate {
103106
int sigmaId = 0; // Id of the Sigma candidate in MC
104107
int bachPiId = 0; // Id of the pion candidate in MC
105108

106-
float centMult = -1; // Centrality of the collision
107-
float pvContrib = -1; // Number of contributors to the primary vertex
108-
float occ = -1; // Occupancy of the collision
109+
float centMult = -1; // Centrality of the collision
110+
float pvContrib = -1; // Number of contributors to the primary vertex
111+
float occupancy = -1; // Occupancy of the collision
109112

110113
float scalarProd = -1; // Scalar product for flow analysis
111114
};
@@ -165,7 +168,7 @@ struct lambda1405analysis {
165168

166169
Configurable<bool> fillOutputTree{"fillOutputTree", true, "If true, fill the output tree with Lambda(1405) candidates"};
167170
Configurable<bool> doLikeSignBkg{"doLikeSignBkg", false, "Use like-sign background"};
168-
Configurable<bool> useTof{"useTof", false, "Use Tof for PId for pion candidates"};
171+
Configurable<bool> useTof{"useTof", false, "Use Tof for PID for pion candidates"};
169172
Configurable<bool> recomputeSigmaMom{"recomputeSigmaMom", true, "Recalculate sigma momentum from daughter kinematics"};
170173
Configurable<bool> skipSigmasFailedRecompMom{"skipSigmasFailedRecompMom", false, "Skip sigmas for which momentum recalculation fails"};
171174

@@ -311,8 +314,8 @@ struct lambda1405analysis {
311314
rLambda1405.add("hPairedBachPiVsCent", "hPairedBachPiVsCent", {HistType::kTH2F, {centMultAxis, {1000, -0.5, 999.5}}});
312315
rLambda1405.add("h2BachPiPtNSigTof", "h2BachPiPtNSigTof", {HistType::kTH2F, {ptKinkDaugAxis, nSigmaAxis}});
313316
rLambda1405.add("h2BachPiPtNSigTpc", "h2BachPiPtNSigTpc", {HistType::kTH2F, {ptKinkDaugAxis, nSigmaAxis}});
314-
rLambda1405.add("h2BachPiDcaXYVsPt", "h2BachPiDcaXYVsPt", {HistType::kTH2F, {ptKinkDaugAxis, dcaBachPiAxis}});
315-
rLambda1405.add("h2BachPiDcaZVsPt", "h2BachPiDcaZVsPt", {HistType::kTH2F, {ptKinkDaugAxis, dcaBachPiAxis}});
317+
rLambda1405.add("h3BachPiDcaXYVsPt", "h3BachPiDcaXYVsPt", {HistType::kTH3F, {ptKinkDaugAxis, dcaBachPiAxis, centMultAxis}});
318+
rLambda1405.add("h3BachPiDcaZVsPt", "h3BachPiDcaZVsPt", {HistType::kTH3F, {ptKinkDaugAxis, dcaBachPiAxis, centMultAxis}});
316319
// Sparse histograms
317320
std::vector<AxisSpec> axesMass = {lambda1405MassAxis, ptAxis, sigmaMassAxis, dcaSigmaToPvAxis, dcaKinkToPvAxis};
318321
if (doprocessMc || doprocessMcWCentSel) {
@@ -579,7 +582,7 @@ struct lambda1405analysis {
579582
}
580583

581584
template <typename TTrack>
582-
bool selectPiBach(const TTrack& candidate, const o2::dataformats::VertexBase& vtx)
585+
bool selectPiBach(const TTrack& candidate, const o2::dataformats::VertexBase& vtx, float centMult)
583586
{
584587
if (std::abs(candidate.tpcNSigmaPi()) > cutNSigTpc) {
585588
return false;
@@ -601,8 +604,8 @@ struct lambda1405analysis {
601604
o2::base::Propagator::Instance()->propagateToDCABxByBz({vtx.getX(), vtx.getY(), vtx.getZ()},
602605
trackParCovTrack, 2.f, static_cast<o2::base::Propagator::MatCorrType>(cfgMaterialCorrection.value),
603606
&dcaInfoMoth);
604-
rLambda1405.fill(HIST("h2BachPiDcaXYVsPt"), candidate.pt(), dcaInfoMoth[0]);
605-
rLambda1405.fill(HIST("h2BachPiDcaZVsPt"), candidate.pt(), dcaInfoMoth[1]);
607+
rLambda1405.fill(HIST("h3BachPiDcaXYVsPt"), candidate.pt(), dcaInfoMoth[0], centMult);
608+
rLambda1405.fill(HIST("h3BachPiDcaZVsPt"), candidate.pt(), dcaInfoMoth[1], centMult);
606609
if (std::abs(dcaInfoMoth[0]) > funcDcaXYPtCutBachPi.Eval(candidate.pt()) || std::abs(dcaInfoMoth[1]) > cutMaxDcaZBach) {
607610
return false;
608611
}
@@ -694,7 +697,7 @@ struct lambda1405analysis {
694697
if (lambda1405Cand.isSigmaPlus) {
695698
rSigmaPlus.fill(HIST("h2dPtMassSigmaPlus"), sigmaCand.ptMoth(), sigmaCand.mSigmaPlus());
696699
rSigmaPlus.fill(HIST("h2dPvContribMassSigmaPlus"), lambda1405Cand.pvContrib, sigmaCand.mSigmaPlus());
697-
rSigmaPlus.fill(HIST("h2dOccMassSigmaPlus"), lambda1405Cand.occ, sigmaCand.mSigmaPlus());
700+
rSigmaPlus.fill(HIST("h2dOccMassSigmaPlus"), lambda1405Cand.occupancy, sigmaCand.mSigmaPlus());
698701
rSigmaPlus.fill(HIST("h2dPvContribPtSigmaPlus"), lambda1405Cand.pvContrib, sigmaCand.ptMoth());
699702
rSigmaPlus.fill(HIST("hMassXiMinusSigmaPlus"), sigmaCand.mXiMinus(), sigmaCand.mSigmaPlus());
700703
rSigmaPlus.fill(HIST("hSigmaPlusArmPod"), lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP);
@@ -708,7 +711,7 @@ struct lambda1405analysis {
708711
} else {
709712
rSigmaMinus.fill(HIST("h2dPtMassSigmaMinus"), sigmaCand.ptMoth(), sigmaCand.mSigmaMinus());
710713
rSigmaMinus.fill(HIST("h2dPvContribMassSigmaMinus"), lambda1405Cand.pvContrib, sigmaCand.mSigmaMinus());
711-
rSigmaMinus.fill(HIST("h2dOccMassSigmaMinus"), lambda1405Cand.occ, sigmaCand.mSigmaMinus());
714+
rSigmaMinus.fill(HIST("h2dOccMassSigmaMinus"), lambda1405Cand.occupancy, sigmaCand.mSigmaMinus());
712715
rSigmaMinus.fill(HIST("h2dPvContribPtSigmaMinus"), lambda1405Cand.pvContrib, sigmaCand.ptMoth());
713716
rSigmaMinus.fill(HIST("hMassXiMinusSigmaMinus"), sigmaCand.mXiMinus(), sigmaCand.mSigmaMinus());
714717
rSigmaMinus.fill(HIST("hSigmaMinusArmPod"), lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP);
@@ -981,7 +984,7 @@ struct lambda1405analysis {
981984
// Collision properties
982985
lambda1405Cand.pvContrib = collision.numContrib();
983986
lambda1405Cand.centMult = getCentMult(collision);
984-
lambda1405Cand.occ = collision.ft0cOccupancyInTimeRange();
987+
lambda1405Cand.occupancy = collision.ft0cOccupancyInTimeRange();
985988

986989
fillHistosSigma(lambda1405Cand, sigmaCand, kinkDauTrack);
987990

@@ -1005,7 +1008,7 @@ struct lambda1405analysis {
10051008
}
10061009
rSelections.fill(HIST("hSelectionsBachPi"), 1);
10071010

1008-
if (!selectPiBach(piTrack, primaryVertex)) {
1011+
if (!selectPiBach(piTrack, primaryVertex, lambda1405Cand.centMult)) {
10091012
continue;
10101013
}
10111014
rSelections.fill(HIST("hSelectionsL1405"), 2); // Bach Pi selection
@@ -1113,7 +1116,7 @@ struct lambda1405analysis {
11131116
for (const auto& sigmaCand : sigmaCands) {
11141117
std::vector<lambda1405candidate> selectedCandidates;
11151118
constructCollCandidates(collision, sigmaCand, tracks, selectedCandidates);
1116-
for (auto& lambda1405Cand : selectedCandidates) {
1119+
for (const auto& lambda1405Cand : selectedCandidates) {
11171120
if (lambda1405Cand.isSigmaMinus) {
11181121
rLambda1405.fill(HIST("h2SigmaMinusMassVsLambdaMass"), lambda1405Cand.massL1405, lambda1405Cand.sigmaMinusMass);
11191122
} else {
@@ -1136,7 +1139,8 @@ struct lambda1405analysis {
11361139
lambda1405Cand.kinkPiNSigTpc, lambda1405Cand.kinkPiNSigTof,
11371140
lambda1405Cand.kinkPrNSigTpc, lambda1405Cand.kinkPrNSigTof,
11381141
lambda1405Cand.kinkDcaDauToPv,
1139-
lambda1405Cand.bachPiNSigTpc, lambda1405Cand.bachPiNSigTof);
1142+
lambda1405Cand.bachPiNSigTpc, lambda1405Cand.bachPiNSigTof,
1143+
lambda1405Cand.centMult, lambda1405Cand.occupancy);
11401144
} else {
11411145
outputDataFlowTable(ptCand, lambda1405Cand.massL1405,
11421146
lambda1405Cand.sigmaPt,
@@ -1326,7 +1330,7 @@ struct lambda1405analysis {
13261330
std::vector<lambda1405candidate> selectedCandidates;
13271331
LOG(info) << "Constructing Lambda(1405) candidates from Sigma candidate with global index: " << sigmaCand.globalIndex();
13281332
constructCollCandidates(collision, sigmaCand, tracksPerCol, selectedCandidates);
1329-
for (auto& lambda1405Cand : selectedCandidates) {
1333+
for (const auto& lambda1405Cand : selectedCandidates) {
13301334
rLambda1405.fill(HIST("hRecoL1405"), 0., lambda1405Cand.pt()); // All reconstructed
13311335

13321336
// Do MC association
@@ -1385,7 +1389,8 @@ struct lambda1405analysis {
13851389
lambda1405Cand.kinkPrNSigTpc, lambda1405Cand.kinkPrNSigTof,
13861390
lambda1405Cand.kinkDcaDauToPv,
13871391
lambda1405Cand.bachPiNSigTpc, lambda1405Cand.bachPiNSigTof,
1388-
lambda1405Mother.pt(), lambda1405Mass, genSigma.pdgCode(), genBachPi.pdgCode());
1392+
lambda1405Mother.pt(), lambda1405Mass, genSigma.pdgCode(), genBachPi.pdgCode(),
1393+
lambda1405Cand.centMult, lambda1405Cand.occupancy);
13891394
}
13901395
fillHistosLambda1405<true, false, false>(lambda1405Cand, tracksPerCol);
13911396
}

0 commit comments

Comments
 (0)