@@ -130,6 +130,8 @@ struct HeavyIonMultiplicity {
130130 Configurable<float > dcanegtopvCut{" dcanegtopvCut" , 0 .05f , " dcanegtopvCut" };
131131 Configurable<float > v0cospaCut{" v0cospaCut" , 0 .995f , " v0cospaCut" };
132132 Configurable<float > dcav0daughtercut{" dcav0daughtercut" , 1 .0f , " dcav0daughtercut" };
133+ Configurable<float > minTPCnClsCut{" minTPCnClsCut" , 50 .0f , " minTPCnClsCut" };
134+ Configurable<float > NSigmaTPCcut{" NSigmaTPCcut" , 5 .0f , " NSigmaTPCcut" };
133135 ConfigurableAxis multHistBin{" MultDistBinning" , {501 , -0.5 , 500.5 }, " " };
134136 ConfigurableAxis PVHistBin{" PVDistBinning" , {501 , -0.5 , 500.5 }, " " };
135137 ConfigurableAxis FV0AmultHistBin{" FV0AMultDistBinning" , {501 , -0.5 , 500.5 }, " " };
@@ -178,25 +180,24 @@ struct HeavyIonMultiplicity {
178180 if (doprocessData) {
179181 histos.add (" CentPercentileHist" , " CentPercentileHist" , kTH1D , {axisCent}, false );
180182 histos.add (" hdatamult" , " hdatamult" , kTHnSparseD , {axisVtxZ, axisMult, CentAxis}, false );
181- histos.add (" hdatadndeta" , " hdatadndeta" , kTHnSparseD , {axisVtxZ, CentAxis, axisEta, axisPhi, axisPT, AxisTrackType}, false );
182- histos.add (" hdatadndetaOccupancy" , " hdatadndetaOccupancy" , kTHnSparseD , {axisVtxZ, CentAxis, axisEta, axisPhi, axisOccupancy}, false );
183+ histos.add (" hdatadndeta" , " hdatadndeta" , kTHnSparseD , {axisVtxZ, CentAxis, axisOccupancy, axisEta, axisPhi, AxisTrackType}, false );
183184 histos.add (" hdatazvtxcent" , " hdatazvtxcent" , kTH3D , {axisVtxZ, CentAxis, axisOccupancy}, false );
184185 histos.add (" PhiVsEtaHist" , " PhiVsEtaHist" , kTH2D , {axisPhi2, axisEta}, false );
185186 }
186187
187188 if (doprocessMonteCarlo || doprocessMCpTefficiency || doprocessMCcheckFakeTracks || doprocessMCfillspecies) {
188189 histos.add (" CentPercentileMCRecHist" , " CentPercentileMCRecHist" , kTH1D , {axisCent}, false );
189- histos.add (" hmczvtxcent" , " hmczvtxcent" , kTH2D , {axisVtxZ, CentAxis}, false );
190+ histos.add (" hmczvtxcent" , " hmczvtxcent" , kTH3D , {axisVtxZ, CentAxis, axisOccupancy }, false );
190191 }
191192
192193 if (doprocessMonteCarlo) {
193194 histos.add (" MCrecPhiVsEtaHist" , " MCrecPhiVsEtaHist" , kTH2D , {axisPhi2, axisEta}, false );
194- histos.add (" hmcrecdndeta" , " hmcrecdndeta" , kTHnSparseD , {axisVtxZ, CentAxis, axisEta, axisPhi}, false );
195+ histos.add (" hmcrecdndeta" , " hmcrecdndeta" , kTHnSparseD , {axisVtxZ, CentAxis, axisOccupancy, axisEta, axisPhi}, false );
195196 histos.add (" hmcgendndeta" , " hmcgendndeta" , kTHnSparseD , {axisVtxZ, CentAxis, axisEta, axisPhi, AxisGenpTVary}, false );
196197 }
197198
198199 if (doprocessMCfillspecies) {
199- histos.add (" FillMCrecSpecies" , " FillMCrecSpecies" , kTHnSparseD , {CentAxis, axisEta, AxisSpecies}, false );
200+ histos.add (" FillMCrecSpecies" , " FillMCrecSpecies" , kTHnSparseD , {CentAxis, axisOccupancy, axisEta, AxisSpecies}, false );
200201 histos.add (" FillMCgenSpecies" , " FillMCgenSpecies" , kTHnSparseD , {CentAxis, axisEta, AxisSpecies}, false );
201202 }
202203
@@ -337,12 +338,11 @@ struct HeavyIonMultiplicity {
337338 }
338339 histos.fill (HIST (" PhiVsEtaHist" ), track.phi (), track.eta ());
339340 NchTracks++;
340- histos.fill (HIST (" hdatadndetaOccupancy" ), collision.posZ (), collision.centFT0C (), track.eta (), track.phi (), collision.trackOccupancyInTimeRange ());
341- histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), track.eta (), track.phi (), track.pt (), kGlobalplusITS );
341+ histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), collision.trackOccupancyInTimeRange (), track.eta (), track.phi (), kGlobalplusITS );
342342 if (track.hasTPC ()) {
343- histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), track. eta (), track.phi (), track.pt (), kGlobalonly );
343+ histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), collision. trackOccupancyInTimeRange (), track.eta (), track.phi (), kGlobalonly );
344344 } else {
345- histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), track. eta (), track.phi (), track.pt (), kITSonly );
345+ histos.fill (HIST (" hdatadndeta" ), collision.posZ (), collision.centFT0C (), collision. trackOccupancyInTimeRange (), track.eta (), track.phi (), kITSonly );
346346 }
347347 }
348348 histos.fill (HIST (" hdatamult" ), collision.posZ (), NchTracks, collision.centFT0C ());
@@ -382,15 +382,15 @@ struct HeavyIonMultiplicity {
382382 }
383383 histos.fill (HIST (" VtxZHist" ), RecCollision.posZ ());
384384 histos.fill (HIST (" CentPercentileMCRecHist" ), RecCollision.centFT0C ());
385- histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C ());
385+ histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange () );
386386
387387 auto Rectrackspart = RecTracks.sliceBy (perCollision, RecCollision.globalIndex ());
388388 for (auto & Rectrack : Rectrackspart) {
389389 if (!IsTrackSelected (Rectrack)) {
390390 continue ;
391391 }
392392 histos.fill (HIST (" MCrecPhiVsEtaHist" ), Rectrack.phi (), Rectrack.eta ());
393- histos.fill (HIST (" hmcrecdndeta" ), RecCollision.posZ (), RecCollision.centFT0C (), Rectrack.eta (), Rectrack.phi ());
393+ histos.fill (HIST (" hmcrecdndeta" ), RecCollision.posZ (), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange (), Rectrack.eta (), Rectrack.phi ());
394394 } // track (mcrec) loop
395395
396396 for (auto & particle : GenParticles) {
@@ -421,7 +421,7 @@ struct HeavyIonMultiplicity {
421421 }
422422 histos.fill (HIST (" VtxZHist" ), RecCollision.posZ ());
423423 histos.fill (HIST (" CentPercentileMCRecHist" ), RecCollision.centFT0C ());
424- histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C ());
424+ histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange () );
425425
426426 auto Rectrackspart = RecTracks.sliceBy (perCollision, RecCollision.globalIndex ());
427427 for (auto & Rectrack : Rectrackspart) {
@@ -464,7 +464,7 @@ struct HeavyIonMultiplicity {
464464 }
465465 histos.fill (HIST (" VtxZHist" ), RecCollision.posZ ());
466466 histos.fill (HIST (" CentPercentileMCRecHist" ), RecCollision.centFT0C ());
467- histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C ());
467+ histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange () );
468468
469469 auto Rectrackspart = RecTracks.sliceBy (perCollision, RecCollision.globalIndex ());
470470 for (auto & Rectrack : Rectrackspart) {
@@ -503,15 +503,15 @@ struct HeavyIonMultiplicity {
503503 }
504504 histos.fill (HIST (" VtxZHist" ), RecCollision.posZ ());
505505 histos.fill (HIST (" CentPercentileMCRecHist" ), RecCollision.centFT0C ());
506- histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C ());
506+ histos.fill (HIST (" hmczvtxcent" ), RecCollision.posZ (), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange () );
507507
508508 auto Rectrackspart = RecTracks.sliceBy (perCollision, RecCollision.globalIndex ());
509509 std::vector<Int_t> mclabels;
510510 for (auto & Rectrack : Rectrackspart) {
511511 if (!IsTrackSelected (Rectrack)) {
512512 continue ;
513513 }
514- histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), Rectrack.eta (), Double_t (kSpAll ));
514+ histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange (), Rectrack.eta (), Double_t (kSpAll ));
515515 if (Rectrack.has_mcParticle ()) {
516516 Int_t pid = kBkg ;
517517 auto mcpart = Rectrack.template mcParticle_as <aod::McParticles>();
@@ -543,9 +543,9 @@ struct HeavyIonMultiplicity {
543543 pid = kBkg ;
544544 }
545545 mclabels.push_back (Rectrack.mcParticleId ());
546- histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), Rectrack.eta (), Double_t (pid));
546+ histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange (), Rectrack.eta (), Double_t (pid));
547547 } else {
548- histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), Rectrack.eta (), Double_t (kBkg ));
548+ histos.fill (HIST (" FillMCrecSpecies" ), RecCollision.centFT0C (), RecCollision. trackOccupancyInTimeRange (), Rectrack.eta (), Double_t (kBkg ));
549549 }
550550 } // rec track loop
551551
@@ -587,10 +587,28 @@ struct HeavyIonMultiplicity {
587587 for (auto & v0track : v0data) {
588588 auto v0pTrack = v0track.template posTrack_as <v0trackcandidates>();
589589 auto v0nTrack = v0track.template negTrack_as <v0trackcandidates>();
590- if (std::abs (v0track. dcapostopv ()) < dcapostopvCut || std::abs (v0track. dcanegtopv ()) < dcanegtopvCut || v0track. v0radius () < v0radiusCut || v0track. v0cosPA () < v0cospaCut || std::abs (v0track. dcaV0daughters ()) > dcav0daughtercut ) {
590+ if (std::abs (v0pTrack. eta ()) > 0.9 || std::abs (v0nTrack. eta ()) > 0.9 ) {
591591 continue ;
592592 }
593- if (std::abs (v0pTrack.eta ()) > 0.9 || std::abs (v0nTrack.eta ()) > 0.9 ) {
593+ if (v0pTrack.tpcNClsFound () < minTPCnClsCut) {
594+ continue ;
595+ }
596+ if (v0nTrack.tpcNClsFound () < minTPCnClsCut) {
597+ continue ;
598+ }
599+ if (std::abs (v0pTrack.tpcNSigmaPi ()) > NSigmaTPCcut) {
600+ continue ;
601+ }
602+ if (std::abs (v0nTrack.tpcNSigmaPi ()) > NSigmaTPCcut) {
603+ continue ;
604+ }
605+ if (std::abs (v0pTrack.tpcNSigmaPr ()) > NSigmaTPCcut) {
606+ continue ;
607+ }
608+ if (std::abs (v0nTrack.tpcNSigmaPr ()) > NSigmaTPCcut) {
609+ continue ;
610+ }
611+ if (std::abs (v0track.dcapostopv ()) < dcapostopvCut || std::abs (v0track.dcanegtopv ()) < dcanegtopvCut || v0track.v0radius () < v0radiusCut || v0track.v0cosPA () < v0cospaCut || std::abs (v0track.dcaV0daughters ()) > dcav0daughtercut) {
594612 continue ;
595613 }
596614 histos.fill (HIST (" K0sCentEtaMass" ), collision.centFT0C (), v0track.eta (), v0track.mK0Short ());
0 commit comments