Skip to content

Commit fd9946d

Browse files
committed
Adding Armenteros-Podolanski plot pre-selections
1 parent 36497ee commit fd9946d

File tree

1 file changed

+34
-19
lines changed

1 file changed

+34
-19
lines changed

PWGLF/Tasks/Strangeness/strangenessInJetsIons.cxx

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -125,21 +125,21 @@ struct StrangenessInJetsIons {
125125
Configurable<std::string> triggerName{"triggerName", "fOmega", "Software trigger name"};
126126

127127
// Event selection
128-
Configurable<bool> isApplySameBunchPileup{"isApplySameBunchPileup", true, "Enable SameBunchPileup cut"};
129-
Configurable<bool> isApplyGoodZvtxFT0vsPV{"isApplyGoodZvtxFT0vsPV", true, "Enable GoodZvtxFT0vsPV cut"};
128+
Configurable<bool> requireNoSameBunchPileup{"requireNoSameBunchPileup", true, "Require kNoSameBunchPileup selection"};
129+
Configurable<bool> requireGoodZvtxFT0vsPV{"requireGoodZvtxFT0vsPV", true, "Require kIsGoodZvtxFT0vsPV selection"};
130130

131131
// Track analysis parameters
132132
Configurable<int> minITSnCls{"minITSnCls", 4, "Minimum number of ITS clusters"};
133133
Configurable<int> minNCrossedRowsTPC{"minNCrossedRowsTPC", 70, "Minimum number of TPC crossed rows"};
134134
Configurable<double> maxChi2TPC{"maxChi2TPC", 4.0f, "Maximum chi2 per cluster TPC"};
135135
Configurable<double> etaMin{"etaMin", -0.8f, "Minimum eta"};
136136
Configurable<double> etaMax{"etaMax", +0.8f, "Maximum eta"};
137-
Configurable<double> ptMinV0Proton{"ptMinV0Proton", 0.3f, "Minimum pt of protons from V0"};
138-
Configurable<double> ptMaxV0Proton{"ptMaxV0Proton", 10.0f, "Maximum pt of protons from V0"};
139-
Configurable<double> ptMinV0Pion{"ptMinV0Pion", 0.1f, "Minimum pt of pions from V0"};
140-
Configurable<double> ptMaxV0Pion{"ptMaxV0Pion", 1.5f, "Maximum pt of pions from V0"};
141-
Configurable<double> ptMinK0Pion{"ptMinK0Pion", 0.3f, "Minimum pt of pions from K0"};
142-
Configurable<double> ptMaxK0Pion{"ptMaxK0Pion", 10.0f, "Maximum pt of pions from K0"};
137+
Configurable<double> ptMinV0Proton{"ptMinV0Proton", 0.0f, "Minimum pt of protons from V0"};
138+
Configurable<double> ptMaxV0Proton{"ptMaxV0Proton", 100.0f, "Maximum pt of protons from V0"};
139+
Configurable<double> ptMinV0Pion{"ptMinV0Pion", 0.0f, "Minimum pt of pions from V0"};
140+
Configurable<double> ptMaxV0Pion{"ptMaxV0Pion", 100.0f, "Maximum pt of pions from V0"};
141+
Configurable<double> ptMinK0Pion{"ptMinK0Pion", 0.0f, "Minimum pt of pions from K0"};
142+
Configurable<double> ptMaxK0Pion{"ptMaxK0Pion", 100.0f, "Maximum pt of pions from K0"};
143143
Configurable<double> nsigmaTPCmin{"nsigmaTPCmin", -3.0f, "Minimum nsigma TPC"};
144144
Configurable<double> nsigmaTPCmax{"nsigmaTPCmax", +3.0f, "Maximum nsigma TPC"};
145145
Configurable<double> nsigmaTOFmin{"nsigmaTOFmin", -3.0f, "Minimum nsigma TOF"};
@@ -158,7 +158,7 @@ struct StrangenessInJetsIons {
158158
Configurable<double> dcaNegToPVminK0s{"dcaNegToPVminK0s", 0.1f, "Minimum DCA of negative track to primary vertex in K0S decays (cm)"};
159159
Configurable<double> dcaPosToPVminK0s{"dcaPosToPVminK0s", 0.1f, "Minimum DCA of positive track to primary vertex in K0S decays (cm)"};
160160
Configurable<bool> requireArmenterosCut{"requireArmenterosCut", true, "Require Armenteros Cut"};
161-
Configurable<float> paramArmenterosCut{"paramArmenterosCut", 2.0f, "Parameter Armenteros Cut (K0S only). This parameters multiplies qtarm"};
161+
Configurable<float> paramArmenterosCut{"paramArmenterosCut", 0.2f, "Parameter Armenteros Cut (K0S only). This parameters multiplies alphaArm (Check if: qtarm >= this * |alphaArm|)"};
162162
Configurable<float> ctauK0s{"ctauK0s", 20.0f, "C tau K0S (cm)"};
163163
// Lambda/anti-Lambda paramaters
164164
Configurable<double> dcaProtonToPVmin{"dcaProtonToPVmin", 0.05f, "Minimum DCA of proton/anti-proton track to primary vertex in Lambda/anti-Lambda decays (cm)"};
@@ -214,6 +214,8 @@ struct StrangenessInJetsIons {
214214
const AxisSpec nsigmaTOFAxis{longLivedOptions.longLivedBinsNsigma, "n#sigma_{TOF}"};
215215
const AxisSpec nsigmaTPCAxis{longLivedOptions.longLivedBinsNsigma, "n#sigma_{TPC}"};
216216
const AxisSpec dcaAxis{longLivedOptions.longLivedBinsDca, "DCA_{xy} (cm)"};
217+
const AxisSpec alphaArmAxis{1000, -1.0f, 1.0f, "#alpha^{arm}"};
218+
const AxisSpec qtarmAxis{1000, 0.0f, 0.30f, "q_{T}^{arm}"};
217219

218220
// Join enum ParticleOfInterest and the configurable vector particlesOfInterest in a map particleOfInterestDict
219221
const std::vector<int>& particleOnOff = particleOfInterest;
@@ -250,6 +252,9 @@ struct StrangenessInJetsIons {
250252
registryData.get<TH1>(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(7, "No empty events");
251253
registryData.get<TH1>(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(8, "At least one jet");
252254

255+
// Armenteros-Podolanski plot
256+
registryQC.add("ArmenterosPreSel_DATA", "ArmenterosPreSel_DATA", HistType::kTH2F, {alphaArmAxis, qtarmAxis});
257+
253258
// Histograms for analysis of strange hadrons
254259
if (particleOfInterestDict[ParticleOfInterest::kV0Particles]) {
255260
registryData.add("Lambda_in_jet", "Lambda_in_jet", HistType::kTH3F, {multAxis, ptAxis, invMassLambdaAxis});
@@ -347,6 +352,9 @@ struct StrangenessInJetsIons {
347352
// Add histogram to store multiplicity of the event
348353
registryMC.add("number_of_events_vsmultiplicity_rec", "number of events vs multiplicity", HistType::kTH1D, {{101, -0.5, 100.5, "Multiplicity percentile"}});
349354

355+
// Armenteros-Podolanski plot
356+
registryQC.add("ArmenterosPreSel_REC", "ArmenterosPreSel_REC", HistType::kTH2F, {alphaArmAxis, qtarmAxis});
357+
350358
// Histograms for analysis
351359
if (particleOfInterestDict[ParticleOfInterest::kV0Particles]) {
352360
registryMC.add("K0s_reconstructed_jet", "K0s_reconstructed_jet", HistType::kTH2F, {multAxis, ptAxis});
@@ -710,10 +718,6 @@ struct StrangenessInJetsIons {
710718
if (pionNeg.Pt() < ptMinK0Pion || pionNeg.Pt() > ptMaxK0Pion)
711719
return false;
712720

713-
// Armenteros-Podolanski cut
714-
if (std::abs(v0.alpha()) >= (paramArmenterosCut * v0.qtarm()) && (requireArmenterosCut))
715-
return false;
716-
717721
// V0 selections
718722
if (v0.v0cosPA() < v0cospaMin)
719723
return false;
@@ -727,6 +731,11 @@ struct StrangenessInJetsIons {
727731
return false;
728732
if (std::fabs(v0.dcanegtopv()) < dcaNegToPVminK0s)
729733
return false;
734+
735+
// Armenteros-Podolanski cut
736+
if (v0.qtarm() < (paramArmenterosCut * std::abs(v0.alpha())) && (requireArmenterosCut))
737+
return false;
738+
730739
if (v0.v0Type() != v0type && requireV0type) {
731740
registryQC.fill(HIST("V0_type"), v0.v0Type());
732741
return false;
@@ -1007,10 +1016,10 @@ struct StrangenessInJetsIons {
10071016
if (std::fabs(recoColl.posZ()) > zVtx)
10081017
return false;
10091018

1010-
if (isApplySameBunchPileup && !recoColl.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
1019+
if (requireNoSameBunchPileup && !recoColl.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
10111020
return false;
10121021

1013-
if (isApplyGoodZvtxFT0vsPV && !recoColl.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
1022+
if (requireGoodZvtxFT0vsPV && !recoColl.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
10141023
return false;
10151024

10161025
return true;
@@ -1053,14 +1062,14 @@ struct StrangenessInJetsIons {
10531062
registryData.fill(HIST("number_of_events_data"), 3.5);
10541063

10551064
// Reject collisions associated to the same found BC
1056-
if (isApplySameBunchPileup && !collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
1065+
if (requireNoSameBunchPileup && !collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
10571066
return;
10581067

10591068
// Fill event counter after selection kNoSameBunchPileup
10601069
registryData.fill(HIST("number_of_events_data"), 4.5);
10611070

10621071
// Compatible z_vtx from FT0 and from PV
1063-
if (isApplyGoodZvtxFT0vsPV && !collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
1072+
if (requireGoodZvtxFT0vsPV && !collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
10641073
return;
10651074

10661075
// Fill event counter after selection kIsGoodZvtxFT0vsPV
@@ -1160,6 +1169,9 @@ struct StrangenessInJetsIons {
11601169
// Vertex position vector
11611170
TVector3 vtxPos(collision.posX(), collision.posY(), collision.posZ());
11621171

1172+
// Fill Armenteros-Podolanski TH2
1173+
registryQC.fill(HIST("ArmenterosPreSel_DATA"), v0.alpha(), v0.qtarm());
1174+
11631175
// K0s
11641176
if (passedK0ShortSelection(v0, pos, neg, vtxPos)) {
11651177
if (deltaRjet < rJet) {
@@ -1642,14 +1654,14 @@ struct StrangenessInJetsIons {
16421654
registryMC.fill(HIST("number_of_events_mc_rec"), 2.5);
16431655

16441656
// Reject collisions associated to the same found BC
1645-
if (isApplySameBunchPileup && !collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
1657+
if (requireNoSameBunchPileup && !collision.selection_bit(o2::aod::evsel::kNoSameBunchPileup))
16461658
continue;
16471659

16481660
// Fill event counter after selection kNoSameBunchPileup
16491661
registryMC.fill(HIST("number_of_events_mc_rec"), 3.5);
16501662

16511663
// Compatible z_vtx from FT0 and from PV
1652-
if (isApplyGoodZvtxFT0vsPV && !collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
1664+
if (requireGoodZvtxFT0vsPV && !collision.selection_bit(o2::aod::evsel::kIsGoodZvtxFT0vsPV))
16531665
continue;
16541666

16551667
// Fill event counter after selection kIsGoodZvtxFT0vsPV
@@ -1766,6 +1778,9 @@ struct StrangenessInJetsIons {
17661778
// Vertex position vector
17671779
TVector3 vtxPos(collision.posX(), collision.posY(), collision.posZ());
17681780

1781+
// Fill Armenteros-Podolanski TH2
1782+
registryQC.fill(HIST("ArmenterosPreSel_REC"), v0.alpha(), v0.qtarm());
1783+
17691784
// K0s
17701785
if (passedK0ShortSelection(v0, pos, neg, vtxPos) && pdgParent == kK0Short && isPhysPrim) {
17711786
if (deltaRjet < rJet) {

0 commit comments

Comments
 (0)