@@ -60,6 +60,7 @@ using TrackMCTrueTable = aod::McParticles;
6060using CollisionMCRecTable = soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::CentFT0Cs, aod::EvSels, aod::Mults>>;
6161using TrackMCRecTable = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels, aod::TrackSelection>;
6262using FilTrackMCRecTable = soa::Filtered<TrackMCRecTable>;
63+ using v0trackcandidates = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTPCFullPr>;
6364
6465enum {
6566 kTrackTypebegin = 0 ,
@@ -120,15 +121,15 @@ struct HeavyIonMultiplicity {
120121 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
121122 Service<o2::framework::O2DatabasePDG> pdg;
122123 Preslice<TrackMCRecTable> perCollision = aod::track::collisionId;
123- Preslice<aod::V0Datas> percolv0 = o2::aod::v0data::collisionId;
124124
125125 Configurable<float > etaRange{" eta-range" , 1 .0f , " Eta range to consider" };
126126 Configurable<float > VtxRange{" vertex-range" , 10 .0f , " Vertex Z range to consider" };
127127 Configurable<float > dcaZ{" dcaZ" , 0 .2f , " Custom DCA Z cut (ignored if negative)" };
128- Configurable<float > v0radiusCut{" v0radiusCut" , 2 , " RadiusCut" };
129- Configurable<float > dcapostopvCut{" dcapostopvCut" , 1 , " dcapostopvCut" };
130- Configurable<float > dcanegtopvCut{" dcanegtopvCut" , 1 , " dcanegtopvCut" };
131- Configurable<float > v0cospaCut{" v0cospaCut" , 0.97 , " v0cospaCut" };
128+ Configurable<float > v0radiusCut{" v0radiusCut" , 1 .2f , " RadiusCut" };
129+ Configurable<float > dcapostopvCut{" dcapostopvCut" , 0 .05f , " dcapostopvCut" };
130+ Configurable<float > dcanegtopvCut{" dcanegtopvCut" , 0 .05f , " dcanegtopvCut" };
131+ Configurable<float > v0cospaCut{" v0cospaCut" , 0 .995f , " v0cospaCut" };
132+ Configurable<float > dcav0daughtercut{" dcav0daughtercut" , 1 .0f , " dcav0daughtercut" };
132133 ConfigurableAxis multHistBin{" MultDistBinning" , {501 , -0.5 , 500.5 }, " " };
133134 ConfigurableAxis PVHistBin{" PVDistBinning" , {501 , -0.5 , 500.5 }, " " };
134135 ConfigurableAxis FV0AmultHistBin{" FV0AMultDistBinning" , {501 , -0.5 , 500.5 }, " " };
@@ -224,6 +225,7 @@ struct HeavyIonMultiplicity {
224225 }
225226
226227 if (doprocessStrangeYield) {
228+ histos.add (" hzvtxcent" , " hzvtxcent" , kTH2D , {axisVtxZ, CentAxis}, false );
227229 histos.add (" K0sCentEtaMass" , " K0sCentEtaMass" , kTH3D , {CentAxis, axisEta, AxisMassK0s}, false );
228230 histos.add (" LambdaCentEtaMass" , " LambdaCentEtaMass" , kTH3D , {CentAxis, axisEta, AxisMassLambda}, false );
229231 histos.add (" AntiLambdaCentEtaMass" , " AntiLambdaCentEtaMass" , kTH3D , {CentAxis, axisEta, AxisMassLambda}, false );
@@ -573,19 +575,19 @@ struct HeavyIonMultiplicity {
573575 }
574576 PROCESS_SWITCH (HeavyIonMultiplicity, processMCfillspecies, " Fill particle species in MC" , false );
575577
576- void processStrangeYield (CollisionDataTable::iterator const & collision, aod::V0Datas const & v0data, soa::Join< aod::Tracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFPr> const &)
578+ void processStrangeYield (CollisionDataTable::iterator const & collision, v0trackcandidates const &, aod::V0Datas const & v0data )
577579 {
578580 if (!IsEventSelected (collision)) {
579581 return ;
580582 }
581583 if (std::abs (collision.posZ ()) >= VtxRange) {
582584 return ;
583585 }
584- auto v0tracks = v0data. sliceBy (percolv0 , collision.globalIndex ());
585- for (auto & v0track : v0tracks ) {
586- auto v0pTrack = v0track.template posTrack_as <soa::Join<aod::Tracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFPr> >();
587- auto v0nTrack = v0track.template negTrack_as <soa::Join<aod::Tracks, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFPr> >();
588- if (v0track.v0radius () > v0radiusCut || v0track.dcapostopv () > dcapostopvCut || v0track.dcanegtopv () > dcanegtopvCut || v0track.v0cosPA () < v0cospaCut) {
586+ histos. fill ( HIST ( " hzvtxcent " ), collision. posZ () , collision.centFT0C ());
587+ for (auto & v0track : v0data ) {
588+ auto v0pTrack = v0track.template posTrack_as <v0trackcandidates >();
589+ 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 ) {
589591 continue ;
590592 }
591593 if (std::abs (v0pTrack.eta ()) > 0.9 || std::abs (v0nTrack.eta ()) > 0.9 ) {
0 commit comments