@@ -1543,9 +1543,12 @@ struct LambdaSpinPolarization {
15431543 Configurable<int > cNPhiBins{" cNPhiBins" , 36 , " N Phi Bins" };
15441544 Configurable<int > cNBinsCosTS{" cNBinsCosTS" , 10 , " N CosTS Bins" };
15451545 Configurable<bool > cInvBoostFlag{" cInvBoostFlag" , true , " Inverse Boost Flag" };
1546+ Configurable<int > mixingParameter{" mixingParameter" , 5 , " how many events are mixed" };
15461547
15471548 // Centrality Axis
15481549 ConfigurableAxis cMultBins{" cMultBins" , {VARIABLE_WIDTH , 0 .0f , 10 .0f , 30 .0f , 50 .f , 80 .0f , 100 .f }, " Variable Mult-Bins" };
1550+ ConfigurableAxis axisMultME{" axisMultME" , {VARIABLE_WIDTH , 0 , 5 , 10 , 20 , 30 , 40 , 50 , 1000 }, " Mixing bins - multiplicity" };
1551+ ConfigurableAxis axisVtxZME{" axisVtxZME" , {VARIABLE_WIDTH , -10 , -8 , -6 , -4 , -2 , 0 , 2 , 4 , 6 , 8 , 10 }, " Mixing bins - z-vertex" };
15491552
15501553 // Histogram Registry.
15511554 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -1691,6 +1694,29 @@ struct LambdaSpinPolarization {
16911694
16921695 PROCESS_SWITCH (LambdaSpinPolarization, processDataReco, " Process for Data and MCReco" , true );
16931696
1697+ void processDataRecoMixed (LambdaCollisions const & col, LambdaTracks const & tracks)
1698+ {
1699+ auto getMultiplicity = [this ](auto & col) {
1700+ (void )this ;
1701+ return col.cent ();
1702+ };
1703+
1704+ using MixedBinning = FlexibleBinningPolicy<std::tuple<decltype (getMultiplicity)>, aod::lambdacollision::PosZ, decltype (getMultiplicity)>;
1705+ MixedBinning binningOnVtxAndMult{{getMultiplicity}, {axisVtxZME, axisMultME}, true };
1706+ for (auto const & [col1, col2] : soa::selfCombinations (binningOnVtxAndMult, mixingParameter, -1 , col, col)) {
1707+ if (col1.globalIndex () == col2.globalIndex ()) {
1708+ continue ;
1709+ }
1710+ auto lambdaTracks = partLambdaTracks->sliceByCached (aod::lambdatrack::lambdaCollisionId, col1.globalIndex (), cache);
1711+ auto antiLambdaTracks = partAntiLambdaTracks->sliceByCached (aod::lambdatrack::lambdaCollisionId, col2.globalIndex (), cache);
1712+ analyzePairs<kLambdaAntiLambda , false >(lambdaTracks, antiLambdaTracks);
1713+ analyzePairs<kLambdaLambda , true >(lambdaTracks, lambdaTracks);
1714+ analyzePairs<kAntiLambdaAntiLambda , true >(antiLambdaTracks, antiLambdaTracks);
1715+ }
1716+ }
1717+
1718+ PROCESS_SWITCH (LambdaSpinPolarization, processDataRecoMixed, " Process for Data and MCReco for Mixed events" , true );
1719+
16941720 void processDataRecoMixEvent (LambdaCollisions::iterator const & collision, LambdaTracks const & tracks)
16951721 {
16961722 // return for no lambdas in a collision
0 commit comments