@@ -185,7 +185,7 @@ struct NonPromptCascadeTask {
185185 //
186186 Produces<o2::aod::NPCollisionTable> NPCollsTable;
187187 Produces<o2::aod::NPMCChargedTable> NPMCNTable;
188- Produces<o2::aod::NPRecoChargedCandidate > NPRecoCandTable;
188+ Produces<o2::aod::NPRecoChargedCand > NPRecoCandTable;
189189
190190 using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
191191 using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
@@ -196,6 +196,7 @@ struct NonPromptCascadeTask {
196196
197197 Preslice<TracksExtData> perCollision = aod::track::collisionId;
198198 Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
199+ Preslice<TracksWithSel> perCollisionSel = aod::track::collisionId;
199200
200201 HistogramRegistry mRegistry ;
201202
@@ -331,8 +332,9 @@ struct NonPromptCascadeTask {
331332 // dN/deta
332333 //
333334 bool runMCdNdeta = context.options ().get <bool >(" processdNdetaMC" );
335+ bool rundNdeta = context.options ().get <bool >(" processdNdeta" );
334336 // std::cout << "runMCdNdeta: " << runMCdNdeta << std::endl;
335- if (runMCdNdeta) {
337+ if (runMCdNdeta || rundNdeta ) {
336338 std::vector<double > ptBins;
337339 std::vector<std::string> tokens = o2::utils::Str::tokenize (cfgPtEdgesdNdeta, ' ,' );
338340 for (auto const & pts : tokens) {
@@ -344,13 +346,14 @@ struct NonPromptCascadeTask {
344346 }
345347 ptBins.push_back (pt);
346348 }
347- AxisSpec ptAxisMC{ptBins, " pT MC" };
348349 AxisSpec ptAxisReco{ptBins, " pT Reco" };
350+ AxisSpec ptAxisMC{ptBins, " pT MC" };
349351
350352 // multMeasured, multMC, ptMeasured, ptMC
351353 mRegistrydNdeta .add (" hdNdetaRM/hdNdetaRM" , " hdNdetaRM" , HistType::kTHnSparseF , {nTracksAxisMC, nTracksAxis, ptAxisMC, ptAxisReco});
352354 mRegistrydNdeta .add (" hdNdetaRM/hdNdetaRMNotInRecoCol" , " hdNdetaRMNotInRecoCol" , HistType::kTHnSparseF , {nTracksAxisMC, ptAxisMC});
353355 mRegistrydNdeta .add (" hdNdetaRM/hdNdetaRMNotInRecoTrk" , " hdNdetaRMNotInRecoTrk" , HistType::kTHnSparseF , {nTracksAxisMC, ptAxisMC});
356+ mRegistrydNdeta .add (" hdNdetaData" , " hdNdetaData" , HistType::kTH1F , {nTracksAxis});
354357 }
355358 }
356359
@@ -810,6 +813,10 @@ struct NonPromptCascadeTask {
810813 aod::McParticles const & mcParticles,
811814 TracksWithLabel const & tracks)
812815 {
816+ // ------------------------------------------------------------
817+ // Downscaling output table by BC as there is no pileup in MC
818+ // ------------------------------------------------------------
819+ int ds = 1 ;
813820 // -------------------------------------------------------------
814821 // MC mult for all MC coll
815822 // --------------------------------------------------------------
@@ -952,7 +959,9 @@ struct NonPromptCascadeTask {
952959 const float ptMC = mcPar.pt ();
953960
954961 mRegistrydNdeta .fill (HIST (" hdNdetaRM/hdNdetaRM" ), mult, multReco, ptMC, ptReco);
955- NPMCNTable (ptMC, ptReco, mult, multReco);
962+ if (ds % cfgDownscaleMB == 0 ) {
963+ NPMCNTable (ptMC, ptReco, mult, multReco);
964+ }
956965 }
957966
958967 // ------------------------------------------------------------
@@ -983,7 +992,7 @@ struct NonPromptCascadeTask {
983992
984993 PROCESS_SWITCH (NonPromptCascadeTask, processdNdetaMC, " process mc dN/deta" , false );
985994 //
986- void processdNdeta (CollisionCandidatesRun3 const & collisions, TracksWithSel const & tracks)
995+ void processdNdeta (CollisionCandidatesRun3 const & collisions, TracksWithSel const & tracks, aod::BCsWithTimestamps const & )
987996 {
988997 int ds = 1 ;
989998 uint32_t orbitO = 0 ;
@@ -1006,22 +1015,26 @@ struct NonPromptCascadeTask {
10061015 mRunNumber = bc.runNumber ();
10071016 }
10081017 NPCollsTable (mRunNumber ,
1009- coll. bc (). globalBC () ,
1018+ globalBC,
10101019 coll.numContrib (),
10111020 coll.multNTracksGlobal (),
10121021 coll.centFT0M (),
10131022 coll.multFT0M ());
10141023
10151024 auto collIdx = NPCollsTable.lastIndex ();
1016- auto tracksThisColl = tracks.sliceBy (perCollision, coll.globalIndex ());
1025+ auto tracksThisColl = tracks.sliceBy (perCollisionSel, coll.globalIndex ());
1026+ float multreco = 0 .;
1027+ // std::cout << "tracks:" << tracksThisColl.size() << std::endl;
10171028 for (auto const & track : tracksThisColl) {
1029+ // std::cout << track.pt() << " tracks " << track.isGlobalTrack() << std::endl;
10181030 if (std::fabs (track.eta ()) < 0.8 && track.tpcNClsFound () >= 80 && track.tpcNClsCrossedRows () >= 100 ) {
10191031 if (track.isGlobalTrack ()) {
1020- // mults.multGlobalTracks ++;
1032+ multreco ++;
10211033 NPRecoCandTable (collIdx, track.pt ());
10221034 }
10231035 }
10241036 }
1037+ mRegistrydNdeta .fill (HIST (" hdNdetaData" ), multreco);
10251038 }
10261039 }
10271040 }
0 commit comments