@@ -76,11 +76,11 @@ using namespace o2::constants::math;
7676using std::array;
7777
7878// Define convenient aliases for joined AOD tables
79- using SelCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms >;
79+ using SelCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs >;
8080using SimCollisions = soa::Join<aod::McCollisionLabels,
8181 aod::Collisions,
8282 aod::EvSels,
83- aod::CentFT0Ms >;
83+ aod::CentFT0Cs >;
8484using DaughterTracks = soa::Join<aod::Tracks, aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::TracksDCA,
8585 aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
8686 aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>;
@@ -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)" };
@@ -204,7 +204,7 @@ struct StrangenessInJetsIons {
204204
205205 // Define binning and axis specifications for multiplicity, eta, pT, PID, and invariant mass histograms
206206 std::vector<double > multBinning = {0 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 };
207- AxisSpec multAxis = {multBinning, " FT0M percentile" };
207+ AxisSpec multAxis = {multBinning, " FT0C percentile" };
208208 const AxisSpec ptAxis{100 , 0.0 , 10.0 , " #it{p}_{T} (GeV/#it{c})" };
209209 const AxisSpec invMassK0sAxis{200 , 0.44 , 0.56 , " m_{#pi#pi} (GeV/#it{c}^{2})" };
210210 const AxisSpec invMassLambdaAxis{200 , 1.09 , 1.14 , " m_{p#pi} (GeV/#it{c}^{2})" };
@@ -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});
@@ -342,10 +347,14 @@ struct StrangenessInJetsIons {
342347 registryMC.get <TH1>(HIST (" number_of_events_mc_rec" ))->GetXaxis ()->SetBinLabel (4 , " kNoSameBunchPileup" );
343348 registryMC.get <TH1>(HIST (" number_of_events_mc_rec" ))->GetXaxis ()->SetBinLabel (5 , " kIsGoodZvtxFT0vsPV" );
344349 registryMC.get <TH1>(HIST (" number_of_events_mc_rec" ))->GetXaxis ()->SetBinLabel (6 , " No empty events" );
350+ registryMC.get <TH1>(HIST (" number_of_events_mc_rec" ))->GetXaxis ()->SetBinLabel (7 , " At least one jet" );
345351
346352 // Add histogram to store multiplicity of the event
347353 registryMC.add (" number_of_events_vsmultiplicity_rec" , " number of events vs multiplicity" , HistType::kTH1D , {{101 , -0.5 , 100.5 , " Multiplicity percentile" }});
348354
355+ // Armenteros-Podolanski plot
356+ registryQC.add (" ArmenterosPreSel_REC" , " ArmenterosPreSel_REC" , HistType::kTH2F , {alphaArmAxis, qtarmAxis});
357+
349358 // Histograms for analysis
350359 if (particleOfInterestDict[ParticleOfInterest::kV0Particles ]) {
351360 registryMC.add (" K0s_reconstructed_jet" , " K0s_reconstructed_jet" , HistType::kTH2F , {multAxis, ptAxis});
@@ -355,12 +364,12 @@ struct StrangenessInJetsIons {
355364 registryMC.add (" AntiLambda_reconstructed_jet" , " AntiLambda_reconstructed_jet" , HistType::kTH2F , {multAxis, ptAxis});
356365 registryMC.add (" AntiLambda_reconstructed_ue" , " AntiLambda_reconstructed_ue" , HistType::kTH2F , {multAxis, ptAxis});
357366 // Histograms for secondary hadrons
358- registryMC.add (" K0s_reconstructed_jet_incl" , " K0s_reconstructed_jet_incl" , HistType::kTH2F , {multBinning , ptAxis});
359- registryMC.add (" K0s_reconstructed_ue_incl" , " K0s_reconstructed_ue_incl" , HistType::kTH2F , {multBinning , ptAxis});
360- registryMC.add (" Lambda_reconstructed_jet_incl" , " Lambda_reconstructed_jet_incl" , HistType::kTH2F , {multBinning , ptAxis});
361- registryMC.add (" Lambda_reconstructed_ue_incl" , " Lambda_reconstructed_ue_incl" , HistType::kTH2F , {multBinning , ptAxis});
362- registryMC.add (" AntiLambda_reconstructed_jet_incl" , " AntiLambda_reconstructed_jet_incl" , HistType::kTH2F , {multBinning , ptAxis});
363- registryMC.add (" AntiLambda_reconstructed_ue_incl" , " AntiLambda_reconstructed_ue_incl" , HistType::kTH2F , {multBinning , ptAxis});
367+ registryMC.add (" K0s_reconstructed_jet_incl" , " K0s_reconstructed_jet_incl" , HistType::kTH2F , {multAxis , ptAxis});
368+ registryMC.add (" K0s_reconstructed_ue_incl" , " K0s_reconstructed_ue_incl" , HistType::kTH2F , {multAxis , ptAxis});
369+ registryMC.add (" Lambda_reconstructed_jet_incl" , " Lambda_reconstructed_jet_incl" , HistType::kTH2F , {multAxis , ptAxis});
370+ registryMC.add (" Lambda_reconstructed_ue_incl" , " Lambda_reconstructed_ue_incl" , HistType::kTH2F , {multAxis , ptAxis});
371+ registryMC.add (" AntiLambda_reconstructed_jet_incl" , " AntiLambda_reconstructed_jet_incl" , HistType::kTH2F , {multAxis , ptAxis});
372+ registryMC.add (" AntiLambda_reconstructed_ue_incl" , " AntiLambda_reconstructed_ue_incl" , HistType::kTH2F , {multAxis , ptAxis});
364373 }
365374 if (particleOfInterestDict[ParticleOfInterest::kCascades ]) {
366375 registryMC.add (" XiPos_reconstructed_jet" , " XiPos_reconstructed_jet" , HistType::kTH2F , {multAxis, ptAxis});
@@ -709,10 +718,6 @@ struct StrangenessInJetsIons {
709718 if (pionNeg.Pt () < ptMinK0Pion || pionNeg.Pt () > ptMaxK0Pion)
710719 return false ;
711720
712- // Armenteros-Podolanski cut
713- if (std::abs (v0.alpha ()) >= (paramArmenterosCut * v0.qtarm ()) && (requireArmenterosCut))
714- return false ;
715-
716721 // V0 selections
717722 if (v0.v0cosPA () < v0cospaMin)
718723 return false ;
@@ -726,6 +731,11 @@ struct StrangenessInJetsIons {
726731 return false ;
727732 if (std::fabs (v0.dcanegtopv ()) < dcaNegToPVminK0s)
728733 return false ;
734+
735+ // Armenteros-Podolanski cut
736+ if (v0.qtarm () < (paramArmenterosCut * std::abs (v0.alpha ())) && (requireArmenterosCut))
737+ return false ;
738+
729739 if (v0.v0Type () != v0type && requireV0type) {
730740 registryQC.fill (HIST (" V0_type" ), v0.v0Type ());
731741 return false ;
@@ -1006,10 +1016,10 @@ struct StrangenessInJetsIons {
10061016 if (std::fabs (recoColl.posZ ()) > zVtx)
10071017 return false ;
10081018
1009- if (isApplySameBunchPileup && !recoColl.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
1019+ if (requireNoSameBunchPileup && !recoColl.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
10101020 return false ;
10111021
1012- if (isApplyGoodZvtxFT0vsPV && !recoColl.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
1022+ if (requireGoodZvtxFT0vsPV && !recoColl.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
10131023 return false ;
10141024
10151025 return true ;
@@ -1052,14 +1062,14 @@ struct StrangenessInJetsIons {
10521062 registryData.fill (HIST (" number_of_events_data" ), 3.5 );
10531063
10541064 // Reject collisions associated to the same found BC
1055- if (isApplySameBunchPileup && !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
1065+ if (requireNoSameBunchPileup && !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
10561066 return ;
10571067
10581068 // Fill event counter after selection kNoSameBunchPileup
10591069 registryData.fill (HIST (" number_of_events_data" ), 4.5 );
10601070
10611071 // Compatible z_vtx from FT0 and from PV
1062- if (isApplyGoodZvtxFT0vsPV && !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
1072+ if (requireGoodZvtxFT0vsPV && !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
10631073 return ;
10641074
10651075 // Fill event counter after selection kIsGoodZvtxFT0vsPV
@@ -1130,7 +1140,7 @@ struct StrangenessInJetsIons {
11301140 registryData.fill (HIST (" number_of_events_data" ), 7.5 );
11311141
11321142 // Event multiplicity
1133- const float multiplicity = collision.centFT0M ();
1143+ const float multiplicity = collision.centFT0C ();
11341144
11351145 // Fill event multiplicity
11361146 registryData.fill (HIST (" number_of_events_vsmultiplicity" ), multiplicity);
@@ -1159,6 +1169,9 @@ struct StrangenessInJetsIons {
11591169 // Vertex position vector
11601170 TVector3 vtxPos (collision.posX (), collision.posY (), collision.posZ ());
11611171
1172+ // Fill Armenteros-Podolanski TH2
1173+ registryQC.fill (HIST (" ArmenterosPreSel_DATA" ), v0.alpha (), v0.qtarm ());
1174+
11621175 // K0s
11631176 if (passedK0ShortSelection (v0, pos, neg, vtxPos)) {
11641177 if (deltaRjet < rJet) {
@@ -1338,7 +1351,7 @@ struct StrangenessInJetsIons {
13381351 if (!selectRecoEvent (recoColl))
13391352 continue ;
13401353
1341- multiplicity = recoColl.centFT0M ();
1354+ multiplicity = recoColl.centFT0C ();
13421355 // LOGF(info, " MC GEN index: %d", collision.globalIndex());
13431356 // LOGF(info, " MC RECO index: %d", recoColl.mcCollisionId());
13441357 // LOGF(info, " multiplicity: %f", multiplicity);
@@ -1641,21 +1654,21 @@ struct StrangenessInJetsIons {
16411654 registryMC.fill (HIST (" number_of_events_mc_rec" ), 2.5 );
16421655
16431656 // Reject collisions associated to the same found BC
1644- if (isApplySameBunchPileup && !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
1657+ if (requireNoSameBunchPileup && !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ))
16451658 continue ;
16461659
16471660 // Fill event counter after selection kNoSameBunchPileup
16481661 registryMC.fill (HIST (" number_of_events_mc_rec" ), 3.5 );
16491662
16501663 // Compatible z_vtx from FT0 and from PV
1651- if (isApplyGoodZvtxFT0vsPV && !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
1664+ if (requireGoodZvtxFT0vsPV && !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
16521665 continue ;
16531666
16541667 // Fill event counter after selection kIsGoodZvtxFT0vsPV
16551668 registryMC.fill (HIST (" number_of_events_mc_rec" ), 4.5 );
16561669
16571670 // Event multiplicity
1658- const float multiplicity = collision.centFT0M ();
1671+ const float multiplicity = collision.centFT0C ();
16591672
16601673 // Number of V0 and cascades per collision
16611674 auto v0sPerColl = fullV0s.sliceBy (perCollisionV0, collision.globalIndex ());
@@ -1716,7 +1729,7 @@ struct StrangenessInJetsIons {
17161729 continue ;
17171730
17181731 // Fill event counter for events with at least one selected jet
1719- registryMC.fill (HIST (" number_of_events_mc_rec" ), 4 .5 );
1732+ registryMC.fill (HIST (" number_of_events_mc_rec" ), 6 .5 );
17201733 registryMC.fill (HIST (" number_of_events_vsmultiplicity_rec" ), multiplicity);
17211734
17221735 // Loop over selected jets
@@ -1765,6 +1778,9 @@ struct StrangenessInJetsIons {
17651778 // Vertex position vector
17661779 TVector3 vtxPos (collision.posX (), collision.posY (), collision.posZ ());
17671780
1781+ // Fill Armenteros-Podolanski TH2
1782+ registryQC.fill (HIST (" ArmenterosPreSel_REC" ), v0.alpha (), v0.qtarm ());
1783+
17681784 // K0s
17691785 if (passedK0ShortSelection (v0, pos, neg, vtxPos) && pdgParent == kK0Short && isPhysPrim) {
17701786 if (deltaRjet < rJet) {
0 commit comments