Skip to content

Commit c693ef0

Browse files
lhusovaLucia Anna Tarasovicova
andauthored
[PWGLF] Change in Derivedcascadeanalysis (#12450)
Co-authored-by: Lucia Anna Tarasovicova <lucia.anna.husova@cern.ch>
1 parent 8af0231 commit c693ef0

File tree

1 file changed

+45
-14
lines changed

1 file changed

+45
-14
lines changed

PWGLF/Tasks/Strangeness/derivedcascadeanalysis.cxx

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ struct Derivedcascadeanalysis {
7676
ConfigurableAxis axisIR{"axisIR", {510, -1, 50}, "Binning for the interaction rate (kHz)"};
7777

7878
Configurable<bool> isXi{"isXi", 1, "Apply cuts for Xi identification"};
79+
Configurable<bool> ispO{"ispO", 0, "Analyse p--O collisions"};
7980
Configurable<bool> useCentralityFT0M{"useCentralityFT0M", 0, "If true, use centFT0M"};
8081
Configurable<bool> useCentralityFT0A{"useCentralityFT0A", 0, "If true, use centFT0A"};
8182
Configurable<bool> useCentralityFT0Cvar1{"useCentralityFT0Cvar1", 0, "If true, use centFT0FT0Cvar1"};
@@ -119,6 +120,18 @@ struct Derivedcascadeanalysis {
119120
Configurable<int> maxOccupancy{"maxOccupancy", -1, "Maximal occupancy"};
120121
Configurable<float> minOccupancyFT0{"minOccupancyFT0", -1, "Minimal occupancy"};
121122
Configurable<float> maxOccupancyFT0{"maxOccupancyFT0", -1, "Maximal occupancy"};
123+
Configurable<float> globalTracksCorrelpar0Low{"globalTracksCorrelpar0Low", 81, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
124+
Configurable<float> globalTracksCorrelpar1Low{"globalTracksCorrelpar1Low", -0.0431016, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
125+
Configurable<float> globalTracksCorrelpar2Low{"globalTracksCorrelpar2Low", -6, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
126+
Configurable<float> globalTracksCorrelpar0High{"globalTracksCorrelpar0High", 226, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
127+
Configurable<float> globalTracksCorrelpar1High{"globalTracksCorrelpar1High", -0.0181686, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
128+
Configurable<float> globalTracksCorrelpar2High{"globalTracksCorrelpar2High", -22, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
129+
Configurable<float> pvContribCorrelpar0Low{"pvContribCorrelpar0Low", 152, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
130+
Configurable<float> pvContribCorrelpar1Low{"pvContribCorrelpar1Low", -0.0431016, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
131+
Configurable<float> pvContribCorrelpar2Low{"pvContribCorrelpar2Low", -15.3776, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
132+
Configurable<float> pvContribCorrelpar0High{"pvContribCorrelpar0High", 384.861, "[0]*exp([1]*centrality)+[2], mean minus 3*sigma"};
133+
Configurable<float> pvContribCorrelpar1High{"pvContribCorrelpar1High", -0.0181686, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
134+
Configurable<float> pvContribCorrelpar2High{"pvContribCorrelpar2High", -39, "[0]*exp([1]*centrality)+[2], mean plus 3*sigma"};
122135
} eventSelectionRun3Flags;
123136

124137
struct : ConfigurableGroup {
@@ -219,6 +232,8 @@ struct Derivedcascadeanalysis {
219232
Configurable<float> rejcomp{"rejcomp", 0.008, "Competing Cascade rejection"};
220233
Configurable<float> masswin{"masswin", 0.05, "Mass window limit"};
221234
Configurable<float> rapCut{"rapCut", 0.5, "Rapidity acceptance"};
235+
Configurable<float> minRapCut{"minRapCut", -0.845, "minimal rapidity acceptance in case of p--o"};
236+
Configurable<float> maxRapCut{"maxRapCut", 0.155, "maximal rapidity acceptance in case of p--o"};
222237
Configurable<float> etaDauCut{"etaDauCut", 0.8, "Pseudorapidity acceptance of the cascade daughters"};
223238
Configurable<int> minITSclusters{"minITSclusters", 3, "minimal number of ITS hits for the daughter tracks"};
224239
} candidateSelectionValues;
@@ -302,6 +317,10 @@ struct Derivedcascadeanalysis {
302317
histos.add("hNCrossedRowsPositive", "", kTH1F, {{400, -200, 200}});
303318
histos.add("hNCrossedRowsBachelor", "", kTH1F, {{400, -200, 200}});
304319

320+
histos.add("hPseudorapPosDaughter", "", kTH1F, {{50, -1, 1}});
321+
histos.add("hPseudorapNegDaughter", "", kTH1F, {{50, -1, 1}});
322+
histos.add("hPseudorapBachelor", "", kTH1F, {{50, -1, 1}});
323+
305324
histos.add("hEventNchCorrelationAfCuts", "hEventNchCorrelationAfCuts", kTH2F, {{5000, 0, 5000}, {5000, 0, 2500}});
306325
histos.add("hEventPVcontributorsVsCentrality", "hEventPVcontributorsVsCentrality", kTH2F, {{100, 0, 100}, {5000, 0, 5000}});
307326
histos.add("hEventGlobalTracksVsCentrality", "hEventGlobalTracksVsCentrality", kTH2F, {{100, 0, 100}, {2500, 0, 2500}});
@@ -660,9 +679,9 @@ struct Derivedcascadeanalysis {
660679
histos.fill(HIST("hEventSelection"), 11.5 /* Not at TF border */);
661680

662681
if (eventSelectionRun3Flags.doMultiplicityCorrCut) {
663-
if (coll.multNTracksGlobal() < (1343.3 * std::exp(-0.0443259 * centrality) - 50) || coll.multNTracksGlobal() > (2098.9 * std::exp(-0.0332444 * centrality)))
682+
if (coll.multNTracksGlobal() < (eventSelectionRun3Flags.globalTracksCorrelpar0Low * std::exp(eventSelectionRun3Flags.globalTracksCorrelpar1Low * centrality) + eventSelectionRun3Flags.globalTracksCorrelpar2Low) || coll.multNTracksGlobal() > (eventSelectionRun3Flags.globalTracksCorrelpar0High * std::exp(eventSelectionRun3Flags.globalTracksCorrelpar1High * centrality) + eventSelectionRun3Flags.globalTracksCorrelpar2High))
664683
return false;
665-
if (coll.multNTracksPVeta1() < (3703 * std::exp(-0.0455483 * centrality) - 150) || coll.multNTracksPVeta1() > (4937.33 * std::exp(-0.0372668 * centrality) + 20))
684+
if (coll.multNTracksPVeta1() < (eventSelectionRun3Flags.pvContribCorrelpar0Low * std::exp(eventSelectionRun3Flags.pvContribCorrelpar1Low * centrality) + eventSelectionRun3Flags.pvContribCorrelpar2Low) || coll.multNTracksPVeta1() > (eventSelectionRun3Flags.pvContribCorrelpar0High * std::exp(eventSelectionRun3Flags.pvContribCorrelpar1High * centrality) + eventSelectionRun3Flags.pvContribCorrelpar2High))
666685
return false;
667686
}
668687
if (fillHists)
@@ -826,21 +845,27 @@ struct Derivedcascadeanalysis {
826845
float cut = candidateSelectionValues.masswin;
827846
histos.fill(HIST("hCutValue"), 1, cut);
828847
cut = candidateSelectionValues.rapCut;
848+
if (ispO)
849+
cut = candidateSelectionValues.maxRapCut;
829850
histos.fill(HIST("hCutValue"), 2, cut);
830851
if (isXi) {
831852
if (std::abs(casc.mXi() - o2::constants::physics::MassXiMinus) > candidateSelectionValues.masswin) {
832853
return false;
833854
}
834855
histos.fill(HIST("hCandidate"), ++counter);
835-
if (std::abs(casc.yXi()) > candidateSelectionValues.rapCut)
856+
if (ispO && (casc.yXi() < candidateSelectionValues.minRapCut || casc.yXi() > candidateSelectionValues.maxRapCut))
857+
return false;
858+
else if (std::abs(casc.yXi()) > candidateSelectionValues.rapCut)
836859
return false;
837860
histos.fill(HIST("hCandidate"), ++counter);
838861
} else {
839862
if (std::abs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) > candidateSelectionValues.masswin) {
840863
return false;
841864
}
842865
histos.fill(HIST("hCandidate"), ++counter);
843-
if (std::abs(casc.yOmega()) > candidateSelectionValues.rapCut)
866+
if (ispO && (casc.yOmega() < candidateSelectionValues.minRapCut || casc.yOmega() > candidateSelectionValues.maxRapCut))
867+
return false;
868+
else if (std::abs(casc.yOmega()) > candidateSelectionValues.rapCut)
844869
return false;
845870
histos.fill(HIST("hCandidate"), ++counter);
846871
}
@@ -1120,11 +1145,11 @@ struct Derivedcascadeanalysis {
11201145
auto cascMC = casc.template cascMCCore_as<soa::Join<aod::CascMCCores, aod::CascMCCollRefs>>();
11211146
ptmc = RecoDecay::sqrtSumOfSquares(cascMC.pxMC(), cascMC.pyMC());
11221147

1123-
if (cascMC.isPhysicalPrimary() && ((isXi && std::abs(cascMC.pdgCode()) == 3312) || (!isXi && std::abs(cascMC.pdgCode()) == 3334)))
1148+
if (cascMC.isPhysicalPrimary() && ((isXi && std::abs(cascMC.pdgCode()) == PDG_t::kXiMinus) || (!isXi && std::abs(cascMC.pdgCode()) == PDG_t::kOmegaMinus)))
11241149
isTrueMCCascade = true;
1125-
if (isTrueMCCascade && ((isPositive && cascMC.pdgCodePositive() == 211 && cascMC.pdgCodeNegative() == -2212) || (isNegative && cascMC.pdgCodePositive() == 2212 && cascMC.pdgCodeNegative() == -211)))
1150+
if (isTrueMCCascade && ((isPositive && cascMC.pdgCodePositive() == PDG_t::kPiPlus && cascMC.pdgCodeNegative() == PDG_t::kProtonBar) || (isNegative && cascMC.pdgCodePositive() == PDG_t::kProton && cascMC.pdgCodeNegative() == PDG_t::kPiMinus)))
11261151
isCorrectLambdaDecay = true;
1127-
if (isTrueMCCascade && isCorrectLambdaDecay && ((isXi && std::abs(cascMC.pdgCodeBachelor()) == 211) || (!isXi && std::abs(cascMC.pdgCodeBachelor()) == 321)))
1152+
if (isTrueMCCascade && isCorrectLambdaDecay && ((isXi && std::abs(cascMC.pdgCodeBachelor()) == PDG_t::kPiPlus) || (!isXi && std::abs(cascMC.pdgCodeBachelor()) == PDG_t::kKPlus)))
11281153
isTrueMCCascadeDecay = true;
11291154

11301155
if (qaFlags.doBefSelCheck && isTrueMCCascade) {
@@ -1161,6 +1186,10 @@ struct Derivedcascadeanalysis {
11611186
continue;
11621187
histos.fill(HIST("hCandidate"), ++counter);
11631188

1189+
histos.fill(HIST("hPseudorapPosDaughter"), poseta);
1190+
histos.fill(HIST("hPseudorapNegDaughter"), negeta);
1191+
histos.fill(HIST("hPseudorapBachelor"), bacheta);
1192+
11641193
if (candidateSelectionFlags.doCascadeCosPaCut) {
11651194
if (!isCosPAAccepted(casc, coll.posX(), coll.posY(), coll.posZ(), candidateSelectionFlags.doPtDepCosPaCut, true))
11661195
continue;
@@ -1429,12 +1458,14 @@ struct Derivedcascadeanalysis {
14291458

14301459
float ptmc = RecoDecay::sqrtSumOfSquares(cascMC.pxMC(), cascMC.pyMC());
14311460
float ymc = 1e3;
1432-
if (std::abs(cascMC.pdgCode()) == 3312)
1461+
if (std::abs(cascMC.pdgCode()) == PDG_t::kXiMinus)
14331462
ymc = RecoDecay::y(std::array{cascMC.pxMC(), cascMC.pyMC(), cascMC.pzMC()}, o2::constants::physics::MassXiMinus);
1434-
else if (std::abs(cascMC.pdgCode()) == 3334)
1463+
else if (std::abs(cascMC.pdgCode()) == PDG_t::kOmegaMinus)
14351464
ymc = RecoDecay::y(std::array{cascMC.pxMC(), cascMC.pyMC(), cascMC.pzMC()}, o2::constants::physics::MassOmegaMinus);
14361465

1437-
if (std::abs(ymc) > candidateSelectionValues.rapCut)
1466+
if (ispO && (ymc > candidateSelectionValues.maxRapCut || ymc < candidateSelectionValues.minRapCut))
1467+
continue;
1468+
else if (std::abs(ymc) > candidateSelectionValues.rapCut)
14381469
continue;
14391470

14401471
auto mcCollision = cascMC.template straMCCollision_as<soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>>();
@@ -1471,7 +1502,7 @@ struct Derivedcascadeanalysis {
14711502
nChEta1 = collision.multNTracksPVeta1();
14721503
}
14731504

1474-
if (cascMC.pdgCode() == 3312 && isXi) {
1505+
if (cascMC.pdgCode() == PDG_t::kXiMinus && isXi) {
14751506
histos.fill(HIST("h2dGenXiMinus"), centrality, ptmc);
14761507
histos.fill(HIST("h2dGenXiMinusVsNch"), nChEta1, ptmc);
14771508
histos.fill(HIST("h2dGenXiMinusEta"), RecoDecay::eta(std::array{cascMC.pxMC(), cascMC.pyMC(), cascMC.pzMC()}));
@@ -1484,7 +1515,7 @@ struct Derivedcascadeanalysis {
14841515
histos.fill(HIST("h2dGenXiMinusVsCentIR"), ptmc, centrality, intRate);
14851516
histos.fill(HIST("h2dGenXiMinusVsNchVsOccupancy"), ptmc, nChEta1, occupancy);
14861517
}
1487-
if (cascMC.pdgCode() == -3312 && isXi) {
1518+
if (cascMC.pdgCode() == PDG_t::kXiPlusBar && isXi) {
14881519
histos.fill(HIST("h2dGenXiPlus"), centrality, ptmc);
14891520
histos.fill(HIST("h2dGenXiPlusVsNch"), nChEta1, ptmc);
14901521
histos.fill(HIST("h2dGenXiPlusVsMultMCVsCentrality"), mcCollision.multMCNParticlesEta05(), centrality, ptmc);
@@ -1493,7 +1524,7 @@ struct Derivedcascadeanalysis {
14931524
histos.fill(HIST("h2dGenXiPlusVsNchVsOccupancy"), ptmc, nChEta1, occupancy);
14941525
histos.fill(HIST("h2dGenXiPlusVsCentIR"), ptmc, centrality, intRate);
14951526
}
1496-
if (cascMC.pdgCode() == 3334 && !isXi) {
1527+
if (cascMC.pdgCode() == PDG_t::kOmegaMinus && !isXi) {
14971528
histos.fill(HIST("h2dGenOmegaMinus"), centrality, ptmc);
14981529
histos.fill(HIST("h2dGenOmegaMinusVsNch"), nChEta1, ptmc);
14991530
histos.fill(HIST("h2dGenOmegaMinusEta"), RecoDecay::eta(std::array{cascMC.pxMC(), cascMC.pyMC(), cascMC.pzMC()}));
@@ -1506,7 +1537,7 @@ struct Derivedcascadeanalysis {
15061537
histos.fill(HIST("h2dGenOmegaMinusVsNchVsOccupancy"), ptmc, nChEta1, occupancy);
15071538
histos.fill(HIST("h2dGenOmegaMinusVsCentIR"), ptmc, centrality, intRate);
15081539
}
1509-
if (cascMC.pdgCode() == -3334 && !isXi) {
1540+
if (cascMC.pdgCode() == PDG_t::kOmegaPlusBar && !isXi) {
15101541
histos.fill(HIST("h2dGenOmegaPlus"), centrality, ptmc);
15111542
histos.fill(HIST("h2dGenOmegaPlusVsNch"), nChEta1, ptmc);
15121543
histos.fill(HIST("h2dGenOmegaPlusVsMultMCVsCentrality"), mcCollision.multMCNParticlesEta05(), centrality, ptmc);

0 commit comments

Comments
 (0)