Skip to content

Commit c001880

Browse files
authored
[PWGCF] add configurable track quality selections (#14153)
1 parent 8996b6f commit c001880

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@ struct FlowGfwOmegaXi {
148148
O2_DEFINE_CONFIGURABLE(cfgCutPtPIDdauLaPrMin, float, 0.15f, "Minimal pT for daughter PID")
149149
O2_DEFINE_CONFIGURABLE(cfgCutPtPIDdauLaPiMin, float, 0.15f, "Minimal pT for daughter PID")
150150
// track quality selections for daughter track
151-
O2_DEFINE_CONFIGURABLE(cfgCheckITSNCls, bool, false, "check minimum number of ITS clusters")
152-
O2_DEFINE_CONFIGURABLE(cfgCheckITSHits, bool, false, "check minimum number of ITS hits")
153-
O2_DEFINE_CONFIGURABLE(cfgCheckITSChi2NDF, bool, false, "check ITS Chi2NDF")
151+
O2_DEFINE_CONFIGURABLE(cfgITSNCls, int, 5, "check minimum number of ITS clusters")
152+
O2_DEFINE_CONFIGURABLE(cfgTPCNCls, int, 50, "check minimum number of TPC hits")
153+
O2_DEFINE_CONFIGURABLE(cfgTPCCrossedRows, int, 70, "check minimum number of TPC crossed rows")
154154
O2_DEFINE_CONFIGURABLE(cfgCheckGlobalTrack, bool, false, "check global track")
155155
} trkQualityOpts;
156156

@@ -655,7 +655,7 @@ struct FlowGfwOmegaXi {
655655

656656
corrconfigs.push_back(fGFW->GetCorrelatorConfig("poiXiPdpt refP10 {2, 2} refN10 {-2 -2}", "Xi10Gap24a", kTRUE));
657657
corrconfigs.push_back(fGFW->GetCorrelatorConfig("poiXiNdpt refN10 {2, 2} refP10 {-2 -2}", "Xi10Gap24b", kTRUE));
658-
corrconfigs.push_back(fGFW->GetCorrelatorConfig("poiOmegaPdpt refP10 {2, 2} refN10 {-2 -2}", "Omega10Gap24a", kTRUE)); // 45
658+
corrconfigs.push_back(fGFW->GetCorrelatorConfig("poiOmegaPdpt refP10 {2, 2} refN10 {-2 -2}", "Omega10Gap24a", kTRUE));
659659
corrconfigs.push_back(fGFW->GetCorrelatorConfig("poiOmegaNdpt refN10 {2, 2} refP10 {-2 -2}", "Omega10Gap24b", kTRUE));
660660
fGFW->CreateRegions(); // finalize the initialization
661661

@@ -1089,14 +1089,14 @@ struct FlowGfwOmegaXi {
10891089
if (cfgOutputQA) {
10901090
registry.fill(HIST("QAhisto/V0/hqaarm_podobefore"), v0.alpha(), v0.qtarm());
10911091
}
1092-
// check daughter TPC and TOF
1092+
// check daughter ITS, TPC and TOF
10931093
// K0short
10941094
if (v0.pt() > trkQualityOpts.cfgCutPtK0sMin.value && v0.pt() < trkQualityOpts.cfgCutPtK0sMax.value) {
10951095
if (v0.qtarm() / std::fabs(v0.alpha()) > v0BuilderOpts.cfgv0_ArmPodocut.value &&
10961096
std::fabs(v0.mK0Short() - o2::constants::physics::MassK0Short) < v0BuilderOpts.cfgv0_mk0swindow.value &&
10971097
(std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
10981098
((std::fabs(v0posdau.tofNSigmaPi()) < cfgNSigma[3] || v0posdau.pt() < lowpt) && (std::fabs(v0negdau.tofNSigmaPi()) < cfgNSigma[3] || v0negdau.pt() < lowpt)) &&
1099-
((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)) {
1099+
((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)) {
11001100
registry.fill(HIST("InvMassK0s_all"), v0.pt(), v0.mK0Short(), v0.eta(), cent);
11011101
isK0s = true;
11021102
if (cfgOutputQA) {
@@ -1109,13 +1109,13 @@ struct FlowGfwOmegaXi {
11091109
if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
11101110
(std::fabs(v0posdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0negdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
11111111
((std::fabs(v0posdau.tofNSigmaPr()) < cfgNSigma[4] || v0posdau.pt() < lowpt) && (std::fabs(v0negdau.tofNSigmaPi()) < cfgNSigma[3] || v0negdau.pt() < lowpt)) &&
1112-
((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)) {
1112+
((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)) {
11131113
registry.fill(HIST("InvMassLambda_all"), v0.pt(), v0.mLambda(), v0.eta(), cent);
11141114
isLambda = true;
11151115
} else if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow.value &&
11161116
(std::fabs(v0negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(v0posdau.tpcNSigmaPi()) < cfgNSigma[0]) &&
11171117
((std::fabs(v0negdau.tofNSigmaPr()) < cfgNSigma[4] || v0negdau.pt() < lowpt) && (std::fabs(v0posdau.tofNSigmaPi()) < cfgNSigma[3] || v0posdau.pt() < lowpt)) &&
1118-
((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)) {
1118+
((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)) {
11191119
registry.fill(HIST("InvMassLambda_all"), v0.pt(), v0.mLambda(), v0.eta(), cent);
11201120
isLambda = true;
11211121
}
@@ -1131,17 +1131,17 @@ struct FlowGfwOmegaXi {
11311131
if (!isK0s && !isLambda)
11321132
continue;
11331133
// track quality check
1134-
if (!v0posdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1134+
if (v0posdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
11351135
continue;
1136-
if (!v0negdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1136+
if (v0negdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
11371137
continue;
1138-
if (!v0posdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1138+
if (v0posdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
11391139
continue;
1140-
if (!v0negdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1140+
if (v0negdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
11411141
continue;
1142-
if (!v0posdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1142+
if (v0posdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
11431143
continue;
1144-
if (!v0negdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1144+
if (v0negdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
11451145
continue;
11461146
if (trkQualityOpts.cfgCheckGlobalTrack.value) {
11471147
if (!v0posdau.hasTPC() || !v0posdau.hasITS())
@@ -1216,7 +1216,7 @@ struct FlowGfwOmegaXi {
12161216
registry.fill(HIST("InvMassLambda"), v0.pt(), v0.mLambda(), v0.eta(), cent);
12171217
registry.fill(HIST("hPhiLambda"), v0.phi());
12181218
registry.fill(HIST("hPhiLambdacorr"), v0.phi(), wacc);
1219-
fGFW->Fill(v0.eta(), fK0sPtAxis->FindBin(v0.pt()) - 1 + ((fLambdaMass->FindBin(v0.mLambda()) - 1) * nK0sPtBins), v0.phi(), wacc * weff * wloc, 16);
1219+
fGFW->Fill(v0.eta(), fLambdaPtAxis->FindBin(v0.pt()) - 1 + ((fLambdaMass->FindBin(v0.mLambda()) - 1) * nLambdaPtBins), v0.phi(), wacc * weff * wloc, 16);
12201220
if (cfgOutputNUAWeights)
12211221
fWeightsLambda->fill(v0.phi(), v0.eta(), vtxz, v0.pt(), cent, 0);
12221222
if (cfgOutputrunbyrun) {
@@ -1320,24 +1320,24 @@ struct FlowGfwOmegaXi {
13201320
continue;
13211321
if (std::fabs(casc.mLambda() - o2::constants::physics::MassLambda0) > cascBuilderOpts.cfgcasc_mlambdawindow.value)
13221322
continue;
1323-
// // track quality check
1324-
if (!bachelor.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1323+
// track quality check
1324+
if (bachelor.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
13251325
continue;
1326-
if (!posdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1326+
if (posdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
13271327
continue;
1328-
if (!negdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1328+
if (negdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
13291329
continue;
1330-
if (!bachelor.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1330+
if (bachelor.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
13311331
continue;
1332-
if (!posdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1332+
if (posdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
13331333
continue;
1334-
if (!negdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1334+
if (negdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
13351335
continue;
1336-
if (!bachelor.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1336+
if (bachelor.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
13371337
continue;
1338-
if (!posdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1338+
if (posdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
13391339
continue;
1340-
if (!negdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1340+
if (negdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
13411341
continue;
13421342
if (trkQualityOpts.cfgCheckGlobalTrack.value) {
13431343
if (!bachelor.hasTPC() || !bachelor.hasITS())
@@ -1754,23 +1754,23 @@ struct FlowGfwOmegaXi {
17541754
}
17551755
}
17561756
// track quality check
1757-
if (!bachelor.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1757+
if (bachelor.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
17581758
continue;
1759-
if (!posdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1759+
if (posdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
17601760
continue;
1761-
if (!negdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1761+
if (negdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
17621762
continue;
1763-
if (!bachelor.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1763+
if (bachelor.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
17641764
continue;
1765-
if (!posdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1765+
if (posdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
17661766
continue;
1767-
if (!negdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1767+
if (negdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
17681768
continue;
1769-
if (!bachelor.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1769+
if (bachelor.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
17701770
continue;
1771-
if (!posdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1771+
if (posdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
17721772
continue;
1773-
if (!negdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1773+
if (negdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
17741774
continue;
17751775
if (trkQualityOpts.cfgCheckGlobalTrack.value) {
17761776
if (!bachelor.hasTPC() || !bachelor.hasITS())
@@ -1923,17 +1923,17 @@ struct FlowGfwOmegaXi {
19231923
registry.fill(HIST("QAhisto/V0/hqaarm_podobefore"), v0.alpha(), v0.qtarm());
19241924
}
19251925
// // track quality check
1926-
if (!v0posdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1926+
if (v0posdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
19271927
continue;
1928-
if (!v0negdau.passedITSNCls() && trkQualityOpts.cfgCheckITSNCls.value)
1928+
if (v0negdau.itsNCls() <= trkQualityOpts.cfgITSNCls.value)
19291929
continue;
1930-
if (!v0posdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1930+
if (v0posdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
19311931
continue;
1932-
if (!v0negdau.passedITSHits() && trkQualityOpts.cfgCheckITSHits.value)
1932+
if (v0negdau.tpcNClsFound() <= trkQualityOpts.cfgTPCNCls.value)
19331933
continue;
1934-
if (!v0posdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1934+
if (v0posdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
19351935
continue;
1936-
if (!v0negdau.passedITSChi2NDF() && trkQualityOpts.cfgCheckITSChi2NDF.value)
1936+
if (v0negdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
19371937
continue;
19381938
if (trkQualityOpts.cfgCheckGlobalTrack.value) {
19391939
if (!v0posdau.hasTPC() || !v0posdau.hasITS())

0 commit comments

Comments
 (0)