Skip to content

Commit efe872c

Browse files
Merge branch 'AliceO2Group:master' into master
2 parents bb41d1a + e62d786 commit efe872c

14 files changed

Lines changed: 5014 additions & 394 deletions

‎PWGCF/Femto/Core/collisionTagger.h‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ struct TrackSelectionValues {
7575
// V0-specific: MAKE_CASCADE_PARTITION, MAKE_SIGMA_PARTITION, MAKE_SIGMAPLUS_PARTITION,
7676
// MAKE_D0_PARTITION, and MAKE_CHARM3PRONG_PARTITION in Core/partitions.h are all byte-for-byte
7777
// identical to MAKE_LAMBDA_PARTITION, and CascadeMaskType/KinkMaskType/CharmHadronMaskType are
78-
// all, like V0MaskType, uint32_t -- so this one struct (and lambdaPasses()/readV0Selection()
78+
// all, like V0MaskType, uint32_t -- so this one struct (and signedV0Passes()/readV0Selection()
7979
// below) is reused verbatim for Xi/Omega (cascade), Sigma/SigmaPlus (kink), and D0/Lc
8080
// (charm hadron) selections too, not just Lambda. Only SigmaPlusPcm needs its own struct
8181
// (KinkPcmSelectionValues below), for the one extra mlScoreMin field it has beyond this shape.
@@ -506,7 +506,7 @@ bool trackPasses(T const& track, TrackSelectionValues const& sel)
506506
// as-is for Xi/Omega, Sigma/SigmaPlus, and D0/Lc candidates too (see the comment on
507507
// V0SelectionValues above).
508508
template <typename T>
509-
bool lambdaPasses(T const& v0, V0SelectionValues const& sel)
509+
bool signedV0Passes(T const& v0, V0SelectionValues const& sel)
510510
{
511511
if (sel.sign != 0 && ((sel.sign > 0) != (v0.signedPt() > 0.f))) {
512512
return false;
@@ -527,7 +527,7 @@ bool lambdaPasses(T const& v0, V0SelectionValues const& sel)
527527
return (v0.mask() & sel.mask) == sel.mask;
528528
}
529529

530-
// mirrors MAKE_SIGMAPLUSPCM_PARTITION(selection) in Core/partitions.h -- lambdaPasses() above
530+
// mirrors MAKE_SIGMAPLUSPCM_PARTITION(selection) in Core/partitions.h -- signedV0Passes() above
531531
// plus the one extra mlScoreMin check.
532532
template <typename T>
533533
bool kinkPcmPasses(T const& kink, KinkPcmSelectionValues const& sel)
@@ -654,7 +654,7 @@ using CollisionTagBitset = std::bitset<MaxTagBits>;
654654

655655
// true if at least `needed` entries in `range` satisfy `passes(entry, sel)`. The one primitive
656656
// every per-collision tagging check below is built from; a new particle type only ever needs a
657-
// new `passes` function (trackPasses/lambdaPasses/k0shortPasses above are examples), never a new
657+
// new `passes` function (trackPasses/signedV0Passes/k0shortPasses above are examples), never a new
658658
// copy of this loop.
659659
template <typename Range, typename Selection, typename PassesFn>
660660
inline bool hasAtLeast(Range const& range, Selection const& sel, PassesFn const& passes, int needed = 1)

‎PWGCF/Femto/TableProducer/femtoProducerCollisionTagger.cxx‎

Lines changed: 260 additions & 182 deletions
Large diffs are not rendered by default.

‎PWGEM/PhotonMeson/Core/V0PhotonCut.h‎

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,10 @@ class V0PhotonCut : public TNamed
246246
fRegistry->add("QA/V0Photon/before/hConvZR", "Conversion point ZR", o2::framework::HistType::kTH2F, {thAxisConvZ, thAxisConvR}, true);
247247
fRegistry->add("QA/V0Photon/before/hChi2", "Chi2/ndf from KFParticle;#chi^{2}_{KF}/ndf;counts", o2::framework::HistType::kTH1D, {thAxisChi2}, true);
248248

249-
// TODO: add psi_pair once available
250-
// fRegistry->add("QA/V0Photon/before/hPsiPair", "Psi pair;#Psi_{pair};counts", o2::framework::HistType::kTH1D, {thAxisPsiPair}, true);
249+
// psi_pair (V0PhotonsPhiVPsi) and the KF chi2 split (V0PhotonsKFChi2), filled only if the photon table joins them
250+
fRegistry->add("QA/V0Photon/before/hPsiPair", "Psi pair;#Psi_{pair};counts", o2::framework::HistType::kTH1D, {thAxisPsiPair}, true);
251+
fRegistry->add("QA/V0Photon/before/hChi2Vtx", "KF chi2/ndf of the conversion-vertex fit;#chi^{2}_{vtx}/ndf;counts", o2::framework::HistType::kTH1D, {thAxisChi2}, true);
252+
fRegistry->add("QA/V0Photon/before/hChi2PV", "KF chi2 to the primary vertex;#chi^{2}_{PV};counts", o2::framework::HistType::kTH1D, {{100, 0., 200.}}, true);
251253

252254
fRegistry->add("QA/V0Photon/before/Pos/NSigmaE", "NSigmaE of pos leg vs momentum", o2::framework::HistType::kTH2F, {thAxisMomentum, thAxisNSigmaE}, true);
253255
fRegistry->add("QA/V0Photon/before/Pos/NSigmaPi", "NSigmaE of pos leg vs momentum", o2::framework::HistType::kTH2F, {thAxisMomentum, thAxisNSigmaPi}, true);
@@ -316,8 +318,13 @@ class V0PhotonCut : public TNamed
316318
fRegistry->fill(HIST("QA/V0Photon/before/hConvZR"), v0.vz(), v0.v0radius());
317319
fRegistry->fill(HIST("QA/V0Photon/before/hChi2"), v0.chiSquareNDF());
318320

319-
// TODO: add psi_pair once available
320-
// fRegistry->fill(HIST("QA/V0Photon/before/hPsiPair"), v0.psiPair());
321+
if constexpr (requires { v0.psipair(); }) {
322+
fRegistry->fill(HIST("QA/V0Photon/before/hPsiPair"), v0.psipair());
323+
}
324+
if constexpr (requires { v0.chi2PV(); }) {
325+
fRegistry->fill(HIST("QA/V0Photon/before/hChi2Vtx"), v0.chi2NDFVtx());
326+
fRegistry->fill(HIST("QA/V0Photon/before/hChi2PV"), v0.chi2PV());
327+
}
321328

322329
fRegistry->fill(HIST("QA/V0Photon/before/Pos/NSigmaE"), pos.p(), pos.tpcNSigmaEl());
323330
fRegistry->fill(HIST("QA/V0Photon/before/Pos/NSigmaPi"), pos.p(), pos.tpcNSigmaPi());
@@ -346,8 +353,13 @@ class V0PhotonCut : public TNamed
346353
fRegistry->fill(HIST("QA/V0Photon/after/hConvZR"), v0.vz(), v0.v0radius());
347354
fRegistry->fill(HIST("QA/V0Photon/after/hChi2"), v0.chiSquareNDF());
348355

349-
// TODO: add psi_pair once available
350-
// fRegistry->fill(HIST("QA/V0Photon/after/hPsiPair"), v0.psiPair());
356+
if constexpr (requires { v0.psipair(); }) {
357+
fRegistry->fill(HIST("QA/V0Photon/after/hPsiPair"), v0.psipair());
358+
}
359+
if constexpr (requires { v0.chi2PV(); }) {
360+
fRegistry->fill(HIST("QA/V0Photon/after/hChi2Vtx"), v0.chi2NDFVtx());
361+
fRegistry->fill(HIST("QA/V0Photon/after/hChi2PV"), v0.chi2PV());
362+
}
351363

352364
fRegistry->fill(HIST("QA/V0Photon/after/Pos/NSigmaE"), pos.p(), pos.tpcNSigmaEl());
353365
fRegistry->fill(HIST("QA/V0Photon/after/Pos/NSigmaPi"), pos.p(), pos.tpcNSigmaPi());

0 commit comments

Comments
 (0)