@@ -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,10 @@ 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+ }
965+ ds++;
956966 }
957967
958968 // ------------------------------------------------------------
@@ -983,7 +993,7 @@ struct NonPromptCascadeTask {
983993
984994 PROCESS_SWITCH (NonPromptCascadeTask, processdNdetaMC, " process mc dN/deta" , false );
985995 //
986- void processdNdeta (CollisionCandidatesRun3 const & collisions, TracksWithSel const & tracks)
996+ void processdNdeta (CollisionCandidatesRun3 const & collisions, TracksWithSel const & tracks, aod::BCsWithTimestamps const & )
987997 {
988998 int ds = 1 ;
989999 uint32_t orbitO = 0 ;
@@ -1006,22 +1016,26 @@ struct NonPromptCascadeTask {
10061016 mRunNumber = bc.runNumber ();
10071017 }
10081018 NPCollsTable (mRunNumber ,
1009- coll. bc (). globalBC () ,
1019+ globalBC,
10101020 coll.numContrib (),
10111021 coll.multNTracksGlobal (),
10121022 coll.centFT0M (),
10131023 coll.multFT0M ());
10141024
10151025 auto collIdx = NPCollsTable.lastIndex ();
1016- auto tracksThisColl = tracks.sliceBy (perCollision, coll.globalIndex ());
1026+ auto tracksThisColl = tracks.sliceBy (perCollisionSel, coll.globalIndex ());
1027+ float multreco = 0 .;
1028+ // std::cout << "tracks:" << tracksThisColl.size() << std::endl;
10171029 for (auto const & track : tracksThisColl) {
1030+ // std::cout << track.pt() << " tracks " << track.isGlobalTrack() << std::endl;
10181031 if (std::fabs (track.eta ()) < 0.8 && track.tpcNClsFound () >= 80 && track.tpcNClsCrossedRows () >= 100 ) {
10191032 if (track.isGlobalTrack ()) {
1020- // mults.multGlobalTracks ++;
1033+ multreco ++;
10211034 NPRecoCandTable (collIdx, track.pt ());
10221035 }
10231036 }
10241037 }
1038+ mRegistrydNdeta .fill (HIST (" hdNdetaData" ), multreco);
10251039 }
10261040 }
10271041 }
0 commit comments