Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions EventFiltering/PWGLF/strangenessFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@

float getMassWindow(const stfilter::species s, const float pt, const float nsigma = 6)
{
const auto sigma = parSigmaMass->get(0u, s) * exp(parSigmaMass->get(1, s) * pt) + parSigmaMass->get(2, s) * exp(parSigmaMass->get(3, s) * pt);

Check warning on line 407 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return nsigma * sigma;
}

Expand Down Expand Up @@ -439,7 +439,7 @@
// all processed events after event selection
hProcessedEvents->Fill(0.5);

if (TMath::Abs(collision.posZ()) > cutzvertex) {

Check warning on line 442 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
fillTriggerTable(keepEvent);
return;
}
Expand All @@ -450,7 +450,7 @@
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityZeqNTracksPV"), collision.multZeqNTracksPV());
}

Bool_t isHighMultEvent = 0;

Check warning on line 453 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
float multFT0MNorm = 0.f;
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
if (!useNormalisedMult) {
Expand All @@ -475,6 +475,7 @@
}
LOG(debug) << "Mean mults t0:" << fac_FT0A_ebe << " " << fac_FT0C_ebe;
if (collision.has_foundFT0()) {
static int ampneg = 0;
auto ft0 = collision.foundFT0();
float sumAmpFT0C = 0.f;
for (std::size_t i_c = 0; i_c < ft0.amplitudeC().size(); i_c++) {
Expand All @@ -494,19 +495,26 @@
} else {
multFT0MNorm = sumAmpFT0C * weigthsEta5[0] + sumAmpFT0A * weigthsEta5[1];
}
LOG(info) << "meanMult:" << multFT0MNorm << " multFT0M:" << collision.multFT0M();
LOG(debug) << "meanMult:" << multFT0MNorm << " multFT0M:" << collision.multFT0M();
if (sumAmpFT0A < 0 || sumAmpFT0C < 0) {
// LOG(info) << "ampa: " << sumAmpFT0A << " ampc:" << sumAmpFT0C;
ampneg++;
}
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), multFT0MNorm);
if (multFT0MNorm > LowLimitFT0MMultNorm) {
isHighMultEvent = 1;
LOG(info) << "Found FT0 using aver mult";
LOG(debug) << "Found FT0 using norm mult";
}
} else {
LOG(warn) << "Found FT0 but, amplitudes are 0 ?";
LOG(warn) << "Found FT0 but, bith amplitudes are <=0 ";
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), 148);
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
}
if (ampneg) {
LOG(warn) << "# of negative amplitudes:" << ampneg;
}
} else {
LOG(warn) << "FT0 not Found, using FT0M";
LOG(debug) << "FT0 not Found, using FT0M";
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), 149);
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
}
Expand Down Expand Up @@ -556,32 +564,32 @@
omegaproperlifetime = o2::constants::physics::MassOmegaMinus * xipos / (xiptotmom + 1e-13);

if (casc.sign() > 0) {
if (TMath::Abs(casc.dcapostopv()) < dcamesontopv) {

Check warning on line 567 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(2.5);
if (TMath::Abs(casc.dcanegtopv()) < dcabaryontopv) {

Check warning on line 571 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(3.5);
if (TMath::Abs(posdau.tpcNSigmaPi()) > nsigmatpcpi) {

Check warning on line 575 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(4.5);
if (TMath::Abs(negdau.tpcNSigmaPr()) > nsigmatpcpr) {

Check warning on line 579 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(5.5);
} else if (casc.sign() < 0) {
if (TMath::Abs(casc.dcanegtopv()) < dcamesontopv) {

Check warning on line 584 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(2.5);
if (TMath::Abs(casc.dcapostopv()) < dcabaryontopv) {

Check warning on line 588 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(3.5);
if (TMath::Abs(negdau.tpcNSigmaPi()) > nsigmatpcpi) {

Check warning on line 592 in EventFiltering/PWGLF/strangenessFilter.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[root-entity]

Replace ROOT entities with equivalents from standard C++ or from O2.
continue;
}
hCandidate->Fill(4.5);
Expand Down
34 changes: 19 additions & 15 deletions PWGLF/DataModel/LFNonPromptCascadeTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ namespace NPCascadeTable
{
DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float);
DECLARE_SOA_COLUMN(DeltaPtITSCascade, deltaPtITSCascade, float);
DECLARE_SOA_COLUMN(DeltaPtCascade, deltaPtCascade, float);
DECLARE_SOA_COLUMN(ITSClusSize, itsClusSize, float);
DECLARE_SOA_COLUMN(HasReassociatedCluster, hasReassociatedCluster, bool);
DECLARE_SOA_COLUMN(IsGoodMatch, isGoodMatch, bool);
Expand Down Expand Up @@ -104,14 +103,15 @@ DECLARE_SOA_COLUMN(DCAxMC, dcaXmc, float);
DECLARE_SOA_COLUMN(DCAyMC, dcaYmc, float);
DECLARE_SOA_COLUMN(DCAzMC, dcaZmc, float);
DECLARE_SOA_COLUMN(MCcollisionMatch, mcCollisionMatch, bool);
DECLARE_SOA_COLUMN(HasFakeReassociation, hasFakeReassociation, bool);
DECLARE_SOA_COLUMN(MotherDecayDaughters, motherDecayDaughters, int8_t);

DECLARE_SOA_COLUMN(Sel8, sel8, bool);
DECLARE_SOA_COLUMN(MultFT0C, multFT0C, float);
DECLARE_SOA_COLUMN(MultFT0A, multFT0A, float);

} // namespace NPCascadeTable
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
aod::collision::NumContrib,
Expand Down Expand Up @@ -162,12 +162,14 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
NPCascadeTable::ProtonTOFNSigma,
NPCascadeTable::PionTOFNSigma,
NPCascadeTable::BachKaonTOFNSigma,
NPCascadeTable::BachPionTOFNSigma)
NPCascadeTable::BachPionTOFNSigma,
NPCascadeTable::Sel8,
NPCascadeTable::MultFT0C,
NPCascadeTable::MultFT0A)

DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
aod::collision::NumContrib,
Expand Down Expand Up @@ -218,12 +220,14 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
NPCascadeTable::ProtonTOFNSigma,
NPCascadeTable::PionTOFNSigma,
NPCascadeTable::BachKaonTOFNSigma,
NPCascadeTable::BachPionTOFNSigma)
NPCascadeTable::BachPionTOFNSigma,
NPCascadeTable::Sel8,
NPCascadeTable::MultFT0C,
NPCascadeTable::MultFT0A)

DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
NPCascadeTable::IsGoodMatch,
Expand Down Expand Up @@ -289,13 +293,13 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
NPCascadeTable::DCAyMC,
NPCascadeTable::DCAzMC,
NPCascadeTable::MCcollisionMatch,
NPCascadeTable::HasFakeReassociation,
NPCascadeTable::MotherDecayDaughters)
NPCascadeTable::Sel8,
NPCascadeTable::MultFT0C,
NPCascadeTable::MultFT0A)

DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
NPCascadeTable::IsGoodMatch,
Expand Down Expand Up @@ -361,8 +365,9 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::DCAyMC,
NPCascadeTable::DCAzMC,
NPCascadeTable::MCcollisionMatch,
NPCascadeTable::HasFakeReassociation,
NPCascadeTable::MotherDecayDaughters)
NPCascadeTable::Sel8,
NPCascadeTable::MultFT0C,
NPCascadeTable::MultFT0A)

DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
NPCascadeTable::gPt,
Expand All @@ -374,8 +379,7 @@ DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
NPCascadeTable::DCAyMC,
NPCascadeTable::DCAzMC,
NPCascadeTable::IsFromBeauty,
NPCascadeTable::IsFromCharm,
NPCascadeTable::MotherDecayDaughters)
NPCascadeTable::IsFromCharm)

} // namespace o2::aod

Expand Down
67 changes: 20 additions & 47 deletions PWGLF/Tasks/Strangeness/nonPromptCascade.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "Common/DataModel/EventSelection.h"
#include "Common/DataModel/PIDResponse.h"
#include "Common/DataModel/TrackSelectionTables.h"
#include "Common/DataModel/Multiplicity.h"
#include "Common/Core/RecoDecay.h"
#include "Common/Core/trackUtilities.h"
#include "DataFormatsParameters/GRPMagField.h"
Expand Down Expand Up @@ -54,11 +55,9 @@ struct NPCascCandidate {
int64_t trackITSID;
int64_t collisionID;
float matchingChi2;
float deltaPtITS;
float deltaPt;
float itsClusSize;
bool hasReassociatedCluster;
bool hasFakeReassociation;
bool isGoodMatch;
bool isGoodCascade;
int pdgCodeMom;
Expand Down Expand Up @@ -114,6 +113,9 @@ struct NPCascCandidate {
float pionTOFNSigma;
float bachKaonTOFNSigma;
float bachPionTOFNSigma;
bool sel8;
float multFT0C;
float multFT0A;
};

std::array<bool, 2> isFromHF(auto& particle)
Expand Down Expand Up @@ -163,8 +165,8 @@ struct NonPromptCascadeTask {

using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels>;
using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels>;
using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults>;
using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults>;

Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
Configurable<bool> cfgPropToPCA{"cfgPropToPCA", true, "create tracks version propagated to PCA"};
Expand Down Expand Up @@ -337,15 +339,13 @@ struct NonPromptCascadeTask {
o2::math_utils::SVector<double, 3> cascadePos, v0Pos;

float cascCpa = -1, v0Cpa = -1;
o2::track::TrackParCov ntCascadeTrack;
if (mDCAFitter.process(pionTrkParCov, protonTrkParCov)) {
auto trackParCovV0 = mDCAFitter.createParentTrackParCov(0); // V0 track retrieved from p and pi daughters
v0Pos = mDCAFitter.getPCACandidate();
if (mDCAFitter.process(trackParCovV0, bachTrkParCov)) {
mDCAFitter.getTrackParamAtPCA(0).getPxPyPzGlo(momenta[0]);
mDCAFitter.getTrackParamAtPCA(1).getPxPyPzGlo(momenta[1]);
ntCascadeTrack = mDCAFitter.createParentTrackParCov();
ntCascadeTrack.getPxPyPzGlo(cascadeMomentum);
mDCAFitter.createParentTrackParCov().getPxPyPzGlo(cascadeMomentum);
std::array<float, 3> pvPos = {primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ()};
cascadePos = mDCAFitter.getPCACandidate();
cascCpa = RecoDecay::cpa(pvPos, mDCAFitter.getPCACandidate(), cascadeMomentum);
Expand Down Expand Up @@ -393,7 +393,6 @@ struct NonPromptCascadeTask {
if (v0part.mothersIds()[0] == bachelor.mcParticle().mothersIds()[0]) {
if (std::abs(motherV0.pdgCode()) == 3312 || std::abs(motherV0.pdgCode()) == 3334) {
isGoodCascade = true;

isOmega = (std::abs(motherV0.pdgCode()) == 3334);
fromHF = isFromHF(motherV0);
mcParticleID = v0part.mothersIds()[0];
Expand All @@ -418,8 +417,8 @@ struct NonPromptCascadeTask {
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, pionTrkParCov, mBz, 2.f, matCorr, &pionDCA);
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, bachTrkParCov, mBz, 2.f, matCorr, &bachDCA);

float deltaPtITSCascade{-1.e10f}, deltaPtCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
bool hasReassociatedClusters{false}, hasFakeReassociation{false};
float deltaPtITSCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
bool hasReassociatedClusters{false};
int trackedCascGlobalIndex{-1}, itsTrackGlobalIndex{-1}, cascITSclusters{-1};
if constexpr (requires { candidate.track(); }) {
const auto& track = candidate.template track_as<TrackType>();
Expand All @@ -429,7 +428,6 @@ struct NonPromptCascadeTask {
hasReassociatedClusters = (track.itsNCls() != ITStrack.itsNCls());
cascadeLvector.SetCoordinates(track.pt(), track.eta(), track.phi(), 0);
deltaPtITSCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - ITStrack.pt();
deltaPtCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - track.pt();
trackedCascGlobalIndex = track.globalIndex();
itsTrackGlobalIndex = ITStrack.globalIndex();
cascITSclusters = track.itsNCls();
Expand All @@ -441,14 +439,14 @@ struct NonPromptCascadeTask {

if (isGoodMatch) {
pdgCodeMom = track.mcParticle().has_mothers() ? track.mcParticle().template mothers_as<aod::McParticles>()[0].pdgCode() : 0;
hasFakeReassociation = track.mcMask() & (1 << 15);
}
itsTrackPDG = ITStrack.has_mcParticle() ? ITStrack.mcParticle().pdgCode() : 0;
}
} else {
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, ntCascadeTrack, mBz, 2.f, matCorr, &motherDCA);
}
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
// bool mysel8 = collision.sel8();
float mc = collision.multFT0C();
float ma = collision.multFT0A();
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, cascITSclsSize, hasReassociatedClusters, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
collision.numContrib(), collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(),
cascadeLvector.pt(), cascadeLvector.eta(), cascadeLvector.phi(),
protonTrack.pt(), protonTrack.eta(), pionTrack.pt(), pionTrack.eta(), bachelor.pt(), bachelor.eta(),
Expand All @@ -458,15 +456,15 @@ struct NonPromptCascadeTask {
cascITSclusters, protonTrack.itsNCls(), pionTrack.itsNCls(), bachelor.itsNCls(), protonTrack.tpcNClsFound(), pionTrack.tpcNClsFound(), bachelor.tpcNClsFound(),
protonTrack.tpcNSigmaPr(), pionTrack.tpcNSigmaPi(), bachelor.tpcNSigmaKa(), bachelor.tpcNSigmaPi(),
protonTrack.hasTOF(), pionTrack.hasTOF(), bachelor.hasTOF(),
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi()});
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi(), collision.sel8(), mc, ma});
}
}

template <typename CascadeType>
void fillDataTable(auto const& candidates)
{
for (const auto& c : candidates) {
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ,
c.cascPt, c.cascEta, c.cascPhi,
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
Expand All @@ -477,7 +475,7 @@ struct NonPromptCascadeTask {
c.cascNClusITS, c.protonNClusITS, c.pionNClusITS, c.bachNClusITS, c.protonNClusTPC, c.pionNClusTPC, c.bachNClusTPC,
c.protonTPCNSigma, c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma,
c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma);
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma, c.sel8, c.multFT0C, c.multFT0A);
}
}

Expand All @@ -490,31 +488,19 @@ struct NonPromptCascadeTask {
continue;
}
auto particle = mcParticles.iteratorAt(c.mcParticleId);
int motherDecayDaughters{0};
if (c.isFromBeauty || c.isFromCharm) {
auto mom = particle.template mothers_as<aod::McParticles>()[0];
auto daughters = mom.template daughters_as<aod::McParticles>();
motherDecayDaughters = daughters.size();
for (const auto& d : daughters) {
if (std::abs(d.pdgCode()) == 11 || std::abs(d.pdgCode()) == 13) {
motherDecayDaughters *= -1;
break;
}
}
}
auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
auto recCollision = collisions.iteratorAt(c.collisionID);

getMCtable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
getMCtable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi,
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz,
c.casccosPA, c.v0cosPA, c.massXi, c.massOmega, c.massV0, c.cascRadius, c.v0radius, c.cascLength, c.v0length,
c.cascNClusITS, c.protonNClusITS, c.pionNClusITS, c.bachNClusITS, c.protonNClusTPC, c.pionNClusTPC, c.bachNClusTPC, c.protonTPCNSigma,
c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma, c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma, c.sel8, c.multFT0C, c.multFT0A,
particle.pt(), particle.eta(), particle.phi(), particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters);
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId());
}
}

Expand Down Expand Up @@ -568,20 +554,7 @@ struct NonPromptCascadeTask {
int pdgCodeMom = p.has_mothers() ? p.template mothers_as<aod::McParticles>()[0].pdgCode() : 0;
auto mcCollision = p.template mcCollision_as<aod::McCollisions>();

int motherDecayDaughters{0};
if (fromHF[0] || fromHF[1]) {
auto mom = p.template mothers_as<aod::McParticles>()[0];
auto daughters = mom.template daughters_as<aod::McParticles>();
motherDecayDaughters = daughters.size();
for (const auto& d : daughters) {
if (std::abs(d.pdgCode()) == 11 || std::abs(d.pdgCode()) == 13) {
motherDecayDaughters *= -1;
break;
}
}
}

NPCTableGen(p.pt(), p.eta(), p.phi(), p.pdgCode(), pdgCodeMom, mcCollision.posX() - p.vx(), mcCollision.posY() - p.vy(), mcCollision.posZ() - p.vz(), fromHF[0], fromHF[1], motherDecayDaughters);
NPCTableGen(p.pt(), p.eta(), p.phi(), p.pdgCode(), pdgCodeMom, mcCollision.posX() - p.vx(), mcCollision.posY() - p.vy(), mcCollision.posZ() - p.vz(), fromHF[0], fromHF[1]);
}
}
PROCESS_SWITCH(NonPromptCascadeTask, processGenParticles, "process gen cascades: MC analysis", false);
Expand Down
Loading