5858using namespace o2 ;
5959using namespace o2 ::framework;
6060using namespace o2 ::framework::expressions;
61+ using namespace o2 ::aod::track;
6162
6263struct Phik0shortanalysis {
6364 // Histograms are defined with HistogramRegistry
@@ -186,6 +187,11 @@ struct Phik0shortanalysis {
186187 double massK0S = o2::constants::physics::MassK0Short;
187188 double massLambda = o2::constants::physics::MassLambda0;
188189
190+ // Defining track flags
191+ static constexpr TrackSelectionFlags::flagtype TrackSelectionITS = TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | TrackSelectionFlags::kITSHits ;
192+ static constexpr TrackSelectionFlags::flagtype TrackSelectionTPC = TrackSelectionFlags::kTPCNCls | TrackSelectionFlags::kTPCCrossedRowsOverNCls | TrackSelectionFlags::kTPCChi2NDF ;
193+ static constexpr TrackSelectionFlags::flagtype TrackSelectionDCA = TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy ;
194+
189195 // Defining filters for events (event selection)
190196 // Processed events will be already fulfilling the event selection requirements
191197 Filter eventFilter = (o2::aod::evsel::sel8 == true );
@@ -194,8 +200,12 @@ struct Phik0shortanalysis {
194200 // Defining filters on V0s (cannot filter on dynamic columns)
195201 Filter preFilterV0 = (nabs(aod::v0data::dcapostopv) > v0Configs.v0SettingDCAPosToPV && nabs(aod::v0data::dcanegtopv) > v0Configs.v0SettingDCANegToPV && aod::v0data::dcaV0daughters < v0Configs.v0SettingDCAV0Dau);
196202
197- // Defining filters on tracks (cannot filter on dynamic columns)
198- Filter trackFilter = requireGlobalTrackWoDCAInFilter();
203+ // Defining filters on tracks
204+ Filter trackFilter = ncheckbit(aod::track::v001::detectorMap, (uint8_t )o2::aod::track::ITS) &&
205+ ncheckbit (aod::track::trackCutFlag, TrackSelectionITS) &&
206+ ifnode (ncheckbit(aod::track::v001::detectorMap, (uint8_t )o2::aod::track::TPC), ncheckbit(aod::track::trackCutFlag, TrackSelectionTPC), true) &&
207+ ncheckbit(aod::track::trackCutFlag, TrackSelectionDCA) &&
208+ ncheckbit(aod::track::trackCutFlag, TrackSelectionFlags::kInAcceptanceTracks );
199209
200210 // Defining the type of the collisions for data and MC
201211 using SelCollisions = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::PVMults>;
@@ -2278,6 +2288,7 @@ struct Phik0shortanalysis {
22782288 return ;
22792289
22802290 float multiplicity = collision.centFT0M ();
2291+ dataEventHist.fill (HIST (" hMultiplicityPercent" ), multiplicity);
22812292
22822293 for (const auto & track : filteredTracks)
22832294 dataEventHist.fill (HIST (" h2EtaDistribution" ), multiplicity, track.eta ());
@@ -2300,6 +2311,7 @@ struct Phik0shortanalysis {
23002311 continue ;
23012312
23022313 float genmultiplicity = mcCollision.centFT0M ();
2314+ mcEventHist.fill (HIST (" hRecMCGenMultiplicityPercent" ), genmultiplicity);
23032315
23042316 auto mcTracksThisColl = filteredMCTracks.sliceByCached (aod::track::collisionId, collision.globalIndex (), cache);
23052317
@@ -2336,6 +2348,7 @@ struct Phik0shortanalysis {
23362348 }
23372349
23382350 float genmultiplicity = mcCollision.centFT0M ();
2351+ mcEventHist.fill (HIST (" hGenMCMultiplicityPercent" ), genmultiplicity);
23392352
23402353 for (const auto & mcParticle : mcParticles) {
23412354 if (!mcParticle.isPhysicalPrimary () || std::abs (mcParticle.eta ()) > trackConfigs.etaMax )
0 commit comments