@@ -220,7 +220,6 @@ struct TaskPi0FlowEMC {
220220 Configurable<float > minOpenAngle{" minOpenAngle" , 0.0202 , " apply min opening angle. Default value one EMCal cell" };
221221 Configurable<bool > enableTanThetadPhi{" enableTanThetadPhi" , false , " flag to turn cut opening angle in delta theta delta phi on/off" };
222222 Configurable<float > minTanThetadPhi{" minTanThetadPhi" , 4 ., " apply min opening angle in delta theta delta phi to cut on late conversion" };
223- Configurable<float > maxEnergyAsymmetry{" maxEnergyAsymmetry" , 1 ., " apply max energy asymmetry for meson candidate" };
224223 Configurable<bool > cfgEnableQA{" cfgEnableQA" , false , " flag to turn QA plots on/off" };
225224 ConfigurableAxis thConfigAxisTanThetaPhi{" thConfigAxisTanThetaPhi" , {180 , -90 .f , 90 .f }, " " };
226225 } mesonConfig;
@@ -420,6 +419,12 @@ struct TaskPi0FlowEMC {
420419 const AxisSpec thnAxisMixingEP{mixingConfig.cfgEPBins , Form (" cos(%d#varphi)" , harmonic.value )};
421420 const AxisSpec thAxisEtaPhiAngle{thConfigAxisEtaPhiAngle, " atan2(#Delta#eta,#Delta#varphi) (rad)" };
422421
422+ const AxisSpec thnQaAxisMinv{16 , 0 , 0.8 , " #it{M}_{#gamma#gamma} (GeV/#it{c}^{2})" }; // bin witdh 0.05 GeV/c^2
423+ const AxisSpec thnQaAxisPt{10 , 0 , 20 ., " #it{p}_{T} (GeV/#it{c})" }; // bin width 2 GeV/c
424+ const AxisSpec thnQaAxisDeltaEta{20 , -1.6 , 1.6 , " |#Delta#eta|" }; // bin witdh 0.16
425+ const AxisSpec thnQaAxisDeltaPhi{24 , 0 , o2::constants::math::PI , " #Delta#varphi" }; // bin width 7.5 degrees in rad
426+ const AxisSpec thnQaAxisCent{10 , 0 , 100 , " Centrality (%)" }; // bin width 10%
427+
423428 if (!doprocessM02) {
424429 registry.add (" hSparsePi0Flow" , " <v_n> vs m_{inv} vs p_T vs cent for same event" , HistType::kTProfile3D , {thnAxisInvMass, thnAxisPt, thnAxisCent});
425430 registry.add (" hSparsePi0" , " m_{inv} vs p_T vs cent for same event" , HistType::kTH3D , {thnAxisInvMass, thnAxisPt, thnAxisCent});
@@ -474,6 +479,8 @@ struct TaskPi0FlowEMC {
474479 registry.add (" mesonQA/hAlphaPtMixed" , " Histo of meson asymmetry vs pT for mixed event" , HistType::kTH2D , {thAxisAlpha, thnAxisPt});
475480 registry.add (" mesonQA/hEtaPhiAngleMassCent" , " atan2(#Delta#eta,#Delta#varphi) vs m_{inv} vs cent, same event" , HistType::kTH3D , {thAxisEtaPhiAngle, thnAxisInvMass, thnAxisCent});
476481 registry.add (" mesonQA/hEtaPhiAngleMassCentMixed" , " atan2(#Delta#eta,#Delta#varphi) vs m_{inv} vs cent, mixed event" , HistType::kTH3D , {thAxisEtaPhiAngle, thnAxisInvMass, thnAxisCent});
482+ registry.add (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentSE" , " #it{m}_{inv} vs #it{p}_{T} vs #Delta#eta vs #Delta#varphi vs cent for same event" , HistType::kTHnF , {thnQaAxisMinv, thnQaAxisPt, thnQaAxisDeltaEta, thnQaAxisDeltaPhi, thnQaAxisCent});
483+ registry.add (" mesonQA/hDeltaEtaDeltaPhiMinvPtCentME" , " #it{m}_{inv} vs #it{p}_{T} vs #Delta#eta vs #Delta#varphi vs cent for mixed event" , HistType::kTHnF , {thnQaAxisMinv, thnQaAxisPt, thnQaAxisDeltaEta, thnQaAxisDeltaPhi, thnQaAxisCent});
477484 }
478485
479486 if (correctionConfig.doEMCalCalib .value ) {
@@ -1094,6 +1101,7 @@ struct TaskPi0FlowEMC {
10941101 registry.fill (HIST (" mesonQA/hTanThetaPhi" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
10951102 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
10961103 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));
10971105 }
10981106 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
10991107 registry.fill (HIST (" hMesonCuts" ), 5 );
@@ -1254,6 +1262,7 @@ struct TaskPi0FlowEMC {
12541262 registry.fill (HIST (" mesonQA/hTanThetaPhiMixed" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
12551263 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
12561264 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));
12571266 }
12581267 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
12591268 registry.fill (HIST (" hMesonCutsMixed" ), 5 );
@@ -1326,6 +1335,7 @@ struct TaskPi0FlowEMC {
13261335
13271336 float dTheta = v1.Theta () - v2.Theta ();
13281337 float dPhi = v1.Phi () - v2.Phi ();
1338+ float dEta = v1.Eta () - v2.Eta ();
13291339 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
13301340 registry.fill (HIST (" hMesonCuts" ), 1 );
13311341 if (openingAngle <= mesonConfig.minOpenAngle ) {
@@ -1347,6 +1357,8 @@ struct TaskPi0FlowEMC {
13471357 registry.fill (HIST (" mesonQA/hInvMassPt" ), vMeson.M (), vMeson.Pt ());
13481358 registry.fill (HIST (" mesonQA/hTanThetaPhi" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
13491359 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
1360+ 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));
13501362 }
13511363 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
13521364 registry.fill (HIST (" hMesonCuts" ), 5 );
@@ -1422,6 +1434,7 @@ struct TaskPi0FlowEMC {
14221434
14231435 float dTheta = v1.Theta () - v2.Theta ();
14241436 float dPhi = v1.Phi () - v2.Phi ();
1437+ float dEta = v1.Eta () - v2.Eta ();
14251438 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
14261439
14271440 registry.fill (HIST (" hMesonCutsMixed" ), 1 );
@@ -1441,6 +1454,8 @@ struct TaskPi0FlowEMC {
14411454 registry.fill (HIST (" mesonQA/hInvMassPtMixed" ), vMeson.M (), vMeson.Pt ());
14421455 registry.fill (HIST (" mesonQA/hTanThetaPhiMixed" ), vMeson.M (), getAngleDegree (std::atan (dTheta / dPhi)));
14431456 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
1457+ 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));
14441459 }
14451460 if (mesonConfig.enableTanThetadPhi .value && mesonConfig.minTanThetadPhi > std::fabs (getAngleDegree (std::atan (dTheta / dPhi)))) {
14461461 registry.fill (HIST (" hMesonCutsMixed" ), 5 );
@@ -1540,6 +1555,8 @@ struct TaskPi0FlowEMC {
15401555 ROOT ::Math::PtEtaPhiMVector v2 (g2.corrPt (), g2.eta (), g2.phi (), 0 .);
15411556 ROOT ::Math::PtEtaPhiMVector vMeson = v1 + v2;
15421557
1558+ float dPhi = v1.Phi () - v2.Phi ();
1559+ float dEta = v1.Eta () - v2.Eta ();
15431560 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
15441561
15451562 registry.fill (HIST (" hMesonCuts" ), 1 );
@@ -1558,6 +1575,8 @@ struct TaskPi0FlowEMC {
15581575 if (mesonConfig.cfgEnableQA .value ) {
15591576 registry.fill (HIST (" mesonQA/hInvMassPt" ), vMeson.M (), vMeson.Pt ());
15601577 registry.fill (HIST (" mesonQA/hAlphaPt" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
1578+ 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));
15611580 }
15621581 registry.fill (HIST (" hMesonCuts" ), 6 );
15631582 runFlowAnalysis<0 >(collision, vMeson);
@@ -1611,6 +1630,8 @@ struct TaskPi0FlowEMC {
16111630 ROOT ::Math::PtEtaPhiMVector v2 (g2.corrPt (), g2.eta (), g2.phi (), 0 .);
16121631 ROOT ::Math::PtEtaPhiMVector vMeson = v1 + v2;
16131632
1633+ float dPhi = v1.Phi () - v2.Phi ();
1634+ float dEta = v1.Eta () - v2.Eta ();
16141635 float openingAngle = std::acos (v1.Vect ().Dot (v2.Vect ()) / (v1.P () * v2.P ()));
16151636
16161637 registry.fill (HIST (" hMesonCutsMixed" ), 1 );
@@ -1629,6 +1650,8 @@ struct TaskPi0FlowEMC {
16291650 if (mesonConfig.cfgEnableQA .value ) {
16301651 registry.fill (HIST (" mesonQA/hInvMassPtMixed" ), vMeson.M (), vMeson.Pt ());
16311652 registry.fill (HIST (" mesonQA/hAlphaPtMixed" ), (v1.E () - v2.E ()) / (v1.E () + v2.E ()), vMeson.Pt ());
1653+ 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));
16321655 }
16331656 registry.fill (HIST (" hMesonCutsMixed" ), 6 );
16341657 runFlowAnalysis<2 >(c1, vMeson);
0 commit comments