Skip to content

Commit 2aa8be6

Browse files
committed
Feat: update PC and CPR
1 parent c3e9f2b commit 2aa8be6

26 files changed

Lines changed: 1048 additions & 709 deletions

PWGCF/Femto/Core/closePairRejection.h

Lines changed: 169 additions & 127 deletions
Large diffs are not rendered by default.

PWGCF/Femto/Core/closeTripletRejection.h

Lines changed: 30 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@
2727
namespace o2::analysis::femto::closetripletrejection
2828
{
2929
constexpr const char PrefixCtrTrackTrackTrack[] = "CtrTrackTrackTrack";
30+
constexpr const char PrefixCtrTrackTrackV0[] = "CtrTrackTrackV0";
31+
constexpr const char PrefixCtrTrackTrackCascade[] = "CtrTrackTrackCascade";
32+
3033
using ConfCtrTrackTrackTrack = closepairrejection::ConfCpr<PrefixCtrTrackTrackTrack>;
34+
using ConfCtrTrackTrackV0 = closepairrejection::ConfCpr<PrefixCtrTrackTrackV0>;
35+
using ConfCtrTrackTrackCascade = closepairrejection::ConfCpr<PrefixCtrTrackTrackCascade>;
3136

3237
// directory names
3338
constexpr char PrefixTrack1Track2Se[] = "CPR_Track1Track2/SE/";
@@ -85,23 +90,17 @@ class CloseTripletRejectionTrackTrackTrack
8590
mCtrTrack23.setMagField(magField);
8691
mCtrTrack13.setMagField(magField);
8792
}
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-
}
9993

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)
10199
{
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;
105104
}
106105

107106
private:
@@ -137,23 +136,16 @@ class CloseTripletRejectionTrackTrackV0
137136
mCtrTrack1V0.setMagField(magField);
138137
mCtrTrack2V0.setMagField(magField);
139138
}
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-
}
151139

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)
153144
{
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;
157149
}
158150

159151
private:
@@ -195,23 +187,16 @@ class CloseTripletRejectionTrackTrackCascade
195187
mCtrTrack1Cascade.setMagField(magField);
196188
mCtrTrack2Cascade.setMagField(magField);
197189
}
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-
}
209190

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)
211195
{
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;
215200
}
216201

217202
private:

PWGCF/Femto/Core/dataTypes.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ using CharmHadronType = uint16_t;
6767
using QvecDetectorType = uint8_t;
6868
using QvecHarmonicType = uint8_t;
6969

70+
// datatype for kinematic variable
71+
using KinematicVariableType = uint8_t;
72+
7073
} // namespace o2::analysis::femto::datatypes
7174

7275
#endif // PWGCF_FEMTO_CORE_DATATYPES_H_

PWGCF/Femto/Core/modes.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,5 +190,13 @@ enum class QvecHarmonic : o2::analysis::femto::datatypes::QvecHarmonicType {
190190
kQvecHarmonicLast = 4
191191
};
192192

193+
enum class KinematicVariable : o2::analysis::femto::datatypes::KinematicVariableType {
194+
kKstar = 1,
195+
kKt = 2,
196+
kMt = 3,
197+
kQ3 = 4,
198+
kKinematicVariableLast = 5
199+
};
200+
193201
}; // namespace o2::analysis::femto::modes
194202
#endif // PWGCF_FEMTO_CORE_MODES_H_

0 commit comments

Comments
 (0)