Skip to content

Commit 7f57201

Browse files
authored
Add files via upload
1 parent d4b09c8 commit 7f57201

1 file changed

Lines changed: 33 additions & 21 deletions

File tree

PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,10 @@ struct FlowGfwOmegaXi {
116116
O2_DEFINE_CONFIGURABLE(cfgv0_dcadaupitopv, float, 0.01f, "minimum daughter pion DCA to PV")
117117
O2_DEFINE_CONFIGURABLE(cfgv0_dcadauprtopv, float, 0.1f, "minimum daughter proton DCA to PV")
118118
O2_DEFINE_CONFIGURABLE(cfgv0_dcav0dau, float, 0.5f, "maximum DCA among V0 daughters")
119-
O2_DEFINE_CONFIGURABLE(cfgv0_mk0swindow, float, 0.1f, "Invariant mass window of K0s")
120-
O2_DEFINE_CONFIGURABLE(cfgv0_mlambdawindow, float, 0.04f, "Invariant mass window of lambda")
119+
O2_DEFINE_CONFIGURABLE(cfgv0_mk0slow, float, 0.4f, "minimun invariant mass cut of K0s")
120+
O2_DEFINE_CONFIGURABLE(cfgv0_mk0shigh, float, 0.6f, "maximum invariant mass cut of K0s")
121+
O2_DEFINE_CONFIGURABLE(cfgv0_mlambdalow, float, 1.08f, "minimun invariant mass cut of lambda")
122+
O2_DEFINE_CONFIGURABLE(cfgv0_mlambdahigh, float, 1.16f, "maximum invariant mass cut of lambda")
121123
O2_DEFINE_CONFIGURABLE(cfgv0_ArmPodocut, float, 0.2f, "Armenteros Podolski cut for K0")
122124
O2_DEFINE_CONFIGURABLE(cfgv0_compmassrejLambda, float, 0.01f, "competing mass rejection of lambda")
123125
O2_DEFINE_CONFIGURABLE(cfgv0_compmassrejK0s, float, 0.005f, "competing mass rejection of K0s")
@@ -213,6 +215,7 @@ struct FlowGfwOmegaXi {
213215
O2_DEFINE_CONFIGURABLE(cfgOutputLocDenWeights, bool, false, "Fill and output local density weights")
214216
O2_DEFINE_CONFIGURABLE(cfgOutputQA, bool, false, "do QA")
215217
O2_DEFINE_CONFIGURABLE(cfgUseT0MCent, bool, false, "Use T0M cent")
218+
O2_DEFINE_CONFIGURABLE(cfgcheckhole, bool, true, "Check and reject vtxz-eta-phi hole")
216219

217220
ConfigurableAxis cfgaxisVertex{"cfgaxisVertex", {20, -10, 10}, "vertex axis for histograms"};
218221
ConfigurableAxis cfgaxisPhi{"cfgaxisPhi", {60, 0.0, constants::math::TwoPI}, "phi axis for histograms"};
@@ -233,7 +236,7 @@ struct FlowGfwOmegaXi {
233236
AxisSpec axisMultiplicity{{0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90}, "Centrality (%)"};
234237

235238
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
236-
Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && (aod::track::pt > trkQualityOpts.cfgCutPtPOIMin.value) && (aod::track::pt < trkQualityOpts.cfgCutPtPOIMax.value) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t)true)) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < trkQualityOpts.cfgCutDCAz.value) && (nabs(aod::track::dcaXY) < trkQualityOpts.cfgCutDCAxy.value);
239+
Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t)true)) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls);
237240

238241
using TracksPID = soa::Join<aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
239242
using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, o2::aod::TrackSelectionExtension, aod::TracksExtra, TracksPID, aod::TracksIU, aod::TracksDCA>>; // tracks filter
@@ -429,10 +432,10 @@ struct FlowGfwOmegaXi {
429432
registry.get<THnSparse>(HIST("correction/hRunNumberPhiEtaVertexXi"))->GetAxis(0)->SetBinLabel(idx, std::to_string(runNumbers[idx - 1]).c_str());
430433
registry.get<THnSparse>(HIST("correction/hRunNumberPhiEtaVertexOmega"))->GetAxis(0)->SetBinLabel(idx, std::to_string(runNumbers[idx - 1]).c_str());
431434
}
432-
registry.add("correction/hPhiEtaInvmassK0s", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisK0sMass}});
433-
registry.add("correction/hPhiEtaInvmassLambda", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisLambdaMass}});
434-
registry.add("correction/hPhiEtaInvmassXi", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisXiMass}});
435-
registry.add("correction/hPhiEtaInvmassOmega", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisOmegaMass}});
435+
registry.add("correction/hPhiEtaInvmassK0s", "", {HistType::kTHnSparseF, {cfgaxisPhi, cfgaxisEta, axisK0sMass, cfgaxisPtK0s}});
436+
registry.add("correction/hPhiEtaInvmassLambda", "", {HistType::kTHnSparseF, {cfgaxisPhi, cfgaxisEta, axisLambdaMass, cfgaxisPtLambda}});
437+
registry.add("correction/hPhiEtaInvmassXi", "", {HistType::kTHnSparseF, {cfgaxisPhi, cfgaxisEta, axisXiMass, cfgaxisPtXi}});
438+
registry.add("correction/hPhiEtaInvmassOmega", "", {HistType::kTHnSparseF, {cfgaxisPhi, cfgaxisEta, axisOmegaMass, cfgaxisPtOmega}});
436439
}
437440

438441
registry.add("hEventCount", "", {HistType::kTH1D, {{14, 0, 14}}});
@@ -959,8 +962,15 @@ struct FlowGfwOmegaXi {
959962
if (eff <= 0)
960963
return false;
961964
weight_nue = 1. / eff;
962-
if (mAcceptance.size() == static_cast<uint64_t>(nspecies))
965+
if (mAcceptance.size() == static_cast<uint64_t>(nspecies)) {
963966
weight_nua = mAcceptance[ispecies]->getNUA(track.phi(), track.eta(), vtxz);
967+
if (cfgcheckhole) {
968+
float checkleft = mAcceptance[ispecies]->getNUA(1, track.eta(), vtxz);
969+
float checkright = mAcceptance[ispecies]->getNUA(2, track.eta(), vtxz);
970+
if (weight_nua == 1 && checkleft == 1 && checkright == 1)
971+
return false;
972+
}
973+
}
964974
else
965975
weight_nua = 1;
966976
return true;
@@ -1132,6 +1142,11 @@ struct FlowGfwOmegaXi {
11321142
}
11331143
if ((track.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value) || (track.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value) || (track.itsNCls() <= trkQualityOpts.cfgChITSNCls.value))
11341144
continue;
1145+
if ((track.pt() < trkQualityOpts.cfgCutPtPOIMin.value) || (track.pt() > trkQualityOpts.cfgCutPtPOIMax.value))
1146+
continue;
1147+
if ((std::fabs(track.dcaZ()) > trkQualityOpts.cfgCutDCAz.value) || (std::fabs(track.dcaXY()) > trkQualityOpts.cfgCutDCAxy.value))
1148+
continue;
1149+
11351150
registry.fill(HIST("hPhi"), track.phi());
11361151
registry.fill(HIST("hPhicorr"), track.phi(), wacc);
11371152
registry.fill(HIST("hEta"), track.eta());
@@ -1190,7 +1205,7 @@ struct FlowGfwOmegaXi {
11901205
// K0short
11911206
if (v0.pt() > trkQualityOpts.cfgCutPtK0sMin.value && v0.pt() < trkQualityOpts.cfgCutPtK0sMax.value) {
11921207
if (v0.qtarm() / std::fabs(v0.alpha()) > v0BuilderOpts.cfgv0_ArmPodocut.value &&
1193-
std::fabs(v0.mK0Short() - o2::constants::physics::MassK0Short) < v0BuilderOpts.cfgv0_mk0swindow.value &&
1208+
v0.mK0Short() > v0BuilderOpts.cfgv0_mk0slow.value && v0.mK0Short() < v0BuilderOpts.cfgv0_mk0shigh.value &&
11941209
(std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
11951210
((std::fabs(v0.tofNSigmaK0PiPlus()) < cfgNSigma[3] || v0posdau.pt() < lowpt) && (std::fabs(v0.tofNSigmaK0PiMinus()) < cfgNSigma[3] || v0negdau.pt() < lowpt)) &&
11961211
((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Pion>(v0posdau)) < cfgNSigma[6]) || v0posdau.pt() > lowpt) && ((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Pion>(v0negdau)) < cfgNSigma[6]) || v0negdau.pt() > lowpt)) {
@@ -1203,14 +1218,14 @@ struct FlowGfwOmegaXi {
12031218
}
12041219
// Lambda and antiLambda
12051220
if (v0.pt() > trkQualityOpts.cfgCutPtLambdaMin.value && v0.pt() < trkQualityOpts.cfgCutPtLambdaMax.value) {
1206-
if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
1221+
if (v0.mLambda() > v0BuilderOpts.cfgv0_mlambdalow.value && v0.mLambda() < v0BuilderOpts.cfgv0_mlambdahigh.value &&
12071222
(std::fabs(v0posdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
12081223
((std::fabs(v0.tofNSigmaLaPr()) < cfgNSigma[4] || v0posdau.pt() < lowpt) && (std::fabs(v0.tofNSigmaLaPi()) < cfgNSigma[3] || v0negdau.pt() < lowpt)) &&
12091224
((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Proton>(v0posdau)) < cfgNSigma[7]) || v0posdau.pt() > lowpt) && ((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Pion>(v0negdau)) < cfgNSigma[6]) || v0negdau.pt() > lowpt)) {
12101225
registry.fill(HIST("InvMassLambda_all"), v0.pt(), v0.mLambda(), v0.eta(), cent);
12111226
isLambda = true;
12121227
}
1213-
if (std::fabs(v0.mAntiLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
1228+
if (v0.mAntiLambda() > v0BuilderOpts.cfgv0_mlambdalow.value && v0.mAntiLambda() < v0BuilderOpts.cfgv0_mlambdahigh.value &&
12141229
(std::fabs(v0negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
12151230
((std::fabs(v0.tofNSigmaALaPr()) < cfgNSigma[4] || v0negdau.pt() < lowpt) && (std::fabs(v0.tofNSigmaALaPi()) < cfgNSigma[3] || v0posdau.pt() < lowpt)) &&
12161231
((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Proton>(v0negdau)) < cfgNSigma[7]) || v0posdau.pt() > lowpt) && ((std::fabs(itsResponse.nSigmaITS<o2::track::PID::Pion>(v0posdau)) < cfgNSigma[6]) || v0negdau.pt() > lowpt)) {
@@ -1364,7 +1379,7 @@ struct FlowGfwOmegaXi {
13641379
th1sList[runNumber][hPhiK0scorr]->Fill(v0.phi(), wacc);
13651380
}
13661381
registry.fill(HIST("correction/hRunNumberPhiEtaVertexK0s"), matchedPosition, v0.phi(), v0.eta(), vtxz);
1367-
registry.fill(HIST("correction/hPhiEtaInvmassK0s"), v0.phi(), v0.eta(), v0.mK0Short());
1382+
registry.fill(HIST("correction/hPhiEtaInvmassK0s"), v0.phi(), v0.eta(), v0.mK0Short(), v0.pt());
13681383
}
13691384
}
13701385
if (isLambda || isALambda) {
@@ -1399,9 +1414,9 @@ struct FlowGfwOmegaXi {
13991414
}
14001415
registry.fill(HIST("correction/hRunNumberPhiEtaVertexLambda"), matchedPosition, v0.phi(), v0.eta(), vtxz);
14011416
if (isLambda)
1402-
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), matchedPosition, v0.phi(), v0.eta(), v0.mLambda());
1417+
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), v0.phi(), v0.eta(), v0.mLambda(), v0.pt());
14031418
if (isALambda)
1404-
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), matchedPosition, v0.phi(), v0.eta(), v0.mAntiLambda());
1419+
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), v0.phi(), v0.eta(), v0.mAntiLambda(), v0.pt());
14051420
}
14061421
}
14071422
}
@@ -1636,7 +1651,7 @@ struct FlowGfwOmegaXi {
16361651
th1sList[runNumber][hPhiOmegacorr]->Fill(casc.phi(), wacc);
16371652
}
16381653
registry.fill(HIST("correction/hRunNumberPhiEtaVertexOmega"), matchedPosition, casc.phi(), casc.eta(), vtxz);
1639-
registry.fill(HIST("correction/hPhiEtaInvmassOmega"), casc.phi(), casc.eta(), casc.mOmega());
1654+
registry.fill(HIST("correction/hPhiEtaInvmassOmega"), casc.phi(), casc.eta(), casc.mOmega(), casc.pt());
16401655
}
16411656
}
16421657
if (isXi) {
@@ -1666,7 +1681,7 @@ struct FlowGfwOmegaXi {
16661681
th1sList[runNumber][hPhiXicorr]->Fill(casc.phi(), wacc);
16671682
}
16681683
registry.fill(HIST("correction/hRunNumberPhiEtaVertexXi"), matchedPosition, casc.phi(), casc.eta(), vtxz);
1669-
registry.fill(HIST("correction/hPhiEtaInvmassXi"), casc.phi(), casc.eta(), casc.mXi());
1684+
registry.fill(HIST("correction/hPhiEtaInvmassXi"), casc.phi(), casc.eta(), casc.mXi(), casc.pt());
16701685
}
16711686
}
16721687
}
@@ -2244,7 +2259,6 @@ struct FlowGfwOmegaXi {
22442259
// K0short
22452260
if (std::abs(pdgCode) == kK0Short) {
22462261
if (v0.qtarm() / std::fabs(v0.alpha()) > v0BuilderOpts.cfgv0_ArmPodocut.value &&
2247-
std::fabs(v0.mK0Short() - o2::constants::physics::MassK0Short) < v0BuilderOpts.cfgv0_mk0swindow.value &&
22482262
(std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0])) {
22492263
if (cfgDoAccEffCorr)
22502264
setCurrentParticleWeights(weff, wacc, v0, vtxz, 1);
@@ -2260,8 +2274,7 @@ struct FlowGfwOmegaXi {
22602274
}
22612275
}
22622276
// Lambda and antiLambda
2263-
if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
2264-
(std::fabs(v0posdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0])) {
2277+
if ((std::fabs(v0posdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0])) {
22652278
if (std::abs(pdgCode) == kLambda0) {
22662279
if (cfgDoAccEffCorr)
22672280
setCurrentParticleWeights(weff, wacc, v0, vtxz, 2);
@@ -2275,8 +2288,7 @@ struct FlowGfwOmegaXi {
22752288
}
22762289
fGFW->Fill(v0Eta, fLambdaPtAxis->FindBin(v0Pt) - 1, v0Phi, wacc * weff * wloc, 16);
22772290
}
2278-
} else if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
2279-
(std::fabs(v0negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0])) {
2291+
} else if ((std::fabs(v0negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0])) {
22802292
if (std::abs(pdgCode) == kLambda0) {
22812293
if (cfgDoAccEffCorr)
22822294
setCurrentParticleWeights(weff, wacc, v0, vtxz, 2);

0 commit comments

Comments
 (0)