Skip to content

Commit f0c9faf

Browse files
authored
PWGLF: Fix a bug of TPC nclusters cut and change the order of cuts on tracks for analysis of hypertriton 3body decay (#8180)
1 parent c4a5f32 commit f0c9faf

3 files changed

Lines changed: 31 additions & 23 deletions

File tree

PWGLF/TableProducer/Nuspex/decay3bodybuilder.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ struct decay3bodyBuilder {
523523
auto t1 = vtx3body.template track1_as<TTrackClass>();
524524
auto t2 = vtx3body.template track2_as<TTrackClass>();
525525

526-
if (t0.tpcNClsFound() < mintpcNCls && t1.tpcNClsFound() < mintpcNCls && t2.tpcNClsFound() < mintpcNCls) {
526+
if (t0.tpcNClsFound() < mintpcNCls || t1.tpcNClsFound() < mintpcNCls || t2.tpcNClsFound() < mintpcNCls) {
527527
continue;
528528
}
529529
registry.fill(HIST("hVtx3BodyCounter"), kVtxTPCNcls);

PWGLF/TableProducer/Nuspex/threebodyRecoTask.cxx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,9 @@ struct threebodyRecoTask {
150150
kCandRapidity,
151151
kCandct,
152152
kCandDcaDau,
153-
kCandTOFPID,
154-
kCandTPCPID,
155153
kCandTPCNcls,
154+
kCandTPCPID,
155+
kCandTOFPID,
156156
kCandDauPt,
157157
kCandDcaToPV,
158158
kCandInvMass,
@@ -281,40 +281,44 @@ struct threebodyRecoTask {
281281
return;
282282
}
283283
FillCandCounter(kCandCosPA, isTrueCand);
284+
284285
if (std::abs(trackProton.eta()) > etacut || std::abs(trackPion.eta()) > etacut || std::abs(trackDeuteron.eta()) > etacut) {
285286
return;
286287
}
287288
FillCandCounter(kCandDauEta, isTrueCand);
289+
288290
if (std::abs(candData.yHypertriton()) > rapiditycut) {
289291
return;
290292
}
291293
FillCandCounter(kCandRapidity, isTrueCand);
294+
292295
double ct = candData.distovertotmom(dCollision.posX(), dCollision.posY(), dCollision.posZ()) * o2::constants::physics::MassHyperTriton;
293296
if (ct > lifetimecut) {
294297
return;
295298
}
296299
FillCandCounter(kCandct, isTrueCand);
300+
297301
if (candData.dcaVtxdaughters() > dcavtxdau) {
298302
return;
299303
}
300304
FillCandCounter(kCandDcaDau, isTrueCand);
301305

302-
registry.fill(HIST("hDeuteronTOFVsPBeforeTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
303-
if ((candData.tofNSigmaBachDe() < TofPidNsigmaMin || candData.tofNSigmaBachDe() > TofPidNsigmaMax) && trackDeuteron.p() > minDeuteronPUseTOF) {
306+
if (trackProton.tpcNClsFound() < mintpcNClsproton || trackPion.tpcNClsFound() < mintpcNClspion || trackDeuteron.tpcNClsFound() < mintpcNClsdeuteron) {
304307
return;
305308
}
306-
FillCandCounter(kCandTOFPID, isTrueCand);
307-
registry.fill(HIST("hDeuteronTOFVsPAtferTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
309+
FillCandCounter(kCandTPCNcls, isTrueCand);
308310

309311
if (std::abs(trackProton.tpcNSigmaPr()) > TpcPidNsigmaCut || std::abs(trackPion.tpcNSigmaPi()) > TpcPidNsigmaCut || std::abs(trackDeuteron.tpcNSigmaDe()) > TpcPidNsigmaCut) {
310312
return;
311313
}
312314
FillCandCounter(kCandTPCPID, isTrueCand);
313315

314-
if (trackProton.tpcNClsFound() < mintpcNClsproton || trackPion.tpcNClsFound() < mintpcNClspion || trackDeuteron.tpcNClsFound() < mintpcNClsdeuteron) {
316+
registry.fill(HIST("hDeuteronTOFVsPBeforeTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
317+
if ((candData.tofNSigmaBachDe() < TofPidNsigmaMin || candData.tofNSigmaBachDe() > TofPidNsigmaMax) && trackDeuteron.p() > minDeuteronPUseTOF) {
315318
return;
316319
}
317-
FillCandCounter(kCandTPCNcls, isTrueCand);
320+
FillCandCounter(kCandTOFPID, isTrueCand);
321+
registry.fill(HIST("hDeuteronTOFVsPAtferTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
318322

319323
if (trackProton.pt() < minProtonPt || trackProton.pt() > maxProtonPt || trackPion.pt() < minPionPt || trackPion.pt() > maxPionPt || trackDeuteron.pt() < minDeuteronPt || trackDeuteron.pt() > maxDeuteronPt) {
320324
return;

PWGLF/Tasks/Nuspex/hypertriton3bodyanalysis.cxx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,9 @@ struct hypertriton3bodyAnalysis {
236236
kCandRapidity,
237237
kCandct,
238238
kCandDcaDau,
239-
kCandTOFPID,
240-
kCandTPCPID,
241239
kCandTPCNcls,
240+
kCandTPCPID,
241+
kCandTOFPID,
242242
kCandDauPt,
243243
kCandDcaToPV,
244244
kCandInvMass,
@@ -329,24 +329,38 @@ struct hypertriton3bodyAnalysis {
329329
return;
330330
}
331331
FillCandCounter(kCandCosPA, isTrueCand);
332-
if (TMath::Abs(trackProton.eta()) > etacut || TMath::Abs(trackPion.eta()) > etacut || TMath::Abs(trackDeuteron.eta()) > etacut) {
332+
333+
if (std::abs(trackProton.eta()) > etacut || std::abs(trackPion.eta()) > etacut || std::abs(trackDeuteron.eta()) > etacut) {
333334
return;
334335
}
335336
FillCandCounter(kCandDauEta, isTrueCand);
336-
if (TMath::Abs(candData.yHypertriton()) > rapiditycut) {
337+
338+
if (std::abs(candData.yHypertriton()) > rapiditycut) {
337339
return;
338340
}
339341
FillCandCounter(kCandRapidity, isTrueCand);
342+
340343
double ct = candData.distovertotmom(dCollision.posX(), dCollision.posY(), dCollision.posZ()) * o2::constants::physics::MassHyperTriton;
341344
if (ct > lifetimecut) {
342345
return;
343346
}
344347
FillCandCounter(kCandct, isTrueCand);
348+
345349
if (candData.dcaVtxdaughters() > dcavtxdau) {
346350
return;
347351
}
348352
FillCandCounter(kCandDcaDau, isTrueCand);
349353

354+
if (trackProton.tpcNClsFound() < mintpcNClsproton || trackPion.tpcNClsFound() < mintpcNClspion || trackDeuteron.tpcNClsFound() < mintpcNClsdeuteron) {
355+
return;
356+
}
357+
FillCandCounter(kCandTPCNcls, isTrueCand);
358+
359+
if (TMath::Abs(trackProton.tpcNSigmaPr()) > TpcPidNsigmaCut || TMath::Abs(trackPion.tpcNSigmaPi()) > TpcPidNsigmaCut || TMath::Abs(trackDeuteron.tpcNSigmaDe()) > TpcPidNsigmaCut) {
360+
return;
361+
}
362+
FillCandCounter(kCandTPCPID, isTrueCand);
363+
350364
// registry.fill(HIST("hDeuteronDefaultTOFVsPBeforeTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), trackDeuteron.tofNSigmaDe());
351365
registry.fill(HIST("hDeuteronTOFVsPBeforeTOFCut"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
352366
if (isTrueCand) {
@@ -364,16 +378,6 @@ struct hypertriton3bodyAnalysis {
364378
registry.fill(HIST("hDeuteronTOFVsPAfterTOFCutSig"), trackDeuteron.sign() * trackDeuteron.p(), candData.tofNSigmaBachDe());
365379
}
366380

367-
if (TMath::Abs(trackProton.tpcNSigmaPr()) > TpcPidNsigmaCut || TMath::Abs(trackPion.tpcNSigmaPi()) > TpcPidNsigmaCut || TMath::Abs(trackDeuteron.tpcNSigmaDe()) > TpcPidNsigmaCut) {
368-
return;
369-
}
370-
FillCandCounter(kCandTPCPID, isTrueCand);
371-
372-
if (trackProton.tpcNClsFound() < mintpcNClsproton || trackPion.tpcNClsFound() < mintpcNClspion || trackDeuteron.tpcNClsFound() < mintpcNClsdeuteron) {
373-
return;
374-
}
375-
FillCandCounter(kCandTPCNcls, isTrueCand);
376-
377381
if (trackProton.pt() < minProtonPt || trackProton.pt() > maxProtonPt || trackPion.pt() < minPionPt || trackPion.pt() > maxPionPt || trackDeuteron.pt() < minDeuteronPt || trackDeuteron.pt() > maxDeuteronPt) {
378382
return;
379383
}

0 commit comments

Comments
 (0)