@@ -54,11 +54,13 @@ struct strangepidqa {
5454 ConfigurableAxis axisPt{" axisPt" , {VARIABLE_WIDTH, 0 .0f , 0 .1f , 0 .2f , 0 .3f , 0 .4f , 0 .5f , 0 .6f , 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .1f , 1 .2f , 1 .3f , 1 .4f , 1 .5f , 1 .6f , 1 .7f , 1 .8f , 1 .9f , 2 .0f , 2 .2f , 2 .4f , 2 .6f , 2 .8f , 3 .0f , 3 .2f , 3 .4f , 3 .6f , 3 .8f , 4 .0f , 4 .4f , 4 .8f , 5 .2f , 5 .6f , 6 .0f , 6 .5f , 7 .0f , 7 .5f , 8 .0f , 9 .0f , 10 .0f , 11 .0f , 12 .0f , 13 .0f , 14 .0f , 15 .0f , 17 .0f , 19 .0f , 21 .0f , 23 .0f , 25 .0f , 30 .0f , 35 .0f , 40 .0f , 50 .0f }, " p_{T} (GeV/c)" };
5555 ConfigurableAxis axisRadius{" axisRadius" , {200 , 0 .0f , 100 .0f }, " V0 radius (cm)" };
5656
57- AxisSpec centAxis = {100 , 0 .0f , 100 .0f , " mult percentile" };
57+ ConfigurableAxis centAxis{" centAxis" , {VARIABLE_WIDTH, 0 .0f , 5 .0f , 10 .0f , 20 .0f , 30 .0f , 50 .0f , 70 .0f , 100 .0f }, " FT0C centrality" };
58+
5859 AxisSpec massAxisXi = {200 , 1 .222f , 1 .422f , " Inv. Mass (GeV/c^{2})" };
5960 AxisSpec massAxisOmega = {200 , 1 .572f , 1 .772f , " Inv. Mass (GeV/c^{2})" };
6061
6162 // Invariant Mass
63+ ConfigurableAxis axisK0ShortMass{" axisK0ShortMass" , {200 , 0 .497f -0 .050f , 0 .497f +0 .050f }, " M_{K0s} (GeV/c^{2})" };
6264 ConfigurableAxis axisLambdaMass{" axisLambdaMass" , {200 , 1 .08f , 1 .16f }, " M_{#Lambda} (GeV/c^{2})" };
6365
6466 // time axes
@@ -117,6 +119,9 @@ struct strangepidqa {
117119 Configurable<float > tofNsigmaOmLaPr{" tpcNsigmaOmLaPr" , 1e+5 , " TOF NSigma proton <- lambda <- Omega (>10 is no cut)" };
118120 Configurable<float > tofNsigmaOmLaPi{" tpcNsigmaOmLaPi" , 1e+5 , " TOF NSigma pion <- lambda <- Omega (>10 is no cut)" };
119121 Configurable<float > tofNsigmaOmKa{" tpcNsigmaOmKa" , 1e+5 , " TOF NSigma Kaon <- Omega (>10 is no cut)" };
122+
123+ Configurable<float > tofNsigmaCompatibility{" tofNsigmaCompatibility" , 4 , " compatibility check for V0s" };
124+ Configurable<float > tofNsigmaCompatibilityCascades{" tofNsigmaCompatibilityCascades" , 4 , " compatibility check for cascades" };
120125 // *+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*
121126
122127 void init (InitContext const &)
@@ -215,6 +220,14 @@ struct strangepidqa {
215220 histos.add (" h2dTimeVsLengthProtonProng" , " h2dTimeVsLengthProtonProng" , {HistType::kTH2F , {axisLength, axisTime}});
216221 histos.add (" h2dTimeVsLengthPionProng" , " h2dTimeVsLengthPionProng" , {HistType::kTH2F , {axisLength, axisTime}});
217222
223+ histos.add (" h3dMassK0Short" , " h3dMassK0Short" , {HistType::kTH3F , {centAxis, axisPt, axisK0ShortMass}});
224+ histos.add (" h3dMassLambda" , " h3dMassLambda" , {HistType::kTH3F , {centAxis, axisPt, axisLambdaMass}});
225+ histos.add (" h3dMassAntiLambda" , " h3dMassAntiLambda" , {HistType::kTH3F , {centAxis, axisPt, axisLambdaMass}});
226+
227+ histos.add (" h3dMassCompatibleK0Short" , " h3dMassCompatibleK0Short" , {HistType::kTH3F , {centAxis, axisPt, axisK0ShortMass}});
228+ histos.add (" h3dMassCompatibleLambda" , " h3dMassCompatibleLambda" , {HistType::kTH3F , {centAxis, axisPt, axisLambdaMass}});
229+ histos.add (" h3dMassCompatibleAntiLambda" , " h3dMassCompatibleAntiLambda" , {HistType::kTH3F , {centAxis, axisPt, axisLambdaMass}});
230+
218231 // --- ASSOCIATED ---
219232 // V0 Radius
220233 if (doprocessSim) {
@@ -247,10 +260,15 @@ struct strangepidqa {
247260 histos.add (" h3dMassXiPlus" , " h3dMassXiPlus" , {HistType::kTH3F , {centAxis, axisPt, massAxisXi}});
248261 histos.add (" h3dMassOmegaMinus" , " h3dMassOmegaMinus" , {HistType::kTH3F , {centAxis, axisPt, massAxisOmega}});
249262 histos.add (" h3dMassOmegaPlus" , " h3dMassOmegaPlus" , {HistType::kTH3F , {centAxis, axisPt, massAxisOmega}});
263+
264+ histos.add (" h3dMassCompatibleXiMinus" , " h3dMassCompatibleXiMinus" , {HistType::kTH3F , {centAxis, axisPt, massAxisXi}});
265+ histos.add (" h3dMassCompatibleXiPlus" , " h3dMassCompatibleXiPlus" , {HistType::kTH3F , {centAxis, axisPt, massAxisXi}});
266+ histos.add (" h3dMassCompatibleOmegaMinus" , " h3dMassCompatibleOmegaMinus" , {HistType::kTH3F , {centAxis, axisPt, massAxisOmega}});
267+ histos.add (" h3dMassCompatibleOmegaPlus" , " h3dMassCompatibleOmegaPlus" , {HistType::kTH3F , {centAxis, axisPt, massAxisOmega}});
250268 }
251269 }
252270
253- void processReal (soa::Join<aod::StraCollisions, aod::StraCents>::iterator const & coll, soa::Join<aod::V0Cores, aod::V0CollRefs, aod::V0Extras, aod::V0TOFPIDs, aod::V0TOFBetas, aod::V0TOFDebugs> const & v0s)
271+ void processReal (soa::Join<aod::StraCollisions, aod::StraCents>::iterator const & coll, soa::Join<aod::V0Cores, aod::V0CollRefs, aod::V0Extras, aod::V0TOFPIDs, aod::V0TOFBetas, aod::V0TOFDebugs, aod::V0TOFNSigmas > const & v0s, soa::Join<aod::DauTrackExtras, aod::DauTrackTPCPIDs> const & )
254272 {
255273 histos.fill (HIST (" hEventVertexZ" ), coll.posZ ());
256274
@@ -262,6 +280,33 @@ struct strangepidqa {
262280 if (TMath::Abs (lambda.eta ()) > 0.5 )
263281 continue ;
264282
283+ auto negExtra = lambda.negTrackExtra_as <soa::Join<aod::DauTrackExtras, aod::DauTrackTPCPIDs>>();
284+ auto posExtra = lambda.posTrackExtra_as <soa::Join<aod::DauTrackExtras, aod::DauTrackTPCPIDs>>();
285+
286+ if (TMath::Abs (posExtra.tpcNSigmaPr ()) < tpcNsigmaProton && TMath::Abs (negExtra.tpcNSigmaPi ()) < tpcNsigmaPion) {
287+ // lambda case
288+ histos.fill (HIST (" h3dMassLambda" ), coll.centFT0C (), lambda.pt (), lambda.mLambda ());
289+ if (lambda.tofLambdaCompatibility (tofNsigmaCompatibility.value )){
290+ histos.fill (HIST (" h3dMassCompatibleLambda" ), coll.centFT0C (), lambda.pt (), lambda.mLambda ());
291+ }
292+ }
293+
294+ if (TMath::Abs (posExtra.tpcNSigmaPi ()) < tpcNsigmaProton && TMath::Abs (negExtra.tpcNSigmaPr ()) < tpcNsigmaPion) {
295+ // lambda case
296+ histos.fill (HIST (" h3dMassAntiLambda" ), coll.centFT0C (), lambda.pt (), lambda.mLambda ());
297+ if (lambda.tofAntiLambdaCompatibility (tofNsigmaCompatibility.value )){
298+ histos.fill (HIST (" h3dMassCompatibleAntiambda" ), coll.centFT0C (), lambda.pt (), lambda.mLambda ());
299+ }
300+ }
301+
302+ if (TMath::Abs (posExtra.tpcNSigmaPi ()) < tpcNsigmaPion && TMath::Abs (negExtra.tpcNSigmaPr ()) < tpcNsigmaPion) {
303+ // lambda case
304+ histos.fill (HIST (" h3dMassK0Short" ), coll.centFT0C (), lambda.pt (), lambda.mK0Short ());
305+ if (lambda.tofAntiLambdaCompatibility (tofNsigmaCompatibility.value )){
306+ histos.fill (HIST (" h3dMassCompatibleK0Short" ), coll.centFT0C (), lambda.pt (), lambda.mK0Short ());
307+ }
308+ }
309+
265310 histos.fill (HIST (" h2dLambdaMassVsTOFCut" ), lambda.mLambda (), TMath::Abs (lambda.posTOFDeltaTLaPr ()));
266311 histos.fill (HIST (" h2dLambdaMassVsTOFCutMeson" ), lambda.mLambda (), TMath::Abs (lambda.negTOFDeltaTLaPi ()));
267312
@@ -397,42 +442,30 @@ struct strangepidqa {
397442
398443 if (casc.sign () < 0 ) {
399444 if (TMath::Abs (posExtra.tpcNSigmaPr ()) < tpcNsigmaProton && TMath::Abs (negExtra.tpcNSigmaPi ()) < tpcNsigmaPion && TMath::Abs (bachExtra.tpcNSigmaPi ()) < tpcNsigmaBachelor) {
400- if (tofNsigmaXiLaPr < 100 && fabs (casc.tofNSigmaXiLaPr ()) > tofNsigmaXiLaPr)
401- continue ;
402- if (tofNsigmaXiLaPi < 100 && fabs (casc.tofNSigmaXiLaPi ()) > tofNsigmaXiLaPi)
403- continue ;
404- if (tofNsigmaXiPi < 100 && fabs (casc.tofNSigmaXiPi ()) > tofNsigmaXiPi)
405- continue ;
406445 histos.fill (HIST (" h3dMassXiMinus" ), col.centFT0C (), casc.pt (), casc.mXi ());
446+ if (casc.tofXiCompatibility (tofNsigmaCompatibilityCascades.value )){
447+ histos.fill (HIST (" h3dMassCompatibleXiMinus" ), col.centFT0C (), casc.pt (), casc.mXi ());
448+ }
407449 }
408450 if (TMath::Abs (posExtra.tpcNSigmaPr ()) < tpcNsigmaProton && TMath::Abs (negExtra.tpcNSigmaPi ()) < tpcNsigmaPion && TMath::Abs (bachExtra.tpcNSigmaKa ()) < tpcNsigmaBachelor) {
409- if (tofNsigmaOmLaPr < 100 && fabs (casc.tofNSigmaOmLaPr ()) > tofNsigmaOmLaPr)
410- continue ;
411- if (tofNsigmaOmLaPi < 100 && fabs (casc.tofNSigmaOmLaPi ()) > tofNsigmaOmLaPi)
412- continue ;
413- if (tofNsigmaOmKa < 100 && fabs (casc.tofNSigmaOmKa ()) > tofNsigmaOmKa)
414- continue ;
415451 histos.fill (HIST (" h3dMassOmegaMinus" ), col.centFT0C (), casc.pt (), casc.mOmega ());
452+ if (casc.tofOmCompatibility (tofNsigmaCompatibilityCascades.value )){
453+ histos.fill (HIST (" h3dMassCompatibleOmegaMinus" ), col.centFT0C (), casc.pt (), casc.mOmega ());
454+ }
416455 }
417456 } else {
418457 if (TMath::Abs (posExtra.tpcNSigmaPi ()) < tpcNsigmaPion && TMath::Abs (negExtra.tpcNSigmaPr ()) < tpcNsigmaProton && TMath::Abs (bachExtra.tpcNSigmaPi ()) < tpcNsigmaBachelor) {
419- if (tofNsigmaXiLaPr < 100 && fabs (casc.tofNSigmaXiLaPr ()) > tofNsigmaXiLaPr)
420- continue ;
421- if (tofNsigmaXiLaPi < 100 && fabs (casc.tofNSigmaXiLaPi ()) > tofNsigmaXiLaPi)
422- continue ;
423- if (tofNsigmaXiPi < 100 && fabs (casc.tofNSigmaXiPi ()) > tofNsigmaXiPi)
424- continue ;
425458 histos.fill (HIST (" h3dMassXiPlus" ), col.centFT0C (), casc.pt (), casc.mXi ());
459+ if (casc.tofXiCompatibility (tofNsigmaCompatibilityCascades.value )){
460+ histos.fill (HIST (" h3dMassCompatibleXiPlus" ), col.centFT0C (), casc.pt (), casc.mXi ());
461+ }
426462 }
427463
428464 if (TMath::Abs (posExtra.tpcNSigmaPi ()) < tpcNsigmaPion && TMath::Abs (negExtra.tpcNSigmaPr ()) < tpcNsigmaProton && TMath::Abs (bachExtra.tpcNSigmaKa ()) < tpcNsigmaBachelor) {
429- if (tofNsigmaOmLaPr < 100 && fabs (casc.tofNSigmaOmLaPr ()) > tofNsigmaOmLaPr)
430- continue ;
431- if (tofNsigmaOmLaPi < 100 && fabs (casc.tofNSigmaOmLaPi ()) > tofNsigmaOmLaPi)
432- continue ;
433- if (tofNsigmaOmKa < 100 && fabs (casc.tofNSigmaOmKa ()) > tofNsigmaOmKa)
434- continue ;
435465 histos.fill (HIST (" h3dMassOmegaPlus" ), col.centFT0C (), casc.pt (), casc.mOmega ());
466+ if (casc.tofOmCompatibility (tofNsigmaCompatibilityCascades.value )){
467+ histos.fill (HIST (" h3dMassCompatibleOmegaPlus" ), col.centFT0C (), casc.pt (), casc.mOmega ());
468+ }
436469 }
437470 }
438471 }
0 commit comments