@@ -1077,7 +1077,12 @@ struct TaskPi0FlowEMC {
10771077
10781078 float dTheta = v1.Theta () - v2.Theta ();
10791079 float dPhi = v1.Phi () - v2.Phi ();
1080+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
10801081 float dEta = v1.Eta () - v2.Eta ();
1082+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1083+ dPhiWrapped = -dPhiWrapped;
1084+ dEta = -dEta;
1085+ }
10811086 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
10821087
10831088 registry.fill (HIST (" hMesonCuts" ), 1 );
@@ -1101,7 +1106,7 @@ struct TaskPi0FlowEMC {
11011106 registry.fill (HIST (" mesonQA/hTanThetaPhi" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
11021107 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
11031108 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCent" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (collision));
1104- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (collision));
1109+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (collision));
11051110 }
11061111 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
11071112 registry.fill (HIST (" hMesonCuts" ), 5 );
@@ -1241,7 +1246,12 @@ struct TaskPi0FlowEMC {
12411246
12421247 float dTheta = v1.Theta () - v2.Theta ();
12431248 float dPhi = v1.Phi () - v2.Phi ();
1244- float dEta = v1.Eta () - eta2;
1249+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
1250+ float dEta = v1.Eta () - v2.Eta ();
1251+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1252+ dPhiWrapped = -dPhiWrapped;
1253+ dEta = -dEta;
1254+ }
12451255 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
12461256
12471257 registry.fill (HIST (" hMesonCutsMixed" ), 1 );
@@ -1262,7 +1272,7 @@ struct TaskPi0FlowEMC {
12621272 registry.fill (HIST (" mesonQA/hTanThetaPhiMixed" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
12631273 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
12641274 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCentMixed" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (c1));
1265- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (c1));
1275+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (c1));
12661276 }
12671277 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
12681278 registry.fill (HIST (" hMesonCutsMixed" ), 5 );
@@ -1335,7 +1345,12 @@ struct TaskPi0FlowEMC {
13351345
13361346 float dTheta = v1.Theta () - v2.Theta ();
13371347 float dPhi = v1.Phi () - v2.Phi ();
1348+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
13381349 float dEta = v1.Eta () - v2.Eta ();
1350+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1351+ dPhiWrapped = -dPhiWrapped;
1352+ dEta = -dEta;
1353+ }
13391354 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
13401355 registry.fill (HIST (" hMesonCuts" ), 1 );
13411356 if (openingAngle <= mesonConfig.minOpenAngle ) {
@@ -1358,7 +1373,7 @@ struct TaskPi0FlowEMC {
13581373 registry.fill (HIST (" mesonQA/hTanThetaPhi" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
13591374 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
13601375 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCent" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (collision));
1361- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (collision));
1376+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (collision));
13621377 }
13631378 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
13641379 registry.fill (HIST (" hMesonCuts" ), 5 );
@@ -1434,7 +1449,12 @@ struct TaskPi0FlowEMC {
14341449
14351450 float dTheta = v1.Theta () - v2.Theta ();
14361451 float dPhi = v1.Phi () - v2.Phi ();
1452+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
14371453 float dEta = v1.Eta () - v2.Eta ();
1454+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1455+ dPhiWrapped = -dPhiWrapped;
1456+ dEta = -dEta;
1457+ }
14381458 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
14391459
14401460 registry.fill (HIST (" hMesonCutsMixed" ), 1 );
@@ -1455,7 +1475,7 @@ struct TaskPi0FlowEMC {
14551475 registry.fill (HIST (" mesonQA/hTanThetaPhiMixed" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
14561476 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
14571477 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCentMixed" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (c1));
1458- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (c1));
1478+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (c1));
14591479 }
14601480 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
14611481 registry.fill (HIST (" hMesonCutsMixed" ), 5 );
@@ -1556,7 +1576,12 @@ struct TaskPi0FlowEMC {
15561576 ROOT ::Math::PtEtaPhiMVector vMeson = v1 + v2;
15571577
15581578 float dPhi = v1.Phi () - v2.Phi ();
1579+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
15591580 float dEta = v1.Eta () - v2.Eta ();
1581+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1582+ dPhiWrapped = -dPhiWrapped;
1583+ dEta = -dEta;
1584+ }
15601585 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
15611586
15621587 registry.fill (HIST (" hMesonCuts" ), 1 );
@@ -1576,7 +1601,7 @@ struct TaskPi0FlowEMC {
15761601 registry.fill (HIST (" mesonQA/hInvMassPt" ), vMeson.M (), vMeson.Pt ());
15771602 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
15781603 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCent" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (collision));
1579- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (collision));
1604+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (collision));
15801605 }
15811606 registry.fill (HIST (" hMesonCuts" ), 6 );
15821607 runFlowAnalysis<0 >(collision, vMeson);
@@ -1631,7 +1656,12 @@ struct TaskPi0FlowEMC {
16311656 ROOT ::Math::PtEtaPhiMVector vMeson = v1 + v2;
16321657
16331658 float dPhi = v1.Phi () - v2.Phi ();
1659+ float dPhiWrapped = RecoDecay::constrainAngle (v1.Phi () - v2.Phi (), -o2::constants::math::PI ); // wrap to [-π, π)
16341660 float dEta = v1.Eta () - v2.Eta ();
1661+ if (dPhiWrapped < 0 .) { // swap the labels: flip BOTH signs
1662+ dPhiWrapped = -dPhiWrapped;
1663+ dEta = -dEta;
1664+ }
16351665 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
16361666
16371667 registry.fill (HIST (" hMesonCutsMixed" ), 1 );
@@ -1651,7 +1681,7 @@ struct TaskPi0FlowEMC {
16511681 registry.fill (HIST (" mesonQA/hInvMassPtMixed" ), vMeson.M (), vMeson.Pt ());
16521682 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
16531683 registry.fill (HIST (" mesonQA/hEtaPhiAngleMassCent" ), RecoDecay::constrainAngle (std::atan2 (dEta, dPhi), -o2::constants::math::PI ), vMeson.M (), getCentrality (c1));
1654- registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, std::fabs ( RecoDecay::constrainAngle (dPhi, -o2::constants::math:: PI )) , getCentrality (c1));
1684+ registry.fill (HIST (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" ), vMeson.M (), vMeson.Pt (), dEta, dPhiWrapped , getCentrality (c1));
16551685 }
16561686 registry.fill (HIST (" hMesonCutsMixed" ), 6 );
16571687 runFlowAnalysis<2 >(c1, vMeson);
0 commit comments