@@ -124,6 +124,9 @@ struct UpcCandProducer {
124124 histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (1 , " TCE" );
125125 histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (2 , " ZNA" );
126126 histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (3 , " ZNC" );
127+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (4 , " TCE_ROF" );
128+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (5 , " TCE_TF" );
129+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->GetXaxis ()->SetBinLabel (6 , " TCE_ROF_TF" );
127130
128131 const AxisSpec axisBcDist{201 , 0.5 , 200.5 , " " };
129132 histRegistry.add (" hDistToITSTPC" , " " , kTH1F , {axisBcDist});
@@ -691,6 +694,43 @@ struct UpcCandProducer {
691694 }
692695 }
693696
697+ template <typename TBCs>
698+ void collectForwardGlobalTracks (std::vector<BCTracksPair>& bcsMatchedTrIds,
699+ int typeFilter,
700+ TBCs const & /* bcs*/ ,
701+ o2::aod::Collisions const & /* collisions*/ ,
702+ ForwardTracks const & fwdTracks,
703+ o2::aod::AmbiguousFwdTracks const & /* ambFwdTracks*/ ,
704+ std::unordered_map<int64_t , uint64_t >& ambFwdTrBCs)
705+ {
706+ for (const auto & trk : fwdTracks) {
707+ if (trk.trackType () != typeFilter)
708+ continue ;
709+ if (!applyFwdCuts (trk))
710+ continue ;
711+ int64_t trkId = trk.globalIndex ();
712+ int32_t nContrib = -1 ;
713+ uint64_t trackBC = 0 ;
714+ auto ambIter = ambFwdTrBCs.find (trkId);
715+ if (ambIter == ambFwdTrBCs.end ()) {
716+ const auto & col = trk.collision ();
717+ nContrib = col.numContrib ();
718+ trackBC = col.bc_as <TBCs>().globalBC ();
719+ if (!(col.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoTimeFrameBorder ) &&
720+ col.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoITSROFrameBorder ))) {
721+ continue ; // skip this track if both selection bits are not set
722+ }
723+ } else {
724+ trackBC = ambIter->second ;
725+ }
726+ int64_t tint = TMath::FloorNint (trk.trackTime () / o2::constants::lhc::LHCBunchSpacingNS + static_cast <float >(fMuonTrackTShift ));
727+ uint64_t bc = trackBC + tint;
728+ if (nContrib > upcCuts.getMaxNContrib ())
729+ continue ;
730+ addTrack (bcsMatchedTrIds, bc, trkId);
731+ }
732+ }
733+
694734 int32_t searchTracks (uint64_t midbc, uint64_t range, uint32_t tracksToFind,
695735 std::vector<int64_t >& tracks,
696736 std::vector<BCTracksPair>& v,
@@ -1519,10 +1559,10 @@ struct UpcCandProducer {
15191559 bcs, collisions,
15201560 fwdTracks, ambFwdTracks, ambFwdTrBCs);
15211561
1522- collectForwardTracks (bcsMatchedTrIdsGlobal,
1523- o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack,
1524- bcs, collisions,
1525- fwdTracks, ambFwdTracks, ambFwdTrBCs);
1562+ collectForwardGlobalTracks (bcsMatchedTrIdsGlobal,
1563+ o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack,
1564+ bcs, collisions,
1565+ fwdTracks, ambFwdTracks, ambFwdTrBCs);
15261566
15271567 std::sort (bcsMatchedTrIdsMID.begin (), bcsMatchedTrIdsMID.end (),
15281568 [](const auto & left, const auto & right) { return left.first < right.first ; });
@@ -1539,6 +1579,16 @@ struct UpcCandProducer {
15391579 continue ;
15401580 if (TESTBIT (ft0.triggerMask (), o2::fit::Triggers::bitCen)) { // TVX & TCE
15411581 histRegistry.get <TH1>(HIST (" hCountersTrg" ))->Fill (" TCE" , 1 );
1582+ if (ft0.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoITSROFrameBorder )) { // TVX & TCE without ROF borders
1583+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->Fill (" TCE_ROF" , 1 );
1584+ }
1585+ if (ft0.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoTimeFrameBorder )) { // TVX & TCE without TF borders
1586+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->Fill (" TCE_TF" , 1 );
1587+ }
1588+ if (ft0.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoITSROFrameBorder ) &&
1589+ ft0.bc_as <TBCs>().selection_bit (o2::aod::evsel::kNoTimeFrameBorder )) { // TVX & TCE without ROF and TF borders
1590+ histRegistry.get <TH1>(HIST (" hCountersTrg" ))->Fill (" TCE_ROF_TF" , 1 );
1591+ }
15421592 }
15431593 if (std::abs (ft0.timeA ()) > 2 .f )
15441594 continue ;
0 commit comments