@@ -182,14 +182,18 @@ struct NonPromptCascadeTask {
182182 Produces<o2::aod::NPCascTableNT> NPCTableNT;
183183 Produces<o2::aod::NPCascTableMCNT> NPCTableMCNT;
184184 Produces<o2::aod::NPCascTableGen> NPCTableGen;
185- Produces<o2::aod::NPPileUpTable> NPPUTable;
186- Produces<o2::aod::NPMCNegativesTable> NPMCNTable;
185+ //
186+ Produces<o2::aod::NPCollisionTable> NPCollsTable;
187+ Produces<o2::aod::NPMCChargedTable> NPMCNTable;
188+ Produces<o2::aod::NPRecoChargedCandidate> NPRecoCandTable;
189+
187190
188191 using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
189192 using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
190193 using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::FV0Mults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0Ms, aod::MultsGlobal>;
191194 using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::FV0Mults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0Ms, aod::MultsGlobal>;
192195 using TracksWithLabel = soa::Join<aod::Tracks, aod::McTrackLabels>;
196+ using TracksWithSel = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection>;
193197
194198 Preslice<TracksExtData> perCollision = aod::track::collisionId;
195199 Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
@@ -417,12 +421,10 @@ struct NonPromptCascadeTask {
417421 for (const auto & coll : collisions) {
418422 float centFT0M = coll.centFT0M ();
419423 float multFT0M = coll.multFT0M ();
420- // float centFV0A = coll.centFV0A();
421- // float multFV0A = coll.multFV0A();
422424 float multNTracks = coll.multNTracksGlobal ();
423- float run = mRunNumber ;
425+ float runNumber = mRunNumber ;
424426 float numContrib = coll.numContrib ();
425- mRegistryMults .fill (HIST (" hCentMultsRuns" ), centFT0M, multFT0M, numContrib, multNTracks, run );
427+ mRegistryMults .fill (HIST (" hCentMultsRuns" ), centFT0M, multFT0M, numContrib, multNTracks, runNumber );
426428 }
427429 };
428430
@@ -981,6 +983,51 @@ struct NonPromptCascadeTask {
981983 }
982984
983985 PROCESS_SWITCH (NonPromptCascadeTask, processdNdetaMC, " process mc dN/deta" , false );
986+ //
987+ void processdNdeta (CollisionCandidatesRun3 const & collisions, TracksWithSel const & tracks)
988+ {
989+ int ds = 1 ;
990+ uint32_t orbitO = 0 ;
991+ bool writeFlag = 0 ;
992+ for (const auto & coll : collisions) {
993+ auto bc = coll.template bc_as <aod::BCsWithTimestamps>();
994+ uint64_t globalBC = bc.globalBC ();
995+ uint32_t orbit = globalBC / 3564 ;
996+ if (orbitO != orbit) {
997+ orbitO = orbit;
998+ if ((ds % cfgDownscaleMB) == 0 ) {
999+ writeFlag = 1 ;
1000+ } else {
1001+ writeFlag = 0 ;
1002+ }
1003+ ds++;
1004+ }
1005+ if (writeFlag) {
1006+ if (mRunNumber != bc.runNumber ()) {
1007+ mRunNumber = bc.runNumber ();
1008+ }
1009+ NPCollsTable (mRunNumber ,
1010+ coll.bc ().globalBC (),
1011+ coll.numContrib (),
1012+ coll.multNTracksGlobal (),
1013+ coll.centFT0M (),
1014+ coll.multFT0M ());
1015+
1016+ auto collIdx = NPCollsTable.lastIndex ();
1017+ auto tracksThisColl = tracks.sliceBy (perCollision, coll.globalIndex ());
1018+ for (auto const & track : tracksThisColl) {
1019+ if (std::fabs (track.eta ()) < 0.8 && track.tpcNClsFound () >= 80 && track.tpcNClsCrossedRows () >= 100 ) {
1020+ if (track.isGlobalTrack ()) {
1021+ // mults.multGlobalTracks++;
1022+ NPRecoCandTable (collIdx, track.pt ());
1023+ }
1024+ }
1025+ }
1026+ }
1027+ }
1028+ }
1029+ PROCESS_SWITCH (NonPromptCascadeTask, processdNdeta, " process dN/deta" , false );
1030+
9841031
9851032 void processPileUp (CollisionCandidatesRun3 const & collisions, aod::BCsWithTimestamps const &)
9861033 {
@@ -1007,7 +1054,7 @@ struct NonPromptCascadeTask {
10071054 }
10081055 float centFT0M = coll.centFT0M ();
10091056 float multFT0M = coll.multFT0M ();
1010- NPPUTable (mRunNumber , globalBC, coll.numContrib (), coll.multNTracksGlobal (), centFT0M, multFT0M);
1057+ NPCollsTable (mRunNumber , globalBC, coll.numContrib (), coll.multNTracksGlobal (), centFT0M, multFT0M);
10111058 }
10121059 }
10131060 };
0 commit comments