Skip to content

Commit 4c5a4d2

Browse files
[PWGLF] Add QA histograms in derivedlambdakzeroanalysis.cxx (#17879)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 9599cae commit 4c5a4d2

1 file changed

Lines changed: 44 additions & 3 deletions

File tree

PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ struct derivedlambdakzeroanalysis {
122122
Configurable<bool> doTOFQA{"doTOFQA", false, "do TOF QA histograms"};
123123
Configurable<int> doDetectPropQA{"doDetectPropQA", 0, "do Detector/ITS map QA: 0: no, 1: 4D, 2: 5D with mass; 3: plain in 3D"};
124124
Configurable<bool> doEtaPhiQA{"doEtaPhiQA", false, "do Eta/Phi QA histograms"};
125+
Configurable<bool> doEventMCQA{"doEventMCQA", false, "do MC event QA histograms"};
125126

126127
Configurable<bool> doPlainTopoQA{"doPlainTopoQA", true, "do simple 1D QA of candidates"};
127128
Configurable<float> qaMinPt{"qaMinPt", 0.0f, "minimum pT for QA plots"};
@@ -332,6 +333,7 @@ struct derivedlambdakzeroanalysis {
332333
ConfigurableAxis axisMultFT0M{"axisMultFT0M", {500, 0.0f, +100000.0f}, "Multiplicity FT0M"};
333334
ConfigurableAxis axisMultFT0C{"axisMultFT0C", {500, 0.0f, +10000.0f}, "Multiplicity FT0C"};
334335
ConfigurableAxis axisMultFV0A{"axisMultFV0A", {500, 0.0f, +100000.0f}, "Multiplicity FV0A"};
336+
ConfigurableAxis axisRapidity{"axisRapidity", {200, -1.0f, 1.0f}, "rapidity axis for analysis"};
335337

336338
ConfigurableAxis axisRawCentrality{"axisRawCentrality", {VARIABLE_WIDTH, 0.000f, 52.320f, 75.400f, 95.719f, 115.364f, 135.211f, 155.791f, 177.504f, 200.686f, 225.641f, 252.645f, 281.906f, 313.850f, 348.302f, 385.732f, 426.307f, 470.146f, 517.555f, 568.899f, 624.177f, 684.021f, 748.734f, 818.078f, 892.577f, 973.087f, 1058.789f, 1150.915f, 1249.319f, 1354.279f, 1465.979f, 1584.790f, 1710.778f, 1844.863f, 1985.746f, 2134.643f, 2291.610f, 2456.943f, 2630.653f, 2813.959f, 3006.631f, 3207.229f, 3417.641f, 3637.318f, 3865.785f, 4104.997f, 4354.938f, 4615.786f, 4885.335f, 5166.555f, 5458.021f, 5762.584f, 6077.881f, 6406.834f, 6746.435f, 7097.958f, 7462.579f, 7839.165f, 8231.629f, 8635.640f, 9052.000f, 9484.268f, 9929.111f, 10389.350f, 10862.059f, 11352.185f, 11856.823f, 12380.371f, 12920.401f, 13476.971f, 14053.087f, 14646.190f, 15258.426f, 15890.617f, 16544.433f, 17218.024f, 17913.465f, 18631.374f, 19374.983f, 20136.700f, 20927.783f, 21746.796f, 22590.880f, 23465.734f, 24372.274f, 25314.351f, 26290.488f, 27300.899f, 28347.512f, 29436.133f, 30567.840f, 31746.818f, 32982.664f, 34276.329f, 35624.859f, 37042.588f, 38546.609f, 40139.742f, 41837.980f, 43679.429f, 45892.130f, 400000.000f}, "raw centrality signal"}; // for QA
337339

@@ -778,6 +780,13 @@ struct derivedlambdakzeroanalysis {
778780
}
779781
}
780782

783+
if (doEventMCQA) {
784+
histos.add("hMultFT0MVsMultMC", "hMultFT0MVsMultMC;FT0M amplitude;#it{N}_{ch}(|#it{#eta}|<0.5)", kTH2D, {axisConfigurations.axisMultFT0M, axisConfigurations.axisNch});
785+
histos.add("hMultFT0CVsMultMC", "hMultFT0CVsMultMC;FT0C amplitude;#it{N}_{ch}(|#it{#eta}|<0.5)", kTH2D, {axisConfigurations.axisMultFT0C, axisConfigurations.axisNch});
786+
histos.add("hMultNGlobalVsMultMC", "hMultNGlobalVsMultMC;#it{N}_{ch}(global tracks);#it{N}_{ch} (|#it{#eta}|<0.5)", kTH2D, {axisConfigurations.axisNch, axisConfigurations.axisNch});
787+
histos.add("hMultFV0AVsMultMC", "hMultFV0AVsMultMC;FV0A amplitude;#it{N}_{ch}(|#it{#eta}|<0.5)", kTH2D, {axisConfigurations.axisMultFV0A, axisConfigurations.axisNch});
788+
}
789+
781790
histos.add("hEventPVz", "hEventPVz", kTH1D, {{100, -20.0f, +20.0f}});
782791
histos.add("hCentralityVsPVz", "hCentralityVsPVz", kTH2D, {axisConfigurations.axisCentralityFine, {100, -20.0f, +20.0f}});
783792
if (doprocessGeneratedRun3 || doprocessGeneratedRun2) {
@@ -1193,6 +1202,11 @@ struct derivedlambdakzeroanalysis {
11931202
histos.add("GeneralQA/h2dArmenterosAll", "h2dArmenterosAll", kTH2D, {axisConfigurations.axisAPAlpha, axisConfigurations.axisAPQt});
11941203
histos.add("GeneralQA/h2dArmenterosSelected", "h2dArmenterosSelected", kTH2D, {axisConfigurations.axisAPAlpha, axisConfigurations.axisAPQt});
11951204

1205+
if (doprocessMonteCarloRun3 || doprocessMonteCarloRun2) {
1206+
histos.add("GeneralQA/h2dRapVsRapGen", "h2dRapVsRapGen;Rapidity;Generated rapidity", kTH2D, {axisConfigurations.axisRapidity, axisConfigurations.axisRapidity});
1207+
histos.add("GeneralQA/h2dPtVsPtGen", "h2dPtVsPtGen;#it{p}_{T} (GeV/#it{c});#it{p}_{T}^{MC} (GeV/#it{c})", kTH2D, {axisConfigurations.axisPt, axisConfigurations.axisPt});
1208+
}
1209+
11961210
// Creation of histograms: MC generated
11971211
if ((doprocessGeneratedRun3 || doprocessGeneratedRun2)) {
11981212
if (useMcCentrality) {
@@ -1862,7 +1876,7 @@ struct derivedlambdakzeroanalysis {
18621876
}
18631877

18641878
template <typename TV0>
1865-
void analyseCandidate(TV0 const& v0, float pt, float centrality, uint64_t selMap, uint8_t gapSide, int& nK0Shorts, int& nLambdas, int& nAntiLambdas)
1879+
void analyseCandidate(TV0 const& v0, float pt, float rapidityLambda, float rapidityK0Short, float centrality, uint64_t selMap, uint8_t gapSide, int& nK0Shorts, int& nLambdas, int& nAntiLambdas)
18661880
// precalculate this information so that a check is one mask operation, not many
18671881
{
18681882
bool passK0ShortSelections = false;
@@ -2047,6 +2061,10 @@ struct derivedlambdakzeroanalysis {
20472061
histos.fill(HIST("K0Short/h5dPosPhiVsEta"), centrality, v0.positivept(), invMassK0Short, v0.positivephi(), v0.positiveeta());
20482062
histos.fill(HIST("K0Short/h5dNegPhiVsEta"), centrality, v0.negativept(), invMassK0Short, v0.negativephi(), v0.negativeeta());
20492063
}
2064+
if (doprocessMonteCarloRun3 || doprocessMonteCarloRun2) {
2065+
histos.fill(HIST("GeneralQA/h2dRapVsRapGen"), v0.yK0Short(), rapidityK0Short);
2066+
histos.fill(HIST("GeneralQA/h2dPtVsPtGen"), v0.pt(), pt);
2067+
}
20502068
nK0Shorts++;
20512069
}
20522070
if (passLambdaSelections && analyseLambda) {
@@ -2133,6 +2151,10 @@ struct derivedlambdakzeroanalysis {
21332151
histos.fill(HIST("Lambda/h5dPosPhiVsEta"), centrality, v0.positivept(), invMassLambda, v0.positivephi(), v0.positiveeta());
21342152
histos.fill(HIST("Lambda/h5dNegPhiVsEta"), centrality, v0.negativept(), invMassLambda, v0.negativephi(), v0.negativeeta());
21352153
}
2154+
if (doprocessMonteCarloRun3 || doprocessMonteCarloRun2) {
2155+
histos.fill(HIST("GeneralQA/h2dRapVsRapGen"), v0.yLambda(), rapidityLambda);
2156+
histos.fill(HIST("GeneralQA/h2dPtVsPtGen"), v0.pt(), pt);
2157+
}
21362158
nLambdas++;
21372159
}
21382160
if (passAntiLambdaSelections && analyseAntiLambda) {
@@ -2219,6 +2241,10 @@ struct derivedlambdakzeroanalysis {
22192241
histos.fill(HIST("AntiLambda/h5dPosPhiVsEta"), centrality, v0.positivept(), invMassAntiLambda, v0.positivephi(), v0.positiveeta());
22202242
histos.fill(HIST("AntiLambda/h5dNegPhiVsEta"), centrality, v0.negativept(), invMassAntiLambda, v0.negativephi(), v0.negativeeta());
22212243
}
2244+
if (doprocessMonteCarloRun3 || doprocessMonteCarloRun2) {
2245+
histos.fill(HIST("GeneralQA/h2dRapVsRapGen"), v0.yLambda(), rapidityLambda);
2246+
histos.fill(HIST("GeneralQA/h2dPtVsPtGen"), v0.pt(), pt);
2247+
}
22222248
nAntiLambdas++;
22232249
}
22242250

@@ -2831,6 +2857,10 @@ struct derivedlambdakzeroanalysis {
28312857
// If so, we consider it
28322858
bool atLeastOne = false;
28332859
int biggestNContribs = -1;
2860+
float multFT0M = -1.f;
2861+
float multFT0C = -1.f;
2862+
float multNGlobal = -1.f;
2863+
float multFV0A = -1.f;
28342864
float centrality = 100.5f;
28352865
int nCollisions = 0;
28362866
for (auto const& collision : groupedCollisions) {
@@ -2843,6 +2873,10 @@ struct derivedlambdakzeroanalysis {
28432873
if (biggestNContribs < collision.multPVTotalContributors()) {
28442874
biggestNContribs = collision.multPVTotalContributors();
28452875
centrality = getCentralityRun3(collision, useMcCentrality);
2876+
multFT0M = collision.multFT0A() + collision.multFT0C();
2877+
multFT0C = collision.multFT0C();
2878+
multNGlobal = collision.multNTracksGlobal();
2879+
multFV0A = collision.multFV0A();
28462880
}
28472881
} else { // we are in Run 2: there should be only one collision in groupedCollisions
28482882
centrality = eventSelections.useSPDTrackletsCent ? collision.centRun2SPDTracklets() : collision.centRun2V0M();
@@ -2859,6 +2893,13 @@ struct derivedlambdakzeroanalysis {
28592893
histos.fill(HIST("hCentralityVsPVzMC"), centrality, mcCollision.posZ());
28602894
histos.fill(HIST("hEventPVzMC"), mcCollision.posZ());
28612895

2896+
if (doEventMCQA) {
2897+
histos.fill(HIST("hMultFT0MVsMultMC"), multFT0M, mcCollision.multMCNParticlesEta05());
2898+
histos.fill(HIST("hMultFT0CVsMultMC"), multFT0C, mcCollision.multMCNParticlesEta05());
2899+
histos.fill(HIST("hMultNGlobalVsMultMC"), multNGlobal, mcCollision.multMCNParticlesEta05());
2900+
histos.fill(HIST("hMultFV0AVsMultMC"), multFV0A, mcCollision.multMCNParticlesEta05());
2901+
}
2902+
28622903
if (atLeastOne) {
28632904
if constexpr (run3) {
28642905
if (useMcCentrality) {
@@ -2930,7 +2971,7 @@ struct derivedlambdakzeroanalysis {
29302971
BITSET(selMap, selPhysPrimLambda);
29312972
BITSET(selMap, selPhysPrimAntiLambda);
29322973

2933-
analyseCandidate(v0, v0.pt(), centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
2974+
analyseCandidate(v0, v0.pt(), v0.yLambda(), v0.yK0Short(), centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
29342975
} // end v0 loop
29352976

29362977
// fill the histograms with the number of reconstructed K0s/Lambda/antiLambda per collision
@@ -3018,7 +3059,7 @@ struct derivedlambdakzeroanalysis {
30183059
BITSET(selMap, selPhysPrimAntiLambda);
30193060
}
30203061

3021-
analyseCandidate(v0, ptmc, centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
3062+
analyseCandidate(v0, ptmc, ymc, ymc, centrality, selMap, selGapSide, nK0Shorts, nLambdas, nAntiLambdas);
30223063

30233064
if (doCollisionAssociationQA) {
30243065
// check collision association explicitly

0 commit comments

Comments
 (0)