@@ -83,15 +83,13 @@ AxisSpec dcaXyAxis = {6000, -30, 30};
8383AxisSpec dcaZAxis = {6000 , -30 , 30 };
8484AxisSpec dcaXAxis = {6000 , -30 , 30 };
8585AxisSpec dcaYAxis = {6000 , -30 , 30 }; // previous AxisSpec dcaYAxis = {2000, -10, 10};
86-
8786// AxisSpec dcaXyAxis = {600, -0.15f, 0.15f};
8887// AxisSpec dcaZAxis = {600, -0.15f, 0.15f};
8988// AxisSpec dcaXAxis = {600, -0.15f, 0.15f};
9089// AxisSpec dcaYAxis = {600, -0.15f, 0.15f};
9190// bin width 0.0005 cm: range [-30, 30] cm => 60/0.0005 = 120000 bins
9291// Keep bin width = 0.0005 cm (5 um): range [-1, 1] cm => 2.0/0.0005 = 4000 bins
9392// AxisSpec axisBinsDCA = {600, -0.15f, 0.15f, "#it{dca}_{xy} (cm)"};
94-
9593AxisSpec centAxis = {{0 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 100 }};
9694
9795// Vertex position axes (cm)
@@ -345,7 +343,8 @@ struct PseudorapidityDensityMFT {
345343
346344 Configurable<float > estimatorEta{" estimatorEta" , 1.0 ,
347345 " eta range for INEL>0 sample definition" };
348-
346+ Configurable<bool > usePerCollisionSampleGt0Cut{" usePerCollisionSampleGt0Cut" , true , " Require at least one central-barrel track in the per-collision sample" };
347+ Configurable<bool > useMidtracksAndPerCollisionSampleGt0Cut{" useMidtracksAndPerCollisionSampleGt0Cut" , true , " Require both INEL>0 midtracks and at least one central-barrel track in the per-collision sample" };
349348 Configurable<bool > useEvSel{" useEvSel" , true , " use event selection" };
350349 Configurable<bool > useNoSameBunchPileup{" useNoSameBunchPileup" , true , " reject collisions in case of pileup with another collision in the same foundBC" };
351350 Configurable<bool > useGoodItsLayersAll{" useGoodItsLayersAll" , true , " all ITS layers are in a good state" };
@@ -1562,20 +1561,24 @@ struct PseudorapidityDensityMFT {
15621561 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_all" ), nTrk, z);
15631562 fillDataCut (DataCutBin::VzWindow);
15641563 // registry.fill(HIST("EventSelection"), static_cast<int>(EventSelectionBin::Vz));
1564+ const bool hasPerCollisionSample = perCollisionSample.size () > 0 ;
1565+ const bool hasMidtracks = midtracks.size () > 0 ;
15651566 if (midtracks.size () > 0 ) {
15661567 // registry.fill(HIST("EventSelection"), static_cast<int>(EventSelectionBin::Sel8VzInelGt0));
15671568 registry.fill (HIST (" EventsNtrkZvtx_gt0" ), nTrk, z);
15681569 registry.fill (HIST (" Tracks/2Danalysis/EventsNtrkZvtx_sel8_inelgt0" ), nTrk, z);
15691570 eventsInel.insert (collision.globalIndex ());
15701571 }
1571- if (perCollisionSample.size () > 0 ) {
1572- // registry.fill(HIST("EventSelection"), static_cast<int>(EventSelectionBin::PerCollisionSampleGt0));
1573- fillDataCut (DataCutBin::PerCollisionSampleGt0);
1572+ if (usePerCollisionSampleGt0Cut && !hasPerCollisionSample) {
1573+ return ;
15741574 }
1575- if (midtracks.size () > 0 && perCollisionSample.size () > 0 ) {
1576- // registry.fill(HIST("EventSelection"), static_cast<int>(EventSelectionBin::MidtracksAndPerCollisionSampleGt0));
1577- fillDataCut (DataCutBin::InelGt0);
1575+ fillDataCut (DataCutBin::PerCollisionSampleGt0);
1576+
1577+ if (useMidtracksAndPerCollisionSampleGt0Cut && !(hasMidtracks && hasPerCollisionSample)) {
1578+ return ;
15781579 }
1580+ // registry.fill(HIST("EventSelection"), static_cast<int>(EventSelectionBin::MidtracksAndPerCollisionSampleGt0));
1581+ fillDataCut (DataCutBin::InelGt0);
15791582
15801583 const auto passEventSelection = [&](auto const & collision) {
15811584 struct EvSelStep {
@@ -1626,6 +1629,7 @@ struct PseudorapidityDensityMFT {
16261629 const float ndf = getTrackNdf (track);
16271630 const float chi2ndf = track.chi2 () / ndf;
16281631 float phi = track.phi ();
1632+ float ptCut = track.pt ();
16291633 o2::math_utils::bringTo02Pi (phi);
16301634 const float dcaXyCut = retrack.bestDCAXY ();
16311635
@@ -1641,7 +1645,7 @@ struct PseudorapidityDensityMFT {
16411645 ((phi <= PhiVetoLow) ||
16421646 ((phi >= PhiVetoPiMin) && (phi <= PhiVetoPiMax)) ||
16431647 (phi >= PhiVetoHigh))) ||
1644- (useDCAxyCut && dcaXyCut > maxDCAxy);
1648+ (useDCAxyCut && dcaXyCut > maxDCAxy) || (usePtCut && ptCut > cfgnPt) ;
16451649
16461650 if constexpr (std::is_same_v<RetracksT, soa::SmallGroups<aod::BestCollisionsFwd3d>>) {
16471651 const float dcaZCut = retrack.bestDCAZ ();
0 commit comments