Skip to content

Commit 130aba9

Browse files
authored
Add cut on minimum he rigidity (#4470)
1 parent 1ecc68d commit 130aba9

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

PWGLF/TableProducer/hyperRecoTask.cxx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)