|
27 | 27 | namespace o2::analysis::femto::closetripletrejection |
28 | 28 | { |
29 | 29 | constexpr const char PrefixCtrTrackTrackTrack[] = "CtrTrackTrackTrack"; |
| 30 | +constexpr const char PrefixCtrTrackTrackV0[] = "CtrTrackTrackV0"; |
| 31 | +constexpr const char PrefixCtrTrackTrackCascade[] = "CtrTrackTrackCascade"; |
| 32 | + |
30 | 33 | using ConfCtrTrackTrackTrack = closepairrejection::ConfCpr<PrefixCtrTrackTrackTrack>; |
| 34 | +using ConfCtrTrackTrackV0 = closepairrejection::ConfCpr<PrefixCtrTrackTrackV0>; |
| 35 | +using ConfCtrTrackTrackCascade = closepairrejection::ConfCpr<PrefixCtrTrackTrackCascade>; |
31 | 36 |
|
32 | 37 | // directory names |
33 | 38 | constexpr char PrefixTrack1Track2Se[] = "CPR_Track1Track2/SE/"; |
@@ -85,23 +90,17 @@ class CloseTripletRejectionTrackTrackTrack |
85 | 90 | mCtrTrack23.setMagField(magField); |
86 | 91 | mCtrTrack13.setMagField(magField); |
87 | 92 | } |
88 | | - template <typename T1, typename T2, typename T3, typename T4> |
89 | | - void setTriplet(T1 const& track1, T2 const& track2, T3 const& track3, T4 const& trackTable) |
90 | | - { |
91 | | - mCtrTrack12.setPair(track1, track2, trackTable); |
92 | | - mCtrTrack23.setPair(track2, track3, trackTable); |
93 | | - mCtrTrack13.setPair(track1, track3, trackTable); |
94 | | - } |
95 | | - [[nodiscard]] bool isCloseTriplet() const |
96 | | - { |
97 | | - return mCtrTrack12.isClosePair() || mCtrTrack23.isClosePair() || mCtrTrack13.isClosePair(); |
98 | | - } |
99 | 93 |
|
100 | | - void fill(float q3) |
| 94 | + // checks all three constituent pairs of the triplet; fills the deta-dphi/kinematic |
| 95 | + // histograms of each pair internally and returns whether the triplet is rejected. |
| 96 | + // tripletHistManager must expose getKinematic() (same interface CloseTrackRejection expects). |
| 97 | + template <typename T1, typename T2, typename T3, typename T4, typename T5> |
| 98 | + [[nodiscard]] bool isCloseTriplet(T1 const& track1, T2 const& track2, T3 const& track3, T4 const& trackTable, T5 const& tripletHistManager) |
101 | 99 | { |
102 | | - mCtrTrack12.fill(q3); |
103 | | - mCtrTrack23.fill(q3); |
104 | | - mCtrTrack13.fill(q3); |
| 100 | + bool isClose12 = mCtrTrack12.isClosePair(track1, track2, trackTable, tripletHistManager); |
| 101 | + bool isClose23 = mCtrTrack23.isClosePair(track2, track3, trackTable, tripletHistManager); |
| 102 | + bool isClose13 = mCtrTrack13.isClosePair(track1, track3, trackTable, tripletHistManager); |
| 103 | + return isClose12 || isClose23 || isClose13; |
105 | 104 | } |
106 | 105 |
|
107 | 106 | private: |
@@ -137,23 +136,16 @@ class CloseTripletRejectionTrackTrackV0 |
137 | 136 | mCtrTrack1V0.setMagField(magField); |
138 | 137 | mCtrTrack2V0.setMagField(magField); |
139 | 138 | } |
140 | | - template <typename T1, typename T2, typename T3, typename T4> |
141 | | - void setTriplet(T1 const& track1, T2 const& track2, T3 const& v0, T4 const& trackTable) |
142 | | - { |
143 | | - mCtrTrack12.setPair(track1, track2, trackTable); |
144 | | - mCtrTrack1V0.setPair(track1, v0, trackTable); |
145 | | - mCtrTrack2V0.setPair(track2, v0, trackTable); |
146 | | - } |
147 | | - [[nodiscard]] bool isCloseTriplet() const |
148 | | - { |
149 | | - return mCtrTrack12.isClosePair() || mCtrTrack1V0.isClosePair() || mCtrTrack2V0.isClosePair(); |
150 | | - } |
151 | 139 |
|
152 | | - void fill(float q3) |
| 140 | + // checks track1-track2, track1-v0 and track2-v0; fills the deta-dphi/kinematic |
| 141 | + // histograms of each pair internally and returns whether the triplet is rejected. |
| 142 | + template <typename T1, typename T2, typename T3, typename T4, typename T5> |
| 143 | + [[nodiscard]] bool isCloseTriplet(T1 const& track1, T2 const& track2, T3 const& v0, T4 const& trackTable, T5 const& tripletHistManager) |
153 | 144 | { |
154 | | - mCtrTrack12.fill(q3); |
155 | | - mCtrTrack1V0.fill(q3); |
156 | | - mCtrTrack2V0.fill(q3); |
| 145 | + bool isClose12 = mCtrTrack12.isClosePair(track1, track2, trackTable, tripletHistManager); |
| 146 | + bool isClose1V0 = mCtrTrack1V0.isClosePair(track1, v0, trackTable, tripletHistManager); |
| 147 | + bool isClose2V0 = mCtrTrack2V0.isClosePair(track2, v0, trackTable, tripletHistManager); |
| 148 | + return isClose12 || isClose1V0 || isClose2V0; |
157 | 149 | } |
158 | 150 |
|
159 | 151 | private: |
@@ -195,23 +187,16 @@ class CloseTripletRejectionTrackTrackCascade |
195 | 187 | mCtrTrack1Cascade.setMagField(magField); |
196 | 188 | mCtrTrack2Cascade.setMagField(magField); |
197 | 189 | } |
198 | | - template <typename T1, typename T2, typename T3, typename T4> |
199 | | - void setTriplet(T1 const& track1, T2 const& track2, T3 const& cascade, T4 const& trackTable) |
200 | | - { |
201 | | - mCtrTrack12.setPair(track1, track2, trackTable); |
202 | | - mCtrTrack1Cascade.setPair(track1, cascade, trackTable); |
203 | | - mCtrTrack2Cascade.setPair(track2, cascade, trackTable); |
204 | | - } |
205 | | - [[nodiscard]] bool isCloseTriplet() const |
206 | | - { |
207 | | - return mCtrTrack12.isClosePair() || mCtrTrack1Cascade.isClosePair() || mCtrTrack2Cascade.isClosePair(); |
208 | | - } |
209 | 190 |
|
210 | | - void fill(float q3) |
| 191 | + // checks track1-track2, track1-cascade and track2-cascade; fills the deta-dphi/kinematic |
| 192 | + // histograms of each pair internally and returns whether the triplet is rejected. |
| 193 | + template <typename T1, typename T2, typename T3, typename T4, typename T5> |
| 194 | + [[nodiscard]] bool isCloseTriplet(T1 const& track1, T2 const& track2, T3 const& cascade, T4 const& trackTable, T5 const& tripletHistManager) |
211 | 195 | { |
212 | | - mCtrTrack12.fill(q3); |
213 | | - mCtrTrack1Cascade.fill(q3); |
214 | | - mCtrTrack2Cascade.fill(q3); |
| 196 | + bool isClose12 = mCtrTrack12.isClosePair(track1, track2, trackTable, tripletHistManager); |
| 197 | + bool isClose1Cascade = mCtrTrack1Cascade.isClosePair(track1, cascade, trackTable, tripletHistManager); |
| 198 | + bool isClose2Cascade = mCtrTrack2Cascade.isClosePair(track2, cascade, trackTable, tripletHistManager); |
| 199 | + return isClose12 || isClose1Cascade || isClose2Cascade; |
215 | 200 | } |
216 | 201 |
|
217 | 202 | private: |
|
0 commit comments