Skip to content

Commit 4d25047

Browse files
authored
[PWGEM,PWGEM-36] Pi0Flow: Add DeltaEtaDeltaPhiMinvPtCent histograms f… (#18212)
1 parent 11b3b49 commit 4d25047

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

‎PWGEM/PhotonMeson/Tasks/taskPi0FlowEMC.cxx‎

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)