From 971c04e22b84e62f62131fce2174a9f38c34c116 Mon Sep 17 00:00:00 2001 From: ananthapadmanabhan18 <82643666+ananthapadmanabhan18@users.noreply.github.com> Date: Mon, 2 Jun 2025 20:23:29 +0530 Subject: [PATCH] Put the condition such that only the events in which atleast one track has TOF --- PWGUD/Tasks/exclusiveRhoTo4Pi.cxx | 33 ++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/PWGUD/Tasks/exclusiveRhoTo4Pi.cxx b/PWGUD/Tasks/exclusiveRhoTo4Pi.cxx index 238ecac1245..14ffcc415a4 100644 --- a/PWGUD/Tasks/exclusiveRhoTo4Pi.cxx +++ b/PWGUD/Tasks/exclusiveRhoTo4Pi.cxx @@ -44,7 +44,6 @@ namespace o2::aod { namespace branch { - // vertex Position DECLARE_SOA_COLUMN(PosX, posX, double); DECLARE_SOA_COLUMN(PosY, posY, double); @@ -68,6 +67,9 @@ DECLARE_SOA_COLUMN(TimeFddc, timeFddc, double); DECLARE_SOA_COLUMN(TimeZna, timeZna, double); DECLARE_SOA_COLUMN(TimeZnc, timeZnc, double); +// Occupancy +DECLARE_SOA_COLUMN(Occupancy, occupancy, double); + // DCA DECLARE_SOA_COLUMN(Dcaxy1, dcaxy1, double); DECLARE_SOA_COLUMN(Dcaxy2, dcaxy2, double); @@ -182,6 +184,8 @@ DECLARE_SOA_TABLE(SignalData, "AOD", "signalData", branch::TimeZna, branch::TimeZnc, + branch::Occupancy, + branch::Dcaxy1, branch::Dcaxy2, branch::Dcaxy3, @@ -282,6 +286,8 @@ DECLARE_SOA_TABLE(BkgroundData, "AOD", "bkgroundData", branch::TimeZna, branch::TimeZnc, + branch::Occupancy, + branch::Dcaxy1, branch::Dcaxy2, branch::Dcaxy3, @@ -408,6 +414,8 @@ DECLARE_SOA_TABLE(SignalMCreco, "AOD", "SignalMCreco", branch::TimeZna, branch::TimeZnc, + branch::Occupancy, + branch::Dcaxy1, branch::Dcaxy2, branch::Dcaxy3, @@ -512,7 +520,7 @@ struct ExclusiveRhoTo4Pi { Configurable ft0aCut{"ft0aCut", 150., "FT0A threshold"}; Configurable ft0cCut{"ft0cCut", 50., "FT0C threshold"}; Configurable zdcCut{"zdcCut", 1., "ZDC threshold"}; - Configurable occupancyCut{"occupancyCut", 1000, "Occupancy Cut"}; + // Configurable occupancyCut{"occupancyCut", 1000, "Occupancy Cut"}; Configurable pvCut{"pvCut", 1.0, "Use Only PV tracks"}; Configurable numPVContrib{"numPVContrib", 4, "Number of PV Contributors"}; @@ -837,7 +845,6 @@ struct ExclusiveRhoTo4Pi { Filter vertexCut = (nabs(o2::aod::collision::posZ) <= vZCut) && (o2::aod::collision::numContrib == numPVContrib); Filter fitcuts = o2::aod::udcollision::totalFV0AmplitudeA < fv0Cut && o2::aod::udcollision::totalFT0AmplitudeA < ft0aCut && o2::aod::udcollision::totalFT0AmplitudeC < ft0cCut; Filter zdcCuts = (o2::aod::udzdc::energyCommonZNA < zdcCut) && (o2::aod::udzdc::energyCommonZNC < zdcCut); - Filter occupCut = nabs(o2::aod::udcollision::occupancyInTime) < occupancyCut; using UDtracks = soa::Join; using UDCollisions = soa::Filtered>; // using UDCollision = UDCollisions::iterator; @@ -923,6 +930,18 @@ struct ExclusiveRhoTo4Pi { return; } + // Check if there is at least one track with TOF in the selected events, otherwise return + bool hasAtleastOneTOF = false; + for (int i = 0; i < numPiPlusTracks; i++) { + if (selectedPionPlusTracks[i].hasTOF() == true) { + hasAtleastOneTOF = true; + break; + } + } + if (!hasAtleastOneTOF) { + return; + } + // Selecting Events with net charge = 0 if (numPionMinusTracks == numPiMinus && numPiPlusTracks == numPiPlus) { @@ -964,7 +983,7 @@ struct ExclusiveRhoTo4Pi { sigFromData( collision.posX(), collision.posY(), collision.posZ(), collision.totalFV0AmplitudeA(), collision.totalFT0AmplitudeA(), collision.totalFT0AmplitudeC(), collision.totalFDDAmplitudeA(), collision.totalFDDAmplitudeC(), - collision.timeFV0A(), collision.timeFT0A(), collision.timeFT0C(), collision.timeFDDA(), collision.timeFDDC(), collision.timeZNA(), collision.timeZNC(), + collision.timeFV0A(), collision.timeFT0A(), collision.timeFT0C(), collision.timeFDDA(), collision.timeFDDC(), collision.timeZNA(), collision.timeZNC(), collision.occupancyInTime(), selectedPionPlusTracks[0].dcaXY(), selectedPionPlusTracks[1].dcaXY(), selectedPionMinusTracks[0].dcaXY(), selectedPionMinusTracks[1].dcaXY(), selectedPionPlusTracks[0].dcaZ(), selectedPionPlusTracks[1].dcaZ(), selectedPionMinusTracks[0].dcaZ(), selectedPionMinusTracks[1].dcaZ(), @@ -1037,7 +1056,7 @@ struct ExclusiveRhoTo4Pi { collision.posX(), collision.posY(), collision.posZ(), collision.totalFV0AmplitudeA(), collision.totalFT0AmplitudeA(), collision.totalFT0AmplitudeC(), collision.totalFDDAmplitudeA(), collision.totalFDDAmplitudeC(), collision.timeFV0A(), collision.timeFT0A(), collision.timeFT0C(), collision.timeFDDA(), collision.timeFDDC(), - collision.timeZNA(), collision.timeZNC(), + collision.timeZNA(), collision.timeZNC(), collision.occupancyInTime(), selectedPionTracks[0].dcaXY(), selectedPionTracks[1].dcaXY(), selectedPionTracks[0].dcaXY(), selectedPionTracks[1].dcaXY(), selectedPionTracks[0].dcaZ(), selectedPionTracks[1].dcaZ(), selectedPionTracks[0].dcaZ(), selectedPionTracks[1].dcaZ(), selectedPionTracks[0].tpcNSigmaPi(), selectedPionTracks[1].tpcNSigmaPi(), selectedPionTracks[0].tpcNSigmaPi(), selectedPionTracks[1].tpcNSigmaPi(), @@ -1174,7 +1193,7 @@ struct ExclusiveRhoTo4Pi { PROCESS_SWITCH(ExclusiveRhoTo4Pi, processMCgen, "The Process for 4 Pion Analysis from MC Generation", false); // Begin of MC Reconstruction function----------------------------------------------------------------------------------------------------------------------------------------------- - using CollisionStuff = soa::Filtered>; + using CollisionStuff = soa::Filtered>; using CollisionTotal = CollisionStuff::iterator; using TrackStuff = soa::Join; @@ -1303,7 +1322,7 @@ struct ExclusiveRhoTo4Pi { collision.posX(), collision.posY(), collision.posZ(), collision.totalFV0AmplitudeA(), collision.totalFT0AmplitudeA(), collision.totalFT0AmplitudeC(), collision.totalFDDAmplitudeA(), collision.totalFDDAmplitudeC(), collision.timeFV0A(), collision.timeFT0A(), collision.timeFT0C(), collision.timeFDDA(), collision.timeFDDC(), - collision.timeZNA(), collision.timeZNC(), + collision.timeZNA(), collision.timeZNC(), collision.occupancyInTime(), selectedPionPlusTracks[0].dcaXY(), selectedPionPlusTracks[1].dcaXY(), selectedPionMinusTracks[0].dcaXY(), selectedPionMinusTracks[1].dcaXY(), selectedPionPlusTracks[0].dcaZ(), selectedPionPlusTracks[1].dcaZ(), selectedPionMinusTracks[0].dcaZ(), selectedPionMinusTracks[1].dcaZ(), selectedPionPlusTracks[0].tpcNSigmaPi(), selectedPionPlusTracks[1].tpcNSigmaPi(), selectedPionMinusTracks[0].tpcNSigmaPi(), selectedPionMinusTracks[1].tpcNSigmaPi(),