@@ -74,6 +74,7 @@ struct createPCM {
7474 Configurable<float > maxeta{" maxeta" , 0.9 , " eta acceptance for single track" };
7575 Configurable<int > mincrossedrows{" mincrossedrows" , 10 , " min crossed rows" };
7676 Configurable<float > maxchi2tpc{" maxchi2tpc" , 4.0 , " max chi2/NclsTPC" };
77+ Configurable<bool > useTPConly{" useTPConly" , false , " Use truly TPC only tracks for V0 finder" };
7778
7879 int mRunNumber ;
7980 float d_bz;
@@ -176,13 +177,6 @@ struct createPCM {
176177 array<float , 3 > pvec0 = {0 .};
177178 array<float , 3 > pvec1 = {0 .};
178179
179- if (ele.tpcNClsCrossedRows () < mincrossedrows) {
180- return ;
181- }
182- if (pos.tpcNClsCrossedRows () < mincrossedrows) {
183- return ;
184- }
185-
186180 auto pTrack = getTrackParCov (pos); // positive
187181 auto nTrack = getTrackParCov (ele); // negative
188182
@@ -242,6 +236,22 @@ struct createPCM {
242236 auto posTracks_coll = posTracks->sliceByCached (o2::aod::track::collisionId, collision.globalIndex ());
243237
244238 for (auto & [ele, pos] : combinations (CombinationsFullIndexPolicy (negTracks_coll, posTracks_coll))) {
239+ if (ele.tpcNClsCrossedRows () < mincrossedrows) {
240+ continue ;
241+ }
242+ if (pos.tpcNClsCrossedRows () < mincrossedrows) {
243+ continue ;
244+ }
245+
246+ if (useTPConly) {
247+ if ((ele.hasITS () || ele.hasTOF () || ele.hasTRD ())) {
248+ continue ;
249+ }
250+ if ((pos.hasITS () || pos.hasTOF () || pos.hasTRD ())) {
251+ continue ;
252+ }
253+ }
254+
245255 fillV0Table (collision, ele, pos);
246256 }
247257 } // end of collision loop
@@ -283,6 +293,15 @@ struct createPCM {
283293 continue ;
284294 }
285295
296+ if (useTPConly) {
297+ if ((ele.hasITS () || ele.hasTOF () || ele.hasTRD ())) {
298+ continue ;
299+ }
300+ if ((pos.hasITS () || pos.hasTOF () || pos.hasTRD ())) {
301+ continue ;
302+ }
303+ }
304+
286305 if (ele.sign () < 0 ) {
287306 fillV0Table (collision, ele, pos);
288307 } else {
0 commit comments