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
11 changes: 7 additions & 4 deletions PWGLF/DataModel/LFNonPromptCascadeTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,6 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::ToiMask,
NPCascadeTable::NoSameBunchPileup)

DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
NPCascadeTable::gPt,
NPCascadeTable::gEta,
Expand All @@ -451,18 +450,22 @@ DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
NPCascadeTable::IsFromBeauty,
NPCascadeTable::IsFromCharm,
NPCascadeTable::MotherDecayDaughters)
DECLARE_SOA_TABLE(NPPileUpTable, "AOD", "NPPileUpTABLE",
DECLARE_SOA_TABLE(NPCollisionTable, "AOD", "NPCollisionTABLE",
NPCascadeTable::RunNumber,
NPCascadeTable::GlobalBC,
aod::collision::NumContrib,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::CentFT0M,
NPCascadeTable::MultFT0M)
DECLARE_SOA_TABLE(NPMCNegativesTable, "AOD", "NPMCNegativesTABLE",
NPCascadeTable::MultFT0M);
DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
NPCascadeTable::PtGen,
NPCascadeTable::PtRec,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::MultGen);
DECLARE_SOA_INDEX_COLUMN_FULL(NPCollision, npCollision, int32_t, NPCollisionTable, "");
DECLARE_SOA_TABLE(NPRecoChargedCandidate, "AOD", "NPRecoChargedCandidate",
NPCollisionId,
NPCascadeTable::PtRec);
} // namespace o2::aod

#endif // PWGLF_DATAMODEL_LFNONPROMPTCASCADETABLES_H_
59 changes: 52 additions & 7 deletions PWGLF/Tasks/Strangeness/nonPromptCascade.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -182,14 +182,17 @@ struct NonPromptCascadeTask {
Produces<o2::aod::NPCascTableNT> NPCTableNT;
Produces<o2::aod::NPCascTableMCNT> NPCTableMCNT;
Produces<o2::aod::NPCascTableGen> NPCTableGen;
Produces<o2::aod::NPPileUpTable> NPPUTable;
Produces<o2::aod::NPMCNegativesTable> NPMCNTable;
//
Produces<o2::aod::NPCollisionTable> NPCollsTable;
Produces<o2::aod::NPMCChargedTable> NPMCNTable;
Produces<o2::aod::NPRecoChargedCandidate> NPRecoCandTable;

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, aod::FT0Mults, aod::FV0Mults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0Ms, aod::MultsGlobal>;
using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::FV0Mults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0Ms, aod::MultsGlobal>;
using TracksWithLabel = soa::Join<aod::Tracks, aod::McTrackLabels>;
using TracksWithSel = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection>;

Preslice<TracksExtData> perCollision = aod::track::collisionId;
Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
Expand Down Expand Up @@ -417,12 +420,10 @@ struct NonPromptCascadeTask {
for (const auto& coll : collisions) {
float centFT0M = coll.centFT0M();
float multFT0M = coll.multFT0M();
// float centFV0A = coll.centFV0A();
// float multFV0A = coll.multFV0A();
float multNTracks = coll.multNTracksGlobal();
float run = mRunNumber;
float runNumber = mRunNumber;
float numContrib = coll.numContrib();
mRegistryMults.fill(HIST("hCentMultsRuns"), centFT0M, multFT0M, numContrib, multNTracks, run);
mRegistryMults.fill(HIST("hCentMultsRuns"), centFT0M, multFT0M, numContrib, multNTracks, runNumber);
}
};

Expand Down Expand Up @@ -981,6 +982,50 @@ struct NonPromptCascadeTask {
}

PROCESS_SWITCH(NonPromptCascadeTask, processdNdetaMC, "process mc dN/deta", false);
//
void processdNdeta(CollisionCandidatesRun3 const& collisions, TracksWithSel const& tracks)
{
int ds = 1;
uint32_t orbitO = 0;
bool writeFlag = 0;
for (const auto& coll : collisions) {
auto bc = coll.template bc_as<aod::BCsWithTimestamps>();
uint64_t globalBC = bc.globalBC();
uint32_t orbit = globalBC / 3564;
if (orbitO != orbit) {
orbitO = orbit;
if ((ds % cfgDownscaleMB) == 0) {
writeFlag = 1;
} else {
writeFlag = 0;
}
ds++;
}
if (writeFlag) {
if (mRunNumber != bc.runNumber()) {
mRunNumber = bc.runNumber();
}
NPCollsTable(mRunNumber,
coll.bc().globalBC(),
coll.numContrib(),
coll.multNTracksGlobal(),
coll.centFT0M(),
coll.multFT0M());

auto collIdx = NPCollsTable.lastIndex();
auto tracksThisColl = tracks.sliceBy(perCollision, coll.globalIndex());
for (auto const& track : tracksThisColl) {
if (std::fabs(track.eta()) < 0.8 && track.tpcNClsFound() >= 80 && track.tpcNClsCrossedRows() >= 100) {
if (track.isGlobalTrack()) {
// mults.multGlobalTracks++;
NPRecoCandTable(collIdx, track.pt());
}
}
}
}
}
}
PROCESS_SWITCH(NonPromptCascadeTask, processdNdeta, "process dN/deta", false);

void processPileUp(CollisionCandidatesRun3 const& collisions, aod::BCsWithTimestamps const&)
{
Expand All @@ -1007,7 +1052,7 @@ struct NonPromptCascadeTask {
}
float centFT0M = coll.centFT0M();
float multFT0M = coll.multFT0M();
NPPUTable(mRunNumber, globalBC, coll.numContrib(), coll.multNTracksGlobal(), centFT0M, multFT0M);
NPCollsTable(mRunNumber, globalBC, coll.numContrib(), coll.multNTracksGlobal(), centFT0M, multFT0M);
}
}
};
Expand Down
Loading