@@ -58,6 +58,11 @@ using namespace o2::soa;
5858using namespace o2 ::constants::physics;
5959
6060struct lambdaTwoPartPolarization {
61+ enum centSel {
62+ kFT0C = 0 ,
63+ kFT0M
64+ };
65+
6166 using EventCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::MultZeqs, aod::FT0Mults, aod::FV0Mults, aod::TPCMults, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
6267 using TrackCandidates = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTPCFullPr>;
6368 using V0TrackCandidate = aod::V0Datas;
@@ -130,6 +135,7 @@ struct lambdaTwoPartPolarization {
130135 ConfigurableAxis RapAxis{" RapAxis" , {10 , -0.5 , 0.5 }, " Rapidity axis" };
131136 ConfigurableAxis detaAxis{" dyAxis" , {20 , -1 , 1 }, " relative rapidity axis" };
132137 ConfigurableAxis dphiAxis{" dphiAxis" , {20 , -constants::math::PI * 0.5 , constants::math::PI * 1.5 }, " relative azimuth axis" };
138+ ConfigurableAxis massAxis{" massAxis" , {30 , 1.10 , 1.1 }, " lambda mass axis" };
133139
134140 ConfigurableAxis cosSigAxis{" cosSigAxis" , {110 , -1.05 , 1.05 }, " Signal cosine axis" };
135141 ConfigurableAxis cosAccAxis{" cosAccAxis" , {110 , -7.05 , 7.05 }, " Accepatance cosine axis" };
@@ -171,8 +177,10 @@ struct lambdaTwoPartPolarization {
171177 histos.add (" Ana/SignalCos2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, cosSigAxis}});
172178 histos.add (" Ana/Acceptance" , " " , {HistType::kTHnSparseF , {ptAxis, centAxis, RapAxis, cosAccAxis}});
173179
174- histos.add (" AnaHL/SignalSin2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, cosSigAxis}});
175- histos.add (" AnaHL/SignalCos2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, cosSigAxis}});
180+ histos.add (" AnaHL/LambdaSignalSin2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, massAxis, cosSigAxis}});
181+ histos.add (" AnaHL/LambdaSignalCos2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, massAxis, cosSigAxis}});
182+ histos.add (" AnaHL/ALambdaSignalSin2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, massAxis, cosSigAxis}});
183+ histos.add (" AnaHL/ALambdaSignalCos2" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis, massAxis, cosSigAxis}});
176184 histos.add (" AnaHL/Ref" , " " , {HistType::kTHnSparseF , {ptAxis, ptAxis, detaAxis, dphiAxis, centAxis}});
177185
178186 fMultPVCutLow = new TF1 (" fMultPVCutLow" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x - 2.5*([4]+[5]*x+[6]*x*x+[7]*x*x*x+[8]*x*x*x*x)" , 0 , 100 );
@@ -197,6 +205,7 @@ struct lambdaTwoPartPolarization {
197205 int V02Tag = 1 ;
198206 double costhetastar1 = 0.0 ;
199207 double costhetastar2 = 0.0 ;
208+ double lambdaRecMass = 1 .;
200209
201210 template <typename TCollision>
202211 bool eventSelected (TCollision const & collision)
@@ -318,11 +327,11 @@ struct lambdaTwoPartPolarization {
318327 template <typename Trk1, typename Trk2>
319328 void FillHistogramsRef (Trk1 const & trks1, Trk2 const & trks2)
320329 {
321- for (auto & trk1 : trks1) {
330+ for (const auto & trk1 : trks1) {
322331 if (!selectTrack (trk1)) {
323332 continue ;
324333 }
325- for (auto & trk2 : trks2) {
334+ for (const auto & trk2 : trks2) {
326335 if (!selectTrack (trk2)) {
327336 continue ;
328337 }
@@ -339,12 +348,12 @@ struct lambdaTwoPartPolarization {
339348 template <typename C, typename V0 , typename Trk>
340349 void FillHistogramsLH (C const & c1, V0 const & v0s, Trk const & trks)
341350 {
342- for (auto & trk : trks) {
351+ for (const auto & trk : trks) {
343352 if (!selectTrack (trk)) {
344353 continue ;
345354 }
346355
347- for (auto & v01 : v0s) {
356+ for (const auto & v01 : v0s) {
348357 auto postrack_v01 = v01.template posTrack_as <TrackCandidates>();
349358 auto negtrack_v01 = v01.template negTrack_as <TrackCandidates>();
350359
@@ -394,16 +403,22 @@ struct lambdaTwoPartPolarization {
394403 weight *= cfgEffCor ? 1.0 / EffMap->GetBinContent (EffMap->GetXaxis ()->FindBin (v01.pt ()), EffMap->GetYaxis ()->FindBin (centrality)) : 1 .;
395404 weight *= cfgAccCor ? 1.0 / AccMap->GetBinContent (AccMap->GetXaxis ()->FindBin (v01.pt ()), AccMap->GetYaxis ()->FindBin (v01.yLambda ())) : 1 .;
396405
397- histos.fill (HIST (" AnaHL/SignalSin2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, costhetastar1 * std::sin (2.0 * dphi) * weight);
398- histos.fill (HIST (" AnaHL/SignalCos2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, costhetastar1 * std::cos (2.0 * dphi) * weight);
406+ if (LambdaTag) {
407+ histos.fill (HIST (" AnaHL/LambdaSignalSin2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, v01.mLambda (), costhetastar1 * std::sin (2.0 * dphi) * weight);
408+ histos.fill (HIST (" AnaHL/LambdaSignalCos2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, v01.mLambda (), costhetastar1 * std::cos (2.0 * dphi) * weight);
409+ }
410+ if (aLambdaTag) {
411+ histos.fill (HIST (" AnaHL/ALambdaSignalSin2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, v01.mAntiLambda (), costhetastar1 * std::sin (2.0 * dphi) * weight);
412+ histos.fill (HIST (" AnaHL/ALambdaSignalCos2" ), trk.pt (), v01.pt (), v01.yLambda () - trk.eta (), dphi, centrality, v01.mAntiLambda (), costhetastar1 * std::cos (2.0 * dphi) * weight);
413+ }
399414 }
400415 }
401416 }
402417
403418 template <typename C1 , typename C2 , typename V01 , typename V02 >
404419 void FillHistograms (C1 const & c1, C2 const & c2, V01 const & V01s, V02 const & V02s)
405420 {
406- for (auto & v01 : V01s) {
421+ for (const auto & v01 : V01s) {
407422 auto postrack_v01 = v01.template posTrack_as <TrackCandidates>();
408423 auto negtrack_v01 = v01.template negTrack_as <TrackCandidates>();
409424
@@ -445,7 +460,7 @@ struct lambdaTwoPartPolarization {
445460
446461 histos.fill (HIST (" Ana/Acceptance" ), v01.pt (), centrality, v01.yLambda (), costhetastar1 * costhetastar1);
447462
448- for (auto & v02 : V02s) {
463+ for (const auto & v02 : V02s) {
449464 if (v01.v0Id () <= v02.v0Id () && doprocessDataSame) {
450465 continue ;
451466 }
@@ -546,9 +561,11 @@ struct lambdaTwoPartPolarization {
546561 TrackCandidates const & /* tracks*/ , aod::V0Datas const & V0s,
547562 aod::BCsWithTimestamps const &)
548563 {
549- if (cfgCentEst == 1 ) {
564+ if (cfgCentEst == kFT0C ) {
550565 centrality = collision.centFT0C ();
551- } else if (cfgCentEst == 2 ) {
566+ } else if (cfgCentEst == kFT0M ) {
567+ centrality = collision.centFT0M ();
568+ } else {
552569 centrality = collision.centFT0M ();
553570 }
554571 if (!eventSelected (collision) && cfgEvtSel) {
@@ -579,7 +596,7 @@ struct lambdaTwoPartPolarization {
579596 void processDataMixedT0C (EventCandidates const & collisions,
580597 TrackCandidates const & /* tracks*/ , aod::V0Datas const & V0s, aod::BCsWithTimestamps const &)
581598 {
582- for (auto & [c1, c2] : selfCombinations (colBinningT0C, cfgNoMixedEvents, -1 , collisions, collisions)) {
599+ for (const auto & [c1, c2] : selfCombinations (colBinningT0C, cfgNoMixedEvents, -1 , collisions, collisions)) {
583600
584601 if (c1.index () == c2.index ()) {
585602 continue ;
@@ -611,7 +628,7 @@ struct lambdaTwoPartPolarization {
611628 void processDataMixedT0M (EventCandidates const & collisions,
612629 TrackCandidates const & /* tracks*/ , aod::V0Datas const & V0s, aod::BCsWithTimestamps const &)
613630 {
614- for (auto & [c1, c2] : selfCombinations (colBinningT0M, cfgNoMixedEvents, -1 , collisions, collisions)) {
631+ for (const auto & [c1, c2] : selfCombinations (colBinningT0M, cfgNoMixedEvents, -1 , collisions, collisions)) {
615632
616633 if (c1.index () == c2.index ()) {
617634 continue ;
0 commit comments