@@ -703,7 +703,7 @@ struct UccZdc {
703703 return ;
704704 }
705705
706- auto efficiency = ccdb->getForTimeStamp <TH1F >(paTHEff.value , foundBC.timestamp ());
706+ auto efficiency = ccdb->getForTimeStamp <TH2F >(paTHEff.value , foundBC.timestamp ());
707707 if (!efficiency) {
708708 return ;
709709 }
@@ -723,9 +723,11 @@ struct UccZdc {
723723 }
724724
725725 float pt{track.pt ()};
726+ int foundNchBin{efficiency->GetXaxis ()->FindBin (glbTracks)};
727+ int foundPtBin{efficiency->GetYaxis ()->FindBin (pt)};
726728 float effValue{1.0 };
727729 if (applyEff) {
728- effValue = efficiency->GetBinContent (efficiency-> FindBin (pt) );
730+ effValue = efficiency->GetBinContent (foundNchBin, foundPtBin );
729731 }
730732 if (effValue > 0 .) {
731733 vecOneOverEff.emplace_back (1 . / effValue);
@@ -756,10 +758,12 @@ struct UccZdc {
756758 }
757759
758760 float pt{track.pt ()};
761+ int foundNchBin{efficiency->GetXaxis ()->FindBin (glbTracks)};
762+ int foundPtBin{efficiency->GetYaxis ()->FindBin (pt)};
759763 float effValue{1 .};
760764 float fdValue{1 .};
761765 if (applyEff) {
762- effValue = efficiency->GetBinContent (efficiency-> FindBin (pt) );
766+ effValue = efficiency->GetBinContent (foundNchBin, foundPtBin );
763767 fdValue = fd->GetBinContent (fd->FindBin (pt));
764768 }
765769 if (applyEff && !applyFD) {
@@ -870,7 +874,7 @@ struct UccZdc {
870874 registry.fill (HIST (" EvtsDivided" ), 0 );
871875
872876 // To use run-by-run efficiency
873- auto efficiency = ccdb->getForTimeStamp <TH1F >(paTHEff.value , foundBC.timestamp ());
877+ auto efficiency = ccdb->getForTimeStamp <TH2F >(paTHEff.value , foundBC.timestamp ());
874878 if (!efficiency) {
875879 return ;
876880 }
@@ -880,20 +884,43 @@ struct UccZdc {
880884 std::vector<float > vecOneOverEff;
881885 // std::vector<float> wIs;
882886 const auto & groupedTracks{simTracks.sliceBy (perCollision, collision.globalIndex ())};
887+
888+ // Calculates the event's Nch to evaluate the efficiency
889+ for (const auto & track : groupedTracks) {
890+ // Track Selection
891+ if (track.eta () < minEta || track.eta () > maxEta) {
892+ continue ;
893+ }
894+ if (track.pt () < minPt || track.pt () > maxPt) {
895+ continue ;
896+ }
897+ if (!track.isGlobalTrack ()) {
898+ continue ;
899+ }
900+ nchRaw++;
901+ }
902+
883903 // Calculates the event weight, W_k
884904 for (const auto & track : groupedTracks) {
885905 // Track Selection
906+ if (track.eta () < minEta || track.eta () > maxEta) {
907+ continue ;
908+ }
909+ if (track.pt () < minPt || track.pt () > maxPt) {
910+ continue ;
911+ }
886912 if (!track.isGlobalTrack ()) {
887913 continue ;
888914 }
889915
890916 float pt{track.pt ()};
917+ int foundNchBin{efficiency->GetXaxis ()->FindBin (nchRaw)};
918+ int foundPtBin{efficiency->GetYaxis ()->FindBin (pt)};
891919 float effValue{1 .};
892920 float fdValue{1 .};
893- nchRaw++;
894921
895922 if (applyEff) {
896- effValue = efficiency->GetBinContent (efficiency-> FindBin (pt) );
923+ effValue = efficiency->GetBinContent (foundNchBin, foundPtBin );
897924 fdValue = fd->GetBinContent (fd->FindBin (pt));
898925 }
899926 if ((effValue > 0 .) && (fdValue > 0 .)) {
@@ -987,6 +1014,12 @@ struct UccZdc {
9871014 const auto & groupedTracks{simTracks.sliceBy (perCollision, collision.globalIndex ())};
9881015 for (const auto & track : groupedTracks) {
9891016 // Track Selection
1017+ if (track.eta () < minEta || track.eta () > maxEta) {
1018+ continue ;
1019+ }
1020+ if (track.pt () < minPt || track.pt () > maxPt) {
1021+ continue ;
1022+ }
9901023 if (!track.isGlobalTrack ()) {
9911024 continue ;
9921025 }
@@ -998,6 +1031,12 @@ struct UccZdc {
9981031
9991032 for (const auto & track : groupedTracks) {
10001033 // Track Selection
1034+ if (track.eta () < minEta || track.eta () > maxEta) {
1035+ continue ;
1036+ }
1037+ if (track.pt () < minPt || track.pt () > maxPt) {
1038+ continue ;
1039+ }
10011040 if (!track.isGlobalTrack ()) {
10021041 continue ;
10031042 }
0 commit comments