|
56 | 56 | (o2::aod::femtobase::stored::mass > (selection).massMin) && \ |
57 | 57 | (o2::aod::femtobase::stored::mass < (selection).massMax) |
58 | 58 |
|
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 |
60 | 61 | // 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)) |
76 | 77 |
|
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) |
78 | 82 | // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) |
79 | 83 | #define MAKE_RESONANCE_1_PARTITON(selection) \ |
80 | 84 | ifnode((selection).sign.node() != 0, \ |
|
87 | 91 | (o2::aod::femtobase::stored::phi < (selection).phiMax) && \ |
88 | 92 | (o2::aod::femtobase::stored::mass > (selection).massMin) && \ |
89 | 93 | (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))) |
96 | 107 |
|
97 | 108 | // partition for resonances built from two photons (pi0, eta, ...): unlike MAKE_RESONANCE_0/1_PARTITON |
98 | 109 | // there is no sign and no momentum-threshold PID switch, and just a single mask check -- both |
|
111 | 122 | ncheckbit(o2::aod::femtotwophotonresonances::maskDau, (selection).dauMask) |
112 | 123 |
|
113 | 124 | // 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) |
117 | 128 | // 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)) && \ |
133 | 144 | ncheckbit(o2::aod::femtotrackstwophotonresonances::maskNeutralDau, (selection).neutralDauMask) |
134 | 145 |
|
135 | 146 | // partition for lambdas |
|
0 commit comments