@@ -46,6 +46,21 @@ constexpr char PrefixTrack2V0Se[] = "CPR_Track2V0/SE/";
4646constexpr char PrefixTrack1V0Me[] = " CPR_Track1V0/ME/" ;
4747constexpr char PrefixTrack2V0Me[] = " CPR_Track2V0/ME/" ;
4848
49+ constexpr char PrefixTrack1CascadeSe[] = " CPR_Track1Cascade/SE/" ;
50+ constexpr char PrefixTrack2CascadeSe[] = " CPR_Track2Cascade/SE/" ;
51+ constexpr char PrefixTrack1CascadeMe[] = " CPR_Track1Cascade/ME/" ;
52+ constexpr char PrefixTrack2CascadeMe[] = " CPR_Track2Cascade/ME/" ;
53+
54+ constexpr char PrefixTrack1V0DaughterSe[] = " CPR_Track1V0Dau/SE/" ;
55+ constexpr char PrefixTrack2V0DaughterSe[] = " CPR_Track2V0Dau/SE/" ;
56+ constexpr char PrefixTrack1V0DaughterMe[] = " CPR_Track1V0Dau/ME/" ;
57+ constexpr char PrefixTrack2V0DaughterMe[] = " CPR_Track2V0Dau/ME/" ;
58+
59+ constexpr char PrefixTrack1CascadeBachelorSe[] = " CPR_Track1CascadeBachelor/SE/" ;
60+ constexpr char PrefixTrack2CascadeBachelorSe[] = " CPR_TrackCascadeBachelor/SE/" ;
61+ constexpr char PrefixTrack1CascadeBachelorMe[] = " CPR_TrackCascadeBachelor/ME/" ;
62+ constexpr char PrefixTrack2CascadeBachelorMe[] = " CPR_TrackCascadeBachelor/ME/" ;
63+
4964template <const char * prefixTrack1Track2,
5065 const char * prefixTrack2Track3,
5166 const char * prefixTrack1Track3>
@@ -151,6 +166,64 @@ class CloseTripletRejectionTrackTrackV0
151166 closepairrejection::ClosePairRejectionTrackV0<prefixTrack2V0> mCtrTrack2V0 ;
152167};
153168
169+ template <const char * prefixTrack1Track2,
170+ const char * prefixTrack1Bachelor,
171+ const char * prefixTrack1V0Daughter,
172+ const char * prefixTrack2Bachelor,
173+ const char * prefixTrack2V0Daughter>
174+ class CloseTripletRejectionTrackTrackCascade
175+ {
176+ public:
177+ CloseTripletRejectionTrackTrackCascade () = default ;
178+ ~CloseTripletRejectionTrackTrackCascade () = default ;
179+
180+ template <typename T1, typename T2, typename T3>
181+ void init (o2::framework::HistogramRegistry* registry,
182+ std::map<closepairrejection::CprHist, std::vector<o2::framework::AxisSpec>> const & specs,
183+ std::map<closepairrejection::CprHist, std::vector<o2::framework::AxisSpec>> const & specsBachelor,
184+ std::map<closepairrejection::CprHist, std::vector<o2::framework::AxisSpec>> const & specsV0Daughter,
185+ T1 const & confCpr,
186+ T2 const & confCprBachelor,
187+ T3 const & confCprV0Daughter,
188+ int absChargeTrack1,
189+ int absChargeTrack2)
190+ {
191+ mCtrTrack12 .init (registry, specs, confCpr, absChargeTrack1, absChargeTrack2);
192+ mCtrTrack1Cascade .init (registry, specsBachelor, specsV0Daughter, confCprBachelor, confCprV0Daughter, absChargeTrack1);
193+ mCtrTrack2Cascade .init (registry, specsBachelor, specsV0Daughter, confCprBachelor, confCprV0Daughter, absChargeTrack2);
194+ }
195+
196+ void setMagField (float magField)
197+ {
198+ mCtrTrack12 .setMagField (magField);
199+ mCtrTrack1Cascade .setMagField (magField);
200+ mCtrTrack2Cascade .setMagField (magField);
201+ }
202+ template <typename T1, typename T2, typename T3, typename T4>
203+ void setTriplet (T1 const & track1, T2 const & track2, T3 const & cascade, T4 const & trackTable)
204+ {
205+ mCtrTrack12 .setPair (track1, track2, trackTable);
206+ mCtrTrack1Cascade .setPair (track1, cascade, trackTable);
207+ mCtrTrack2Cascade .setPair (track2, cascade, trackTable);
208+ }
209+ bool isCloseTriplet () const
210+ {
211+ return mCtrTrack12 .isClosePair () || mCtrTrack1Cascade .isClosePair () || mCtrTrack2Cascade .isClosePair ();
212+ }
213+
214+ void fill (float q3)
215+ {
216+ mCtrTrack12 .fill (q3);
217+ mCtrTrack1Cascade .fill (q3);
218+ mCtrTrack2Cascade .fill (q3);
219+ }
220+
221+ private:
222+ closepairrejection::ClosePairRejectionTrackTrack<prefixTrack1Track2> mCtrTrack12 ;
223+ closepairrejection::ClosePairRejectionTrackCascade<prefixTrack1Bachelor, prefixTrack1V0Daughter> mCtrTrack1Cascade ;
224+ closepairrejection::ClosePairRejectionTrackCascade<prefixTrack2Bachelor, prefixTrack2V0Daughter> mCtrTrack2Cascade ;
225+ };
226+
154227}; // namespace closetripletrejection
155228}; // namespace o2::analysis::femto
156229#endif // PWGCF_FEMTO_CORE_CLOSETRIPLETREJECTION_H_
0 commit comments