Skip to content

Commit e20b55c

Browse files
Yunfan-Liualibuild
andauthored
[PWGHF] add deviation of pi from Omega_c for Omega_c -> OmegaPi and remove the cuts on negative chi2 (#10567)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent dff662d commit e20b55c

File tree

3 files changed

+39
-26
lines changed

3 files changed

+39
-26
lines changed

PWGHF/DataModel/CandidateReconstructionTables.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1328,6 +1328,7 @@ DECLARE_SOA_COLUMN(Chi2TopoCascToPv, chi2TopoCascToPv, float);
13281328
DECLARE_SOA_COLUMN(Chi2TopoPiFromOmegacToPv, chi2TopoPiFromOmegacToPv, float);
13291329
DECLARE_SOA_COLUMN(Chi2TopoPiFromXicToPv, chi2TopoPiFromXicToPv, float);
13301330
DECLARE_SOA_COLUMN(Chi2TopoOmegacToPv, chi2TopoOmegacToPv, float);
1331+
DECLARE_SOA_COLUMN(DeviationPiFromOmegacToPv, deviationPiFromOmegacToPv, float);
13311332
DECLARE_SOA_COLUMN(Chi2TopoXicToPv, chi2TopoXicToPv, float);
13321333
DECLARE_SOA_COLUMN(Chi2TopoV0ToCasc, chi2TopoV0ToCasc, float);
13331334
DECLARE_SOA_COLUMN(Chi2TopoCascToOmegac, chi2TopoCascToOmegac, float);
@@ -1500,7 +1501,7 @@ DECLARE_SOA_TABLE(HfOmegacKf, "AOD", "HFOMEGACKF", //!
15001501
hf_cand_xic0_omegac0::Chi2GeoV0, hf_cand_xic0_omegac0::Chi2GeoCasc, hf_cand_xic0_omegac0::Chi2GeoOmegac,
15011502
hf_cand_xic0_omegac0::Chi2MassV0, hf_cand_xic0_omegac0::Chi2MassCasc,
15021503
hf_cand_xic0_omegac0::V0ldl, hf_cand_xic0_omegac0::Cascldl, hf_cand_xic0_omegac0::Omegacldl,
1503-
hf_cand_xic0_omegac0::Chi2TopoV0ToPv, hf_cand_xic0_omegac0::Chi2TopoCascToPv, hf_cand_xic0_omegac0::Chi2TopoPiFromOmegacToPv, hf_cand_xic0_omegac0::Chi2TopoOmegacToPv,
1504+
hf_cand_xic0_omegac0::Chi2TopoV0ToPv, hf_cand_xic0_omegac0::Chi2TopoCascToPv, hf_cand_xic0_omegac0::Chi2TopoPiFromOmegacToPv, hf_cand_xic0_omegac0::Chi2TopoOmegacToPv, hf_cand_xic0_omegac0::DeviationPiFromOmegacToPv,
15041505
hf_cand_xic0_omegac0::Chi2TopoV0ToCasc, hf_cand_xic0_omegac0::Chi2TopoCascToOmegac,
15051506
hf_cand_xic0_omegac0::DecayLenXYLambda, hf_cand_xic0_omegac0::DecayLenXYCasc, hf_cand_xic0_omegac0::DecayLenXYOmegac,
15061507
hf_cand_xic0_omegac0::CosPaV0ToCasc, hf_cand_xic0_omegac0::CosPaCascToOmegac, hf_cand_xic0_omegac0::CosPaXYV0ToCasc, hf_cand_xic0_omegac0::CosPaXYCascToOmegac,

PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ struct HfCandidateCreatorXic0Omegac0 {
160160
float massOmegac;
161161
float cosThetaStarPiFromOmegac;
162162
float chi2NdfTopoPiFromOmegacToPv;
163+
float deviationPiFromOmegacToPv;
163164
float kfDcaXYPiFromOmegac;
164165
float chi2NdfTopoV0ToCasc;
165166
float chi2NdfTopoCascToOmegac;
@@ -281,6 +282,10 @@ struct HfCandidateCreatorXic0Omegac0 {
281282
// KFParticle Variables Histograms
282283
registry.add("hKFParticleV0TopoChi2", "hKFParticleV0TopoChi2", kTH1D, {{1000, -0.10f, 100.0f}});
283284
registry.add("hKFParticleCascTopoChi2", "hKFParticleCascTopoChi2", kTH1D, {{1000, -0.1f, 100.0f}});
285+
registry.add("hKfChi2TopoPiFromCharmBaryon", "hKfChi2TopoPifromCharmBaryon", kTH1F, {{2000, -0.1f, 1000.0f}});
286+
registry.add("hKfNdfPiFromCharmBaryon", "hKfNDfPifromCharmBaryon", kTH1F, {{2000, -0.1f, 200.0f}});
287+
registry.add("hKfChi2OverNdfPiFromCharmBaryon", "hKfChi2OverNdfPifromCharmBaryon", kTH1F, {{1000, -0.1f, 200.0f}});
288+
registry.add("hKfDeviationPiFromCharmBaryon", "hKfChi2OverNdfPifromCharmBaryon", kTH1F, {{1000, -0.1f, 200.0f}});
284289
registry.add("hKFParticleCascBachTopoChi2", "hKFParticleCascBachTopoChi2", kTH1D, {{1000, -0.1f, 100.0f}});
285290
registry.add("hKFParticleDcaCharmBaryonDau", "hKFParticleDcaCharmBaryonDau", kTH1D, {{1000, -0.1f, 1.0f}});
286291
registry.add("hKFParticleDcaXYCascBachToPv", "hKFParticleDcaXYCascBachToPv", kTH1D, {{1000, -0.1f, 15.0f}});
@@ -802,9 +807,6 @@ struct HfCandidateCreatorXic0Omegac0 {
802807
// err_mass>0 of Lambda
803808
if (sigLam <= 0)
804809
continue;
805-
// chi2>0 && NDF>0 for selecting Lambda
806-
if ((kfV0.GetNDF() <= 0 || kfV0.GetChi2() <= 0))
807-
continue;
808810
kfOmegac0Candidate.chi2GeoV0 = kfV0.GetChi2();
809811
KFParticle kfV0MassConstrained = kfV0;
810812
kfV0MassConstrained.SetNonlinearMassConstraint(o2::constants::physics::MassLambda); // set mass constrain to Lambda
@@ -838,9 +840,7 @@ struct HfCandidateCreatorXic0Omegac0 {
838840
continue;
839841
if (std::abs(massCasc - MassOmegaMinus) > massToleranceCascade)
840842
continue;
841-
// chi2>0 && NDF>0
842-
if (kfOmega.GetNDF() <= 0 || kfOmega.GetChi2() <= 0)
843-
continue;
843+
844844
kfOmegac0Candidate.chi2GeoCasc = kfOmega.GetChi2();
845845
kfOmegac0Candidate.cascRejectInvmass = massCascrej;
846846
registry.fill(HIST("hInvMassXiMinus_rej"), massCascrej); // rej
@@ -874,9 +874,7 @@ struct HfCandidateCreatorXic0Omegac0 {
874874
kfOmegaC0.GetMass(massOmegaC0, sigOmegaC0);
875875
if (sigOmegaC0 <= 0)
876876
continue;
877-
// chi2>0 && NDF>0
878-
if (kfOmegaC0.GetNDF() <= 0 || kfOmegaC0.GetChi2() <= 0)
879-
continue;
877+
880878
hFitterStatus->Fill(0);
881879
hCandidateCounter->Fill(2);
882880
kfOmegaC0.TransportToDecayVertex();
@@ -1019,6 +1017,7 @@ struct HfCandidateCreatorXic0Omegac0 {
10191017
kfOmegac0Candidate.chi2NdfTopoCascToPv = kfOmegaToPv.GetChi2() / kfOmegaToPv.GetNDF();
10201018
kfOmegac0Candidate.chi2NdfTopoPiFromOmegacToPv = kfPiFromOmegacToPv.GetChi2() / kfPiFromOmegacToPv.GetNDF();
10211019
kfOmegac0Candidate.chi2NdfTopoOmegacToPv = kfOmegac0ToPv.GetChi2() / kfOmegac0ToPv.GetNDF();
1020+
kfOmegac0Candidate.deviationPiFromOmegacToPv = kfCalculateChi2ToPrimaryVertex(kfOmegaC0, kfPV);
10221021

10231022
auto cascBachTopoChi2Ndf = kfBachKaonToOmega.GetChi2() / kfBachKaonToOmega.GetNDF();
10241023
kfOmegac0Candidate.chi2NdfTopoV0ToCasc = kfV0ToCasc.GetChi2() / kfV0ToCasc.GetNDF();
@@ -1098,6 +1097,10 @@ struct HfCandidateCreatorXic0Omegac0 {
10981097
registry.fill(HIST("hKfOmega_ldl"), kfOmegac0Candidate.ldlCasc);
10991098
registry.fill(HIST("hKfOmegaC0_ldl"), kfOmegac0Candidate.ldlOmegac);
11001099
registry.fill(HIST("hDcaXYCascadeToPVKf"), kfOmegac0Candidate.kfDcaXYCascToPv);
1100+
registry.fill(HIST("hKfChi2TopoPiFromCharmBaryon"), kfPiFromOmegacToPv.GetChi2());
1101+
registry.fill(HIST("hKfNdfPiFromCharmBaryon"), kfPiFromOmegacToPv.GetNDF());
1102+
registry.fill(HIST("hKfChi2OverNdfPiFromCharmBaryon"), kfOmegac0Candidate.chi2NdfTopoPiFromOmegacToPv);
1103+
registry.fill(HIST("hKfDeviationPiFromCharmBaryon"), kfOmegac0Candidate.deviationPiFromOmegacToPv);
11011104
// Additional histograms
11021105
if (fillAllHist) {
11031106
registry.fill(HIST("hEtaV0PosDau"), kfPos.GetEta());
@@ -1161,7 +1164,7 @@ struct HfCandidateCreatorXic0Omegac0 {
11611164
kfCandidateData(kfOmegac0Candidate.kfDcaXYPiFromOmegac, kfOmegac0Candidate.kfDcaXYCascToPv,
11621165
kfOmegac0Candidate.chi2GeoV0, kfOmegac0Candidate.chi2GeoCasc, kfOmegac0Candidate.chi2GeoOmegac, kfOmegac0Candidate.chi2MassV0, kfOmegac0Candidate.chi2MassCasc,
11631166
kfOmegac0Candidate.ldlV0, kfOmegac0Candidate.ldlCasc, kfOmegac0Candidate.ldlOmegac,
1164-
kfOmegac0Candidate.chi2NdfTopoV0ToPv, kfOmegac0Candidate.chi2NdfTopoCascToPv, kfOmegac0Candidate.chi2NdfTopoPiFromOmegacToPv, kfOmegac0Candidate.chi2NdfTopoOmegacToPv,
1167+
kfOmegac0Candidate.chi2NdfTopoV0ToPv, kfOmegac0Candidate.chi2NdfTopoCascToPv, kfOmegac0Candidate.chi2NdfTopoPiFromOmegacToPv, kfOmegac0Candidate.chi2NdfTopoOmegacToPv, kfOmegac0Candidate.deviationPiFromOmegacToPv,
11651168
kfOmegac0Candidate.chi2NdfTopoV0ToCasc, kfOmegac0Candidate.chi2NdfTopoCascToOmegac,
11661169
kfOmegac0Candidate.decayLenXYLambda, kfOmegac0Candidate.decayLenXYCasc, kfOmegac0Candidate.decayLenXYOmegac,
11671170
kfOmegac0Candidate.cosPaV0ToCasc, kfOmegac0Candidate.cosPaCascToOmegac, kfOmegac0Candidate.cosPaXYV0ToCasc, kfOmegac0Candidate.cosPaXYCascToOmegac,

PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ DECLARE_SOA_COLUMN(Chi2TopoV0ToPv, chi2TopoV0ToPv, float);
121121
DECLARE_SOA_COLUMN(Chi2TopoCascToPv, chi2TopoCascToPv, float);
122122
DECLARE_SOA_COLUMN(Chi2TopoPiFromOmegacToPv, chi2TopoPiFromOmegacToPv, float);
123123
DECLARE_SOA_COLUMN(Chi2TopoOmegacToPv, chi2TopoOmegacToPv, float);
124+
DECLARE_SOA_COLUMN(DeviationPiFromOmegacToPv, deviationPiFromOmegacToPv, float);
124125
DECLARE_SOA_COLUMN(Chi2TopoV0ToCasc, chi2TopoV0ToCasc, float);
125126
DECLARE_SOA_COLUMN(Chi2TopoCascToOmegac, chi2TopoCascToOmegac, float);
126127
DECLARE_SOA_COLUMN(DecayLenXYLambda, decayLenXYLambda, float);
@@ -185,7 +186,7 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL",
185186
full::Chi2GeoV0, full::Chi2GeoCasc, full::Chi2GeoOmegac,
186187
full::Chi2MassV0, full::Chi2MassCasc,
187188
full::V0ldl, full::Cascldl, full::Omegacldl,
188-
full::Chi2TopoV0ToPv, full::Chi2TopoCascToPv, full::Chi2TopoPiFromOmegacToPv, full::Chi2TopoOmegacToPv,
189+
full::Chi2TopoV0ToPv, full::Chi2TopoCascToPv, full::Chi2TopoPiFromOmegacToPv, full::Chi2TopoOmegacToPv, full::DeviationPiFromOmegacToPv,
189190
full::Chi2TopoV0ToCasc, full::Chi2TopoCascToOmegac,
190191
full::DecayLenXYLambda, full::DecayLenXYCasc, full::DecayLenXYOmegac,
191192
full::CosPaV0ToCasc, full::CosPaV0ToPv, full::CosPaCascToOmegac, full::CosPaCascToPv, full::CosPaOmegacToPv,
@@ -201,20 +202,20 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL",
201202
DECLARE_SOA_TABLE(HfKfOmegacLites, "AOD", "HFKFOMEGACLITE",
202203
full::NSigmaTPCPiFromOmegac, full::NSigmaTOFPiFromOmegac, full::NSigmaTPCKaFromCasc, full::NSigmaTOFKaFromCasc,
203204
full::NSigmaTPCPiFromV0, full::NSigmaTPCPrFromV0,
204-
full::KfDcaXYPiFromOmegac, full::DcaCharmBaryonDau, full::KfDcaXYCascToPv,
205-
full::V0ldl, full::Cascldl, full::Omegacldl, full::Chi2TopoPiFromOmegacToPv,
205+
full::KfDcaXYPiFromOmegac, full::DcaCharmBaryonDau, full::KfDcaXYCascToPv, full::DcaCascDau,
206+
full::V0ldl, full::Cascldl, full::Omegacldl, full::Chi2TopoPiFromOmegacToPv, full::Chi2TopoOmegacToPv, full::DeviationPiFromOmegacToPv,
206207
full::DecayLenXYOmegac,
207208
full::CosPaCascToPv, full::CosPaOmegacToPv,
208209
full::InvMassCascade, full::InvMassCharmBaryon,
209210
full::KfptPiFromOmegac, full::KfptOmegac,
210211
full::CosThetaStarPiFromOmegac, full::CtOmegac, full::EtaOmegac,
211212
full::V0Chi2OverNdf, full::CascChi2OverNdf, full::OmegacChi2OverNdf,
212-
full::MassV0Chi2OverNdf, full::MassCascChi2OverNdf, full::CascRejectInvmass,
213+
full::CascRejectInvmass,
213214
full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched);
214215
} // namespace o2::aod
215216

216217
/// Writes the full information in an output TTree
217-
struct HfTreeCreatorOmegac0ToOmegaPi {
218+
struct HfTreeCreatorOmegacToOmegaPi {
218219

219220
Produces<o2::aod::HfOmegac0ToOmegaPiLites> rowCandidateLite;
220221
Produces<o2::aod::HfKfOmegacFulls> rowKfCandidateFull;
@@ -342,6 +343,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
342343
candidate.chi2TopoCascToPv(),
343344
candidate.chi2TopoPiFromOmegacToPv(),
344345
candidate.chi2TopoOmegacToPv(),
346+
candidate.deviationPiFromOmegacToPv(),
345347
candidate.chi2TopoV0ToCasc(),
346348
candidate.chi2TopoCascToOmegac(),
347349
candidate.decayLenXYLambda(),
@@ -393,10 +395,13 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
393395
candidate.kfDcaXYPiFromOmegac(),
394396
candidate.dcaCharmBaryonDau(),
395397
candidate.kfDcaXYCascToPv(),
398+
candidate.dcaCascDau(),
396399
candidate.v0ldl(),
397400
candidate.cascldl(),
398401
candidate.omegacldl(),
399402
candidate.chi2TopoPiFromOmegacToPv(),
403+
candidate.chi2TopoOmegacToPv(),
404+
candidate.deviationPiFromOmegacToPv(),
400405
candidate.decayLenXYOmegac(),
401406
candidate.cosPACasc(),
402407
candidate.cosPACharmBaryon(),
@@ -410,8 +415,6 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
410415
candidate.v0Chi2OverNdf(),
411416
candidate.cascChi2OverNdf(),
412417
candidate.omegacChi2OverNdf(),
413-
candidate.massV0Chi2OverNdf(),
414-
candidate.massCascChi2OverNdf(),
415418
candidate.cascRejectInvmass(),
416419
flagMc,
417420
originMc,
@@ -434,7 +437,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
434437
fillCandidateLite(candidate, -7, RecoDecay::OriginType::None, false);
435438
}
436439
}
437-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processDataLite, "Process data", true);
440+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processDataLite, "Process data", true);
438441

439442
void processKfDataFull(MyEventTable const& collisions, MyTrackTable const&,
440443
soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi> const& candidates)
@@ -451,7 +454,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
451454
fillKfCandidate(candidate, -7, RecoDecay::OriginType::None, false);
452455
}
453456
}
454-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processKfDataFull, "Process KF data", false);
457+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processKfDataFull, "Process KF data", false);
455458

456459
void processKfDataLite(MyEventTable const& collisions, MyTrackTable const&,
457460
soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi> const& candidates)
@@ -468,7 +471,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
468471
fillKfCandidateLite(candidate, -7, RecoDecay::OriginType::None, false);
469472
}
470473
}
471-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processKfDataLite, "Process KF data Lite", false);
474+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processKfDataLite, "Process KF data Lite", false);
472475

473476
void processMcLite(MyEventTable const& collisions, MyTrackTable const&,
474477
soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const& candidates)
@@ -485,7 +488,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
485488
fillCandidateLite(candidate, candidate.flagMcMatchRec(), candidate.originRec(), candidate.collisionMatched());
486489
}
487490
}
488-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processMcLite, "Process MC", false);
491+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processMcLite, "Process MC", false);
489492

490493
void processKFMcFull(MyEventTable const& collisions, MyTrackTable const&,
491494
soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const& candidates)
@@ -508,7 +511,7 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
508511
}
509512
}
510513
}
511-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processKFMcFull, "Process KF MC", false);
514+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processKFMcFull, "Process KF MC", false);
512515

513516
void processKFMcLite(MyEventTable const& collisions, MyTrackTable const&,
514517
soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const& candidates)
@@ -522,15 +525,21 @@ struct HfTreeCreatorOmegac0ToOmegaPi {
522525
// Filling candidate properties
523526
rowCandidateLite.reserve(candidates.size());
524527
for (const auto& candidate : candidates) {
525-
fillKfCandidateLite(candidate, candidate.flagMcMatchRec(), candidate.originRec(), candidate.collisionMatched());
528+
if (keepOnlyMcSignal) {
529+
if (candidate.originRec() != 0) {
530+
fillKfCandidateLite(candidate, candidate.flagMcMatchRec(), candidate.originRec(), candidate.collisionMatched());
531+
}
532+
} else {
533+
fillKfCandidateLite(candidate, candidate.flagMcMatchRec(), candidate.originRec(), candidate.collisionMatched());
534+
}
526535
}
527536
}
528-
PROCESS_SWITCH(HfTreeCreatorOmegac0ToOmegaPi, processKFMcLite, "Process KF MC Lite", false);
537+
PROCESS_SWITCH(HfTreeCreatorOmegacToOmegaPi, processKFMcLite, "Process KF MC Lite", false);
529538

530539
}; // end of struct
531540

532541
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
533542
{
534543
return WorkflowSpec{
535-
adaptAnalysisTask<HfTreeCreatorOmegac0ToOmegaPi>(cfgc)};
544+
adaptAnalysisTask<HfTreeCreatorOmegacToOmegaPi>(cfgc)};
536545
}

0 commit comments

Comments
 (0)