@@ -47,6 +47,7 @@ using namespace o2::aod::mult;
4747using namespace o2 ::constants::math;
4848using namespace o2 ::aod::evsel;
4949
50+
5051#define O2_DEFINE_CONFIGURABLE (NAME, TYPE, DEFAULT, HELP ) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
5152
5253struct FlowZdcTask {
@@ -112,14 +113,15 @@ struct FlowZdcTask {
112113 Configurable<float > minT0CcentCut{" minT0CcentCut" , 0.0 , " Min T0C Cent. cut" };
113114 Configurable<float > maxT0CcentCut{" maxT0CcentCut" , 90.0 , " Max T0C Cent. cut" };
114115
116+ using ColEvent = soa::Join<aod::Collisions, aod::EvSels>;
115117 Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
116118 Filter trackFilter = ((aod::track::eta > minEta) && (aod::track::eta < maxEta));
117119 using ColEvSels = soa::Join<aod::Collisions, aod::EvSels, o2::aod::CentFT0Cs, aod::TPCMults, o2::aod::BarrelMults, aod::FT0MultZeqs>;
118120 using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::Mults>>;
119121 using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra, aod::TracksDCA>>;
120122 Partition<AodTracks> tracksIUWithTPC = (aod::track::tpcNClsFindable > (uint8_t )0 );
121- using TracksSel = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksCovIU, aod::TrackSelection, aod::TracksDCA>;
122123 using BCsRun3 = soa::Join<aod::BCs, aod::Timestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
124+ using TracksSel = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksCovIU, aod::TrackSelection, aod::TracksDCA>;
123125 using CollisionDataTable = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms>;
124126 using TrackDataTable = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection>;
125127 using FilTrackDataTable = soa::Filtered<TrackDataTable>;
@@ -863,46 +865,78 @@ struct FlowZdcTask {
863865 histos.get <TH2>(HIST (" ZDC_energy_vs_ZEM" ))->Fill (sumZEM, sumZDC);
864866 }
865867
866- void processZdc (aod::Zdc const & zdc)
868+ void processZdc (
869+ ColEvent const & cols,
870+ BCsRun3 const & /* bcs*/ ,
871+ aod::Zdcs const & /* zdcs*/ )
867872 {
868- auto znA = zdc.amplitudeZNA () / cfgCollisionEnergy;
869- auto znC = zdc.amplitudeZNC () / cfgCollisionEnergy;
870- auto zpA = zdc.amplitudeZPA () / cfgCollisionEnergy;
871- auto zpC = zdc.amplitudeZPC () / cfgCollisionEnergy;
872- float sumZNC = ((zdc.energySectorZNC ())[0 ] + (zdc.energySectorZNC ())[1 ] + (zdc.energySectorZNC ())[2 ] + (zdc.energySectorZNC ())[3 ]) / cfgCollisionEnergy;
873- float sumZNA = ((zdc.energySectorZNA ())[0 ] + (zdc.energySectorZNA ())[1 ] + (zdc.energySectorZNA ())[2 ] + (zdc.energySectorZNA ())[3 ]) / cfgCollisionEnergy;
874- float sumZPC = ((zdc.energySectorZPC ())[0 ] + (zdc.energySectorZPC ())[1 ] + (zdc.energySectorZPC ())[2 ] + (zdc.energySectorZPC ())[3 ]) / cfgCollisionEnergy;
875- float sumZPA = ((zdc.energySectorZPA ())[0 ] + (zdc.energySectorZPA ())[1 ] + (zdc.energySectorZPA ())[2 ] + (zdc.energySectorZPA ())[3 ]) / cfgCollisionEnergy;
876- float commonSumZnc = zdc.energyCommonZNC () / cfgCollisionEnergy;
877- float commonSumZna = zdc.energyCommonZNA () / cfgCollisionEnergy;
878- float commonSumZpc = zdc.energyCommonZPC () / cfgCollisionEnergy;
879- float commonSumZpa = zdc.energyCommonZPA () / cfgCollisionEnergy;
880- float aZEM1 = zdc.amplitudeZEM1 ();
881- float aZEM2 = zdc.amplitudeZEM2 ();
882- float sumZEMs = aZEM1 + aZEM2;
883- if (sumZEMs > zemCut) {
884- histos.fill (HIST (" ampZna" ), znA);
885- histos.fill (HIST (" ampZnc" ), znC);
886- histos.fill (HIST (" ampZpa" ), zpA);
887- histos.fill (HIST (" ampZpc" ), zpC);
888- histos.fill (HIST (" ampZEM1" ), aZEM1);
889- histos.fill (HIST (" ampZEM2" ), aZEM2);
890- histos.fill (HIST (" ZnVsZem" ), sumZEMs, znC + znA);
891- histos.fill (HIST (" ZnaVsZnc" ), znA, znC);
892- histos.fill (HIST (" ZpaVsZpc" ), zpA, zpC);
893- histos.fill (HIST (" ZnaVsZpa" ), znA, zpA);
894- histos.fill (HIST (" ZncVsZpc" ), znC, zpC);
895- histos.fill (HIST (" ZnccVsZncSum" ), sumZNC, commonSumZnc);
896- histos.fill (HIST (" ZnacVsZnaSum" ), sumZNA, commonSumZna);
897- histos.fill (HIST (" ZpccVsZpcSum" ), sumZPC, commonSumZpc);
898- histos.fill (HIST (" ZpacVsZpaSum" ), sumZPA, commonSumZpa);
899- histos.fill (HIST (" ZncVsTdc" ), zdc.timeZNC (), znC);
900- histos.fill (HIST (" ZnaVsTdc" ), zdc.timeZNA (), znA);
901- histos.fill (HIST (" ZpcVsTdc" ), zdc.timeZPC (), zpC);
902- histos.fill (HIST (" ZpaVsTdc" ), zdc.timeZPA (), zpA);
903- histos.fill (HIST (" Zem1VsTdc" ), zdc.timeZEM1 (), aZEM1);
904- histos.fill (HIST (" Zem2VsTdc" ), zdc.timeZEM2 (), aZEM2);
905- }
873+ for (auto & collision : cols) {
874+ const auto & foundBC = collision.foundBC_as <BCsRun3>();
875+ if (foundBC.has_zdc ()) {
876+ const auto & zdc = foundBC.zdc ();
877+ auto znA = zdc.amplitudeZNA () / cfgCollisionEnergy;
878+ auto znC = zdc.amplitudeZNC () / cfgCollisionEnergy;
879+ auto zpA = zdc.amplitudeZPA () / cfgCollisionEnergy;
880+ auto zpC = zdc.amplitudeZPC () / cfgCollisionEnergy;
881+ float sumZNC = ((zdc.energySectorZNC ())[0 ] + (zdc.energySectorZNC ())[1 ] + (zdc.energySectorZNC ())[2 ] + (zdc.energySectorZNC ())[3 ]) / cfgCollisionEnergy;
882+ float sumZNA = ((zdc.energySectorZNA ())[0 ] + (zdc.energySectorZNA ())[1 ] + (zdc.energySectorZNA ())[2 ] + (zdc.energySectorZNA ())[3 ]) / cfgCollisionEnergy;
883+ float sumZPC = ((zdc.energySectorZPC ())[0 ] + (zdc.energySectorZPC ())[1 ] + (zdc.energySectorZPC ())[2 ] + (zdc.energySectorZPC ())[3 ]) / cfgCollisionEnergy;
884+ float sumZPA = ((zdc.energySectorZPA ())[0 ] + (zdc.energySectorZPA ())[1 ] + (zdc.energySectorZPA ())[2 ] + (zdc.energySectorZPA ())[3 ]) / cfgCollisionEnergy;
885+ float commonSumZnc = zdc.energyCommonZNC () / cfgCollisionEnergy;
886+ float commonSumZna = zdc.energyCommonZNA () / cfgCollisionEnergy;
887+ float commonSumZpc = zdc.energyCommonZPC () / cfgCollisionEnergy;
888+ float commonSumZpa = zdc.energyCommonZPA () / cfgCollisionEnergy;
889+ float aZEM1 = zdc.amplitudeZEM1 ();
890+ float aZEM2 = zdc.amplitudeZEM2 ();
891+ float sumZEMs = aZEM1 + aZEM2;
892+ auto tZNA = zdc.timeZNA ();
893+ auto tZNC = zdc.timeZNC ();
894+ auto tZPA = zdc.timeZPA ();
895+ auto tZPC = zdc.timeZPC ();
896+ if (isTDCcut) {
897+ if ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn))
898+ histos.fill (HIST (" ampZna" ), znA);
899+ if ((tZNC >= minTdcZn) && (tZNC <= minTdcZn))
900+ histos.fill (HIST (" ampZnc" ), znC);
901+ if ((tZPA >= minTdcZp) && (tZPA <= maxTdcZp))
902+ histos.fill (HIST (" ampZpa" ), zpA);
903+ if ((tZPC >= minTdcZp) && (tZPC <= maxTdcZp))
904+ histos.fill (HIST (" ampZpc" ), zpC);
905+ if (((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) && ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)))
906+ histos.fill (HIST (" ZnVsZem" ), sumZEMs, znC + znA);
907+ if (((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) && ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)))
908+ histos.fill (HIST (" ZnaVsZnc" ), znA, znC);
909+ if (((tZPC >= minTdcZp) && (tZPC <= maxTdcZp)) && ((tZPA >= minTdcZp) && (tZPA <= maxTdcZp)))
910+ histos.fill (HIST (" ZpaVsZpc" ), zpA, zpC);
911+ if ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn))
912+ histos.fill (HIST (" ZnaVsZpa" ), znA, zpA);
913+ if ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn))
914+ histos.fill (HIST (" ZncVsZpc" ), znC, zpC);
915+ } else {
916+ histos.fill (HIST (" ampZna" ), znA);
917+ histos.fill (HIST (" ampZnc" ), znC);
918+ histos.fill (HIST (" ampZpa" ), zpA);
919+ histos.fill (HIST (" ampZpc" ), zpC);
920+ histos.fill (HIST (" ZnVsZem" ), sumZEMs, znC + znA);
921+ histos.fill (HIST (" ZnaVsZnc" ), znA, znC);
922+ histos.fill (HIST (" ZpaVsZpc" ), zpA, zpC);
923+ histos.fill (HIST (" ZnaVsZpa" ), znA, zpA);
924+ histos.fill (HIST (" ZncVsZpc" ), znC, zpC);
925+ }
926+ histos.fill (HIST (" ampZEM1" ), aZEM1);
927+ histos.fill (HIST (" ampZEM2" ), aZEM2);
928+ histos.fill (HIST (" ZnccVsZncSum" ), sumZNC, commonSumZnc);
929+ histos.fill (HIST (" ZnacVsZnaSum" ), sumZNA, commonSumZna);
930+ histos.fill (HIST (" ZpccVsZpcSum" ), sumZPC, commonSumZpc);
931+ histos.fill (HIST (" ZpacVsZpaSum" ), sumZPA, commonSumZpa);
932+ histos.fill (HIST (" ZncVsTdc" ), zdc.timeZNC (), znC);
933+ histos.fill (HIST (" ZnaVsTdc" ), zdc.timeZNA (), znA);
934+ histos.fill (HIST (" ZpcVsTdc" ), zdc.timeZPC (), zpC);
935+ histos.fill (HIST (" ZpaVsTdc" ), zdc.timeZPA (), zpA);
936+ histos.fill (HIST (" Zem1VsTdc" ), zdc.timeZEM1 (), aZEM1);
937+ histos.fill (HIST (" Zem2VsTdc" ), zdc.timeZEM2 (), aZEM2);
938+ }
939+ }
906940 }
907941
908942 PROCESS_SWITCH (FlowZdcTask, processQA, " Process QA" , true );
0 commit comments