Skip to content

Commit ed6cc3a

Browse files
authored
[PWGLF] hStrangeCorrelationFilter.cxx and hStrangeCorrelation.cxx :fill correlation hist with mass and add some cuts (AliceO2Group#16779)
1 parent 4fe3782 commit ed6cc3a

2 files changed

Lines changed: 73 additions & 36 deletions

File tree

PWGLF/TableProducer/Strangeness/hStrangeCorrelationFilter.cxx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ struct HStrangeCorrelationFilter {
123123
Configurable<bool> assocRequireITS{"assocRequireITS", true, "require ITS signal in assoc tracks"};
124124
Configurable<int> triggerMaxTPCSharedClusters{"triggerMaxTPCSharedClusters", 200, "maximum number of shared TPC clusters (inclusive)"};
125125
Configurable<bool> triggerRequireL0{"triggerRequireL0", false, "require ITS L0 cluster for trigger"};
126+
Configurable<bool> requireClusterInITS{"requireClusterInITS", false, "require cluster in ITS for V0 and cascade daughter tracks"};
127+
Configurable<int> minITSClustersForDaughterTracks{"minITSClustersForDaughterTracks", 1, "Minimum number of ITS clusters for V0 daughter tracks"};
126128

127129
// Associated pion identification
128130
Configurable<float> pionMinBayesProb{"pionMinBayesProb", 0.95, "minimal Bayesian probability for pion ID"};
@@ -143,6 +145,7 @@ struct HStrangeCorrelationFilter {
143145
Configurable<float> dcaPostopv{"dcaPostopv", 0.06, "DCA Pos To PV"};
144146
Configurable<float> dcaBaryonToPV{"dcaBaryonToPV", 0.2, "DCA of baryon daughter track To PV"};
145147
Configurable<float> dcaMesonToPV{"dcaMesonToPV", 0.05, "DCA of meson daughter track To PV"};
148+
Configurable<float> dcaDaugToPVForK0s{"dcaDaugToPVForK0s", 0, "DCA of K0s daughter tracks To PV"};
146149
Configurable<float> v0RadiusMin{"v0RadiusMin", 0.5, "v0radius"};
147150
Configurable<float> v0RadiusMax{"v0RadiusMax", 200, "v0radius"};
148151

@@ -764,9 +767,12 @@ struct HStrangeCorrelationFilter {
764767
continue;
765768
if (posdau.tpcNClsCrossedRows() < trackSelections.minTPCNCrossedRows)
766769
continue;
770+
if (trackSelections.requireClusterInITS && (posdau.itsNCls() < trackSelections.minITSClustersForDaughterTracks || negdau.itsNCls() < trackSelections.minITSClustersForDaughterTracks))
771+
continue;
767772

773+
float dcaDauCutForK0s = v0Selection.dcaDaugToPVForK0s == 0 ? v0Selection.dcaMesonToPV : v0Selection.dcaDaugToPVForK0s;
768774
bool isGoodK0Short = (v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassK0Short < v0Selection.lifetimecutK0S &&
769-
std::abs(v0.dcapostopv()) > v0Selection.dcaMesonToPV && std::abs(v0.dcanegtopv()) > v0Selection.dcaMesonToPV &&
775+
std::abs(v0.dcapostopv()) > dcaDauCutForK0s && std::abs(v0.dcanegtopv()) > dcaDauCutForK0s &&
770776
v0.qtarm() * v0Selection.armPodCut > std::abs(v0.alpha()));
771777
bool isGoodLambda = (v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassLambda0 < v0Selection.lifetimecutLambda &&
772778
std::abs(v0.dcapostopv()) > v0Selection.dcaBaryonToPV && std::abs(v0.dcanegtopv()) > v0Selection.dcaMesonToPV);
@@ -890,9 +896,12 @@ struct HStrangeCorrelationFilter {
890896
continue;
891897
if (posdau.tpcNClsCrossedRows() < trackSelections.minTPCNCrossedRows)
892898
continue;
899+
if (trackSelections.requireClusterInITS && (posdau.itsNCls() < trackSelections.minITSClustersForDaughterTracks || negdau.itsNCls() < trackSelections.minITSClustersForDaughterTracks))
900+
continue;
893901

902+
float dcaDauCutForK0s = v0Selection.dcaDaugToPVForK0s == 0 ? v0Selection.dcaMesonToPV : v0Selection.dcaDaugToPVForK0s;
894903
bool isGoodK0Short = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassK0Short < v0Selection.lifetimecutK0S &&
895-
std::abs(v0.dcapostopv()) > v0Selection.dcaMesonToPV && std::abs(v0.dcanegtopv()) > v0Selection.dcaMesonToPV &&
904+
std::abs(v0.dcapostopv()) > dcaDauCutForK0s && std::abs(v0.dcanegtopv()) > dcaDauCutForK0s &&
896905
v0.qtarm() * v0Selection.armPodCut > std::abs(v0.alpha());
897906
bool isGoodLambda = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassLambda0 < v0Selection.lifetimecutLambda &&
898907
std::abs(v0.dcapostopv()) > v0Selection.dcaBaryonToPV && std::abs(v0.dcanegtopv()) > v0Selection.dcaMesonToPV;
@@ -1035,6 +1044,8 @@ struct HStrangeCorrelationFilter {
10351044
continue;
10361045
if (!doPPAnalysis && !cascadeSelectedPbPb(casc, collision.posX(), collision.posY(), collision.posZ()))
10371046
continue;
1047+
if (trackSelections.requireClusterInITS && (posTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks || negTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks || bachTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks))
1048+
continue;
10381049

10391050
bool isGoodNegCascadePbPb = std::abs(casc.dcabachtopv()) > cascSelection.dcaBachToPV && std::abs(casc.dcapostopv()) > cascSelection.cascDcaBaryonToPV &&
10401051
std::abs(casc.dcanegtopv()) > cascSelection.cascDcaMesonToPV;
@@ -1192,6 +1203,8 @@ struct HStrangeCorrelationFilter {
11921203
continue;
11931204
if (!doPPAnalysis && !cascadeSelectedPbPb(casc, collision.posX(), collision.posY(), collision.posZ()))
11941205
continue;
1206+
if (trackSelections.requireClusterInITS && (posTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks || negTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks || bachTrackCast.itsNCls() < trackSelections.minITSClustersForDaughterTracks))
1207+
continue;
11951208
bool isGoodNegCascadePbPb = (std::abs(casc.dcabachtopv()) > cascSelection.dcaBachToPV && std::abs(casc.dcapostopv()) > cascSelection.cascDcaBaryonToPV &&
11961209
std::abs(casc.dcanegtopv()) > cascSelection.cascDcaMesonToPV);
11971210
bool isGoodPosCascadePbPb = (std::abs(casc.dcabachtopv()) > cascSelection.dcaBachToPV && std::abs(casc.dcapostopv()) > cascSelection.cascDcaMesonToPV &&

0 commit comments

Comments
 (0)