diff --git a/PWGCF/Flow/Tasks/flowZdcTask.cxx b/PWGCF/Flow/Tasks/flowZdcTask.cxx index 89ae63e6507..ec5b214250c 100644 --- a/PWGCF/Flow/Tasks/flowZdcTask.cxx +++ b/PWGCF/Flow/Tasks/flowZdcTask.cxx @@ -112,14 +112,15 @@ struct FlowZdcTask { Configurable minT0CcentCut{"minT0CcentCut", 0.0, "Min T0C Cent. cut"}; Configurable maxT0CcentCut{"maxT0CcentCut", 90.0, "Max T0C Cent. cut"}; + using ColEvents = soa::Join; Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex; Filter trackFilter = ((aod::track::eta > minEta) && (aod::track::eta < maxEta)); using ColEvSels = soa::Join; using AodCollisions = soa::Filtered>; using AodTracks = soa::Filtered>; Partition tracksIUWithTPC = (aod::track::tpcNClsFindable > (uint8_t)0); - using TracksSel = soa::Join; using BCsRun3 = soa::Join; + using TracksSel = soa::Join; using CollisionDataTable = soa::Join; using TrackDataTable = soa::Join; using FilTrackDataTable = soa::Filtered; @@ -863,45 +864,77 @@ struct FlowZdcTask { histos.get(HIST("ZDC_energy_vs_ZEM"))->Fill(sumZEM, sumZDC); } - void processZdc(aod::Zdc const& zdc) + void processZdc( + ColEvents const& cols, + BCsRun3 const& /*bcs*/, + aod::Zdcs const& /*zdcs*/) { - auto znA = zdc.amplitudeZNA() / cfgCollisionEnergy; - auto znC = zdc.amplitudeZNC() / cfgCollisionEnergy; - auto zpA = zdc.amplitudeZPA() / cfgCollisionEnergy; - auto zpC = zdc.amplitudeZPC() / cfgCollisionEnergy; - float sumZNC = ((zdc.energySectorZNC())[0] + (zdc.energySectorZNC())[1] + (zdc.energySectorZNC())[2] + (zdc.energySectorZNC())[3]) / cfgCollisionEnergy; - float sumZNA = ((zdc.energySectorZNA())[0] + (zdc.energySectorZNA())[1] + (zdc.energySectorZNA())[2] + (zdc.energySectorZNA())[3]) / cfgCollisionEnergy; - float sumZPC = ((zdc.energySectorZPC())[0] + (zdc.energySectorZPC())[1] + (zdc.energySectorZPC())[2] + (zdc.energySectorZPC())[3]) / cfgCollisionEnergy; - float sumZPA = ((zdc.energySectorZPA())[0] + (zdc.energySectorZPA())[1] + (zdc.energySectorZPA())[2] + (zdc.energySectorZPA())[3]) / cfgCollisionEnergy; - float commonSumZnc = zdc.energyCommonZNC() / cfgCollisionEnergy; - float commonSumZna = zdc.energyCommonZNA() / cfgCollisionEnergy; - float commonSumZpc = zdc.energyCommonZPC() / cfgCollisionEnergy; - float commonSumZpa = zdc.energyCommonZPA() / cfgCollisionEnergy; - float aZEM1 = zdc.amplitudeZEM1(); - float aZEM2 = zdc.amplitudeZEM2(); - float sumZEMs = aZEM1 + aZEM2; - if (sumZEMs > zemCut) { - histos.fill(HIST("ampZna"), znA); - histos.fill(HIST("ampZnc"), znC); - histos.fill(HIST("ampZpa"), zpA); - histos.fill(HIST("ampZpc"), zpC); - histos.fill(HIST("ampZEM1"), aZEM1); - histos.fill(HIST("ampZEM2"), aZEM2); - histos.fill(HIST("ZnVsZem"), sumZEMs, znC + znA); - histos.fill(HIST("ZnaVsZnc"), znA, znC); - histos.fill(HIST("ZpaVsZpc"), zpA, zpC); - histos.fill(HIST("ZnaVsZpa"), znA, zpA); - histos.fill(HIST("ZncVsZpc"), znC, zpC); - histos.fill(HIST("ZnccVsZncSum"), sumZNC, commonSumZnc); - histos.fill(HIST("ZnacVsZnaSum"), sumZNA, commonSumZna); - histos.fill(HIST("ZpccVsZpcSum"), sumZPC, commonSumZpc); - histos.fill(HIST("ZpacVsZpaSum"), sumZPA, commonSumZpa); - histos.fill(HIST("ZncVsTdc"), zdc.timeZNC(), znC); - histos.fill(HIST("ZnaVsTdc"), zdc.timeZNA(), znA); - histos.fill(HIST("ZpcVsTdc"), zdc.timeZPC(), zpC); - histos.fill(HIST("ZpaVsTdc"), zdc.timeZPA(), zpA); - histos.fill(HIST("Zem1VsTdc"), zdc.timeZEM1(), aZEM1); - histos.fill(HIST("Zem2VsTdc"), zdc.timeZEM2(), aZEM2); + for (const auto& collision : cols) { + const auto& foundBC = collision.foundBC_as(); + if (foundBC.has_zdc()) { + const auto& zdc = foundBC.zdc(); + auto znA = zdc.amplitudeZNA() / cfgCollisionEnergy; + auto znC = zdc.amplitudeZNC() / cfgCollisionEnergy; + auto zpA = zdc.amplitudeZPA() / cfgCollisionEnergy; + auto zpC = zdc.amplitudeZPC() / cfgCollisionEnergy; + float sumZNC = ((zdc.energySectorZNC())[0] + (zdc.energySectorZNC())[1] + (zdc.energySectorZNC())[2] + (zdc.energySectorZNC())[3]) / cfgCollisionEnergy; + float sumZNA = ((zdc.energySectorZNA())[0] + (zdc.energySectorZNA())[1] + (zdc.energySectorZNA())[2] + (zdc.energySectorZNA())[3]) / cfgCollisionEnergy; + float sumZPC = ((zdc.energySectorZPC())[0] + (zdc.energySectorZPC())[1] + (zdc.energySectorZPC())[2] + (zdc.energySectorZPC())[3]) / cfgCollisionEnergy; + float sumZPA = ((zdc.energySectorZPA())[0] + (zdc.energySectorZPA())[1] + (zdc.energySectorZPA())[2] + (zdc.energySectorZPA())[3]) / cfgCollisionEnergy; + float commonSumZnc = zdc.energyCommonZNC() / cfgCollisionEnergy; + float commonSumZna = zdc.energyCommonZNA() / cfgCollisionEnergy; + float commonSumZpc = zdc.energyCommonZPC() / cfgCollisionEnergy; + float commonSumZpa = zdc.energyCommonZPA() / cfgCollisionEnergy; + float aZEM1 = zdc.amplitudeZEM1(); + float aZEM2 = zdc.amplitudeZEM2(); + float sumZEMs = aZEM1 + aZEM2; + auto tZNA = zdc.timeZNA(); + auto tZNC = zdc.timeZNC(); + auto tZPA = zdc.timeZPA(); + auto tZPC = zdc.timeZPC(); + if (isTDCcut) { + if ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)) + histos.fill(HIST("ampZna"), znA); + if ((tZNC >= minTdcZn) && (tZNC <= minTdcZn)) + histos.fill(HIST("ampZnc"), znC); + if ((tZPA >= minTdcZp) && (tZPA <= maxTdcZp)) + histos.fill(HIST("ampZpa"), zpA); + if ((tZPC >= minTdcZp) && (tZPC <= maxTdcZp)) + histos.fill(HIST("ampZpc"), zpC); + if (((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) && ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn))) + histos.fill(HIST("ZnVsZem"), sumZEMs, znC + znA); + if (((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) && ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn))) + histos.fill(HIST("ZnaVsZnc"), znA, znC); + if (((tZPC >= minTdcZp) && (tZPC <= maxTdcZp)) && ((tZPA >= minTdcZp) && (tZPA <= maxTdcZp))) + histos.fill(HIST("ZpaVsZpc"), zpA, zpC); + if ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)) + histos.fill(HIST("ZnaVsZpa"), znA, zpA); + if ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) + histos.fill(HIST("ZncVsZpc"), znC, zpC); + } else { + histos.fill(HIST("ampZna"), znA); + histos.fill(HIST("ampZnc"), znC); + histos.fill(HIST("ampZpa"), zpA); + histos.fill(HIST("ampZpc"), zpC); + histos.fill(HIST("ZnVsZem"), sumZEMs, znC + znA); + histos.fill(HIST("ZnaVsZnc"), znA, znC); + histos.fill(HIST("ZpaVsZpc"), zpA, zpC); + histos.fill(HIST("ZnaVsZpa"), znA, zpA); + histos.fill(HIST("ZncVsZpc"), znC, zpC); + } + histos.fill(HIST("ampZEM1"), aZEM1); + histos.fill(HIST("ampZEM2"), aZEM2); + histos.fill(HIST("ZnccVsZncSum"), sumZNC, commonSumZnc); + histos.fill(HIST("ZnacVsZnaSum"), sumZNA, commonSumZna); + histos.fill(HIST("ZpccVsZpcSum"), sumZPC, commonSumZpc); + histos.fill(HIST("ZpacVsZpaSum"), sumZPA, commonSumZpa); + histos.fill(HIST("ZncVsTdc"), zdc.timeZNC(), znC); + histos.fill(HIST("ZnaVsTdc"), zdc.timeZNA(), znA); + histos.fill(HIST("ZpcVsTdc"), zdc.timeZPC(), zpC); + histos.fill(HIST("ZpaVsTdc"), zdc.timeZPA(), zpA); + histos.fill(HIST("Zem1VsTdc"), zdc.timeZEM1(), aZEM1); + histos.fill(HIST("Zem2VsTdc"), zdc.timeZEM2(), aZEM2); + } } }