@@ -120,6 +120,7 @@ struct Kstarqa {
120120 Configurable<bool > isApplyCutsOnMother{" isApplyCutsOnMother" , false , " Enable additional cuts on Kstar mother" };
121121 Configurable<float > cMaxPtMotherCut{" cMaxPtMotherCut" , 15.0 , " Maximum pt of mother cut" };
122122 Configurable<float > cMaxMinvMotherCut{" cMaxMinvMotherCut" , 1.5 , " Maximum mass of mother cut" };
123+ Configurable<float > rapidityMotherData{" rapidityMotherData" , 0.5 , " Maximum rapidity of mother" };
123124 Configurable<bool > isPDGCheckMC{" isPDGCheckMC" , true , " Check PDG code in MC (false for MC closure test)" };
124125
125126 // PID selections
@@ -135,7 +136,7 @@ struct Kstarqa {
135136 // Other fixed variables
136137 float lowPtCutPID = 0.5 ;
137138 int noOfDaughters = 2 ;
138- float rapidityMotherData = 0.5 ;
139+ // float rapidityMotherData = 0.5;
139140
140141 } selectionConfig;
141142
@@ -170,7 +171,7 @@ struct Kstarqa {
170171 Configurable<bool > onlyTOFHIT{" onlyTOFHIT" , false , " accept only TOF hit tracks at high pt" };
171172 Configurable<bool > onlyTPC{" onlyTPC" , true , " only TPC tracks" };
172173 Configurable<int > cRotations{" cRotations" , 3 , " Number of random rotations in the rotational background" };
173- Configurable<int > cSelectMultEstimator{" cSelectMultEstimator" , 0 , " Select multiplicity estimator: 0 - FT0M, 1 - FT0A, 2 - FT0C" };
174+ Configurable<int > cSelectMultEstimator{" cSelectMultEstimator" , 0 , " Select multiplicity estimator: 0 - FT0M, 1 - FT0A, 2 - FT0C, 3 - FV0A " };
174175 Configurable<bool > applyRecMotherRapidity{" applyRecMotherRapidity" , true , " Apply rapidity cut on reconstructed mother track" };
175176 Configurable<bool > applypTdepPID{" applypTdepPID" , false , " Apply pT dependent PID" };
176177
@@ -696,7 +697,7 @@ struct Kstarqa {
696697
697698 auto cosThetaStarHelicityRot = motherRot.Vect ().Dot (daughterRotCM.Vect ()) / (std::sqrt (daughterRotCM.Vect ().Mag2 ()) * std::sqrt (motherRot.Vect ().Mag2 ()));
698699
699- if (calcRotational && motherRot.Rapidity () < selectionConfig.rapidityMotherData )
700+ if (calcRotational && std::abs ( motherRot.Rapidity () ) < selectionConfig.rapidityMotherData )
700701 hInvMass.fill (HIST (" h3KstarInvMassRotated" ), multiplicity, motherRot.Pt (), motherRot.M (), cosThetaStarHelicityRot);
701702 }
702703 } else if (isMix && std::abs (mother.Rapidity ()) < selectionConfig.rapidityMotherData ) {
@@ -1004,34 +1005,34 @@ struct Kstarqa {
10041005 ConfigurableAxis axisMultiplicity{" axisMultiplicity" , {2000 , 0 , 10000 }, " TPC multiplicity axis for ME mixing" };
10051006
10061007 // using BinningTypeTPCMultiplicity = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultTPC>;
1007- using BinningTypeCentralityM = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
1008- using BinningTypeVertexContributor = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
1008+ using BinningTypeFT0M = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
10091009 using BinningTypeFT0A = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0A>;
1010+ using BinningTypeFT0C = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
10101011 using BinningTypeFV0A = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFV0A>;
10111012
10121013 using BinningTypeMCFT0M = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
10131014 using BinningTypeMCFT0A = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0A>;
10141015 using BinningTypeMCFT0C = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
10151016 using BinningTypeMCFV0A = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFV0A>;
10161017
1017- BinningTypeVertexContributor binningOnPositions{{axisVertex, axisMultiplicity}, true };
1018- BinningTypeCentralityM binningOnCentrality{{axisVertex, axisMultiplicity}, true };
1018+ BinningTypeFT0M binningOnFT0M{{axisVertex, axisMultiplicity}, true };
10191019 BinningTypeFT0A binningOnFT0A{{axisVertex, axisMultiplicity}, true };
1020+ BinningTypeFT0C binningOnFT0C{{axisVertex, axisMultiplicity}, true };
10201021 BinningTypeFV0A binningOnFV0A{{axisVertex, axisMultiplicity}, true };
10211022
10221023 BinningTypeMCFT0M binningOnMCFT0M{{axisVertex, axisMultiplicity}, true };
10231024 BinningTypeMCFT0A binningOnMCFT0A{{axisVertex, axisMultiplicity}, true };
10241025 BinningTypeMCFT0C binningOnMCFT0C{{axisVertex, axisMultiplicity}, true };
10251026 BinningTypeMCFV0A binningOnMCFV0A{{axisVertex, axisMultiplicity}, true };
10261027
1027- SameKindPair<EventCandidates, TrackCandidates, BinningTypeVertexContributor > pair1{binningOnPositions , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1028- SameKindPair<EventCandidates, TrackCandidates, BinningTypeCentralityM > pair2{binningOnCentrality , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1029- SameKindPair<EventCandidates, TrackCandidates, BinningTypeFT0A > pair3{binningOnFT0A , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1028+ SameKindPair<EventCandidates, TrackCandidates, BinningTypeFT0M > pair1{binningOnFT0M , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1029+ SameKindPair<EventCandidates, TrackCandidates, BinningTypeFT0A > pair2{binningOnFT0A , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1030+ SameKindPair<EventCandidates, TrackCandidates, BinningTypeFT0C > pair3{binningOnFT0C , selectionConfig.cfgNoMixedEvents , -1 , &cache};
10301031 SameKindPair<EventCandidates, TrackCandidates, BinningTypeFV0A> pair4{binningOnFV0A, selectionConfig.cfgNoMixedEvents , -1 , &cache};
10311032
10321033 SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFT0M> pairmc1{binningOnMCFT0M, selectionConfig.cfgNoMixedEvents , -1 , &cache};
1033- SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFT0C > pairmc2{binningOnMCFT0C , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1034- SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFT0A > pairmc3{binningOnMCFT0A , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1034+ SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFT0A > pairmc2{binningOnMCFT0A , selectionConfig.cfgNoMixedEvents , -1 , &cache};
1035+ SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFT0C > pairmc3{binningOnMCFT0C , selectionConfig.cfgNoMixedEvents , -1 , &cache};
10351036 SameKindPair<EventCandidatesMC, TrackCandidatesMC, BinningTypeMCFV0A> pairmc4{binningOnMCFV0A, selectionConfig.cfgNoMixedEvents , -1 , &cache};
10361037
10371038 void processME (EventCandidatesMix const &, TrackCandidates const &)
@@ -1430,7 +1431,19 @@ struct Kstarqa {
14301431 if (!selectionEvent (collision, true )) {
14311432 continue ;
14321433 }
1433- multiplicity = collision.centFT0M ();
1434+ // multiplicity = collision.centFT0M();
1435+
1436+ if (cSelectMultEstimator == kFT0M ) {
1437+ multiplicity = collision.centFT0M ();
1438+ } else if (cSelectMultEstimator == kFT0A ) {
1439+ multiplicity = collision.centFT0A ();
1440+ } else if (cSelectMultEstimator == kFT0C ) {
1441+ multiplicity = collision.centFT0C ();
1442+ } else if (cSelectMultEstimator == kFV0A ) {
1443+ multiplicity = collision.centFV0A ();
1444+ } else {
1445+ multiplicity = collision.centFT0M (); // default
1446+ }
14341447 hInvMass.fill (HIST (" h1GenMult" ), multiplicity);
14351448
14361449 int occupancy = collision.trackOccupancyInTimeRange ();
@@ -1527,7 +1540,20 @@ struct Kstarqa {
15271540 for (const auto & RecCollision : recCollisions) {
15281541 if (!selectionEvent (RecCollision, false ))
15291542 continue ;
1530- multiplicity1 = RecCollision.centFT0M ();
1543+ // multiplicity1 = RecCollision.centFT0M();
1544+
1545+ if (cSelectMultEstimator == kFT0M ) {
1546+ multiplicity1 = RecCollision.centFT0M ();
1547+ } else if (cSelectMultEstimator == kFT0A ) {
1548+ multiplicity1 = RecCollision.centFT0A ();
1549+ } else if (cSelectMultEstimator == kFT0C ) {
1550+ multiplicity1 = RecCollision.centFT0C ();
1551+ } else if (cSelectMultEstimator == kFV0A ) {
1552+ multiplicity1 = RecCollision.centFV0A ();
1553+ } else {
1554+ multiplicity1 = RecCollision.centFT0M (); // default
1555+ }
1556+
15311557 isSelectedEvent = true ;
15321558 }
15331559
@@ -1561,7 +1587,22 @@ struct Kstarqa {
15611587 if (selectionConfig.isINELgt0 && !collision.isInelGt0 ()) {
15621588 return ;
15631589 }
1564- multiplicity = collision.centFT0M ();
1590+ // multiplicity = collision.centFT0M();
1591+
1592+ multiplicity = -1.0 ;
1593+
1594+ if (cSelectMultEstimator == kFT0M ) {
1595+ multiplicity = collision.centFT0M ();
1596+ } else if (cSelectMultEstimator == kFT0A ) {
1597+ multiplicity = collision.centFT0A ();
1598+ } else if (cSelectMultEstimator == kFT0C ) {
1599+ multiplicity = collision.centFT0C ();
1600+ } else if (cSelectMultEstimator == kFV0A ) {
1601+ multiplicity = collision.centFV0A ();
1602+ } else {
1603+ multiplicity = collision.centFT0M (); // default
1604+ }
1605+
15651606 hInvMass.fill (HIST (" hAllRecCollisions" ), multiplicity);
15661607
15671608 if (!selectionEvent (collision, false )) {
@@ -1592,7 +1633,22 @@ struct Kstarqa {
15921633 // return;
15931634 // }
15941635
1595- multiplicity = collision.centFT0M ();
1636+ // multiplicity = collision.centFT0M();
1637+
1638+ multiplicity = -1.0 ;
1639+
1640+ if (cSelectMultEstimator == kFT0M ) {
1641+ multiplicity = collision.centFT0M ();
1642+ } else if (cSelectMultEstimator == kFT0A ) {
1643+ multiplicity = collision.centFT0A ();
1644+ } else if (cSelectMultEstimator == kFT0C ) {
1645+ multiplicity = collision.centFT0C ();
1646+ } else if (cSelectMultEstimator == kFV0A ) {
1647+ multiplicity = collision.centFV0A ();
1648+ } else {
1649+ multiplicity = collision.centFT0M (); // default
1650+ }
1651+
15961652 hInvMass.fill (HIST (" h1RecMult" ), multiplicity);
15971653
15981654 auto oldindex = -999 ;
0 commit comments