@@ -110,10 +110,11 @@ struct hyperRecoTask {
110110 Configurable<double > v0cospa{" hypcospa" , 0.95 , " V0 CosPA" };
111111 Configurable<float > masswidth{" hypmasswidth" , 0.06 , " Mass width (GeV/c^2)" };
112112 Configurable<float > dcav0dau{" hypdcaDau" , 1.0 , " DCA V0 Daughters" };
113- Configurable<float > ptmin{" ptmin" , 0.5 , " Minimum pT of the hypercandidate" };
113+ Configurable<float > ptMin{" ptMin" , 0.5 , " Minimum pT of the hypercandidate" };
114+ Configurable<float > TPCRigidityMinHe{" TPCRigidityMinHe" , 0.2 , " Minimum rigidity of the helium candidate" };
114115 Configurable<float > etaMax{" eta" , 1 ., " eta daughter" };
115- Configurable<float > heliumNsigmaMax{ " heliumNsigmaMax " , 5 , " helium dEdx cut (n sigma)" };
116- Configurable<float > heliumNtpcClusMin{ " heliumNtpcClusMin " , 80 , " helium NTPC clusters cut" };
116+ Configurable<float > nSigmaMaxHe{ " nSigmaMaxHe " , 5 , " helium dEdx cut (n sigma)" };
117+ Configurable<float > nTPCClusMinHe{ " nTPCClusMinHe " , 80 , " helium NTPC clusters cut" };
117118 Configurable<bool > mcSignalOnly{" mcSignalOnly" , true , " If true, save only signal in MC" };
118119
119120 // Define o2 fitter, 2-prong, active memory (no need to redefine per event)
@@ -272,10 +273,8 @@ struct hyperRecoTask {
272273 float posRigidity = posHeliumPID ? posTrack.tpcInnerParam () / 2 : posTrack.tpcInnerParam ();
273274 float negRigidity = negHeliumPID ? negTrack.tpcInnerParam () / 2 : negTrack.tpcInnerParam ();
274275
275- if (posTrack.tpcNClsFound () >= heliumNtpcClusMin)
276- hDeDxTot->Fill (posRigidity, posTrack.tpcSignal ());
277- if (negTrack.tpcNClsFound () >= heliumNtpcClusMin)
278- hDeDxTot->Fill (-negRigidity, negTrack.tpcSignal ());
276+ hDeDxTot->Fill (posRigidity, posTrack.tpcSignal ());
277+ hDeDxTot->Fill (-negRigidity, negTrack.tpcSignal ());
279278
280279 double expBethePos{tpc::BetheBlochAleph (static_cast <float >(posRigidity * 2 / constants::physics::MassHelium3), mBBparamsHe [0 ], mBBparamsHe [1 ], mBBparamsHe [2 ], mBBparamsHe [3 ], mBBparamsHe [4 ])};
281280 double expBetheNeg{tpc::BetheBlochAleph (static_cast <float >(negRigidity * 2 / constants::physics::MassHelium3), mBBparamsHe [0 ], mBBparamsHe [1 ], mBBparamsHe [2 ], mBBparamsHe [3 ], mBBparamsHe [4 ])};
@@ -285,16 +284,17 @@ struct hyperRecoTask {
285284 auto nSigmaTPCneg = static_cast <float >((negTrack.tpcSignal () - expBetheNeg) / expSigmaNeg);
286285
287286 // ITS only tracks do not have TPC information. TPCnSigma: only lower cut to allow for both hypertriton and hyperhydrogen4 reconstruction
288- bool isHe = posTrack.hasTPC () && nSigmaTPCpos > -1 * heliumNsigmaMax ;
289- bool isAntiHe = negTrack.hasTPC () && nSigmaTPCneg > -1 * heliumNsigmaMax ;
287+ bool isHe = posTrack.hasTPC () && nSigmaTPCpos > -1 * nSigmaMaxHe ;
288+ bool isAntiHe = negTrack.hasTPC () && nSigmaTPCneg > -1 * nSigmaMaxHe ;
290289
291290 if (!isHe && !isAntiHe)
292291 continue ;
293292
294293 hyperCandidate hypCand;
295294 hypCand.isMatter = isHe && isAntiHe ? std::abs (nSigmaTPCpos) < std::abs (nSigmaTPCneg) : isHe;
296295 auto & he3track = hypCand.isMatter ? posTrack : negTrack;
297- if (he3track.tpcNClsFound () < heliumNtpcClusMin)
296+ auto & he3Rigidity = hypCand.isMatter ? posRigidity : negRigidity;
297+ if (he3track.tpcNClsFound () < nTPCClusMinHe || he3Rigidity < TPCRigidityMinHe)
298298 continue ;
299299
300300 hypCand.nSigmaHe3 = hypCand.isMatter ? nSigmaTPCpos : nSigmaTPCneg;
@@ -350,7 +350,7 @@ struct hyperRecoTask {
350350 }
351351
352352 float hypPt = std::hypot (hypMom[0 ], hypMom[1 ]);
353- if (hypPt < ptmin )
353+ if (hypPt < ptMin )
354354 continue ;
355355
356356 float massH3L = std::sqrt (h3lE * h3lE - hypMom[0 ] * hypMom[0 ] - hypMom[1 ] * hypMom[1 ] - hypMom[2 ] * hypMom[2 ]);
0 commit comments