Skip to content

Commit 01dbdf6

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents 87cfbc0 + bf10c6c commit 01dbdf6

19 files changed

Lines changed: 941 additions & 130 deletions

‎PWGCF/Femto/Core/partitions.h‎

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,29 @@
5656
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
5757
(o2::aod::femtobase::stored::mass < (selection).massMax)
5858

59-
// partition for phis and rhos, i.e. resonance that are their own antiparticle
59+
// partition for phis and rhos, i.e. resonance that are their own antiparticle -- both daughters are
60+
// the same species, so the selection carries a single dauMask pair applied to both stored columns
6061
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
61-
#define MAKE_RESONANCE_0_PARTITON(selection) \
62-
(o2::aod::femtobase::stored::pt > (selection).ptMin) && \
63-
(o2::aod::femtobase::stored::pt < (selection).ptMax) && \
64-
(o2::aod::femtobase::stored::eta > (selection).etaMin) && \
65-
(o2::aod::femtobase::stored::eta < (selection).etaMax) && \
66-
(o2::aod::femtobase::stored::phi > (selection).phiMin) && \
67-
(o2::aod::femtobase::stored::phi < (selection).phiMax) && \
68-
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
69-
(o2::aod::femtobase::stored::mass < (selection).massMax) && \
70-
ifnode(o2::aod::femtotwotrackresonances::posDauHasHighMomentum, \
71-
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).posDauMaskAboveThres), \
72-
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).posDauMaskBelowThres)) && \
73-
ifnode(o2::aod::femtotwotrackresonances::negDauHasHighMomentum, \
74-
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).negDauMaskAboveThres), \
75-
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).negDauMaskBelowThres))
62+
#define MAKE_RESONANCE_0_PARTITON(selection) \
63+
(o2::aod::femtobase::stored::pt > (selection).ptMin) && \
64+
(o2::aod::femtobase::stored::pt < (selection).ptMax) && \
65+
(o2::aod::femtobase::stored::eta > (selection).etaMin) && \
66+
(o2::aod::femtobase::stored::eta < (selection).etaMax) && \
67+
(o2::aod::femtobase::stored::phi > (selection).phiMin) && \
68+
(o2::aod::femtobase::stored::phi < (selection).phiMax) && \
69+
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
70+
(o2::aod::femtobase::stored::mass < (selection).massMax) && \
71+
ifnode(o2::aod::femtotwotrackresonances::posDauHasHighMomentum, \
72+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).dauMaskAboveThres), \
73+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).dauMaskBelowThres)) && \
74+
ifnode(o2::aod::femtotwotrackresonances::negDauHasHighMomentum, \
75+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).dauMaskAboveThres), \
76+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).dauMaskBelowThres))
7677

77-
// partition for kstars, they have distinct antiparticle
78+
// partition for kstars, they have distinct antiparticle -- K*0 (K+ pi-) and K*0bar (K- pi+) swap
79+
// which physical daughter (pos/neg) is the kaon vs the pion, so the selection carries masks named by
80+
// species (kaon/pion) and this macro resolves pos/neg <-> kaon/pion from the candidate's own
81+
// signedPt, the same way it's reconstructed (no need for the user to reason about this downstream)
7882
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
7983
#define MAKE_RESONANCE_1_PARTITON(selection) \
8084
ifnode((selection).sign.node() != 0, \
@@ -87,12 +91,19 @@
8791
(o2::aod::femtobase::stored::phi < (selection).phiMax) && \
8892
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
8993
(o2::aod::femtobase::stored::mass < (selection).massMax) && \
90-
ifnode(o2::aod::femtotwotrackresonances::posDauHasHighMomentum, \
91-
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).posDauMaskAboveThres), \
92-
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).posDauMaskBelowThres)) && \
93-
ifnode(o2::aod::femtotwotrackresonances::negDauHasHighMomentum, \
94-
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).negDauMaskAboveThres), \
95-
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).negDauMaskBelowThres))
94+
ifnode(o2::aod::femtobase::stored::signedPt > 0.f, \
95+
ifnode(o2::aod::femtotwotrackresonances::posDauHasHighMomentum, \
96+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).kaonDauMaskAboveThres), \
97+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).kaonDauMaskBelowThres)) && \
98+
ifnode(o2::aod::femtotwotrackresonances::negDauHasHighMomentum, \
99+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).pionDauMaskAboveThres), \
100+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).pionDauMaskBelowThres)), \
101+
ifnode(o2::aod::femtotwotrackresonances::posDauHasHighMomentum, \
102+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).pionDauMaskAboveThres), \
103+
ncheckbit(o2::aod::femtotwotrackresonances::maskPosDau, (selection).pionDauMaskBelowThres)) && \
104+
ifnode(o2::aod::femtotwotrackresonances::negDauHasHighMomentum, \
105+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).kaonDauMaskAboveThres), \
106+
ncheckbit(o2::aod::femtotwotrackresonances::maskNegDau, (selection).kaonDauMaskBelowThres)))
96107

97108
// partition for resonances built from two photons (pi0, eta, ...): unlike MAKE_RESONANCE_0/1_PARTITON
98109
// there is no sign and no momentum-threshold PID switch, and just a single mask check -- both
@@ -111,25 +122,25 @@
111122
ncheckbit(o2::aod::femtotwophotonresonances::maskDau, (selection).dauMask)
112123

113124
// partition for resonances built from two tracks and a two-photon resonance (e.g. omega(782) ->
114-
// pi+ pi- pi0): same pattern as MAKE_RESONANCE_1_PARTITON (daughter masks copied onto the candidate
115-
// at build time, systematics reselected here), just with 3 daughter masks instead of 2 -- the two
116-
// charged daughters keep their momentum-threshold PID switch, the neutral daughter does not
125+
// pi+ pi- pi0): same pattern as MAKE_RESONANCE_0_PARTITON (both charged daughters are the same
126+
// species -- pions, just opposite charge, no kstar-style species swap -- so a single dauMask pair
127+
// covers both), plus a 3rd mask for the neutral daughter (no momentum-threshold split there)
117128
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
118-
#define MAKE_TRACKTRACKTWOPHOTONRESONANCE_PARTITION(selection) \
119-
(o2::aod::femtobase::stored::pt > (selection).ptMin) && \
120-
(o2::aod::femtobase::stored::pt < (selection).ptMax) && \
121-
(o2::aod::femtobase::stored::eta > (selection).etaMin) && \
122-
(o2::aod::femtobase::stored::eta < (selection).etaMax) && \
123-
(o2::aod::femtobase::stored::phi > (selection).phiMin) && \
124-
(o2::aod::femtobase::stored::phi < (selection).phiMax) && \
125-
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
126-
(o2::aod::femtobase::stored::mass < (selection).massMax) && \
127-
ifnode(o2::aod::femtotrackstwophotonresonances::posDauHasHighMomentum, \
128-
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskPosDau, (selection).posDauMaskAboveThres), \
129-
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskPosDau, (selection).posDauMaskBelowThres)) && \
130-
ifnode(o2::aod::femtotrackstwophotonresonances::negDauHasHighMomentum, \
131-
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNegDau, (selection).negDauMaskAboveThres), \
132-
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNegDau, (selection).negDauMaskBelowThres)) && \
129+
#define MAKE_TRACKTRACKTWOPHOTONRESONANCE_PARTITION(selection) \
130+
(o2::aod::femtobase::stored::pt > (selection).ptMin) && \
131+
(o2::aod::femtobase::stored::pt < (selection).ptMax) && \
132+
(o2::aod::femtobase::stored::eta > (selection).etaMin) && \
133+
(o2::aod::femtobase::stored::eta < (selection).etaMax) && \
134+
(o2::aod::femtobase::stored::phi > (selection).phiMin) && \
135+
(o2::aod::femtobase::stored::phi < (selection).phiMax) && \
136+
(o2::aod::femtobase::stored::mass > (selection).massMin) && \
137+
(o2::aod::femtobase::stored::mass < (selection).massMax) && \
138+
ifnode(o2::aod::femtotrackstwophotonresonances::posDauHasHighMomentum, \
139+
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskPosDau, (selection).pionDauMaskAboveThres), \
140+
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskPosDau, (selection).pionDauMaskBelowThres)) && \
141+
ifnode(o2::aod::femtotrackstwophotonresonances::negDauHasHighMomentum, \
142+
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNegDau, (selection).pionDauMaskAboveThres), \
143+
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNegDau, (selection).pionDauMaskBelowThres)) && \
133144
ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNeutralDau, (selection).neutralDauMask)
134145

135146
// partition for lambdas

‎PWGCF/Femto/Core/trackTrackTwoPhotonResonanceBuilder.h‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ struct ConfOmegaMesonFilters : o2::framework::ConfigurableGroup {
5252
};
5353

5454
// selection used downstream (QA/pairing) to re-select already produced resonances by mass window
55-
// and daughter mask -- same pattern as the two-track resonances (TWOTRACKRESONANCE_DEFAULT_SELECTION),
56-
// just with a 3rd mask for the neutral daughter (no momentum-threshold split there, same as
57-
// femtotwophotonresonances' single dauMask)
55+
// and daughter mask. both charged daughters are pions (just opposite charge, no species swap the
56+
// way kstar's kaon/pion does), so -- same as TWOTRACKRESONANCE_SAME_SPECIES_MASK for phi/rho0 --
57+
// a single pair of mask thresholds is applied to both. plus a 3rd mask for the neutral daughter (no
58+
// momentum-threshold split there, same as femtotwophotonresonances' single dauMask)
5859
template <auto& Prefix>
5960
struct ConfOmegaMesonSelection : o2::framework::ConfigurableGroup {
6061
std::string prefix = Prefix;
@@ -67,10 +68,8 @@ struct ConfOmegaMesonSelection : o2::framework::ConfigurableGroup {
6768
o2::framework::Configurable<float> phiMax{"phiMax", 1.f * o2::constants::math::TwoPI, "Maximum phi"};
6869
o2::framework::Configurable<float> massMin{"massMin", 0.6f, "Minimum invariant mass"};
6970
o2::framework::Configurable<float> massMax{"massMax", 0.95f, "Maximum invariant mass"};
70-
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> posDauMaskBelowThres{"posDauMaskBelowThres", 0x10u, "Bitmask for positive daughter below threshold"};
71-
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> posDauMaskAboveThres{"posDauMaskAboveThres", 0x8u, "Bitmask for positive daughter above threshold"};
72-
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> negDauMaskBelowThres{"negDauMaskBelowThres", 0x2u, "Bitmask for negative daughter below threshold"};
73-
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> negDauMaskAboveThres{"negDauMaskAboveThres", 0x1u, "Bitmask for negative daughter above threshold"};
71+
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> pionDauMaskBelowThres{"pionDauMaskBelowThres", 0x10u, "Bitmask for both pion daughters below threshold"};
72+
o2::framework::Configurable<o2::analysis::femto::datatypes::TrackMaskType> pionDauMaskAboveThres{"pionDauMaskAboveThres", 0x8u, "Bitmask for both pion daughters above threshold"};
7473
o2::framework::Configurable<o2::analysis::femto::datatypes::PhotonMaskType> neutralDauMask{"neutralDauMask", 0, "Bitmask required for the neutral (two-photon-resonance) daughter"};
7574
};
7675

0 commit comments

Comments
 (0)