Skip to content

Commit 4df05c7

Browse files
committed
Add preselections and histogram to alice3 cascade finding
1 parent 019a377 commit 4df05c7

1 file changed

Lines changed: 27 additions & 5 deletions

File tree

ALICE3/TableProducer/alice3strangenessFinder.cxx

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ struct Alice3strangenessFinder {
8888
ConfigurableAxis axisXiMass{"axisXiMass", {200, 1.22f, 1.42f}, "Xi mass axis"};
8989
ConfigurableAxis axisOmegaMass{"axisOmegaMass", {200, 1.57f, 1.77f}, "Omega mass axis"};
9090

91+
ConfigurableAxis axisDCA{"axisDCA", {200, 0, 200}, "DCA axis"};
9192
ConfigurableAxis axisEta{"axisEta", {80, -4.f, 4.f}, "Eta axis"};
9293
ConfigurableAxis axisPt{"axisPt", {VARIABLE_WIDTH, 0.0f, 0.025f, 0.05f, 0.075f, 0.1f, 0.125f, 0.15f, 0.175f, 0.2f, 0.225f, 0.25f, 0.275f, 0.3f, 0.325f, 0.35f, 0.375f, 0.4f, 0.425f, 0.45f, 0.475f, 0.5f, 0.525f, 0.55f, 0.575f, 0.6f, 0.625f, 0.65f, 0.675f, 0.7f, 0.725f, 0.75f, 0.775f, 0.8f, 0.82f, 0.85f, 0.875f, 0.9f, 0.925f, 0.95f, 0.975f, 1.0f, 1.05f, 1.1f}, "pt axis for QA histograms"};
9394

@@ -129,6 +130,7 @@ struct Alice3strangenessFinder {
129130

130131
Configurable<float> v0MaxDauDCA{"v0MaxDauDCA", 0.005f, "DCA between v0 daughters (cm)"};
131132
Configurable<float> cascMaxDauDCA{"cascMaxDauDCA", 0.005f, "DCA between cascade daughters (cm)"};
133+
Configurable<float> cascMaxEta{"cascMaxEta", 2.5f, "DCA between cascade daughters (cm)"};
132134
} presel;
133135

134136
// Operation
@@ -143,6 +145,7 @@ struct Alice3strangenessFinder {
143145

144146
o2::vertexing::DCAFitterN<2> fitter;
145147
Service<o2::framework::O2DatabasePDG> pdgDB;
148+
static constexpr float ToMicrons = 1e+4;
146149

147150
// partitions for v0/casc dau tracks
148151
Partition<Alice3TracksACTS> positiveSecondaryTracksACTS =
@@ -177,6 +180,7 @@ struct Alice3strangenessFinder {
177180

178181
struct Candidate {
179182
int index{-1};
183+
180184
// decay properties
181185
float dcaDau{};
182186
float eta{};
@@ -239,6 +243,7 @@ struct Alice3strangenessFinder {
239243
histos.add("hPtPosDauAfterV0Finding", "", kTH2D, {axisPt, axisPt});
240244
histos.add("hPtNegDauAfterV0Finding", "", kTH2D, {axisPt, axisPt});
241245
histos.add("hEventCounter", "", kTH1D, {{1, 0, 2}}); // counting processed events
246+
242247
auto hV0Counter = histos.add<TH1>("hV0Counter", "hV0Counter", kTH1D, {{4, 0, 4}});
243248
hV0Counter->GetXaxis()->SetBinLabel(1, "K0S");
244249
hV0Counter->GetXaxis()->SetBinLabel(2, "Lambda");
@@ -248,9 +253,6 @@ struct Alice3strangenessFinder {
248253
histos.add("hRadiusVsHitsNeg", "", kTH2D, {{400, 0, 400}, {12, 0.5, 12.5}}); // radius vs hist for MC studies
249254
histos.add("hRadiusVsHitsPos", "", kTH2D, {{400, 0, 400}, {12, 0.5, 12.5}}); // radius vs hist for MC studies
250255

251-
histos.add("hXiMass", "", kTH1D, {axisXiMass});
252-
histos.add("hOmegaMass", "", kTH1D, {axisOmegaMass});
253-
254256
auto hV0Building = histos.add<TH1>("hV0Building", "hV0Building", kTH1D, {{10, 0.5, 10.5}});
255257
hV0Building->GetXaxis()->SetBinLabel(1, "Pair");
256258
hV0Building->GetXaxis()->SetBinLabel(2, "Pdg check");
@@ -272,6 +274,12 @@ struct Alice3strangenessFinder {
272274
histos.add("Generated/hGeneratedAntiOmega", "hGeneratedAntiOmega", kTH2D, {{axisPt}, {axisEta}});
273275
}
274276

277+
if (buildCascade) {
278+
histos.add("CascadeBuilding/hDcaBetweenDaus", "hDcaBetweenDaus", kTH1D, {{axisDCA}});
279+
histos.add("CascadeBuilding/hXiMass", "", kTH1D, {axisXiMass});
280+
histos.add("CascadeBuilding/hOmegaMass", "", kTH1D, {axisOmegaMass});
281+
}
282+
275283
histos.print();
276284
}
277285

@@ -585,6 +593,19 @@ struct Alice3strangenessFinder {
585593
continue; // failed at building candidate
586594
}
587595

596+
// Apply preselections
597+
if (cascCand.dcaDau > presel.cascMaxDauDCA) {
598+
continue; // combined tracks should be reasonanly close
599+
}
600+
601+
if (cascCand.eta > presel.cascMaxEta) {
602+
continue; // candidate outside of acceptance
603+
}
604+
605+
if (std::hypot(v0Cand.posSV[0], v0Cand.posSV[1]) < std::hypot(cascCand.posSV[0], cascCand.posSV[1])) {
606+
continue; // causality
607+
}
608+
588609
const float massXi = RecoDecay::m(std::array{std::array{cascCand.pDau0[0], cascCand.pDau0[1], cascCand.pDau0[2]},
589610
std::array{cascCand.pDau1[0], cascCand.pDau1[1], cascCand.pDau1[2]}},
590611
std::array{o2::constants::physics::MassLambda, o2::constants::physics::MassPionCharged});
@@ -606,8 +627,9 @@ struct Alice3strangenessFinder {
606627
vtx[0], vtx[1], vtx[2]);
607628

608629
histos.fill(HIST("hCascadeBuilding"), 4.0);
609-
histos.fill(HIST("hXiMass"), massXi);
610-
histos.fill(HIST("hOmegaMass"), massOm);
630+
histos.fill(HIST("CascadeBuilding/hDcaBetweenDaus"), cascCand.dcaDau * ToMicrons);
631+
histos.fill(HIST("CascadeBuilding/hXiMass"), massXi);
632+
histos.fill(HIST("CascadeBuilding/hOmegaMass"), massOm);
611633

612634
tableA3CascadeMcLabels(cascCand.index);
613635
tableCascIndices(0, // cascade index, dummy value

0 commit comments

Comments
 (0)