@@ -100,6 +100,9 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
100100 Configurable<float > confCPRDistMax{" confCPRDistMax" , 0.0 , " Max. radial seperation between two closed-pairs" };
101101 Configurable<float > confCPRFracMax{" confCPRFracMax" , 0.0 , " Max. allowed fraction bad to all TPC points of radial seperation between two closed-pairs" };
102102 Configurable<bool > confCPRDphiAvgOrDist{" confCPRDphiAvgOrDist" , true , " Close Pair Rejection by radial or angular seperation" };
103+ Configurable<bool > confIs1D{" confIs1D" , true , " Filling 1D 2k* dist. in MC truth" };
104+ Configurable<bool > confIsIden{" confIsIden" , true , " Choosing identical or non-identical pairs" };
105+ Configurable<bool > confIsWeight{" confIsWeight" , true , " Fill quantum weight" };
103106 } twotracksconfigs;
104107
105108 using FemtoFullParticles = soa::Join<aod::FDParticles, aod::FDExtParticles>;
@@ -197,7 +200,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
197200 ConfigurableAxis confkstarBins{" confkstarBins" , {60 , 0.0 , 0.3 }, " binning kstar" };
198201 ConfigurableAxis confkTBins{" confkTBins" , {150 , 0 ., 9 .}, " binning kT" };
199202 ConfigurableAxis confmTBins{" confmTBins" , {225 , 0 ., 7.5 }, " binning mT" };
200- Configurable<bool > confIsIden{" confIsIden" , true , " Choosing identical or non-identical pairs" };
201203 Configurable<bool > confIsLCMS{" confIsLCMS" , true , " Choosing LCMS or PRF" };
202204 Configurable<int > confNEventsMix{" confNEventsMix" , 5 , " Number of events for mixing" };
203205 Configurable<int > confLMax{" confLMax" , 2 , " Maximum value of l" };
@@ -558,7 +560,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
558560 if (!pairCleaner.isCleanPair (p1, p2, parts)) {
559561 continue ;
560562 }
561- sameEventMultCont.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
563+ sameEventMultCont.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
562564 }
563565 } else {
564566 for (const auto & [p1, p2] : combinations (CombinationsStrictlyUpperIndexPolicy (groupPartsOne, groupPartsOne))) {
@@ -608,7 +610,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
608610 auto part2 = p2;
609611
610612 if (rand > 0.5 ) {
611-
612613 part1 = p2;
613614 part2 = p1;
614615 }
@@ -619,30 +620,30 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
619620 float qTmin = 0.0 ;
620621 switch (ContType) {
621622 case 2 : {
622- f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, confIsIden);
623+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs. confIsIden );
623624 qTmin = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ]);
624625 if (!twotracksconfigs.confUseCCImCut ) {
625626 if (!twotracksconfigs.confUseMinqTcut ) {
626- sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
627+ sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
627628 } else {
628629 if (qTmin > twotracksconfigs.confMinqTcut ) {
629- sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
630+ sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
630631 }
631632 }
632633 } else {
633634 if (twotracksconfigs.confUse1stand3rd ) {
634635 if ((f3d[1 ] >= outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] < outsideref && f3d[2 ] < outsideref)) {
635- sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
636+ sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
636637 }
637638 } else if (twotracksconfigs.confUse2ndand4th ) {
638639 if ((f3d[1 ] < outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] >= outsideref && f3d[2 ] < outsideref)) {
639- sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
640+ sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
640641 }
641642 }
642643 }
643644 if (twotracksconfigs.confIsMC || twotracksconfigs.confUse3D ) {
644645 float weight = 1 .0f ;
645- sameEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, confIsIden);
646+ sameEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs. confIsIden );
646647 }
647648 if (twotracksconfigs.confIsFillAngqLCMS ) {
648649 kv = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ] + f3d[3 ] * f3d[3 ]);
@@ -652,30 +653,30 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
652653 }
653654
654655 case 3 : {
655- f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, confIsIden);
656+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs. confIsIden );
656657 qTmin = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ]);
657658 if (!twotracksconfigs.confUseCCImCut ) {
658659 if (!twotracksconfigs.confUseMinqTcut ) {
659- sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
660+ sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
660661 } else {
661662 if (qTmin > twotracksconfigs.confMinqTcut ) {
662- sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
663+ sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
663664 }
664665 }
665666 } else {
666667 if (twotracksconfigs.confUse1stand3rd ) {
667668 if ((f3d[1 ] >= outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] < outsideref && f3d[2 ] < outsideref)) {
668- sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
669+ sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
669670 }
670671 } else if (twotracksconfigs.confUse2ndand4th ) {
671672 if ((f3d[1 ] < outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] >= outsideref && f3d[2 ] < outsideref)) {
672- sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
673+ sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
673674 }
674675 }
675676 }
676677 if (twotracksconfigs.confIsMC || twotracksconfigs.confUse3D ) {
677678 float weight = 1 .0f ;
678- sameEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, confIsIden);
679+ sameEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs. confIsIden );
679680 }
680681 if (twotracksconfigs.confIsFillAngqLCMS ) {
681682 kv = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ] + f3d[3 ] * f3d[3 ]);
@@ -820,7 +821,7 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
820821 const auto & pdgParticleTwo = pdg->GetParticle (pdgCodePartTwo);
821822 if (pdgParticleOne && pdgParticleTwo && (pdgCodePartOne == trackonefilter.confPDGCodePartOne ) && (pdgCodePartTwo == tracktwofilter.confPDGCodePartTwo )) {
822823 float kT = FemtoUniverseMath::getkT (p1, mass1, p2, mass2);
823- sameEventMultCont.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
824+ sameEventMultCont.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs. confIsIden );
824825 }
825826 }
826827 } else {
@@ -837,21 +838,33 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
837838 std::vector<double > f3d;
838839 if (pdgParticleOne && pdgParticleTwo && (pdgCodePartOne == trackonefilter.confPDGCodePartOne ) && (pdgCodePartTwo == tracktwofilter.confPDGCodePartTwo )) {
839840
841+ auto part1 = p1;
842+ auto part2 = p2;
843+
844+ if (rand > 0.5 ) {
845+ part1 = p2;
846+ part2 = p1;
847+ }
848+
840849 switch (ContType) {
841850 case 2 : {
842- if (rand > 0.5 ) {
843- sameEventMultContPP.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
844- } else if (rand <= 0.5 ) {
845- sameEventMultContPP.fillMultNumDen (p2, p1, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
851+ if (twotracksconfigs.confIs1D ) {
852+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs.confIsIden , twotracksconfigs.confIsWeight );
853+ float weight = f3d[5 ];
854+ sameEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs.confIsIden );
855+ } else {
856+ sameEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs.confIsIden );
846857 }
847858 break ;
848859 }
849860
850861 case 3 : {
851- if (rand > 0.5 ) {
852- sameEventMultContMM.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
853- } else if (rand <= 0.5 ) {
854- sameEventMultContMM.fillMultNumDen (p2, p1, femto_universe_sh_container::EventType::same, 2 , multCol, kT , confIsIden);
862+ if (twotracksconfigs.confIs1D ) {
863+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs.confIsIden , twotracksconfigs.confIsWeight );
864+ float weight = f3d[5 ];
865+ sameEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs.confIsIden );
866+ } else {
867+ sameEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::same, 2 , multCol, kT , twotracksconfigs.confIsIden );
855868 }
856869 break ;
857870 }
@@ -965,7 +978,6 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
965978 auto part2 = p2;
966979
967980 if (rand > 0.5 ) {
968-
969981 part1 = p2;
970982 part2 = p1;
971983 }
@@ -977,39 +989,35 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
977989
978990 switch (ContType) {
979991 case 1 : {
980- if (rand > 0.5 ) {
981- mixedEventMultCont.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
982- } else {
983- mixedEventMultCont.fillMultNumDen (part2, part1, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
984- }
992+ mixedEventMultCont.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs.confIsIden );
985993 break ;
986994 }
987995
988996 case 2 : {
989- f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, confIsIden);
997+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs. confIsIden );
990998 qTmin = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ]);
991999 if (!twotracksconfigs.confUseCCImCut ) {
9921000 if (!twotracksconfigs.confUseMinqTcut ) {
993- mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1001+ mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
9941002 } else {
9951003 if (qTmin > twotracksconfigs.confMinqTcut ) {
996- mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1004+ mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
9971005 }
9981006 }
9991007 } else {
10001008 if (twotracksconfigs.confUse1stand3rd ) {
10011009 if ((f3d[1 ] >= outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] < outsideref && f3d[2 ] < outsideref)) {
1002- mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1010+ mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10031011 }
10041012 } else if (twotracksconfigs.confUse2ndand4th ) {
10051013 if ((f3d[1 ] < outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] >= outsideref && f3d[2 ] < outsideref)) {
1006- mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1014+ mixedEventMultContPP.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10071015 }
10081016 }
10091017 }
10101018 if (twotracksconfigs.confIsMC || twotracksconfigs.confUse3D ) {
10111019 float weight = 1 .0f ;
1012- mixedEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, confIsIden);
1020+ mixedEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs. confIsIden );
10131021 }
10141022
10151023 if (twotracksconfigs.confIsFillAngqLCMS ) {
@@ -1020,30 +1028,30 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
10201028 }
10211029
10221030 case 3 : {
1023- f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, confIsIden);
1031+ f3d = FemtoUniverseMath::newpairfunc (part1, mass1, part2, mass2, twotracksconfigs. confIsIden );
10241032 qTmin = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ]);
10251033 if (!twotracksconfigs.confUseCCImCut ) {
10261034 if (!twotracksconfigs.confUseMinqTcut ) {
1027- mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1035+ mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10281036 } else {
10291037 if (qTmin > twotracksconfigs.confMinqTcut ) {
1030- mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1038+ mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10311039 }
10321040 }
10331041 } else {
10341042 if (twotracksconfigs.confUse1stand3rd ) {
10351043 if ((f3d[1 ] >= outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] < outsideref && f3d[2 ] < outsideref)) {
1036- mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1044+ mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10371045 }
10381046 } else if (twotracksconfigs.confUse2ndand4th ) {
10391047 if ((f3d[1 ] < outsideref && f3d[2 ] >= outsideref) || (f3d[1 ] >= outsideref && f3d[2 ] < outsideref)) {
1040- mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1048+ mixedEventMultContMM.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
10411049 }
10421050 }
10431051 }
10441052 if (twotracksconfigs.confIsMC || twotracksconfigs.confUse3D ) {
10451053 float weight = 1 .0f ;
1046- mixedEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, confIsIden);
1054+ mixedEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs. confIsIden );
10471055 }
10481056 if (twotracksconfigs.confIsFillAngqLCMS ) {
10491057 kv = std::sqrt (f3d[1 ] * f3d[1 ] + f3d[2 ] * f3d[2 ] + f3d[3 ] * f3d[3 ]);
@@ -1250,32 +1258,39 @@ struct femtoUniversePairTaskTrackTrackSpherHarMultKtExtended {
12501258 float kT = FemtoUniverseMath::getkT (p1, mass1, p2, mass2);
12511259 double rand;
12521260 rand = randgen->Rndm ();
1261+ std::vector<double > f3d;
1262+
12531263 if (pdgParticleOne && pdgParticleTwo && (pdgCodePartOne == trackonefilter.confPDGCodePartOne ) && (pdgCodePartTwo == tracktwofilter.confPDGCodePartTwo )) {
12541264
1265+ auto part1 = p1;
1266+ auto part2 = p2;
1267+
1268+ if (rand > 0.5 ) {
1269+ part1 = p2;
1270+ part2 = p1;
1271+ }
12551272 switch (ContType) {
12561273 case 1 : {
1257- if (rand > 0.5 ) {
1258- mixedEventMultCont.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1259- } else {
1260- mixedEventMultCont.fillMultNumDen (p2, p1, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1261- }
1274+ mixedEventMultCont.fillMultNumDen (part1, part2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs.confIsIden );
12621275 break ;
12631276 }
12641277
12651278 case 2 : {
1266- if (rand > 0.5 ) {
1267- mixedEventMultContPP.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1279+ if (twotracksconfigs.confIs1D ) {
1280+ float weight = 1.0 ;
1281+ mixedEventCont1D_PP.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs.confIsIden );
12681282 } else {
1269- mixedEventMultContPP.fillMultNumDen (p2, p1 , femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1283+ mixedEventMultContPP.fillMultNumDen (part1, part2 , femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
12701284 }
12711285 break ;
12721286 }
12731287
12741288 case 3 : {
1275- if (rand > 0.5 ) {
1276- mixedEventMultContMM.fillMultNumDen (p1, p2, femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1289+ if (twotracksconfigs.confIs1D ) {
1290+ float weight = 1.0 ;
1291+ mixedEventCont1D_MM.setPair <isMC>(part1, part2, multCol, twotracksconfigs.confUse3D , weight, twotracksconfigs.confIsIden );
12771292 } else {
1278- mixedEventMultContMM.fillMultNumDen (p2, p1 , femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , confIsIden);
1293+ mixedEventMultContMM.fillMultNumDen (part1, part2 , femto_universe_sh_container::EventType::mixed, 2 , multCol, kT , twotracksconfigs. confIsIden );
12791294 }
12801295 break ;
12811296 }
0 commit comments