@@ -135,7 +135,7 @@ struct hyperRecoTask {
135135 Configurable<float > TPCRigidityMinHe{" TPCRigidityMinHe" , 0.2 , " Minimum rigidity of the helium candidate" };
136136 Configurable<float > etaMax{" eta" , 1 ., " eta daughter" };
137137 Configurable<float > nSigmaMaxHe{" nSigmaMaxHe" , 5 , " helium dEdx cut (n sigma)" };
138- Configurable<float > nTPCClusMinHe{ " nTPCClusMinHe " , 80 , " helium NTPC clusters cut" };
138+ Configurable<float > nTPCClusMin{ " nTPCClusMin " , 70 , " helium NTPC clusters cut" };
139139 Configurable<bool > mcSignalOnly{" mcSignalOnly" , true , " If true, save only signal in MC" };
140140
141141 // Define o2 fitter, 2-prong, active memory (no need to redefine per event)
@@ -148,6 +148,7 @@ struct hyperRecoTask {
148148 float piMass = o2::constants::physics::MassPionCharged;
149149
150150 Configurable<bool > useCustomVertexer{" useCustomVertexer" , false , " Use custom vertexer" };
151+ Configurable<bool > skipAmbiTracks{" skipAmbiTracks" , false , " Skip ambiguous tracks" };
151152 Configurable<float > customVertexerTimeMargin{" customVertexerTimeMargin" , 800 , " Time margin for custom vertexer (ns)" };
152153 Configurable<LabeledArray<double >> cfgBetheBlochParams{" cfgBetheBlochParams" , {betheBlochDefault[0 ], 1 , 6 , particleNames, betheBlochParNames}, " TPC Bethe-Bloch parameterisation for He3" };
153154 Configurable<bool > cfgCompensatePIDinTracking{" cfgCompensatePIDinTracking" , true , " If true, divide tpcInnerParam by the electric charge" };
@@ -209,6 +210,9 @@ struct hyperRecoTask {
209210 fitter.setMatCorrType (static_cast <o2::base::Propagator::MatCorrType>(mat));
210211
211212 svCreator.setTimeMargin (customVertexerTimeMargin);
213+ if (skipAmbiTracks) {
214+ svCreator.setSkipAmbiTracks ();
215+ }
212216
213217 const AxisSpec rigidityAxis{rigidityBins, " #it{p}^{TPC}/#it{z}" };
214218 const AxisSpec dedxAxis{dedxBins, " d#it{E}/d#it{x}" };
@@ -496,7 +500,7 @@ struct hyperRecoTask {
496500 }
497501 auto & heTrack = isHe ? posTrack : negTrack;
498502 auto & piTrack = isHe ? negTrack : posTrack;
499- if (heTrack.tpcNClsFound () < nTPCClusMinHe ) {
503+ if (heTrack.tpcNClsFound () < nTPCClusMin || piTrack. tpcNClsFound () < nTPCClusMin ) {
500504 continue ;
501505 }
502506
@@ -521,17 +525,12 @@ struct hyperRecoTask {
521525 if (std::abs (track.eta ()) > etaMax)
522526 continue ;
523527
524- if (!track.hasITS ())
528+ if (!track.hasITS () || track. tpcNClsFound () < nTPCClusMin )
525529 continue ;
526530
527531 auto nSigmaHe = computeNSigmaHe3 (track);
528532 bool isHe = nSigmaHe > -1 * nSigmaMaxHe;
529533 int pdgHypo = isHe ? heDauPdg : 211 ;
530-
531- if (isHe && track.tpcNClsFound () < nTPCClusMinHe) {
532- continue ;
533- }
534-
535534 svCreator.appendTrackCand (track, collisions, pdgHypo, ambiguousTracks, bcs);
536535 }
537536 auto & svPool = svCreator.getSVCandPool (collisions);
0 commit comments