Skip to content

Commit 64d1339

Browse files
[PWGLF] Add histograms to check inv. mass Vs Phi Vs Eta (AliceO2Group#8055)
* Fix upc info filling using the converter * Correct typo in histo axis titles * Add histogram to monitor nbr of rec. V0s per collision * Add histograms to check inv. mass Vs Phi Vs Eta * Please consider the following formatting changes
1 parent eda1f4a commit 64d1339

File tree

2 files changed

+61
-12
lines changed

2 files changed

+61
-12
lines changed

PWGLF/TableProducer/Strangeness/Converters/straevselsconverter2.cxx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ struct straevselsconverter2 {
4444
values.multZPA(),
4545
values.multZPC(),
4646
values.trackOccupancyInTimeRange(),
47-
-1 /*dummy gap side value*/,
48-
-999. /*dummy FT0-A value*/,
49-
-999. /*dummy FT0-C value*/,
50-
-999. /*dummy FV0-A value*/,
51-
-999. /*dummy FDD-A value*/,
52-
-999. /*dummy FDD-C value*/,
53-
-999. /*dummy ZN-A value*/,
54-
-999. /*dummy ZN-C value*/,
47+
values.gapSide(),
48+
values.totalFT0AmplitudeA(),
49+
values.totalFT0AmplitudeC(),
50+
values.totalFV0AmplitudeA(),
51+
values.totalFDDAmplitudeA(),
52+
values.totalFDDAmplitudeC(),
53+
values.energyCommonZNA(),
54+
values.energyCommonZNC(),
5555
o2::its::Vertex::FlagsMask /*dummy flag value*/);
5656
}
5757
}

PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include "Framework/AnalysisDataModel.h"
4040
#include "Framework/ASoAHelpers.h"
4141
#include "ReconstructionDataFormats/Track.h"
42+
#include "CommonConstants/MathConstants.h"
4243
#include "CommonConstants/PhysicsConstants.h"
4344
#include "Common/Core/trackUtilities.h"
4445
#include "PWGLF/DataModel/LFStrangenessTables.h"
@@ -214,6 +215,8 @@ struct derivedlambdakzeroanalysis {
214215
ConfigurableAxis axisNsigmaTPC{"axisNsigmaTPC", {200, -10.0f, 10.0f}, "N sigma TPC"};
215216
ConfigurableAxis axisTPCsignal{"axisTPCsignal", {200, 0.0f, 200.0f}, "TPC signal"};
216217
ConfigurableAxis axisTOFdeltaT{"axisTOFdeltaT", {200, -5000.0f, 5000.0f}, "TOF Delta T (ps)"};
218+
ConfigurableAxis axisPhi{"axisPhi", {18, 0.0f, constants::math::TwoPI}, "Azimuth angle (rad)"};
219+
ConfigurableAxis axisEta{"axisEta", {10, -1.0f, 1.0f}, "#eta"};
217220

218221
// UPC axes
219222
ConfigurableAxis axisSelGap{"axisSelGap", {4, -1.5, 2.5}, "Gap side"};
@@ -402,7 +405,7 @@ struct derivedlambdakzeroanalysis {
402405

403406
histos.add("hGapSide", "Gap side; Entries", kTH1F, {{5, -0.5, 4.5}});
404407
histos.add("hSelGapSide", "Selected gap side; Entries", kTH1F, {axisSelGap});
405-
histos.add("hEventCentralityVsSelGapSide", "Centrality (%); Selected gap side", kTH2F, {{100, 0.0f, +100.0f}, axisSelGap});
408+
histos.add("hEventCentralityVsSelGapSide", ";Centrality (%); Selected gap side", kTH2F, {{100, 0.0f, +100.0f}, axisSelGap});
406409

407410
// for QA and test purposes
408411
auto hRawCentrality = histos.add<TH1>("hRawCentrality", "hRawCentrality", kTH1F, {axisRawCentrality});
@@ -414,6 +417,7 @@ struct derivedlambdakzeroanalysis {
414417

415418
// histograms versus mass
416419
if (analyseK0Short) {
420+
histos.add("h2dNbrOfK0ShortVsCentrality", "h2dNbrOfK0ShortVsCentrality", kTH2F, {axisCentrality, {10, -0.5f, 9.5f}});
417421
histos.add("h3dMassK0Short", "h3dMassK0Short", kTH3F, {axisCentrality, axisPt, axisK0Mass});
418422
// Non-UPC info
419423
histos.add("h3dMassK0ShortHadronic", "h3dMassK0ShortHadronic", kTH3F, {axisCentrality, axisPt, axisK0Mass});
@@ -459,6 +463,7 @@ struct derivedlambdakzeroanalysis {
459463
}
460464
}
461465
if (analyseLambda) {
466+
histos.add("h2dNbrOfLambdaVsCentrality", "h2dNbrOfLambdaVsCentrality", kTH2F, {axisCentrality, {10, -0.5f, 9.5f}});
462467
histos.add("h3dMassLambda", "h3dMassLambda", kTH3F, {axisCentrality, axisPt, axisLambdaMass});
463468
// Non-UPC info
464469
histos.add("h3dMassLambdaHadronic", "h3dMassLambdaHadronic", kTH3F, {axisCentrality, axisPt, axisLambdaMass});
@@ -504,6 +509,7 @@ struct derivedlambdakzeroanalysis {
504509
}
505510
}
506511
if (analyseAntiLambda) {
512+
histos.add("h2dNbrOfAntiLambdaVsCentrality", "h2dNbrOfAntiLambdaVsCentrality", kTH2F, {axisCentrality, {10, -0.5f, 9.5f}});
507513
histos.add("h3dMassAntiLambda", "h3dMassAntiLambda", kTH3F, {axisCentrality, axisPt, axisLambdaMass});
508514
// Non-UPC info
509515
histos.add("h3dMassAntiLambdaHadronic", "h3dMassAntiLambdaHadronic", kTH3F, {axisCentrality, axisPt, axisLambdaMass});
@@ -566,20 +572,23 @@ struct derivedlambdakzeroanalysis {
566572
histos.add("K0Short/h4dDCADaughters", "h4dDCADaughters", kTHnF, {axisCentrality, axisPtCoarse, axisK0Mass, axisDCAdau});
567573
histos.add("K0Short/h4dPointingAngle", "h4dPointingAngle", kTHnF, {axisCentrality, axisPtCoarse, axisK0Mass, axisPointingAngle});
568574
histos.add("K0Short/h4dV0Radius", "h4dV0Radius", kTHnF, {axisCentrality, axisPtCoarse, axisK0Mass, axisV0Radius});
575+
histos.add("K0Short/h4dV0PhiVsEta", "h4dV0PhiVsEta", kTHnF, {axisPtCoarse, axisK0Mass, axisPhi, axisEta});
569576
}
570577
if (analyseLambda) {
571578
histos.add("Lambda/h4dPosDCAToPV", "h4dPosDCAToPV", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAtoPV});
572579
histos.add("Lambda/h4dNegDCAToPV", "h4dNegDCAToPV", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAtoPV});
573580
histos.add("Lambda/h4dDCADaughters", "h4dDCADaughters", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAdau});
574581
histos.add("Lambda/h4dPointingAngle", "h4dPointingAngle", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisPointingAngle});
575582
histos.add("Lambda/h4dV0Radius", "h4dV0Radius", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisV0Radius});
583+
histos.add("Lambda/h4dV0PhiVsEta", "h4dV0PhiVsEta", kTHnF, {axisPtCoarse, axisK0Mass, axisPhi, axisEta});
576584
}
577585
if (analyseAntiLambda) {
578586
histos.add("AntiLambda/h4dPosDCAToPV", "h4dPosDCAToPV", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAtoPV});
579587
histos.add("AntiLambda/h4dNegDCAToPV", "h4dNegDCAToPV", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAtoPV});
580588
histos.add("AntiLambda/h4dDCADaughters", "h4dDCADaughters", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisDCAdau});
581589
histos.add("AntiLambda/h4dPointingAngle", "h4dPointingAngle", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisPointingAngle});
582590
histos.add("AntiLambda/h4dV0Radius", "h4dV0Radius", kTHnF, {axisCentrality, axisPtCoarse, axisLambdaMass, axisV0Radius});
591+
histos.add("AntiLambda/h4dV0PhiVsEta", "h4dV0PhiVsEta", kTHnF, {axisPtCoarse, axisK0Mass, axisPhi, axisEta});
583592
}
584593
}
585594

@@ -974,7 +983,7 @@ struct derivedlambdakzeroanalysis {
974983
}
975984

976985
template <typename TV0>
977-
void analyseCandidate(TV0 v0, float pt, float centrality, uint64_t selMap, uint8_t gapSide)
986+
void analyseCandidate(TV0 v0, float pt, float centrality, uint64_t selMap, uint8_t gapSide, int& nK0Shorts, int& nLambdas, int& nAntiLambdas)
978987
// precalculate this information so that a check is one mask operation, not many
979988
{
980989
bool passK0ShortSelections = false;
@@ -1109,6 +1118,7 @@ struct derivedlambdakzeroanalysis {
11091118
histos.fill(HIST("K0Short/h3dPosTOFdeltaTvsTrackPt"), centrality, v0.positivept(), v0.posTOFDeltaTK0Pi());
11101119
histos.fill(HIST("K0Short/h3dNegTOFdeltaTvsTrackPt"), centrality, v0.negativept(), v0.negTOFDeltaTK0Pi());
11111120
}
1121+
nK0Shorts++;
11121122
}
11131123
if (passLambdaSelections && analyseLambda) {
11141124
histos.fill(HIST("h3dMassLambda"), centrality, pt, v0.mLambda());
@@ -1161,6 +1171,7 @@ struct derivedlambdakzeroanalysis {
11611171
histos.fill(HIST("Lambda/h3dPosTOFdeltaTvsTrackPt"), centrality, v0.positivept(), v0.posTOFDeltaTLaPr());
11621172
histos.fill(HIST("Lambda/h3dNegTOFdeltaTvsTrackPt"), centrality, v0.negativept(), v0.negTOFDeltaTLaPi());
11631173
}
1174+
nLambdas++;
11641175
}
11651176
if (passAntiLambdaSelections && analyseAntiLambda) {
11661177
histos.fill(HIST("h3dMassAntiLambda"), centrality, pt, v0.mAntiLambda());
@@ -1213,6 +1224,7 @@ struct derivedlambdakzeroanalysis {
12131224
histos.fill(HIST("AntiLambda/h3dPosTOFdeltaTvsTrackPt"), centrality, v0.positivept(), v0.posTOFDeltaTLaPi());
12141225
histos.fill(HIST("AntiLambda/h3dNegTOFdeltaTvsTrackPt"), centrality, v0.negativept(), v0.negTOFDeltaTLaPr());
12151226
}
1227+
nAntiLambdas++;
12161228
}
12171229

12181230
// __________________________________________
@@ -1229,6 +1241,9 @@ struct derivedlambdakzeroanalysis {
12291241
histos.fill(HIST("K0Short/h4dPointingAngle"), centrality, pt, v0.mK0Short(), TMath::ACos(v0.v0cosPA()));
12301242
if (verifyMask(selMap, maskTopoNoDCAV0Dau | maskK0ShortSpecific))
12311243
histos.fill(HIST("K0Short/h4dDCADaughters"), centrality, pt, v0.mK0Short(), v0.dcaV0daughters());
1244+
1245+
if (passK0ShortSelections)
1246+
histos.fill(HIST("K0Short/h4dV0PhiVsEta"), pt, v0.mK0Short(), v0.phi(), v0.eta());
12321247
}
12331248

12341249
if (analyseLambda) {
@@ -1242,6 +1257,9 @@ struct derivedlambdakzeroanalysis {
12421257
histos.fill(HIST("Lambda/h4dPointingAngle"), centrality, pt, v0.mLambda(), TMath::ACos(v0.v0cosPA()));
12431258
if (verifyMask(selMap, maskTopoNoDCAV0Dau | maskLambdaSpecific))
12441259
histos.fill(HIST("Lambda/h4dDCADaughters"), centrality, pt, v0.mLambda(), v0.dcaV0daughters());
1260+
1261+
if (passLambdaSelections)
1262+
histos.fill(HIST("Lambda/h4dV0PhiVsEta"), pt, v0.mLambda(), v0.phi(), v0.eta());
12451263
}
12461264
if (analyseAntiLambda) {
12471265
if (verifyMask(selMap, maskTopoNoV0Radius | maskAntiLambdaSpecific))
@@ -1254,6 +1272,9 @@ struct derivedlambdakzeroanalysis {
12541272
histos.fill(HIST("AntiLambda/h4dPointingAngle"), centrality, pt, v0.mAntiLambda(), TMath::ACos(v0.v0cosPA()));
12551273
if (verifyMask(selMap, maskTopoNoDCAV0Dau | maskAntiLambdaSpecific))
12561274
histos.fill(HIST("AntiLambda/h4dDCADaughters"), centrality, pt, v0.mAntiLambda(), v0.dcaV0daughters());
1275+
1276+
if (passAntiLambdaSelections)
1277+
histos.fill(HIST("AntiLambda/h4dV0PhiVsEta"), pt, v0.mAntiLambda(), v0.phi(), v0.eta());
12571278
}
12581279
} // end systematics / qa
12591280
}
@@ -1408,6 +1429,9 @@ struct derivedlambdakzeroanalysis {
14081429

14091430
// __________________________________________
14101431
// perform main analysis
1432+
int nK0Shorts = 0;
1433+
int nLambdas = 0;
1434+
int nAntiLambdas = 0;
14111435
for (auto& v0 : fullV0s) {
14121436
if (std::abs(v0.negativeeta()) > v0Selections.daughterEtaCut || std::abs(v0.positiveeta()) > v0Selections.daughterEtaCut)
14131437
continue; // remove acceptance that's badly reproduced by MC / superfluous in future
@@ -1424,8 +1448,19 @@ struct derivedlambdakzeroanalysis {
14241448
selMap = selMap | (uint64_t(1) << selConsiderK0Short) | (uint64_t(1) << selConsiderLambda) | (uint64_t(1) << selConsiderAntiLambda);
14251449
selMap = selMap | (uint64_t(1) << selPhysPrimK0Short) | (uint64_t(1) << selPhysPrimLambda) | (uint64_t(1) << selPhysPrimAntiLambda);
14261450

1427-
analyseCandidate(v0, v0.pt(), centrality, selMap, selGapSide);
1451+
analyseCandidate(v0, v0.pt(), centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
14281452
} // end v0 loop
1453+
1454+
// fill the histograms with the number of reconstructed K0s/Lambda/antiLambda per collision
1455+
if (analyseK0Short) {
1456+
histos.fill(HIST("h2dNbrOfK0ShortVsCentrality"), centrality, nK0Shorts);
1457+
}
1458+
if (analyseLambda) {
1459+
histos.fill(HIST("h2dNbrOfLambdaVsCentrality"), centrality, nLambdas);
1460+
}
1461+
if (analyseAntiLambda) {
1462+
histos.fill(HIST("h2dNbrOfAntiLambdaVsCentrality"), centrality, nAntiLambdas);
1463+
}
14291464
}
14301465

14311466
// ______________________________________________________
@@ -1524,6 +1559,9 @@ struct derivedlambdakzeroanalysis {
15241559

15251560
// __________________________________________
15261561
// perform main analysis
1562+
int nK0Shorts = 0;
1563+
int nLambdas = 0;
1564+
int nAntiLambdas = 0;
15271565
for (auto& v0 : fullV0s) {
15281566
if (std::abs(v0.negativeeta()) > v0Selections.daughterEtaCut || std::abs(v0.positiveeta()) > v0Selections.daughterEtaCut)
15291567
continue; // remove acceptance that's badly reproduced by MC / superfluous in future
@@ -1556,7 +1594,7 @@ struct derivedlambdakzeroanalysis {
15561594
selMap = selMap | (uint64_t(1) << selPhysPrimK0Short) | (uint64_t(1) << selPhysPrimLambda) | (uint64_t(1) << selPhysPrimAntiLambda);
15571595
}
15581596

1559-
analyseCandidate(v0, ptmc, centrality, selMap, selGapSide);
1597+
analyseCandidate(v0, ptmc, centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
15601598

15611599
if (doCollisionAssociationQA) {
15621600
// check collision association explicitly
@@ -1571,6 +1609,17 @@ struct derivedlambdakzeroanalysis {
15711609
}
15721610

15731611
} // end v0 loop
1612+
1613+
// fill the histograms with the number of reconstructed K0s/Lambda/antiLambda per collision
1614+
if (analyseK0Short) {
1615+
histos.fill(HIST("h2dNbrOfK0ShortVsCentrality"), centrality, nK0Shorts);
1616+
}
1617+
if (analyseLambda) {
1618+
histos.fill(HIST("h2dNbrOfLambdaVsCentrality"), centrality, nLambdas);
1619+
}
1620+
if (analyseAntiLambda) {
1621+
histos.fill(HIST("h2dNbrOfAntiLambdaVsCentrality"), centrality, nAntiLambdas);
1622+
}
15741623
}
15751624

15761625
// ______________________________________________________

0 commit comments

Comments
 (0)