Skip to content

Commit 542610b

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] PWGCF: FemtoUniverse cascade task -- implemented changes to produce both Xi and Omega simultaneously (#11122)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent 6466b09 commit 542610b

File tree

2 files changed

+42
-35
lines changed

2 files changed

+42
-35
lines changed

PWGCF/FemtoUniverse/Core/FemtoUniverseCascadeSelection.h

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ class FemtoUniverseCascadeSelection
8181

8282
public:
8383
FemtoUniverseCascadeSelection()
84-
: nPtCascadeMinSel(0), nPtCascadeMaxSel(0), nEtaCascadeMaxSel(0), nDCAV0DaughMax(0), nCPAV0Min(0), nTranRadV0Min(0), nTranRadV0Max(0), nV0DecVtxMax(0), nDCACascadeDaughMax(0), nCPACascadeMin(0), nTranRadCascadeMin(0), nTranRadCascadeMax(0), nDecVtxMax(0), nDCAPosToPV(0), nDCANegToPV(0), nDCABachToPV(0), nDCAV0ToPV(0), pTCascadeMin(9999999.), pTCascadeMax(-9999999.), etaCascadeMax(-9999999.), fDCAV0DaughMax(-9999999.), fCPAV0Min(9999999.), fTranRadV0Min(9999999.), fTranRadV0Max(-9999999.), fV0DecVtxMax(-9999999.), fDCACascadeDaughMax(-9999999.), fCPACascadeMin(9999999.), fTranRadCascadeMin(9999999.), fTranRadCascadeMax(-9999999.), fDecVtxMax(-9999999.), fDCAPosToPV(9999999.), fDCANegToPV(9999999.), fDCABachToPV(9999999.), fDCAV0ToPV(9999999.), fV0InvMassLowLimit(1.05), fV0InvMassUpLimit(1.3), fInvMassLowLimit(1.25), fInvMassUpLimit(1.4), fRejectCompetingMass(false), fInvMassCompetingLowLimit(1.5), fInvMassCompetingUpLimit(2.0), isCascOmega(false) /*, nSigmaPIDOffsetTPC(0.)*/
84+
: nPtCascadeMinSel(0), nPtCascadeMaxSel(0), nEtaCascadeMaxSel(0), nDCAV0DaughMax(0), nCPAV0Min(0), nTranRadV0Min(0), nTranRadV0Max(0), nV0DecVtxMax(0), nDCACascadeDaughMax(0), nCPACascadeMin(0), nTranRadCascadeMin(0), nTranRadCascadeMax(0), nDecVtxMax(0), nDCAPosToPV(0), nDCANegToPV(0), nDCABachToPV(0), nDCAV0ToPV(0), pTCascadeMin(9999999.), pTCascadeMax(-9999999.), etaCascadeMax(-9999999.), fDCAV0DaughMax(-9999999.), fCPAV0Min(9999999.), fTranRadV0Min(9999999.), fTranRadV0Max(-9999999.), fV0DecVtxMax(-9999999.), fDCACascadeDaughMax(-9999999.), fCPACascadeMin(9999999.), fTranRadCascadeMin(9999999.), fTranRadCascadeMax(-9999999.), fDecVtxMax(-9999999.), fDCAPosToPV(9999999.), fDCANegToPV(9999999.), fDCABachToPV(9999999.), fDCAV0ToPV(9999999.), fV0InvMassLowLimit(1.05), fV0InvMassUpLimit(1.3), fInvMassLowLimitXi(1.25), fInvMassUpLimitXi(1.4), fInvMassLowLimitOmega(1.6), fInvMassUpLimitOmega(1.8) /*, fRejectCompetingMass(false), fInvMassCompetingLowLimit(1.5), fInvMassCompetingUpLimit(2.0), nSigmaPIDOffsetTPC(0.)*/
8585
{
8686
}
8787

8888
/// Initializes histograms for the task
8989
template <o2::aod::femtouniverseparticle::ParticleType part, o2::aod::femtouniverseparticle::ParticleType daugh, o2::aod::femtouniverseparticle::ParticleType bach, typename CutContainerType>
90-
void init(HistogramRegistry* registry, bool isSelectCascOmega = false);
90+
void init(HistogramRegistry* registry /*, bool isSelectCascOmega = false*/);
9191

9292
template <typename Col, typename Casc, typename Track>
9393
bool isSelectedMinimal(Col const& col, Casc const& cascade, Track const& posTrack, Track const& negTrack, Track const& bachTrack);
@@ -153,21 +153,23 @@ class FemtoUniverseCascadeSelection
153153
/// Set limit for the selection on the invariant mass
154154
/// \param lowLimit Lower limit for the invariant mass distribution
155155
/// \param upLimit Upper limit for the invariant mass distribution
156-
void setInvMassLimits(float lowLimit, float upLimit)
156+
void setInvMassLimits(float lowLimitXi, float lowLimitOmega, float upLimitXi, float upLimitOmega)
157157
{
158-
fInvMassLowLimit = lowLimit;
159-
fInvMassUpLimit = upLimit;
158+
fInvMassLowLimitXi = lowLimitXi;
159+
fInvMassUpLimitXi = upLimitXi;
160+
fInvMassLowLimitOmega = lowLimitOmega;
161+
fInvMassUpLimitOmega = upLimitOmega;
160162
}
161163

162164
/// Set limit for the omega rejection on the invariant mass
163165
/// \param lowLimit Lower limit for the invariant mass distribution
164166
/// \param upLimit Upper limit for the invariant mass distribution
165-
void setCompetingInvMassLimits(float lowLimit, float upLimit)
167+
/*void setCompetingInvMassLimits(float lowLimit, float upLimit)
166168
{
167169
fRejectCompetingMass = true;
168170
fInvMassCompetingLowLimit = lowLimit;
169171
fInvMassCompetingUpLimit = upLimit;
170-
}
172+
}*/
171173

172174
private:
173175
int nPtCascadeMinSel;
@@ -208,14 +210,15 @@ class FemtoUniverseCascadeSelection
208210
float fV0InvMassLowLimit;
209211
float fV0InvMassUpLimit;
210212

211-
float fInvMassLowLimit;
212-
float fInvMassUpLimit;
213+
float fInvMassLowLimitXi;
214+
float fInvMassUpLimitXi;
213215

214-
float fRejectCompetingMass;
215-
float fInvMassCompetingLowLimit;
216-
float fInvMassCompetingUpLimit;
216+
float fInvMassLowLimitOmega;
217+
float fInvMassUpLimitOmega;
217218

218-
bool isCascOmega;
219+
/*float fRejectCompetingMass;
220+
float fInvMassCompetingLowLimit;
221+
float fInvMassCompetingUpLimit;*/
219222

220223
// float nSigmaPIDOffsetTPC;
221224

@@ -284,7 +287,7 @@ class FemtoUniverseCascadeSelection
284287
}; // namespace femto_universe
285288

286289
template <o2::aod::femtouniverseparticle::ParticleType part, o2::aod::femtouniverseparticle::ParticleType daugh, o2::aod::femtouniverseparticle::ParticleType bach, typename CutContainerType>
287-
void FemtoUniverseCascadeSelection::init(HistogramRegistry* registry, bool isSelectCascOmega)
290+
void FemtoUniverseCascadeSelection::init(HistogramRegistry* registry)
288291
{
289292

290293
if (registry) {
@@ -334,7 +337,8 @@ void FemtoUniverseCascadeSelection::init(HistogramRegistry* registry, bool isSel
334337

335338
// Cascade (Xi, Omega)
336339
// mHistogramRegistry->add("CascadeQA/hInvMassCascadeNoCuts", "No cuts", kTH1F, {massAxisCascade});
337-
mHistogramRegistry->add("CascadeQA/hInvMassCascadeCut", "Invariant mass with cut", kTH1F, {massAxisCascade});
340+
mHistogramRegistry->add("CascadeQA/hInvMassXiCut", "Invariant mass with cut", kTH1F, {massAxisCascade});
341+
mHistogramRegistry->add("CascadeQA/hInvMassOmegaCut", "Invariant mass with cut", kTH1F, {massAxisCascade});
338342
mHistogramRegistry->add("CascadeQA/hCascadePt", "pT distribution", kTH1F, {ptAxis});
339343
mHistogramRegistry->add("CascadeQA/hCascadeEta", "Eta distribution", kTH1F, {etaAxis});
340344
mHistogramRegistry->add("CascadeQA/hCascadePhi", "Phi distribution", kTH1F, {phiAxis});
@@ -406,8 +410,6 @@ void FemtoUniverseCascadeSelection::init(HistogramRegistry* registry, bool isSel
406410
femto_universe_selection::kLowerLimit);
407411
fV0InvMassUpLimit = getMinimalSelection(femto_universe_cascade_selection::kCascadeV0MassMax,
408412
femto_universe_selection::kUpperLimit);
409-
410-
isCascOmega = isSelectCascOmega;
411413
}
412414

413415
template <typename Col, typename Casc, typename Track>
@@ -427,21 +429,23 @@ bool FemtoUniverseCascadeSelection::isSelectedMinimal(Col const& col, Casc const
427429
const float cpaCasc = cascade.casccosPA(col.posX(), col.posY(), col.posZ());
428430
const float dcav0topv = cascade.dcav0topv(col.posX(), col.posY(), col.posZ());
429431
const float invMassLambda = cascade.mLambda();
430-
const float invMass = isCascOmega ? cascade.mOmega() : cascade.mXi();
432+
const float invMassXi = cascade.mXi();
433+
const float invMassOmega = cascade.mOmega();
431434

432435
if (invMassLambda < fV0InvMassLowLimit || invMassLambda > fV0InvMassUpLimit) {
433436
return false;
434437
}
435-
if (invMass < fInvMassLowLimit || invMass > fInvMassUpLimit) {
438+
// Accepts the cascade candidates as either Xi or Omega but not both
439+
if ((invMassXi < fInvMassLowLimitXi || invMassXi > fInvMassUpLimitXi) == (invMassOmega < fInvMassLowLimitOmega || invMassOmega > fInvMassUpLimitOmega)) {
436440
return false;
437441
}
438-
if (fRejectCompetingMass) {
442+
/*if (fRejectCompetingMass) {
439443
const float invMassCompeting = isCascOmega ? cascade.mXi() : cascade.mOmega();
440444
if (invMassCompeting > fInvMassCompetingLowLimit &&
441445
invMassCompeting < fInvMassCompetingUpLimit) {
442446
return false;
443447
}
444-
}
448+
}*/
445449
if (nPtCascadeMinSel > 0 && cascade.pt() < pTCascadeMin) {
446450
return false;
447451
}
@@ -537,10 +541,12 @@ void FemtoUniverseCascadeSelection::fillCascadeQA(Col const& col, Casc const& ca
537541
const float dcav0topv = cascade.dcav0topv(col.posX(), col.posY(), col.posZ());
538542

539543
const float invMassLambda = cascade.mLambda();
540-
const float invMass = isCascOmega ? cascade.mOmega() : cascade.mXi();
544+
const float invMassXi = cascade.mXi();
545+
const float invMassOmega = cascade.mOmega();
541546

542547
mHistogramRegistry->fill(HIST("CascadeQA/hInvMassV0Cut"), invMassLambda);
543-
mHistogramRegistry->fill(HIST("CascadeQA/hInvMassCascadeCut"), invMass);
548+
mHistogramRegistry->fill(HIST("CascadeQA/hInvMassXiCut"), invMassXi);
549+
mHistogramRegistry->fill(HIST("CascadeQA/hInvMassOmegaCut"), invMassOmega);
544550
mHistogramRegistry->fill(HIST("CascadeQA/hCascadePt"), cascade.pt());
545551
mHistogramRegistry->fill(HIST("CascadeQA/hCascadeEta"), cascade.eta());
546552
mHistogramRegistry->fill(HIST("CascadeQA/hCascadePhi"), cascade.phi());

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ struct FemtoUniverseProducerTask {
143143
Configurable<bool> confIsActivateV0{"confIsActivateV0", false, "Activate filling of V0 into femtouniverse tables"};
144144
Configurable<bool> confActivateSecondaries{"confActivateSecondaries", false, "Fill secondary MC gen particles that were reconstructed"};
145145
Configurable<bool> confIsActivateCascade{"confIsActivateCascade", false, "Activate filling of Cascade into femtouniverse tables"};
146-
Configurable<bool> confIsSelectCascOmega{"confIsSelectCascOmega", false, "Select Omegas for cascade analysis"};
147146
Configurable<bool> confIsActivatePhi{"confIsActivatePhi", false, "Activate filling of Phi into femtouniverse tables"};
148147
Configurable<bool> confIsActiveD0{"confIsActiveD0", false, "Activate filling FU tables for D0/D0bar mesons"};
149148
Configurable<bool> confMCTruthAnalysisWithPID{"confMCTruthAnalysisWithPID", true, "1: take only particles with specified PDG, 0: all particles (for MC Truth)"};
@@ -276,12 +275,14 @@ struct FemtoUniverseProducerTask {
276275
Configurable<std::vector<float>> confCascChildPIDnSigmaMax{"confCascChildPIDnSigmaMax", std::vector<float>{3.f, 4.f}, "Cascade Child sel: Max. PID nSigma TPC"};
277276
Configurable<std::vector<int>> confCascChildPIDspecies{"confCascChildPIDspecies", std::vector<int>{o2::track::PID::Pion, o2::track::PID::Proton}, "Cascade Child sel: particle species for PID"};
278277

279-
Configurable<float> confCascInvMassLowLimit{"confCascInvMassLowLimit", 1.25, "Lower limit of the cascade invariant mass"};
280-
Configurable<float> confCascInvMassUpLimit{"confCascInvMassUpLimit", 1.40, "Upper limit of the cascade invariant mass"};
278+
Configurable<float> confXiInvMassLowLimit{"confXiInvMassLowLimit", 1.25, "Lower limit of the Xi invariant mass"};
279+
Configurable<float> confXiInvMassUpLimit{"confXiInvMassUpLimit", 1.40, "Upper limit of the Xi invariant mass"};
280+
Configurable<float> confOmegaInvMassLowLimit{"confOmegaInvMassLowLimit", 1.60, "Lower limit of the Omega invariant mass"};
281+
Configurable<float> confOmegaInvMassUpLimit{"confOmegaInvMassUpLimit", 1.80, "Upper limit of the Omega invariant mass"};
281282

282-
Configurable<bool> confCascRejectCompetingMass{"confCascRejectCompetingMass", false, "Switch on to reject Omegas (for Xi) or Xis (for Omegas)"};
283-
Configurable<float> confCascInvCompetingMassLowLimit{"confCascInvCompetingMassLowLimit", 1.66, "Lower limit of the cascade invariant mass for competing mass rejection"};
284-
Configurable<float> confCascInvCompetingMassUpLimit{"confCascInvCompetingMassUpLimit", 1.68, "Upper limit of the cascade invariant mass for competing mass rejection"};
283+
// Configurable<bool> confCascRejectCompetingMass{"confCascRejectCompetingMass", false, "Switch on to reject Omegas (for Xi) or Xis (for Omegas)"};
284+
// Configurable<float> confCascInvCompetingMassLowLimit{"confCascInvCompetingMassLowLimit", 1.66, "Lower limit of the cascade invariant mass for competing mass rejection"};
285+
// Configurable<float> confCascInvCompetingMassUpLimit{"confCascInvCompetingMassUpLimit", 1.68, "Upper limit of the cascade invariant mass for competing mass rejection"};
285286
} ConfCascadeSelection;
286287

287288
// PHI
@@ -544,13 +545,13 @@ struct FemtoUniverseProducerTask {
544545
cascadeCuts.setChildPIDSpecies(femto_universe_cascade_selection::kBachTrack, ConfCascadeSelection.confCascChildPIDspecies);
545546

546547
// check if works correctly for bachelor track
547-
cascadeCuts.init<aod::femtouniverseparticle::ParticleType::kCascade, aod::femtouniverseparticle::ParticleType::kV0Child, aod::femtouniverseparticle::ParticleType::kCascadeBachelor, aod::femtouniverseparticle::CutContainerType>(&cascadeQaRegistry, confIsSelectCascOmega);
548+
cascadeCuts.init<aod::femtouniverseparticle::ParticleType::kCascade, aod::femtouniverseparticle::ParticleType::kV0Child, aod::femtouniverseparticle::ParticleType::kCascadeBachelor, aod::femtouniverseparticle::CutContainerType>(&cascadeQaRegistry);
548549
// invmass cuts
549-
cascadeCuts.setInvMassLimits(ConfCascadeSelection.confCascInvMassLowLimit, ConfCascadeSelection.confCascInvMassUpLimit);
550+
cascadeCuts.setInvMassLimits(ConfCascadeSelection.confXiInvMassLowLimit, ConfCascadeSelection.confOmegaInvMassLowLimit, ConfCascadeSelection.confXiInvMassUpLimit, ConfCascadeSelection.confOmegaInvMassUpLimit);
550551

551-
if (ConfCascadeSelection.confCascRejectCompetingMass) {
552+
/*if (ConfCascadeSelection.confCascRejectCompetingMass) {
552553
cascadeCuts.setCompetingInvMassLimits(ConfCascadeSelection.confCascInvCompetingMassLowLimit, ConfCascadeSelection.confCascInvCompetingMassUpLimit);
553-
}
554+
}*/
554555
}
555556

556557
if (confIsActivatePhi) {
@@ -1259,8 +1260,8 @@ struct FemtoUniverseProducerTask {
12591260
0,
12601261
0,
12611262
indexCascChildID,
1262-
confIsSelectCascOmega ? casc.mOmega() : casc.mXi(),
1263-
confIsSelectCascOmega ? casc.mOmega() : casc.mXi(),
1263+
casc.mXi(),
1264+
casc.mOmega(),
12641265
casc.dcaV0daughters(),
12651266
casc.v0cosPA(col.posX(), col.posY(), col.posZ()),
12661267
casc.v0radius(),

0 commit comments

Comments
 (0)