1616#ifndef PWGEM_PHOTONMESON_UTILS_TRACKSELECTION_H_
1717#define PWGEM_PHOTONMESON_UTILS_TRACKSELECTION_H_
1818
19+ #include < Framework/ASoA.h>
20+
1921#include < TPDGCode.h>
2022
2123#include < cmath>
@@ -30,7 +32,7 @@ namespace o2::pwgem::photonmeson
3032 * @param track track
3133 * @return true if has both
3234 */
33- template <typename TTrack>
35+ template <o2::soa::is_iterator TTrack>
3436inline bool isITSTPCTrack (TTrack const & track)
3537{
3638 return track.hasITS () && track.hasTPC ();
@@ -43,7 +45,7 @@ inline bool isITSTPCTrack(TTrack const& track)
4345 * @param track track
4446 * @return true if has both
4547 */
46- template <typename TTrack>
48+ template <o2::soa::is_iterator TTrack>
4749inline bool isTPCTRDTrack (TTrack const & track)
4850{
4951 return !track.hasITS () && track.hasTPC () && track.hasTRD () && !track.hasTOF ();
@@ -56,7 +58,7 @@ inline bool isTPCTRDTrack(TTrack const& track)
5658 * @param track track
5759 * @return true if has all
5860 */
59- template <typename TTrack>
61+ template <o2::soa::is_iterator TTrack>
6062inline bool isITSTPCTRDTrack (TTrack const & track)
6163{
6264 return track.hasITS () && track.hasTPC () && track.hasTRD () && !track.hasTOF ();
@@ -68,7 +70,7 @@ inline bool isITSTPCTRDTrack(TTrack const& track)
6870 * @param track track
6971 * @return true if has both
7072 */
71- template <typename TTrack>
73+ template <o2::soa::is_iterator TTrack>
7274inline bool isTPCTOFTrack (TTrack const & track)
7375{
7476 return !track.hasITS () && track.hasTPC () && !track.hasTRD () && track.hasTOF ();
@@ -80,7 +82,7 @@ inline bool isTPCTOFTrack(TTrack const& track)
8082 * @param track track
8183 * @return true if has all
8284 */
83- template <typename TTrack>
85+ template <o2::soa::is_iterator TTrack>
8486inline bool isTPCTRDTOFTrack (TTrack const & track)
8587{
8688 return !track.hasITS () && track.hasTPC () && track.hasTRD () && track.hasTOF ();
@@ -92,7 +94,7 @@ inline bool isTPCTRDTOFTrack(TTrack const& track)
9294 * @param track track
9395 * @return true if has all
9496 */
95- template <typename TTrack>
97+ template <o2::soa::is_iterator TTrack>
9698inline bool isITSTPCTRDTOFTrack (TTrack const & track)
9799{
98100 return track.hasITS () && track.hasTPC () && track.hasTRD () && track.hasTOF ();
@@ -105,7 +107,7 @@ inline bool isITSTPCTRDTOFTrack(TTrack const& track)
105107 * @param track track
106108 * @return true if tracks is TPC-only
107109 */
108- template <typename TTrack>
110+ template <o2::soa::is_iterator TTrack>
109111inline bool isTPConlyTrack (TTrack const & track)
110112{
111113 return !track.hasITS () && track.hasTPC () && !track.hasTRD () && !track.hasTOF ();
@@ -118,7 +120,7 @@ inline bool isTPConlyTrack(TTrack const& track)
118120 * @param track track
119121 * @return true if tracks is ITS-only
120122 */
121- template <typename TTrack>
123+ template <o2::soa::is_iterator TTrack>
122124inline bool isITSonlyTrack (TTrack const & track)
123125{
124126 return track.hasITS () && !track.hasTPC () && !track.hasTRD () && !track.hasTOF ();
@@ -132,7 +134,7 @@ inline bool isITSonlyTrack(TTrack const& track)
132134 * @param track1 track from daughter 1
133135 * @return true if V0 pairs are ITSTPC-tracks
134136 */
135- template <typename TTrack>
137+ template <o2::soa::is_iterator TTrack>
136138inline bool isITSTPC_ITSTPC (TTrack const & track0, TTrack const & track1)
137139{
138140 return isITSTPCTrack (track0) && isITSTPCTrack (track1);
@@ -146,7 +148,7 @@ inline bool isITSTPC_ITSTPC(TTrack const& track0, TTrack const& track1)
146148 * @param track1 track from daughter 1
147149 * @return true if one is TPC-only and the other ITSTPC
148150 */
149- template <typename TTrack>
151+ template <o2::soa::is_iterator TTrack>
150152inline bool isITSTPC_TPConly (TTrack const & track0, TTrack const & track1)
151153{
152154 return (isITSTPCTrack (track0) && isTPConlyTrack (track1)) || (isITSTPCTrack (track1) && isTPConlyTrack (track0));
@@ -160,7 +162,7 @@ inline bool isITSTPC_TPConly(TTrack const& track0, TTrack const& track1)
160162 * @param track1 track from daughter 1
161163 * @return true if one is ITS-only and the other ITSTPC
162164 */
163- template <typename TTrack>
165+ template <o2::soa::is_iterator TTrack>
164166inline bool isITSTPC_ITSonly (TTrack const & track0, TTrack const & track1)
165167{
166168 return (isITSTPCTrack (track0) && isITSonlyTrack (track1)) || (isITSTPCTrack (track1) && isITSonlyTrack (track0));
@@ -174,7 +176,7 @@ inline bool isITSTPC_ITSonly(TTrack const& track0, TTrack const& track1)
174176 * @param track1 track from daughter 1
175177 * @return true if both are TPC-only tracks
176178 */
177- template <typename TTrack>
179+ template <o2::soa::is_iterator TTrack>
178180inline bool isTPConly_TPConly (TTrack const & track0, TTrack const & track1)
179181{
180182 return isTPConlyTrack (track0) && isTPConlyTrack (track1);
@@ -188,7 +190,7 @@ inline bool isTPConly_TPConly(TTrack const& track0, TTrack const& track1)
188190 * @param track1 track from daughter 1
189191 * @return true if both are ITS-only tracks
190192 */
191- template <typename TTrack>
193+ template <o2::soa::is_iterator TTrack>
192194inline bool isITSonly_ITSonly (TTrack const & track0, TTrack const & track1)
193195{
194196 return isITSonlyTrack (track0) && isITSonlyTrack (track1);
@@ -202,7 +204,7 @@ inline bool isITSonly_ITSonly(TTrack const& track0, TTrack const& track1)
202204 * @param track1 track from daughter 1
203205 * @return true if either one is ITS-only while the other one is TPC-only
204206 */
205- template <typename TTrack>
207+ template <o2::soa::is_iterator TTrack>
206208inline bool isTPConly_ITSonly (TTrack const & track0, TTrack const & track1)
207209{
208210 return (isTPConlyTrack (track0) && isITSonlyTrack (track1)) || (isTPConlyTrack (track1) && isITSonlyTrack (track0));
@@ -215,7 +217,7 @@ inline bool isTPConly_ITSonly(TTrack const& track0, TTrack const& track1)
215217 * @param mc2 MCParticle 1
216218 * @return true if the mother particle is the expected type and the same for both
217219 */
218- template <PDG_t motherType, typename T>
220+ template <PDG_t motherType, o2::soa::is_iterator T>
219221inline bool checkMCParticles (T const & mc1, T const & mc2)
220222{
221223 if (std::abs (mc1.pdgCode ()) != kElectron || std::abs (mc2.pdgCode ()) != kElectron ) {
0 commit comments