@@ -331,6 +331,10 @@ struct TableMaker {
331331 Partition<MyBarrelTracksWithCovNoTOF> tracksPosWithCovNoTOF = (((aod::track::flags & static_cast <uint32_t >(o2::aod::track::PVContributor)) == static_cast <uint32_t >(o2::aod::track::PVContributor)) && (aod::track::tgl > static_cast <float >(0.05 )));
332332 Partition<MyBarrelTracksWithCovNoTOF> tracksNegWithCovNoTOF = (((aod::track::flags & static_cast <uint32_t >(o2::aod::track::PVContributor)) == static_cast <uint32_t >(o2::aod::track::PVContributor)) && (aod::track::tgl < static_cast <float >(-0.05 )));
333333
334+ Preslice<MyBarrelTracksWithCov> presliceWithCov = aod::track::collisionId;
335+ Partition<MyBarrelTracksWithCov> tracksPosWithCov = (((aod::track::flags & static_cast <uint32_t >(o2::aod::track::PVContributor)) == static_cast <uint32_t >(o2::aod::track::PVContributor)) && (aod::track::tgl > static_cast <float >(0.05 )));
336+ Partition<MyBarrelTracksWithCov> tracksNegWithCov = (((aod::track::flags & static_cast <uint32_t >(o2::aod::track::PVContributor)) == static_cast <uint32_t >(o2::aod::track::PVContributor)) && (aod::track::tgl < static_cast <float >(-0.05 )));
337+
334338 struct {
335339 std::map<int32_t , float > oMeanTimeShortA;
336340 std::map<int32_t , float > oMeanTimeShortC;
@@ -788,7 +792,7 @@ struct TableMaker {
788792 }
789793
790794 template <uint32_t TEventFillMap, uint32_t TTrackFillMap, typename TEvents, typename TBCs, typename TZdcs, typename TTrackAssoc, typename TTracks>
791- void skimCollisions (TEvents const & collisions, TBCs const & /* bcs*/ , TZdcs const & /* zdcs*/ ,
795+ void skimCollisions (TEvents const & collisions, TBCs const & bcs, TZdcs const & /* zdcs*/ ,
792796 TTrackAssoc const & trackAssocs, TTracks const & tracks)
793797 {
794798 // Skim collisions
@@ -821,7 +825,7 @@ struct TableMaker {
821825 (reinterpret_cast <TH2D*>(fStatsList ->At (kStatsEvent )))->Fill (1.0 , static_cast <float >(o2::aod::evsel::kNsel ));
822826
823827 // apply the event filter computed by filter-PP
824- if constexpr ((TEventFillMap & VarManager::ObjTypes::EventFilter) > 0 || (TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
828+ if constexpr ((TEventFillMap & VarManager::ObjTypes::EventFilter) > 0 ) {
825829 if (!collision.eventFilter ()) {
826830 continue ;
827831 }
@@ -836,8 +840,8 @@ struct TableMaker {
836840 if (bcEvSel.globalIndex () != bc.globalIndex ()) {
837841 tag |= (static_cast <uint64_t >(1 ) << 0 );
838842 }
839- // Put the 8 first bits of the event filter in the last 8 bits of the tag
840- if constexpr ((TEventFillMap & VarManager::ObjTypes::EventFilter) > 0 || (TEventFillMap & VarManager::ObjTypes:: RapidityGapFilter) > 0 ) {
843+ // Put the 8 first bits of the rapidity gap filter in the last 8 bits of the tag
844+ if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
841845 tag |= (collision.eventFilter () << 56 );
842846 }
843847
@@ -846,8 +850,12 @@ struct TableMaker {
846850 VarManager::FillEvent<TEventFillMap>(collision); // extract event information and place it in the fValues array
847851 if constexpr ((TEventFillMap & VarManager::ObjTypes::Zdc) > 0 ) {
848852 if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
849- // Collision table already has ZDC info
850- VarManager::FillZDC (collision);
853+ // The DQRapidityGapFilter contains the index of the bc we want to get ZDC info from
854+ auto newbc = bcs.rawIteratorAt (collision.newBcIndex ());
855+ if (newbc.has_zdc ()) {
856+ auto newbc_zdc = newbc.zdc ();
857+ VarManager::FillZDC (newbc_zdc);
858+ }
851859 } else if (bcEvSel.has_zdc ()) {
852860 auto bc_zdc = bcEvSel.zdc ();
853861 VarManager::FillZDC (bc_zdc);
@@ -926,20 +934,11 @@ struct TableMaker {
926934 multZNC = collision.multZNC ();
927935 multTracklets = collision.multTracklets ();
928936 multTracksPV = collision.multNTracksPV ();
929- if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
930- // Use the FIT signals from the nearest BC with FIT amplitude above threshold
931- multFV0A = collision.newBcMultFV0A ();
932- multFT0A = collision.newBcMultFT0A ();
933- multFT0C = collision.newBcMultFT0C ();
934- multFDDA = collision.newBcMultFDDA ();
935- multFDDC = collision.newBcMultFDDC ();
936- } else {
937- multFV0A = collision.multFV0A ();
938- multFT0A = collision.multFT0A ();
939- multFT0C = collision.multFT0C ();
940- multFDDA = collision.multFDDA ();
941- multFDDC = collision.multFDDC ();
942- }
937+ multFV0A = collision.multFV0A ();
938+ multFT0A = collision.multFT0A ();
939+ multFT0C = collision.multFT0C ();
940+ multFDDA = collision.multFDDA ();
941+ multFDDC = collision.multFDDC ();
943942 }
944943 if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionCent) > 0 ) {
945944 centFT0C = collision.centFT0C ();
@@ -952,9 +951,15 @@ struct TableMaker {
952951 eventInfo (collision.globalIndex ());
953952 if constexpr ((TEventFillMap & VarManager::ObjTypes::Zdc) > 0 ) {
954953 if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
955- // ZDC information is already in the DQRapidityGapFilter
956- zdc (collision.energyCommonZNA (), collision.energyCommonZNC (), collision.energyCommonZPA (), collision.energyCommonZPC (),
957- collision.timeZNA (), collision.timeZNC (), collision.timeZPA (), collision.timeZPC ());
954+ // The DQRapidityGapFilter contains the index of the bc we want to get ZDC info from
955+ auto newbc = bcs.rawIteratorAt (collision.newBcIndex ());
956+ if (newbc.has_zdc ()) {
957+ auto newbc_zdc = newbc.zdc ();
958+ zdc (newbc_zdc.energyCommonZNA (), newbc_zdc.energyCommonZNC (), newbc_zdc.energyCommonZPA (), newbc_zdc.energyCommonZPC (),
959+ newbc_zdc.timeZNA (), newbc_zdc.timeZNC (), newbc_zdc.timeZPA (), newbc_zdc.timeZPC ());
960+ } else {
961+ zdc (-1.0 , -1.0 , -1.0 , -1.0 , -1.0 , -1.0 , -1.0 , -1.0 );
962+ }
958963 } else if (bcEvSel.has_zdc ()) {
959964 auto bc_zdc = bcEvSel.zdc ();
960965 zdc (bc_zdc.energyCommonZNA (), bc_zdc.energyCommonZNC (), bc_zdc.energyCommonZPA (), bc_zdc.energyCommonZPC (),
@@ -1650,6 +1655,7 @@ struct TableMaker {
16501655 MyBarrelTracksWithCov const & tracksBarrel,
16511656 TrackAssoc const & trackAssocs)
16521657 {
1658+ computeOccupancyEstimators (collisions, tracksPosWithCov, tracksNegWithCov, presliceWithCov, bcs);
16531659 fullSkimming<gkEventFillMapWithMultsRapidityGapFilterZdc, gkTrackFillMapWithCov, 0u , 0u >(collisions, bcs, zdcs, tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr );
16541660 }
16551661
0 commit comments